AVR-CDC czyli konwerter USB <-> RS232 na AVR

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
Guzer
Użytkownik
Posty: 167
Rejestracja: 08 lis 2006, 18:36
Lokalizacja: Szczecin
Kontakt:

AVR-CDC czyli konwerter USB <-> RS232 na AVR

Post autor: Guzer » 08 sie 2007, 23:33

Przedstawiam oto konwerter USB <-> RS232 zaimplementowany programowo na procki Atmela przedstawony na stronie http://www.recursion.jp/avrcdc/ :mrgreen:
Można do niego wykorzystać praktycznie dowolny uP z rdzeniem AVR, który ma przynajmniej 4kB pamięci flash i może być taktowany kwarcem 12Mhz. Zalecany jest także sprzętowy UART, bo bez niego można osiągnąć szybkość transmisji nie większą od 4800bps. Co ważne oprogramowanie wykorzystuje sterowniki wbudowane w system operacyjny, w Windowsie potrzebny jest tylko odpowiedni plik .inf (dołączony do kodu źródłowego), a w Linuksie - chyba trzeba patchować kernela, ale nie mam pewności, bo jeszcze nie sprawdzałem. Chociaż rozwiązanie oficjalnie jest eksperymentalne to może być ciekawą alternatywą dla układów FT232 i podobnych ;)

MiW
Użytkownik
Posty: 226
Rejestracja: 28 sty 2007, 11:32
Lokalizacja: Kraków
Kontakt:

Post autor: MiW » 10 sie 2007, 21:37

Wszelki Duch Pana Boga Chwali! Tożto rewolucja! Radość wielka napełnia mą duszę!
ILE NOWYCH PROJEKTÓW BĘDZIE MOŻNA ZROBIĆ?
[glow=darkred]BEZCENNE![/glow]

Guzer
Użytkownik
Posty: 167
Rejestracja: 08 lis 2006, 18:36
Lokalizacja: Szczecin
Kontakt:

Post autor: Guzer » 10 sie 2007, 23:36

Testowałem z ATMEGĄ32 na dwóch komputerach:
- stacjonarny z kontrolerem USB UHCI (USB1.1), nie miałem fizycznego dostępu do gniazda które obsługiwał EHCI (USB2.0)
- laptop z kontrolerami OHCI (USB1.1) i EHCI (USB2.0)
Na obu komputerach WinXP SP2 x86 + na stacjonarnym Gentoo Linux 2.6.21-gentoo-r4 x86, na laptopie Gentoo Linux 2.6.22-gentoo-r2 x86_64 (czyli 64 bit). Pod windowsami działało na obu, pod linuksem tylko na laptopie (oba kontrolery). Na stacjonarnym prawdopodobnie zadziałałoby bez problemów na kontrolerze EHCI, a po spatchowaniu kernela także z UHCI (wynika to z tego, że CDC w formie wykorzystywanej przez AVR-CDC formalnie wprowadzono dopiero w USB2.0). W każdym razie kernel musi obsługiwać "modemy USB", a nie "konwertery USB -> RS232", ponieważ AVR-CDC udaje modem sterowany komendami AT i jest przedstawiany w /dev jako ttyACMx a nie ttySx (jak zwykłe porty szeregowe). Poza tym niczym się nie wyróżnia, a jeżeli ktoś jest zainteresowany to pod Mac OS X też powinno działać...

ODPOWIEDZ