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

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

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • 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.