Problem z RS232 i ATMega8

Oct 07, 2004 13 Replies

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:

formatting link
. Uk³ad ³±czê z komputerem takim kablem:
formatting link
. Na porcie RxD (PD0) napiêcia wynosz± odpowiednio: 4,62 i 4,70 V, a na TxD (PD1) 4,82 i 4,93 V. Na T1 OUT MAX232 mam 8,39 i 8,40 V, Na R1 IN 0V (po podpiêciu do kompa: T1 OUT = 11,16 i 11,17V, R1 IN = 10,79 i 10,80V. Nie ma ¿adnej ró¿nicy w tym, ¿e porty s± ustawione do odczytu, czy do zapisu. Czy kto¶ móg³by mi podpowiedzieæ, co robiê ¼le? U¿ywam CodeVisionAVR 1.24.3b Evaluation, który niestety nie pozwala na komunikacjê poprzez przerwania (jest to dostêpne w wersji Standard, na któr± mnie nie staæ). Z góry dziêkujê za pomoc. Pozdrawiam


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:

formatting link
ale ci±gle nie dzia³a. Mo¿e ma kto¶ jeszcze jakie¶ pomys³y bo ja ju¿ wymiêkam? Mo¿e jeszcze co¶ schrzani³em? Pozdrawiam

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

formatting link
uk³ad wysy³a ujemne napiêcie -7,30V (przy zerowym stanie jest +2,5V). Pozdrawiam

(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