Software UART do atmega8

Witam!

Okazało mi się dzisiaj z nienacka że muszę podpiąć do ATmegi8 dodatkowy UART. Mam wolne dwa liczniki, procek nie jets obciążony, prędkość nie ma dużego znaczenia, spokojnie może być 2400 bodów. Piny nie są krytyczne, zawsze resztę logiki mogę przesunąc na inne.

Czy ma ktoś gotowca lub może mi wskazać? Wiem, że jest nota Atmela dla

90S1200, ale 1200 to był jakiś bardzo dziwny CPU i nie wiem jak z działaniem tego na Mega8...
Reply to
Sebastian Bialy
Loading thread data ...

Sebastian Bialy pisze:

Polecam software UART stąd:

formatting link
Można przy okazji usprawnić w obsłudze przerwania ICP wyliczanie kolejnego momentu przerwania właśnie na podstawie zawartości rejestru ICP (zamiast TCNT).

Reply to
Adam Dybkowski

Zpsuło im się pobieranie chyba.

Reply to
Sebastian Bialy

Ok, pobrałem. Dwie wady widzę:

a) GPL a nie LGPL co mi przeszkadza mocno :/

b) mocno intruzywna - np. wymaga własnego zarządzania systemem przerwań przez specjalny wektor w RAM. Zamiast składać się z luźnych klocków jest raczej monolitem.

Reply to
Sebastian Bialy

Sebastian Bialy pisze:

Tu jest także:

formatting link

Hm? Ja wyciągnąłem z tej biblioteki wyłącznie funkcje dot. software'owego UARTu (uartsw.c - wersja korzystająca z przerwania ICP), wyciąłem wszystkie bzdety mi niepotrzebne, zmieniłem sposób wywoływania przerwań bez tej dziwacznej rejestracji programowej. A właściwie to z tego wszystkiego zostały tylko kluczowe sprawy związane z nadawaniem/odbieraniem bitów danych i wyliczaniem, kiedy to zrobić. Aha, dorzuciłem także FIFO w RAMie w obu kierunkach bo początkowa implementacja tego nie miała.

Jeżeli nie chcesz GPLa to po prostu przyjrzyj się dokładnie, jak to jest wykonane, po czym od początku napisz sam. Algorytm nie jest opatentowany ani chroniony. Jeżeli nie wykorzystasz oryginalnego kodu źródłowego to będziesz w 100% legalny.

Reply to
Adam Dybkowski

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.