Dobry wieczór
Stawiam się z problemem z RS232, z którym walczyłem z myślą, że podołam i że nie będę musiał się konsultować. Niestety poległem mimo obejrzenia poradnika Pana Mirka "RS232 dla początkujących", więc trochę wstyd.
Próbowałem skomunikować procesor ATmega8 z terminalem Putty poprzez układ MAX3232CPE na potrzeby RS232, a poźniej jeszcze przez konwerter RS232 -> USB (załączam link:
http://gmb-online.nl/egmb/ProductSheet.aspx?id=8590&lang=6.
Kilka faktów:
1. połączenia
Bazowałem na powyższym połączeniu scalaczka MAX.
- Vcc podane na MAX3232 - 3,3 V (zgodnie z notą katalogową)
drobna różnica - niestety nie miałem pod ręką kondensatorów 0,1 uF (takie sugerowała nota katalogowa) i podałem najmniejsze jakie miałem, tj. 1 uF.
- Zasilanie mikrokontrolera pozostało przy wartości 5 V (masy oczywiście wspólne)
- Podłączenie do DB9
Jak widać powyżej, TXD i RXD z MAX-a scrossowałem przy połączeniu z RS232.
- MAX3232 podłączony do portu RXD i TXD Atmegi8 (odpowiednio porty PD0 i PD1 oczywiście)
- taktowanie Atmega8 - 8MHz wewnętrznym oscylatorem
- wahałem się, czy wklejać kod programu, bo jest on niemal identyczny z tym, co w poradniku video Pana Mirka (coby choć raz się udało; pozbyłem się tylko diody). Zdecydowałem się wkleić, żeby był pod ręką (jeśli popełniłem wykroczenie - to w końcu własność Pana Mirka - proszę o upomnienie)
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
2. Rezultat
W zasadzie mimo niezmienianego kodu ani połączeń na płytce stykowej rezultat w oknie terminala Putty jest
zróżnicowany:
- raz pojawiają się te nieszczęsne krzaczki, a raz jakieś turbokrzaczki w postaci zupełnie losowych znaków (tak jak poniżej)
-
mało tego: pojawiają się one raz szybciej niż 1 sekunda a raz dużo wolniej. Ponadto zmiana delay'a w kodzie nie wpływa na prędkość wysyłanych znaków w ogóle, tak jakby żyło to "własnym życiem"
- w toku poszukiwań wyrzucałem nawet linię
"USART_Transmit('A');" i bywało tak, że te krzaczki lub znaki przestawały się pojawiać, lecz innym razem potrafiły nadal tak samo się pojawiać co jakiś odstęp czasu na terminalu. To zaczęło ewidentnie żyć własnym życiem. Po odpięciu wtyku RS232 od płytki stykowej spowodowało, że już nie pojawiało się nic (co za niespodzianka).
--------------------------------------------------
Wydaje mi się, że to ewidentnie problem z samym konwerterem, jednakże
- przeszedł on test echa pomyślnie (zwarłem RXD i TXD wtyku konwertera no i zgodnie z video Pana Mirka terminal Putty przyjmował wszystkie znaki z klawiatury
- pomimo iż być może pochopnie popełniłem zakup tego konwertera zamiast takiego z FT232, to specjalnie uważałem, żeby nie dostać jakiegoś "niettl-owego"
- tutaj załączam jeszcze ustawienia z menedżera urządzeń odnośnie tego konwertera
Czy jest możliwe, żeby dedykowany konwerter był aż taką przeszkodą i FT232 był tak naprawdę jedyną słuszną drogą? Jeśli tak, to będę musiał jednak się na niego skusić, choć nie ukrywam, że zastanawia mnie, czemu tak się dzieje.