AVR - Procyon software UART

Potrzebuję dla modułu Axiom gps uruchomić drugiego uarta, prędkość tylko

4800, skompilowałem plik uartsw.c - piny standardowe podane w tym pliku.

Testowałem wysyłanie i odbiór, ale są przekłamania, np. zamiast A jest j, niestety nie ma stałego przesunięcia pomiędzy znakami w tablicy asci.

Czy ktoś testował tą bibliotekę Procycon dla AVR ? działa software uart?

Reply to
tomi
Loading thread data ...

Wprawdzie nie uzywalem jeszcze tej biblioteki (aczkolwiek posiadam w swoich zbiorkach :) Przypuszczam, ze jakies inne przerwanie tu przeszkadza... spróbuj przetestowac sama biblioteke, bez dodatkowego swojego kodu. Jesli bedzie OK, to poszukaj w swoim kodzie przerwan które moga konfliktowac, spróbuj inaczej rozwiazac te konfliktujace, ew. skrócic obsluge przerwan, mniej krytyczne czasowo rzeczy przerzucic z obslugi przerwania do zakolejkowania i pozniejszego wykonania w main() Zreszta tak sobie ogólnie gdybam, nie wiem co tam masz.

Reply to
DJ

DJ napisał(a):

Mam najprostszy programik na ATmega32 @ 8Mhz:

int main(void) { uartswSetBaudRate(4800); uartswInit();

uartswSendByte(0x65); uartswSendByte(0x66); }

Na terminalu pojawia mi się M& czasem 53.

Czy ktoś może potwierdzić, że ta funkcja działa ?

Reply to
tomi

tomi napisał(a):

Przy takiej ogromnej predkosci transmisji to mozesz przeciez nawet karta muzyczna zarejestrowac wyjscie z tego uartu i obejrzec/sprawdzic czasy/bity czy sie zgadzaja...

Reply to
BartekK

Nie uzywalem, ale powiem tak: jesli jestes PEWNY co do tego, ze odbiornik i linia transmisyjna sa OK (przetestowales z innym nadajnikiem), to "na logike" czeste przeklamania musza byc spowodowane przez nadajnik. Byc moze ta biblioteka wymaga jakichs dodatkowych ustawien? Dla pewnosci przejzyj przebiegi jakimkolwiek analizatorem - to bedzie cenna informacja :).

Reply to
arkadiusz.antoniak

tomi przemówił ludzkim głosem:

te 8MHz to z wewnętrznego generatora RC, czy z kwarcu ?

Reply to
Zbych

Tak na pierwszy rzut oka - czy w plikach .h (ewentualnie w Makefile) ustawiles poprawne F_CPU, moze F_OSC

Moge Ci te biblioteke sprawdzic, ale najwczesniej w sobote, bo chwilowo mam niekompletne zasoby sprzetowe.

Aha - czym kompilujesz? (wersja) i podaj wersje uzywanego Procyon AVRlib

Reply to
DJ

A czy mialoby to jakies kolosalne znaczenie? przeciez zegar nie moze "plywac" na tyle zeby byly takie przeklamania na wolnym uart'cie. Gdyby byla stala odchylka w czestotliwosci cpu, to chyba zawsze bylby odebrany ten sam znak, lub w najgorszym razie frame error na odbiorniku (zaleznie jaki znak i/lub w która strone odchylka)

Dla przykladu - po rozpisaniu binarnie nadanego 0x55 i odebranego 0x4D nijak nie wychodzi ze to blad w timingu

Fajnie sobie pogdybac ;) a tu trzeba skompilowac, podlaczyc analizator i obejrzec...

Reply to
DJ

DJ przemówił ludzkim głosem:

Autor nie napisał nigdzie, czy sprawdza FE, a co do tego, że odebrany byłby zawsze ten sam znak to się nie zgodzę. Wszystko zależy od tego jak i ile razy odbiornik próbkuje stan bitu. Właśnie zmontowałem sobie układ, który nadaje na prędkości ~5000 (odbiór na 4800, błąd >4%), i co kilka odebranych bajtów zmienia się wartość.

Oczywiście, w końcu p.m.e jeszcze nie ma statusu szklanej kuli :-)

Reply to
Zbych

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.