radzio.dxp.pl

Programator mikrokontrolerów AVR pracujący na łączu RS-232 (AVR910)

Programator ten jest tanią alternatywą dla oryginalnego programatora AVRISP (jednak nie jest z nim w pełni zgodny). Umożliwia programowanie w systemie większości mikrokontrolerów rodziny AVR. Współpracuje z programem AvrProg, który wchodzi w skład pakietu AVR Studio. Programator zbudowałem w oparciu o informacje zawarte na stronie http://www.mikrocontroller-projekte.de/ Konwerter poziomów RS232/TTL zrealizowany na tranzystorach zastąpiłem scalonym konwerterem poziomów (układ na tranzystorach może nie współpracować poprawnie z niektórymi płytami głównymi).  Głównym układem programatora jest mikrokontroler ATTiny2313 (ewentualnie AT90S2313) taktowany kwarcem o częstotliwości 7,3728 MHz. Złącze do programowanego układu jest zgodne z 6-pinowym złączem firmy Atmel.

Schemat programatora :

avr910

Mozaika ścieżek płytki  (avr910.pdf):

avr910

Rozmieszczenie elementów :

avr910

Zmontowany programator :

avr910

Oprogramowanie dla mikrokontrolera
W programatorze zastosowałem oprogramowanie pochodzące ze strony http://www.mikrocontroller-projekte.de/  Ze względu na prostsze prowadzenie ścieżek dokonałem małej modyfikacji, polegającej na zamianie funkcji wyprowadzeń MISO i SCK. Cała modyfikacja sprowadza się do zmiany dwóch wierszy w kodzie programu, które po modyfikacji powinny wyglądać następująco :
.equ MISO = PB7 (wiersz nr 299)
.equ SCK = PB6 (wiersz nr 303)

Zmodyfikowany plik asm : avr910_asm.zip
Plik hex dla mikrokontrolera z kwarcem 7.3 MHz i prędkości transmisji 115200bps : avr910_hex.zip
UWAGA : Aby opisany tutaj programator mógł współpracować z programem Bascom musi być skonfigurowany do pracy z prędkością 19200bps
Plik hex dla mikrokontrolera z kwarcem 7.3MHZ i prędkości transmisji 19200bps : avr910_19200.zip

Konfiguracja ATTiny2313
Ponieważ mikrokontroler ATTiny2313 jest fabrycznie skonfigurowany do pracy z wewnętrznym generatorem RC, przed użyciem go w programatorze należy odpowiednio ustawić bity konfiguracyjne (i oczywiście wgrać program). Przykładowe ustawienie fusebitów za pomocą programatora STK200 sterowanego z pakietu Bascom :

avr910

W przypadku zastosowania  mikrokontrolera AT90S2313 wystarczy tylko wgrać do niego skompilowany program. Nie jest wymagana zmiana konfiguracji fusebitów

Współpraca programatora ze złączem USB komputera
W obecnych czasach coraz rzadziej w komputerach (zwłaszcza w przenośnych) występują porty COM. Stanowi to pozorną przeszkodę w zastosowaniu amatorskich programatorów. Firmowy programator firmy Atmel współpracujący z portem USB kosztuje ok. 150PLN co jest ceną stosunkowo wysoką jak na amatorskie zastosowania. Nasz programator bardzo łatwo dostosować do współpracy z portem USB poprzez zastosowanie konwertera USB/RS232. Można zrealizować to na dwa sposoby :  poprzez wykorzystanie specjalizowanego układu scalonego pełniącego funkcję konwertera, bądź też wykorzystanie gotowego modułu. Ja skorzystałem z drugiego sposobu, wykorzystałem do tego celu kabel służący do wymiany danych pomiędzy komputerem a telefonem komórkowym. Taki kabelek jest chyba łatwiej dostępny niż konwerter USB/RS232 (przynajmniej w hipermarketach) a poza tym pozwala wyeliminować z naszego programatora konwerter RS232/TTL (MAX232) ponieważ sygnały wyjściowe są zgodne z poziomami TTL. Wykorzystałem kabelek zbudowany w oparciu o układ scalony OTI6858. Cena takiego kabelka waha się w okolicach kilkunastu złotych.

avr910

Po usunięciu wtyczki służącej do podłączenia telefonu komórkowego dostępne są 3 przewody : masa, RX i TX, a więc te najbardziej nas interesujące:

avr910

Jeśli chcemy komunikować się z programatorem poprzez port USB należy wyjąć z podstawki układ MAX232 i w odpowiednie miejsca w podstawce włożyć odpowiednie przewody :

avr910

Teraz wystarczy tylko zainstalować sterownik konwertera, aby w systemie był dostępny wirtualny port RS232, który umożliwi nam komunikację z programatorem. Oczywiście sterowniki dostarczone razem z kabelkiem nie działają i konieczne było ściągnięcie ich ze strony producenta układu OTI6858. Po pomyślnym zainstalowaniu sterowników i podłączeniu kabelka do wolnego portu USB w menadżerze urządzeń powinien być widoczny nowy port COM (OTI USB-to-Serial Comm Port - w moim przypadku dostępny jako COM3) :

avr910

Gdy nasz nowy port jest widoczny w systeme pozostaje nam jeszcze skonfigurować program sterujący programatorem. W przypadku AVR Studio (AvrProg) program powinien automatycznie odnaleźć programator na odpowiednim porcie. Inny program może wymagać wskazania właściwego portu.

 

 

 
(c) Radosław Kwiecień