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



Teraz jest 29 mar 2026, o 17:36


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 1 wrz 2014, o 14:08 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 01 lis 2013
Posty: 9
Lokalizacja: Poznań
Pomógł: 0

Witam!

Jakiś czas temu rozpocząłem swoje pierwsze próby komunikacji AVR z PC. Wykonałem płytkę w oparciu o układ FT232RL - udało mi się ją uruchomić, zainstalować sterowniki, proste funkcje z BB również działały bez problemu. Teraz zająłem się buforem cyklicznym do obsługi odbioru danych i niestety pojawiły się problemy. Nie mam pojęcia czy robię jakiś błąd w kodzie, czy po prostu używane przeze mnie gotowe terminale coś źle wyświetlają.

Bray Terminal od początku sprawiał problemy i czasem wyświetlał dobrze odebrane stringi/znaki, ale w większości przypadków nie. Realterm natomiast sprawuje się dużo lepiej, jednak przy braku opóźnienia w funkcji UART_Transmit_Char błędnie wyświetla stringi i teraz nie wiem czy to wina terminala, czy mam jakiś błąd w kodzie. Wygląda to tak, jakby funkcja wysyłająca wykonała się bardzo szybko i od razy Tail zrównał się z Head (bufor pusty), ale jakim sposobem potem wraca i wysyła brakujące znaki? Prędkość 9600 i włączony zewnętrzny kwarc 11,0592MHz.

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Chodzi mi głównie o to czy problem tkwi w kodzie, czy terminal nie radzi sobie z tak szybkim wyświetlaniem znaków bez opóźnienia. Zamieszczam jeszcze schematy mojej płytki do komunikacji oraz screeny z pracy terminali.

ObrazekObrazekObrazekObrazekObrazekObrazekObrazek



Ostatnio edytowano 1 wrz 2014, o 17:24 przez Nemesis, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 wrz 2014, o 16:22 
Offline
Użytkownik

Dołączył(a): 13 maja 2014
Posty: 135
Pomógł: 11

Witam

Odnośnie
Cytuj:
Chodzi mi głównie o to czy problem tkwi w kodzie, czy terminal nie radzi sobie z tak szybkim wyświetlaniem znaków bez opóźnienia.

To, jeżeli terminal otrzymuje dane z 9600,8N1, to bez problemu je wyświetla. Myślę, że powinieneś poszukać w kodzie, w ustawieniach prędkości i ewentualnie w przejściówce.

Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 wrz 2014, o 16:55 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 01 lis 2013
Posty: 9
Lokalizacja: Poznań
Pomógł: 0

Szukałem, analizowałem i bez skutku - dlatego napisałem ten temat. Gdyby w ogóle mi nie działało, to jeszcze pół biedy, ale nie mogę zrozumieć, dlaczego działa mi na jednym terminalu, gdy dodam opóźnienie w funkcji wysyłania znaków.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 wrz 2014, o 17:54 
Offline
Użytkownik

Dołączył(a): 13 maja 2014
Posty: 135
Pomógł: 11

Witam

1.Masz dostęp do oscyloskopu, analizatora, miernika częstotliwości?
2.Testowałeś program z BB który "przemiata wartości wpisywane do rejestru UBBR"?
3.Masz dostęp do innej przejściówki UART/PC?
4.Masz dostęp do PC z innym systemem operacyjnym?
5.Czy jesteś pewien, że masz zgodne ustawienie taktowania w projekcie i w układzie?
6.Czy próbowałeś na tej przejściówce "zewrzeć wyjście z wejściem - zrobić sprzętowe echo"?
7.Czy możesz wypróbować tą przejściówkę na innym urządzeniu (ten sam PC, ale inne urządzenie z UART)?
8.Czy masz dwie sztuki takich przejściówek?

Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 wrz 2014, o 22:42 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 01 lis 2013
Posty: 9
Lokalizacja: Poznań
Pomógł: 0

1. Niestety, nie mam.
2. Nie sprawdzałem, ale nie miałem nigdy błędów w postaci źle odebranego znaku, jedynie pojawiają się entery w dziwnych miejscach przy braku opóźnienia.
3. Nie mam.
4. Mam kilka innych komputerów.
5. Tak, sprawdzałem i w projekcie oraz w układzie mam 11,0592MHz (ustawiane przez MkAvrCalculator). Testowałem również dla wewnętrznych 8MHz.
6. Echa nie próbowałem robić - jak dokładnie się za to zabrać? Widzę w terminalu też jakiś Echo Port.
7. Mógłbym podłączyć na płytce stykowej ATmega8.
8. Nie, tylko jedną.

Zmodyfikowałem swój kod i dodałem zwykłą funkcję wysyłająca stringi w nieskończoność, wyłączyłem także opóźnienie i nie ma żadnych błędnych znaków, a także nadmiarowych enterów, więc wydaje mi się, że sam układ działa poprawnie, a problem tkwi gdzieś w kodzie, tylko nie mogę go znaleźć. Próbowałem analizować jakoś zachowanie się programu i nie mam pojęcia dlaczego tak się dzieje. Poniżej zamieszczam kod z wysyłaniem samych stringów.

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


W Realterm wszystko na pełnej szybkości bez opóźnień i błędów brak.

Obrazek

W Bray Terminal znowu jakieś dziwne rzeczy, ale jeżeli na jednym terminalu działa dobrze, to chyba nie błędy wysyłania?

Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 wrz 2014, o 08:25 
Offline
Użytkownik

Dołączył(a): 13 maja 2014
Posty: 135
Pomógł: 11

Witam

Ad.2 Tak "dla spokojności" może spróbuj.
Ad.4 Spróbuj, czy na nich będzie ten sam efekt. Wypróbuj też na nich inne terminale (na przykład Bray, Real i Putty)
Ad.6 Do PC podłączasz przejściówkę i zwierasz jej wejście z wyjściem (RX łączysz z TX). Teraz to, co nadajesz przez terminal wraca do Ciebie i powinno się wyświetlać jako odebrane.
Ad.7 Jeżeli to nie problem, to spróbuj.

Ja na Win8.1 (64 bit) używam Bray Terminal w wersji v1.19b 20140110b i jak dotychczas nie występują "dziwne zachowania".

Pozdrawiam



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: 6 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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