Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 16 kwi 2024, o 14:30


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 23 lip 2018, o 02:27 
Offline
Nowy

Dołączył(a): 08 paź 2015
Posty: 9
Pomógł: 0

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
Obrazek

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
Obrazek

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)

Składnia: [ Pobierz ] [ Ukryj ]
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)
Obrazek
- 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
Obrazek

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.



Ostatnio edytowano 23 lip 2018, o 07:51 przez krzysiekS, łącznie edytowano 2 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lip 2018, o 06:13 
Offline
Użytkownik

Dołączył(a): 07 cze 2016
Posty: 563
Pomógł: 143

Kod powinieneś wstawić za pomocą "Syntax->C". Dodatkowo przy wklejaniu powstały jakieś błędy, niedokończone linie kodu w stylu
UCSRB = (1<

Linijka:
USART_Init(__UBRR);
powinna być przed pętlą while(1). Nie ma sensu konfigurować interfejsu w każdym obiegu pętli.

W pętli while(1) proponuję wstawić jakąś zmianę stanu diody LED, np.:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

i później do pinu 5 portu D podłączyć diodę LED przez rezystor. Możesz oczywiście wybrać inny port i numer pinu odpowiednio modyfikując powyższe polecenia.
Dzięki temu upewnisz się, czy opóźnienie w pętli głównej działa prawidłowo (dioda powinna zapalać się na sekundę, a później gasnąć na sekundę i tak w kółko), czyli dowiesz się, czy masz prawidłowo skonfigurowane taktowanie mikrokontrolera (ustawienie fusebitów).

krzysiekS napisał(a):
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


Rozumiem, że masz na myśli wtyk konwertera USB/RS232.
Bardziej istotne byłoby zwarcie pinów RXD i TXD za MAX3232, czyli zgodnie z Twoim schematem zwarcie pinów 11 i 12 układu MAX3232 (oczywiście musisz je wtedy odłączyć od mikrokontrolera). Dzięki temu ustalisz, czy MAX3232 działa prawidłowo (w tej chwili wiesz tylko, że prawidłowo działa konwerter USB).

krzysiekS napisał(a):
tutaj załączam jeszcze ustawienia z menedżera urządzeń odnośnie tego konwertera

Przedstawiłeś mniej istotne okienko. Ważne jest to okienko, w którym są ustawienia portu COM: prędkość transmisji, ilość bitów w znaku, ilość bitów stopu oraz parzystość.

To tak na początek. Co dalej - zobaczymy ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lip 2018, o 07:12 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1020
Lokalizacja: Trójmiasto
Pomógł: 188

A dla czego zsialasz max-a napięciem 3,3V, gdzie Ty to w nocie wyczytałeś?
Obrazek Zgodnie z tym jeśli procek zasilasz 5V to max-a też. I tu zapewne jest największy problem bo procek gada na napięciach TTL5V a max3232 na 3,3V...

Druga sprawa to test echa - mówisz że działa. A próbowałeś patrzeć czy znaki lecą w terminalu ze zwartymi Tx i Rx i bez zwarcia? Bo w Putty można ustawić programowe echo i wtedy nawet jak nie masz zwarcia to będą się znaki pojawiać. Dla tego robiąc echo trzeba sprawdzać czy przy zwartych znaki się pojawiają a przy rozwartych nie. Jeśli przy rozwartych też się pojawiają to oznacza wymuszone echo programowe i wtedy test nie jest wiarygodny.

------------------------ [ Dodano po: 3 minutach ]

No i oczywiście przede wszystkim tak jak pisze kolega andrews, dla testu echa zwarcie Tx z Rx na max3232 od strony uC po jego odpięciu oczywiście ;) wówczas masz przetestowaną całą drogę transmisji.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lip 2018, o 09:45 
Offline
Nowy

Dołączył(a): 08 paź 2015
Posty: 9
Pomógł: 0

Dziękuję za odpowiedzi:) Wykonałem zalecone kroki:

1) Poprawiłem sposób wstawienia kodu. Wcześniej miałem wybraną opcję syntax z menu "listing kodu", jednak w [syntax=c] wpisałem błędnie dużą literę C zamiast małej, dlatego nie przechodziło poprawnie
2) Linijka USART_Init(__UBRR); została przestawiona i dodałem diodę i kod dla niej - miga i gaśnie na przemian co jedną sekundę, także tu chyba jest ok
3) Wykonałem test echa zwierając obie nóżki w MAX-sie - test również przeszedł pomyślnie, przy czym cały czas miałem 3,3 V zasilania dla tego scalaczka, ale zgodnie z poradą kolegi xentis zamieniłem jego zasilanie na 5 V (byłem nieświadomy błędu - po prostu wyczytałem, że wystarczy napięcie mniejsze i nie zadbałem o zgodność z TTL, jak słusznie zaznaczone jest to w załączniku kolegi. Odpowiadając jeszcze na pytanie - bez zwarcia tych nóżek nie mogę wpisywać nic z klawiatury, dopiero gdy je zewrę, to mam to umożliwione - na to się uwrażliwiłem :D

Natomiast po zmianie zasilania MAX'sa na 5 V z programatora (jest de facto ok. 4,75 V przy nóżce zasilania MAX'sa) skutek jest taki, że terminal nie pokazuje już żadnych znaków w tym momencie :(


Obrazek

EDIT: przepraszam za zamieszanie, wypięło mi się niechcący połączenie GND złącza RS z masą układu, dlatego nic nie było widać. Po poprawie nadal jest ten sam co poprzednio, czyli ciąg krzaczków i liter występuje w dalszym ciągu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lip 2018, o 10:11 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27224
Lokalizacja: Szczecin
Pomógł: 1041

krzysiekS napisał(a):
Niestety poległem mimo obejrzenia poradnika Pana Mirka "RS232 dla początkujących"

Proszę tego nie traktować jako uszczypliwość no ale patrząc na ilość popełnionych błędów

krzysiekS napisał(a):
po prostu wyczytałem, że wystarczy napięcie mniejsze i nie zadbałem o zgodność z TTL, jak słusznie zaznaczone jest to w załączniku kolegi. Odpowiadając jeszcze na pytanie - bez zwarcia tych nóżek nie mogę wpisywać nic z klawiatury, dopiero gdy je zewrę, to mam to umożliwione - na to się uwrażliwiłem


to jak można pisać, że "pomimo obejrzenia poradnika Mirka"

przecież wygląda na to, że kolega tych poradników nie obejrzał a było ich kilka w serii:

https://www.youtube.com/watch?v=a0IOBtia8DY
https://www.youtube.com/watch?v=eqgrR-XbvIc
https://www.youtube.com/watch?v=2LJ7Q6XE8Lk
https://www.youtube.com/watch?v=IrtEPz0ftz0

na prawdę polecam obejrzeć te poradniki i krok po kroku zrobić ze mną te ćwiczenia - nie ma siły żeby nie wyszło - o ile oczywiście kolega nie będzie miał takich kwiatków jak rozłączona masa czy inne przewody - bo na to - to żaden poradnik ani nikt zdalnie nic nie poradzi za bardzo

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lip 2018, o 10:27 
Offline
Nowy

Dołączył(a): 08 paź 2015
Posty: 9
Pomógł: 0

No jak to nie oglądałem... Panie Mirku :/ Oczywiście do części 2c nie dobrnąłem w związku z zaistniałym postojem i wokół części 2a i 2b skupiłem się najbardziej (zwłaszcza 2b, bo na początku szukałem problemu wokół wyliczanego UBRR - o tym nie wspominałem, bo tam jest raczej ok), ale o "wiecznej ekstazie" z części 2a przestudiowałem kilka razy. Po prostu nie ogarnąłem, w jakim punkcie układu był ten konektorek na filmie, który się zwierało i przez który przechodziły te animowane literki. Niestety zdarzają mi się takie rzeczy, gdy próbuję jakiś układ odtworzyć na trochę innych modułach niż w nagraniach. Bo przypuszczam, że przede wszystkim o kwestię podejścia do zagadnienia echa chodziło. Oczywiście najlepszym jest zawsze odtworzyć układ "1 do 1", ale nie zawsze jest taka możliwość :) Stąd częste problemy. Co do tej masy to przy przestawianiu układu z tym 3,3 na 5V po prostu o tej masie w pośpiechu zapomniałem - wcześniej masa była jedna i wspólna.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 lip 2018, o 16:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 14 lut 2014
Posty: 296
Lokalizacja: Jaskółowo k. Warszawy
Pomógł: 9

Czy nie masz przypadkiem zbyt długich kabli?
Pokaż zdjęcie całości.
Może jednak gdzieś coś masz skopane w połączeniach.
Sprawdź poziom napięć na przejściówce usb.

------------------------ [ Dodano po: 10 minutach ]

Wg mnie ta twoja przejściówka (pewnie w środku siedzi pl-2303) puszcza ci już sygnał w ttl 5V i nie jest potrzebny max232.
Sprawdź napięcia. ew jak masz to oscyloskopem.

_________________
POZDROWIONKA



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO