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 :
Mozaika ścieżek płytki (avr910.pdf):
Rozmieszczenie elementów :
Zmontowany programator :
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 :
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.
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:
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 :
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) :
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.
|