Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Sprawdzenie schematu Atmega328

wojtek6000 25 Wrz 2017 15:00 729 15
  • #1 25 Wrz 2017 15:00
    wojtek6000
    Poziom 6  

    Witam

    Bardzo bym prosił o sprawdzenie czy schemat jest poprawny. Docelowo ma to być urządzenie do którego ma być podłączone 16 termometrów ds18b20 i ma miejsce na wpięcie modułu komunikacji RS485. Czy prawidłowo zastosowałem diody które mają zabezpieczyć przed odwrotnym podłączeniem termometru?

    Sprawdzenie schematu Atmega328

    0 15
  • #2 25 Wrz 2017 15:51
    sawitar
    Poziom 17  

    Jakiś szczególny powód dlaczego każdy termometr jest podłączony osobno?

    Pamiętaj ze termometry DS1820 działają na magistrali 1wire i możesz wszystkie podłączyć do jednego portu procesora (potencjalnie)

    0
  • #3 25 Wrz 2017 15:58
    wojtek6000
    Poziom 6  

    Powodem dla którego każdy termometr działa osobno jest fakt, że musiałbym znać adres każdego termometru jaki znajduje się na magistrali abym mógł określić w którym pomieszczeniu znajduje się ten konkretny temometr.

    0
  • #4 25 Wrz 2017 16:31
    sawitar
    Poziom 17  

    wojtek6000 napisał:
    Powodem dla którego każdy termometr działa osobno jest fakt, że musiałbym znać adres każdego termometru jaki znajduje się na magistrali abym mógł określić w którym pomieszczeniu znajduje się ten konkretny termometr.

    Oczywiscie. Chociaz ...


    Odczyt wszystkich aktywnych ID nie jest jakoś specjalnie trudny. Dallas dal nawet przykładową implementacje algorytmu SearchROM w C.

    Odnalezione ROMy możesz trzymać w EEPROMie (zmieści się ich tam całkiem sporo) na pozycjach enumerowanych po pomieszczeniach.

    0
  • #5 25 Wrz 2017 16:51
    wojtek6000
    Poziom 6  

    A wracając do tematu... Czy schemat jest prawidłowy? Czy jeśli podłącze wszystkie termometry na długich kablach np 10-12m to układ będzie działał prawidłowo? Układ zasilany będzie przetwornicą o wydajności 700mA.

    0
  • #6 25 Wrz 2017 17:05
    22053
    Użytkownik usunął konto  
  • #7 25 Wrz 2017 17:09
    drobok
    Poziom 28  

    Śmiem wątpić w te 12m z tym rezystorem - radzę to przetestować ;)

    0
  • #8 25 Wrz 2017 17:57
    wojtek6000
    Poziom 6  

    Do R-MIK:
    Fakt, o zabezpieczeniu ESD zapomnialem. Dorzucę je.
    Co masz na myśli mówiąc ze źlekarza podłącze scalaka? Atmega napewno będzie podłączona prawidłowo i źródło zasilania również.

    Do drobok:
    Sprawdzałem. Termometr działał nawet na kablu o długości 15m z takim rezystorem.

    0
  • Pomocny post
    #9 25 Wrz 2017 18:10
    tmf
    Moderator Mikrokontrolery Projektowanie

    @wojtek6000Te diody niczemu nie służą i nic nie zabezpieczają. Jeśli podłączysz DS'a odwrotnie to i tak będzie podłączony odwrotnie ze wszystkimi tego konsekwencjami. Rezystor 4k7 przy zasilaniu 5V jest zupełnie ok. Pomysł z jakimkolwiek zabezpieczeniem ESD jest dobry. Na schemacie nie ma RS485.
    Natomiast takie podłączenie DSów, każdy do osobnego pinu jest niezbyt sensowne. Oczywiście ma zalety, typu nie musisz znać ID, ale pomyśl ile będzie trwało zmuszenie ich do konwersji. Dla każdego z osobna trzeba będzie generować reset, skip rom i convert. No i zostaje ci obsługa 1-wire przez machanie pinami, co czyni pisanie programu, szczególnie pseudowielowątkowego niezbyt przyjemnym zadaniem. Rezystor do resetu też może być problemem - reset już ma wewnętrzne podciąganie i zazwyczaj zewnętrzne nie jest potrzebne. Przy niskiej wartości może stwarzać problem dla programatora. Swoją droga nie pomyślałeś o ISP - piny masz zajęte i przy takim układzie raczej nie będzie dało się programować procesora w systemie, chyba, że będziesz odłączał DSy na czas programowania.

    0
  • #10 25 Wrz 2017 18:36
    22053
    Użytkownik usunął konto  
  • #11 25 Wrz 2017 18:43
    wojtek6000
    Poziom 6  

    Jeśli chodzi o wgrywanie programu to nie będzie problemu gdyż procesor będzie znajdował się w podstawce. Co do resetu to sugerowalem się zaleceniami żeby zawsze podłączać to przez rezystor.
    Modulu z rs485 nie ma na płytce gdyż jest to gotowy układ i wyprowadzone są do niego wyjścia do dwóch gniazd goldpin w które będzie wpinany. A jeśli chodzi o sam program to mam go i działa prawidłowo w takiej konfiguracji podłączonych termometrów. Całość jest napisana w arduino wiec to bardzo prosty programik:)
    Wiec diody nie sa potrzebne? Jak wiec zabezpieczyć termometr przed odwrotnym podlaczeniem zasilania? I jakie zastosować zabezpieczenie ESD?

    Edit

    Do R-MIK: faktycznie.... Gdzie ja mam głowę:D

    0
  • #12 25 Wrz 2017 18:47
    tmf
    Moderator Mikrokontrolery Projektowanie

    @wojtek6000 Nie ma możliwości zabezpieczenia DSów przed odwrotnym podłączeniem - o ile nie wyposażysz je w zintegrowany kabel z godpowiednią wtyczką uniemożliwiającą odwrotne podłączenie. Pomyśl - dioda jest na płytce z której masz wyprowadzone zasilanie, które łączysz (potencjalnie mylnie) ze DSem., Nic nie daje. Programowanie procesora przez wyciągnięcie go z podstawki jest uciążliwe, ale jeśli masz już gotowy program to ok. Dallas produkuje jakieś zabezpieczenia do 1-wire, można je wykorzystać. Lub wstawić po prostu podwójną diodę na linię data. Niewiele to zmieni, ale zawsze coś.

    0
  • Pomocny post
    #13 25 Wrz 2017 19:21
    22053
    Użytkownik usunął konto  
  • #14 25 Wrz 2017 20:17
    wojtek6000
    Poziom 6  

    Czyli wystarczy jak podłącze pomiędzy każde wejście mikrokontrolera a masę jednokierunkową diodę transil?

    [edit]

    W zasadzie to musiałbym podłączać takie diody też do zasilania każdego termometru tak?

    0
  • #15 25 Wrz 2017 20:26
    22053
    Użytkownik usunął konto  
  • #16 27 Wrz 2017 09:38
    pawlik118
    Poziom 24  

    ja mam rezystory podciągające 2k2 i na 60m działa bez błędów transmisji.

    0