logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[ATtiny44 + max485 + ds18b20] prośba o sprawdzenie schematu

sorontar 23 Lip 2011 21:47 6157 14
  • #1 9751071
    sorontar
    Poziom 10  
    Witam,

    próbuję skonstruować termometr, którego wskazania będę mógł odczytywać z komputera.
    Chciałbym, aby układ był możliwie mały, dlatego jako główny procesor zdecydowałem wykorzystać ATtiny44.
    W bibliotekach eagle nie było układu max485, dlatego wstawiłem odpowiadający mu wyprowadzeniami max481.


    Proszę o sprawdzenie poprawności schematu zamieszczonego na obrazku poniżej.

    [ATtiny44 + max485 + ds18b20] prośba o sprawdzenie schematu
    Schemat

    Z góry dziękuję i pozdrawiam
  • Pomocny post
    #2 9752000
    FastProject
    Poziom 28  
    Witam,
    1. Niewiele więcej miejsca zajęła by ci ATmega8 lub mega48 lup podobny w obudowie TQFP32, a one mają sprzętowy USART który przydał by się tu do RS485
    2. Do czego jest ta zworka JP2? Zwiększ wartość rezystora R2 podciągającego 1Wire. Na co najmniej 1k (optymalnie 2,2-4,7k)
    3. Staraj sienie rysować połączeń pod kątem 45 stopnie. Przy większych urządzeniach i połączeniach schemat robi się wtedy nieczytelny.
    4. W samym schemacie nie zauważyłem jakiś rażących błędów.
  • #3 9752501
    sorontar
    Poziom 10  
    Witam

    Dziękuję za odpowiedź.
    Mam małe doświadczenie w lutowaniu elementów powierzchniowo, a całość wytrawiam i składam sam.
    Jeżeli chodzi o UART to znalazłem coś co może mi pomóc:
    http://www.atmel.com/dyn/resources/prod_documents/doc0952.pdf

    Punkty 2 i 3 poprawione.

    jeszcze raz dziękuję i pozdrawiam
  • Pomocny post
    #4 9752771
    mirekk36
    Poziom 42  
    Posłuchaj - skoro chcesz odczytywać temperaturę koniecznie na komputerze w trybie on-line to po co ci po drodze procek w ogóle???

    przecież do portu COM można podłączyć wprost DS18B20 i odczytywać temperatury nawet jakimiś darmowymi i popularnymi programami. (wkrótce dojdzie jeszcze jeden taki program jak go ukończę) ;)

    Schemat jak podłączyć DS18B20 bezpośrednio do portu COM znajdziesz wszędzie w necie - to tylko kilka drobnych rezystorków, dodek itp. Więc o wiele mniej miejsca niż ten cały układ.

    Brałeś to pod uwagę czy może nie wiedziałeś że są takie rozwiązania gotowe już dawno ?
  • #5 9753076
    sorontar
    Poziom 10  
    Dziękuję za kolejną odpowiedź.

    Temperatura będzie odczytywana w kilku pomieszczeniach w domu i na dworze.
    Odległości czujników od komputera szacunkowo będą wynosić do 50 metrów.
    Z tego co przeczytałem w internecie, rs485 jest rozwiązaniem pewniejszym, ale jeżeli się mylę to proszę o poprawienie.

    Pozdrawiam
  • #6 9753124
    mirekk36
    Poziom 42  
    50m to nie aż tak duże odległości dla 1wire, zakładając że sygnały lecą sobie po skrętce. Co ciekawe może to być połączone w gwiazdę czy w magistralę a i tak będzie działać.
  • Pomocny post
    #7 9753146
    janbernat
    Poziom 38  
    Albo rs485 albo 1wire.
    1wire jest specjalnie skonstruowany do pomiarów na duże odległości- 500m to dla tej magistrali nic specjalnego.
    Oczywiście nie należy takiej długiej linii wpinać w komputer bezpośrednio- wystarczy jakiś piorun w pobliżu i wszystko może się spalić- komputer też.
    Najlepiej jakieś transoptory dać między komputerem a DS-ami.
  • #8 9753989
    FastProject
    Poziom 28  
    janbernat napisał:
    Albo rs485 albo 1wire.
    1wire jest specjalnie skonstruowany do pomiarów na duże odległości- 500m to dla tej magistrali nic specjalnego.


    Kolega ma na myśli chyba RS485?

    Dodano po 1 [minuty]:

    mirekk36 napisał:
    50m to nie aż tak duże odległości dla 1wire, zakładając że sygnały lecą sobie po skrętce. Co ciekawe może to być połączone w gwiazdę czy w magistralę a i tak będzie działać.


    Zgadzam się, osobiście testowałem poprawną transmisję 1Wire po skrętce o długości 170m.
  • #9 9754069
    sorontar
    Poziom 10  
    Dziękuję za odpowiedzi.

    Znalazłem w internecie taki schemat podłączenia
    [ATtiny44 + max485 + ds18b20] prośba o sprawdzenie schematu

    rozumiem, że należy do niego dodać optoizolację.

    Niestety nie posiadam w komputerze sprzętowego portu com.
    W wersji z rs485 komunikacja miała odbywać się przez moduł ftdi (bazujący na układzie FT232RL), który jest swojego rodzaju przetwornikiem USB <-> UART pracujący na napięciach 0-5V.
    Więcej o układzie tu

    Szukając dalej, znalazłem artykuł opisujący jak podłączyć OW do UART'a.
    Artykuł tutaj.

    Aby przy FT232RL dało się tak zrobić do TxD należy dodać bufor, z wyjściem typu otwarty dren. Przykład.

    Dodatkowo, jak sz. Pan janbernat wspomniał, należy zapewnić optoizolację. Ponieważ linia jest dwukierunkowa, należy zastosować dla niej dwa transoptory.
    Tu pierwsze pytanie: czy zastosować optoizolację dla każdego czujnika czy wystarczy przed układem uart?
    Większość będzie zasilana z USB, ale aby obwody były oddzielne, rozumiem, że potrzebny będzie jeszcze jedno źródło zasilania, do zasilenia czujników.

    Czy jako kable nada się zwykły kabel telefoniczny?

    A jak w takim razie wygląda komunikacja z układami od strony komputera? Chodzi mi konkretnie o jakieś biblioteki do c/c++, najlepiej pod windowsa.
    Wiem, że jest masa gotowych, ale tu chodzi też o to żeby się czegoś nauczyć ;)

    Pozdrawiam.
  • #10 9754247
    mirekk36
    Poziom 42  
    A po co ci takie śmieszne scalaki bufory - czy nie widziałeś w tych przykładach takiego bufora na najzwyklejszych w świecie dwóch tranzystorach do podłączenia pod FT232 ????

    Toż sam podałeś link do tego - jest to o wiele prostsze a zarazem pewne.

    Optoizolację można dać pomiędzy FT232 a tym buforem na tranzystorach ale uważaj bo minimum musiałbyś użyć szybkich optoizolatorów co najmniej 6N167 - a jakbyś chciał się w pełni odizolować to także zasilanie i masę - czyli to jeszcze skomplikuje układ .

    Moim zdaniem - chociaż nie chcę tu wchodzi w żaden konflikt z szanownym kolegą janbernatem, to taka optoizolacja we własnym domu, gdzie będzie parę metrów kabla leciało gdzieś w ścianach czy pod dachem a nie gdzieś na zewnątrz - to jest w ogóle nie potrzebna. Wręcz zbędna.

    A co do kabla to już pisałem wyżej - tzn możesz sobie zastosować zwykły telefoniczny na upartego albo i nawet zwykły kabel elektryczny 3-żyłowy YDY-1.5mm - tylko później nie bądź zdziwiony, że coś ci nie działa, albo że czujniki głupieją, albo niektórych nie widać na magistrali, albo że niektóre pokazują głupią temperaturę - albo jeszcze inne dziwne rzeczy.

    Chcesz mieć na pewno dobrze - daj skrętkę cat.5 nie-ekranowaną (zwykłą)
  • #11 9754357
    janbernat
    Poziom 38  
    No ale 50m na zewnątrz- to jakiś piorun może trafić.
    Nawet daleko- ale coś się może na tych przewodach pojawić.
    Nawet tylko 500V.
    Pewnie- dla sprawdzenia czy działa- to nic nie trzeba.
    Ale potem komputer spalony- no i ogólnie kłopoty.
    Trzeba w takich wypadkach ustalić co jest tanie do spalenia.
    Według mnie- czujniki, kable i zasilacz.
    Oddzielny zasilacz za parę zł, DS i przewody.
    Jak przewody wkopiesz na pół metra w ziemię i temperaturę będziesz mierzył tuż nad ziemią- to nic nie trzeba.
  • #12 9754536
    mirekk36
    Poziom 42  
    janbernat napisał:
    No ale 50m na zewnątrz- to jakiś piorun może trafić..


    No gdyby kabel miał być na zewnątrz nawet i 10m albo i 2m - to pewnie, że lepiej sobie to odizolować galwanicznie ;) bez dwóch zdań.
  • #13 9759056
    sorontar
    Poziom 10  
    Dziękuję za zainteresowanie tematem.

    Ze względu na to, że znalazłem gotowe biblioteki(do javy), w których do komunikacji przez port com, ustawia się tylko baud rate, ilość bitów danych, stopu, itp, zdecydowałem się skomplikować układ wprowadzając mikroprocesor.
    Układ będzie software'owo obsługiwał magistralę OW, oraz będzie komunikował się z komputerem za pomocą sprzętowego UART'a przez omawiany wcześniej układ ftdi.

    Dodatkowo nieużywane piny wyprowadzone zostały, aby w przyszłości mogły sterować przekaźnikowymi układami wykonawczymi( na przykład załączającymi grzejnik lub wiatrak).

    Cały układ po stronie komputera zasilany będzie z portu USB. Do zasilania czujników dołączony będzie kolejny zasilacz.

    Magistrala OW została oddzielona optycznie od mikroprocesora układami 6n137.
    Wspomnianych 6n167 nie udało mi się znaleźć.
    Dokumentacja 6n137 tutaj.
    Rozumiem, że stosując ten układ, wszystkie wysyłane i odbierane bity trzeba będzie zanegować.

    Proszę o sprawdzenie poprawności, i ewentualne uwagi. Za dotychczasową pomoc serdecznie dziękuję.

    Schemat nowego układu zamieszczony jest na rysunku poniżej.
    [ATtiny44 + max485 + ds18b20] prośba o sprawdzenie schematu
  • #14 9759082
    mirekk36
    Poziom 42  
    tak to miały być 6n137 - pomyliłem się

    ale układ do optoizolacji to ci nie zadziała w ogóle moim zdaniem ---->>> to nieporozumienie w ogóle :( .... chyba że się mylę to niech mnie ktoś poprawi.

    A przy okazji widziałeś ten temat:

    https://www.elektroda.pl/rtvforum/topic2050410.html

    bo może na prawdę brniesz w ślepy zaułek ? - aha - no chyba że jeszcze sterowanie jakimiś przekaźnikami - tyle że z drugiej strony to też mógłby robić komputer poprzez sam układ FT232 - o ile miałby być i tak cały czas włączony. No bo jeśli nie - to zrozumiałe że przyda się procesorek ;)
  • #15 9759155
    sorontar
    Poziom 10  
    Dziękuje za odpowiedź.

    Tu właśnie nie wiedziałem. Faktycznie, w układzie występuje swojego rodzaju sprzężenie zwrotne, co może spowodować że wysłany sygnał z mikrokontrolera po przejściu przez układ będzie wracał drugim i zakłócał kolejne wysyłane bity
    (przepraszam za zamieszanie- dopiero się uczę).
    Czyli rozwiązaniem w takim razie będzie izolacja linii RxD i TxD zaraz za układem ftdi, tak jak wcześniej szanowny kolega zasugerował(ja chciałem odizolować jeszcze mikrokontroler).
    Czy rozwiązanie z obrazka poniżej będzie poprawne?
    [ATtiny44 + max485 + ds18b20] prośba o sprawdzenie schematu
    Tym razem zasilanie poprowadzone jest w ten sposób, aby nawet przy np. awarii komputera, pomiary były wykonywane.
    Jeżeli chodzi o program, to napisałem już aplikację łączącą się z bazą danych (MySQL) w javie. Do komunikacji użyję biblioteki RxTx. Obecnie pracuję nad GUI.
REKLAMA