ATNEL tech-forum
https://forum.atnel.pl/

Atmega169A USART
https://forum.atnel.pl/topic19921.html
Strona 1 z 1

Autor:  kiniol [ 6 sty 2018, o 11:52 ]
Tytuł:  Atmega169A USART

Witam serdecznie wszystkich forumowiczów;
Mam pewien problem w komunikacji poprzez USART. Kłopot wygląda następująco:
Napisałem program wykorzystując pliki kolegi Mirka (mkuart.c, mkuart.h, mk_term.c, i mk_therm.h).
Jedyne zmiany jakich dokonałem to modyfikacja funkcji inicjalizacji która wygląda następująco :

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


Po wgraniu programu do uC przystąpiłem do testów komunikacji.
Test 1:
uC(Atmega169A) podłączony do komputera przez kabel. Dane odebrane na terminalu prawidłowe.

Test 2:
uC(Atmega169A) podłączony do modułu HC-05 sparowanym z telefonem. Dane odbierane przez telefon nieprawidłowe. (krzaczki)

Pomyślałem że może z modułem HC-05 coś nie tak. Więc przeprowadziłem kolejne sprawdzenie.
Test 3:
uC(Atmega32A) podłączony do modułu HC-05 sparowanym z telefonem. Dane odbierane przez telefon prawidłowe.

Wnioski jakie wyciągam z tych testów są następujące :
1.Atmega169A sprawny i zaprogramowany prawidłowo.
2.Moduł HC-05 sprawny.
Powyższe wnioski doprowadzają do paradoksu w którym wszystko jest ok a jednocześnie nic nie działa. :)

Czy jest ktoś w stanie mi podpowiedzieć co robię nie tak ??

Autor:  xentis [ 6 sty 2018, o 13:43 ]
Tytuł:  Re: Atmega169A USART

Nie napisałeś nic na jakiej prędkości to testowałeś i czy ustawienie tej prędkości wprowadzałeś również w module HC-05 - mi to wygląda na niezgodność prędkości UART procka i modułu HC-05 (przy testach atmega168 vs HC-05)

Autor:  kiniol [ 6 sty 2018, o 21:26 ]
Tytuł:  Re: Atmega169A USART

xentis napisał(a):
Nie napisałeś nic na jakiej prędkości to testowałeś i czy ustawienie tej prędkości wprowadzałeś również w module HC-05 - mi to wygląda na niezgodność prędkości UART procka i modułu HC-05 (przy testach atmega168 vs HC-05)
Oba procki ustawione na 9600. Więc niezgodność prędkość chyba odpada.

Wysłane z mojego WAS-LX1 przy użyciu Tapatalka

Autor:  kiniol [ 19 sty 2018, o 10:02 ]
Tytuł:  Re: Atmega169A USART

Witam;
Zainteresowanie tym problemem nie jest wielkie :). Ale dla tych którzy tu trafią napiszę że problem został zażegnany.
Co prawda doprowadził do tego przypadek ale już wszystko jest ok.
A było to tak:
Nad projektem zostały odprawione najróżniejsze tortury, a ostatnie z nich polegały na ustawianiu w procesorze różnych prędkości transmisji. Wpisywałem wszystkie standardowe wartości i żadne z ustawień nie pomagało więc postanowiłem wrócić do pierwotnego baudrate, czyli 9600. Niestety pomyliłem się przy wpisywaniu i zamiast 9600 wpisałem 9200. Nie widząc tej pomyłki program skompilowałem i zaprogramowałem procek. I dostałem szoku bo komunikacja ruszyła i pracuje bez żadnych komplikacji.

W związku z rozwiązaniem się problemu temat uważam za zamknięty.

Pozdrawiam wszystkich.

Autor:  micky [ 19 sty 2018, o 11:11 ]
Tytuł:  Re: Atmega169A USART

Zmierz szerokość najkrotszego impulsu i oblicz prędkość, którą fizycznie masz na porcie komunikacyjnym. Obstawiam, że bedzie 9600 a nie 9200.

Autor:  rskup [ 19 sty 2018, o 14:01 ]
Tytuł:  Re: Atmega169A USART

Jak działa Ci na innej ustawionej prędkości to masz albo inaczej taktowany procesor niż Ci się wydaje albo masz coś nie tak w ustawianiu rejestrów UBRRH i UBRRL.

--
Pozdrawiam,
Robert

Autor:  micky [ 19 sty 2018, o 15:27 ]
Tytuł:  Re: Atmega169A USART

Dajmy koledze samemu rozwiązać problem i dojść do pewnych wniosków. A może bawił się OSCALem? Albo korzysta z generatora RC?

Autor:  rskup [ 19 sty 2018, o 15:31 ]
Tytuł:  Re: Atmega169A USART

micky napisał(a):
Dajmy koledze samemu rozwiązać problem i dojść do pewnych wniosków. A może bawił się OSCALem? Albo korzysta z generatora RC?
Reakcja moja i micky'ego spowodowana jest tym, że to co według kiniola jest rozwiązaniem, to nie jest to prawidłowe rozwiązanie, tylko jakieś na chybił trafił zmiany byle by teraz zadziałało.
A jego słowa
kiniol napisał(a):
W związku z rozwiązaniem się problemu temat uważam za zamknięty.
nie sugerują że ma zamiar dalej wyjaśniać. Więc go próbujemy lekko zmobilizować ;).

--
Pozdrawiam,
Robert

Autor:  kiniol [ 20 sty 2018, o 09:12 ]
Tytuł:  Re: Atmega169A USART

Cześć panowie;
Fakt, takie rozwiązanie to nie rozwiązanie...

Procesor korzysta z wewnętrznego oscylatora 8MHz we "fusach" wyłączony podział przez 8 więc taktowanie procka teoretycznie 8Mhz.
I teraz nasuwa mi się pytanie:
Czy wewnętrzny oscylator może być na tyle źle fabrycznie skalibrowany żeby doprowadził do takiej sytuacji ?

Autor:  micky [ 20 sty 2018, o 09:29 ]
Tytuł:  Re: Atmega169A USART

Podłącz analizator stanów logicznych i sobie pomierz. Poczytaj w PDFie procka nt generatora RC. Dlatego pisałem o OSCALu. Ogólnie to wewnętrzny generator kiepsko się nadaje do zależnych czasowo procedur lub komunikacji bo to mocno zależy od...

P.s. Mirek na warsztatach z YB omawiał bardzo ciekawy sposób wykorzystania analizatora logicznego.

Autor:  kiniol [ 24 sty 2018, o 19:40 ]
Tytuł:  Re: Atmega169A USART

Cześć panowie;
Poszedłem za radą micky'ego, podłączyłem analizator i wyszło że mimo ustawienia w procku prędkości 9200 to na uarcie jest około 9600.
W związku z powyższym wynikiem skalibrowałem oscylator i teraz jest wszystko ok.

I teraz skoro wszystko już się wyjaśniło to z czystym sumieniem mogę uznać że temat się wyczerpał.


Dziękuję wszystkim za udział w dyskusji i pozdrawiam serdecznie.

Autor:  micky [ 24 sty 2018, o 22:20 ]
Tytuł:  Re: Atmega169A USART

A nie mówiłem? ;) Cieszę się, że odrobiłeś zadanie domowe, bo dzięki temu zdobyłeś bardzo pożyteczne doświadczenie.

Autor:  Marhef [ 25 sty 2018, o 16:57 ]
Tytuł:  Re: Atmega169A USART

Ale może na przyszłość warto w takich projektach użyć zewnętrzny kwarc? I to taki, który jest "UART friendly" (czy jak to się nazywa)? Wtedy masz zminimalizowane błędy przesyłu danych

Autor:  rskup [ 27 sty 2018, o 17:33 ]
Tytuł:  Re: Atmega169A USART

kiniol napisał(a):
I teraz skoro wszystko już się wyjaśniło to z czystym sumieniem mogę uznać że temat się wyczerpał.
I teraz możemy Ci pogratulować dojścia do poprawnego rozwiązania problemu i pozwolić już zakończyć ten temat ;)

--
Pozdrawiam,
Robert

Strona 1 z 1 Strefa czasowa: UTC + 1
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/