Skocz do zawartości

Problem z transmisją RS-232 (PC <--> Attiny2313)


Wojtek

Pomocna odpowiedź

Realizuje kurs: "Mikrokontrolery dla początkujących". Skorzystałem z płytki testowej preznaczonej dla tej książki. Pod zaciski GND, TxD, RxD podłączam odpowiednio piny we wtyczce portu COM (z tym że oczywiście RxD--> TxD a TxD --> RxD). Sprawdziłem ciągłość pomiędzy zaciskami w płytce i pinami we wtyczce oraz czy nie ma zwarć.

Kiedy zorientowałem się że coś nie działa jak trzeba to po prostu bezpośrednio skopiowałem listing programu z CD umieszczonego z książką, więc o pomyłce w programie nie ma mowy (treść programu widać na poniższych screenach). Miało działać to w ten sposób że ja wpisuje znaki na klawiaturze przy aktywnym bascomowym terminalu, mikrokontroler je odbiera i wyświetla na LCD oraz przesyła je z powrotem do PC żeby pokazało się w oknie terminala co wpisuje.

Niestety nie działa to: ani na LCD ,ani w oknie terminala nic się nie zmienia.

Wszelkie parametry widać poniżej:

Oprócz tego w bascomie w sekcji communication mam ustawione Baudrate na 2400 a frequency na 4000000. LCD też jest poprawnie ustawiony i podłączony.

Jesli chodzi o uC które posiadam to jest to Attiny2313, współpracuje z kwarcem 4Mhz (mimo że w AVRstudio pokazuje mi że ustawiona jest na 8Mhz <-- dziwne?; fusebity były tak ustawione od początku ponieważ dostałem ten uC wraz z kursem). W Bascomie (generuje w nim plik hex) mam w sekcji chip: 2313.def , w AVRstudio (wgrywam hexa) mam wybrany Attiny2313.

Jeśli chodzi o sprawy techniczne to w książce piszą" W praktyce okazuje się że obwody wejściowe portu COM komputera z powodzeniem pracują z poziomami TTL". W związku z tym nie używam MAX232 (czy to może być przyczyna problemu?).Autor z racji tego że pomija przetwornice napięcia płytkę wyposażył w dwa negatory zbudowane na dwóch tranzystorach (spowodowane jest to oczywiście tym, że logicznemu 0 odpowiada napięcie dodatnie natomiast logicznej 1 napięcie ujemne - jednocześnie w większości przypadków w urządzeniu odbiorczym (PC) napięcie progowe to nie 0V ale 1,5V dlatego też teoretycznie używając poziomów TTL powinno to działać.).

Aby wykluczyć pewne przyczyny moich problemów postanowiłem odpiąć całą płytkę z kontrolerem i po prostu zewrzeć przewody RxD i TxD z portu COM aby w ten sposób zrobić efekt echa. Włączyłem terminal i rzeczywiście pokazują się znaki które wpisuje ,więc problem leży gdzieś dalej.

Co jest problemem? Czy muszę próbować z MAX232? Może coś trzeba przestawić w ustawieniach portu com (np bs - czy musi być takie same w ustawieniach portu COM w menadżerze i w ustawieniach terminala?, bufor FIFO - czy ma to być włączone przy pracy z uC ?,wysokość buforu) ?

Link do komentarza
Share on other sites

Zaraz, zaraz, czy Kolega podłączył BEZPOŚREDNIO piny RS232 z komputera z wyprowadzeniami procesora?

Jeśli tak (nawet na jeden test) to polecam zakupić nowy procesor (ten może mieć już uszkodzone struktury wewnętrzne - nie jest odporny na napięcia +-12V) i próbować TYLKO przez MAX232 lub sprzętowy odpowiednik jego struktury.

Link do komentarza
Share on other sites

Napisałem przecież że za pośrednictwem dwóch tranzystorów pełniących funkcje negatorów. Wyżej wspomniane tranzystory są elementem płytki testowej. Z płytki testowej wyprowadzone są zaciski TxD i RxD które (według książki) należy podłączyć bezpośrednio do portu COM.

Jeśli okaże się że ja mam jakiś bardzo radykalny port COM to będę musiał spróbować użyć MAX232 i zrobić układ na płytce stykowej.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Na początku nie wyraziłeś się jasno, zrób taki test: wyjmij procesor z podstawki i zewrzyj piny PD0 i PD1 na płytce/w podstawce. Wtedy powinieneś uzyskać efekt analogiczny ze zmostkowaniem pinów RxD i TxD we wtyczce RS232, czyli powinieneś dostawać w terminalu to co wpiszesz. Jeśli zadziała to szukamy dalej, jeśli nie to winny jest ten układ konwertera.

Link do komentarza
Share on other sites

Ale "winny" w sensie nie koniecznie że uszkodzony tylko po prostu mój port COM się do niego nie nadaje (czyli nie uznaje napięcia poniżej 1,5 V za ujemne)?

Link do komentarza
Share on other sites

zrób taki test: wyjmij procesor z podstawki i zewrzyj piny PD0 i PD1 na płytce/w podstawce. Wtedy powinieneś uzyskać efekt analogiczny ze zmostkowaniem pinów RxD i TxD we wtyczce RS232, czyli powinieneś dostawać w terminalu to co wpiszesz.

A to zrobiłeś?

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.