Witam. Od d³u¿szego czasu próbujê co¶ wys³aæ do komputera przez rs232 (na razie zale¿y mi tylko na wysy³aniu). Niestety, bezskutecznie. Uk³ad wygl±da tak:
Problem z RS232 i ATMega8
Trochê pomiesza³e¶ Powinno byæ z procka pin 2 (RXD) do Rout MAX323, a pin 3 (TXD) do Tin. Ostatnio to przerabia³em. No i odpowiednio z Rin i Tout do z³±cza DB9 do pinów 2 i 3 w zale¿no¶ci, czy gniazdo mêskie, czy ¿enskie.
WJ <wj78[nospam]@wp.pl> napisał(a):
Ja zapytam z czystej ciekawości. Dlaczego Dallas-y na osobnych pinach ?
Pzdr. Piotrek Sz.
Zmieni³em ;) Na jednym jest teraz 4,80 i 4,92 V (nie powinno byæ ~0 i ~5V?), a na drugim stale 0 (co zrozumia³e). Co jeszcze tu mo¿e byæ ¼le? Mo¿e na odwrót wlutowa³em kondensatory (masa do C-)? Pozdrawiam
Oba s± na jednym pinie ;-) Schemat robi³em jeszcze w czasach, kiedy nie wiedzia³em, ¿e tak siê da ;-) Pozdrawiam
Z kondensatorami uważaj bo max "wytwarza" również ujemne napięcie więc nie zawsze "-" kondensatora należy dopiąć do masy ( wyprowadzenie 6 maxa tak ma ). Najlepeij porównac schemat z notą katalogową maxa - wtedy polaryzacja pojemności będzie wiadoma. Pozdrawiam
No to jeszcze upewnij siê czy ustawi³e¶ TXD (PD1) jako wyj¶cie (bit w DDRD). Nie jestem pewien czy to jest konieczne, ale u mnie w programie tak jest. No i ogólnie woltomierzem mo¿e byæ trudno zauwa¿yæ pojawienie siê transmisji. Na schemacie nie widzê oscylatora. Na wewnêtrznym RC to raczej nie bêdzie dzia³aæ dobrze. A je¶li jest pod³aczony, to upewnij siê, ¿e procek pracuje na kwarcu, a nie na wewnêtrznym oscylatorze - trzeba odpowiednio ustawiæ fusy od ¼ród³a taktowania.
Witam ponownie. Teraz uk³ad mam po³±czony w ten sposób:
a jak sprawdzasz dzialanie?
Na razie monitorujê stan portu na kompie programem LookRS232 (putchar i printf w CodeVision) i sprawdzam woltomierzem, czy w ogóle uk³ad co¶ wysy³a (w pêtli ustawiam i kasujê bit TxD co 3 sekundy). Dziwne jest to, ¿e po przelutowaniu kondensatorów (wg. dokumentacji ze strony
(zakładam ze od strony komputera i od strony urządzenia jest gniazdko DB9 męskie - po stronie komputera też - i kabelek je łączący zakończony żeńskimi wtykami DB9).
Weź miernik z omomierzem i sprawdź kabel:
Jeśli po jednej stronie dziurka nr 2 (DB9) odpowiada po drugiej stronie dziurce 3 (i analogicznie w drugą stronę) to masz kabel korsowany.
Jeśli jest 2->2 i 3->3 to masz normalny.
Jak już się to ustali to teraz:
Jeśli masz krosowany (poprawnie):
Wyjście MAXa TOUT połacz z dziurką 3 gniazda DB9 na płytce Wejście MAXa RIN połacz z dziurką 2 gniazda DB9 na płytce
Jesli masz normalny (niepoprawnie - powinno być żeńskie gniazdo po stronie urządzenia w takim przypadku):
Wyjście MAXa TOUT połacz z dziurką 2 gniazda DB9 na płytce Wejście MAXa RIN połącz z dziurką 3 gniazda DB9 na płytce
Wyjście ATmegi podłacz tak:
Atmega RX do ROUT Atmega TX do TIN
(oczywiście albo pierwszego albo drugiego kompletu w MAXie, bo sa 2 niezależne).
Pozostałe kabelki i zworki odłącz - nie będa potrzebne.
Licze, że nic nie pokreciłem.
Jak już to ustalisz i wykonasz to teraz:
Odpal HyperTermina i anuluj numer kierunkowy. Wejdź do właściwości połaczenia, ustal własciwy COM i kliknij "konfiguruj". Ustaw własciwe parametry transmisji i co najwazniejsze ustaw "Sterowanie przepływem" na "Brak".
Następnie połacz się i już powinno działać.
Odpal jakiegoś bascoma i naskrob jakiś prostacki program wysyłający na port co sekundę znak - będziesz wiedział czy działa.
I koniecznie pomierz woltomierzem MAXa. Na nóżce 2 powinno być napięcie
10V a na 6 powinno być -10 (pi razy oko).
W kompie mêskie, a w uk³adzie ¿eñskie
Jest krosowany
Niestety nie dzia³a :(
I tu siê niestety nie zgadza :( Na nó¿ce 2 jest 8,99V, a na 6 jest 0,36V.
Pozdrawiam
..
to źle. O ile zrobiłeś ukłąd jak trzeba, to przy takim układzie gniazd kabel musi być "prosty".
sprawdź połączenia wokół MAXa, wymień MAXa
Fakt, ju¿ dzia³a!!! ;-) Dziêkujê Wszystkim za pomoc! Pozdrawiam
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required