Dokumentacja techniczna V1.8 STK 200/300 programator isp na lpt 16 kwietnia 2007
Właściwości: Współpracuje z każdym systemem operacyjnym. Zasilanie zewnętrzne - z płyty procesora. Maksymalna długość przedłużacza między PC a STK200/300 to 1,5 m. Zakres napięcia zasilającego: od 2V do 5V (74HC244). Posiada zabezpieczenie przed błędnym podłączeniem. Sygnalizacja stanu zasilania oraz stanu programowania na dwóch diodach LED. Kolorowe przewody. Odłączany przewód. Kolorowy opis złącza programatora umieszczony bezpośrednio na nim. Przewody zakończone konektorami pasującymi do każdego ułożenia pinów. Współpracuje z programami: PonyProg, IC-prog, ISP Programer, AVR Dude, yaap, BASCOM AVR, WinAvr. Programuje procesory firmy ATMEL z rodziny AVR: AT90CAN128, AT90PWM2, AT90PWM3, AT90S1200, AT90S2313, AT90S2323, AT90S2343, AT90S2333, AT90S2343, AT90S4414, AT90S4433, AT90S4434, AT90S8515, AT90C8534, AT90S8535, ATmega603, ATmega103, ATmega8515, ATmega8535, ATmega8, ATmega16, ATmega161, ATmega162, ATmega163, ATmega169, ATmega32, ATmega323, ATmega64, ATmega128, ATtiny12, ATtiny15, ATtiny22, ATtiny26. Programuje procesory firmy ATMEL z rodziny 8051: AT89S2051, AT89S4051, AT89S8252, AT89S52, AT89S8253, AT89S53. Programuje Flash: AT45DBxxxx 1
Rozdział 1 STK200/300 Przed rozpoczęciem czytania tego dokumentu upewnij się, czy masz jego najnowszą wersję: Najnowsza wersja Nazwa programatora STK200/300 wywodzi się od płyt demonstracyjnych: stk200 (produkowana przez firmę ATMEL ), stk300, (produkowana przez firmę KANDA, schemat), wraz z którymi producenci dostarczają programator podłączany do komputera przez port LPT, którego nazwa przyjęła się jako programator STK200/300. Nazwa programatora STK200/300 oznacza, że opisywany produkt obsługuje obie płyty stk200 oraz stk300). Programator STK200/300 podłącza się do portu LPT komputera bezpośrednio lub poprzez przedłużacz. Ze względu na zakłócenia elektro-magnetyczne sugeruje się podłączenie przedłużacza pomiędzy LPT a programator - podłączenie przedłużacza pomiędzy płytę bazową a programator może nawet spowodować uszkodzenie programowanego układu. Programator STK200/300 pobiera zasilanie z płyty, na której umieszczony jest programowany układ. Zasilanie programatora jest konieczne ponieważ między portem komputera a interfejsem SPI programowanego układu umieszczony jest bufor 74HC244, zabezpieczający komputer przed uszkodzeniem na wypadek błędnego podłączenia programatora. Programator STK200/300 posiada dwie diody sygnalizujące jego stan, dzięki którym programista jest w stanie monitorować proces programowania, co ułatwia i przyspiesza jego pracę. Dioda czerwona - jej silne świecenie sygnalizuje że układ jest zasilany, dioda zielona - oznacza, że układ jest właśnie programowany. Programator STK200/300 generalnie jest przeznaczony do programowania procesorów AVR firmy ATMEL. Można jednak za jego pomocą programować inne układy, takie jak: pamięci szeregowe, procesory serii at89sxx. Programator został tak zaprojektowany, by praca z nim była jak najbardziej skuteczna. STK200 posiada odłączany przewód dzięki czemu można zrobić w prosty sposób własne przejściówki do każdej używanej przez projektanta płyty bazowej. W zestawie z STK200/300 dostarczany jest kabelek, który pasuje do każdej konfiguracji złącza, dzięki kolorowym przewodom oraz ich opisom na obudowie szybko i bez problemu można STK200/300 podłączyć do każdej płyty bazowej. Więcej informacji o STK200/300 można znaleźć na stronie projektu PONYPROG, forum dyskusyjnym ELEKTRODY, ELEKTRODA- temat programator stk200, 2
na stronie ELEKTRONIKA CYFROWA. A najlepiej użyć przeszukiwarki google. 3
Rozdział 2 Podłączenie Programator STK200/300 generalnie jest przeznaczony do programowania procesorów AVR firmy ATMEL. Można jednak za jego pomocą programować inne układy takie jak pamięci szeregowe czy procesory serii AT89S8252,AT89S53. Rozdział ten opisuje sposób podłączenia programatora do większości programowanych przez niego układów. Poniżej widoczny jest rysunek ilustrujący wyprowadzenia programatora STK200 na złączu FC10. Aby szybko podłączyć programator do procesora najlepiej użyć do tego kabla dostarczonego warz z programatorem. Kabel ten ma przewody, których kolory zgadzają się z kolorowym opisem złącza znajdującego się powyżej. Ten sam opis jest również na programatorze. Poniżej umieszczona jest tabela kolorów i odpowiadające im funkcje. Kolor Funkcja Pin Niebieski GND - masa 1,3,5,7,9 Czerwony VCC - zasilanie 2 Czarny MISO - sygnał programujący procesor 4 Biały CLK - sygnał programujący procesor 6 Zielony MOSI - sygnał programujący procesor 8 Brązowy RES - sygnał programujący procesor 10 4
2.1 ATMEL Aby zaprogramować procesory firmy Atmel nie wystarczy podłączyć pinów sterujących do programatora (MISO,MOSI,CLK,RESET), należy również podłączyć zasilanie do programatora oraz do procesora. Ponadto, jeśli nie jesteśmy pewni czy wewnętrzny generator procesora jest dostępny lub włączony to do procesora należy podłączyć oscylator kwarcowy. Schemat poniżej prezentuje ogólny sposób podłączenia programatora. W dalszej części dokumentu zawarte są informacje o podłączeniu programatora do konkretnego procesora. 2.1.1 AT90S1200 STK200/300 Pin DIP SOIC SSOP MISO PB6 18 18 18 MOSI PB5 17 17 17 CLK PB7 19 19 19 RESET RESET 1 1 1 2.1.2 AT90S2313 STK200/300 Pin DIP SOIC GND GND - - VCC VCC - - MISO PB6 18 18 MOSI PB5 17 17 CLK PB7 19 19 RESET RESET 1 1 5
2.1.3 AT90S2323 STK200/300 Pin DIP SOIC GND GND - - VCC VCC - - MISO PB1 6 6 MOSI PB0 5 5 CLK PB2 7 7 RESET RESET 1 1 2.1.4 AT90S2343 STK200/300 Pin DIP SOIC GND GND - - VCC VCC - - MISO PB1 6 6 MOSI PB0 5 5 CLK PB2 7 7 RESET RESET 1 1 2.1.5 AT90S4433 STK200/300 Pin DIP TQFP GND GND - - VCC VCC - - MISO PB4 18 16 MOSI PB3 17 15 CLK PB5 19 17 RESET RESET 1 1 2.1.6 AT90s8535 STK200/300 Pin DIP PLCC TQFP MLF - - MISO PB6 7 8 2 2 MOSI PB5 6 7 1 1 CLK PB7 8 9 3 3 RESET RESET 9 10 4 4 2.1.7 AT90S8515 STK200/300 Pin DIP PLCC TQFP MLF - - MISO PB6 7 8 2 2 MOSI PB5 6 7 1 1 CLK PB7 8 9 3 3 RESET RESET 9 10 4 4 6
2.1.8 ATMEGA103 STK200/300 Pin TQFP GND GND - VCC VCC - MISO PE1 3 MOSI PE0 2 CLK PB1 11 RESET RESET 1 2.1.9 ATMEGA128 STK200/300 Pin TQFP MLF GND GND - - VCC VCC - - MISO PE1 3 3 MOSI PE0 2 2 CLK PB1 11 11 RESET RESET 1 1 2.1.10 ATMEGA16 STK200/300 Pin DIP TQFP MLF MISO PB6 7 2 2 MOSI PB5 6 1 1 CLK PB7 8 3 3 RESET RESET 9 4 4 2.1.11 ATMEGA32 STK200/300 Pin DIP TQFP MLF MISO PB6 7 2 2 MOSI PB5 6 1 1 CLK PB7 8 3 3 RESET RESET 9 4 4 2.1.12 ATmega48 STK200/300 Pin DIP TQFP MLF MISO PB4 18 16 16 MOSI PB3 17 15 15 CLK PB5 19 17 17 RESET RESET 1 29 29 7
2.1.13 ATmega88 STK200/300 Pin DIP TQFP MLF MISO PB4 18 16 16 MOSI PB3 17 15 15 CLK PB5 19 17 17 RESET RESET 1 29 29 2.1.14 ATmega168 STK200/300 Pin DIP TQFP MLF MISO PB4 18 16 16 MOSI PB3 17 15 15 CLK PB5 19 17 17 RESET RESET 1 29 29 2.1.15 ATMEGA8 STK200/300 Pin DIP TQFP MLF MISO PB4 18 16 16 MOSI PB3 17 15 15 CLK PB5 19 17 17 RESET RESET 1 29 29 2.1.16 ATMEGA8515 STK200/300 Pin DIP PLCC TQFP MLF - - MISO PB6 7 8 2 2 MOSI PB5 6 7 1 1 CLK PB7 8 9 3 3 RESET RESET 9 10 4 4 2.1.17 ATMEGA8535 STK200/300 Pin DIP PLCC TQFP MLF - - MISO PB6 7 8 2 2 MOSI PB5 6 7 1 1 CLK PB7 8 9 3 3 RESET RESET 9 10 4 4 8
2.1.18 ATtiny12 STK200/300 Pin DIP SOIC GND GND - - VCC VCC - - MISO PB1 6 6 MOSI PB0 5 5 CLK PB2 7 7 RESET RESET 1 1 2.1.19 ATtiny2313 STK200/300 Pin DIP SOIC MLF MISO PB6 18 18 16 MOSI PB5 17 17 15 CLK PB7 19 19 17 RESET RESET 1 1 6 19 2.1.20 ATtiny13 STK200/300 Pin DIP SOIC MLF MISO PB1 6 6 12 MOSI PB0 5 5 11 CLK PB2 7 7 14 RESET RESET 1 1 1 2.1.21 ATtiny25 STK200/300 Pin DIP SOIC MLF MISO PB1 6 6 12 MOSI PB0 5 5 11 CLK PB2 7 7 14 RESET RESET 1 1 1 2.1.22 ATtiny45 STK200/300 Pin DIP SOIC MLF MISO PB1 6 6 12 MOSI PB0 5 5 11 CLK PB2 7 7 14 RESET RESET 1 1 1 9
2.1.23 ATtiny85 STK200/300 Pin DIP SOIC MLF MISO PB1 6 6 12 MOSI PB0 5 5 11 CLK PB2 7 7 14 RESET RESET 1 1 1 2.1.24 ATtiny24 STK200/300 Pin DIP SOIC MLF MISO PA5 8 8 20 MOSI PA6 7 7 16 CLK PA4 9 9 1 RESET RESET 4 4 13 2.1.25 ATtiny44 STK200/300 Pin DIP SOIC MLF MISO PA5 8 8 20 MOSI PA6 7 7 16 CLK PA4 9 9 1 RESET RESET 4 4 13 2.1.26 ATtiny84 STK200/300 Pin DIP SOIC MLF MISO PA5 8 8 20 MOSI PA6 7 7 16 CLK PA4 9 9 1 RESET RESET 4 4 13 2.1.27 ATtiny15 STK200/300 Pin DIP SOIC GND GND - - VCC VCC - - MISO PB1 6 6 MOSI PB0 5 5 CLK PB2 7 7 RESET RESET 1 1 10
2.1.28 ATtiny26 STK200/300 Pin DIP SOIC MLF MISO PB1 2 2 21 MOSI PB0 1 1 30 CLK PB2 3 3 32 RESET RESET 10 10 11 2.1.29 AT89S51 STK200/300 Pin DIP PLCC TQFP MISO P1.6 7 8 2 MOSI P1.5 6 7 1 CLK P1.7 8 9 3 RESET RESET 9 10 4 2.1.30 AT89S52 STK200/300 Pin DIP PLCC TQFP MISO P1.6 7 8 2 MOSI P1.5 6 7 1 CLK P1.7 8 9 3 RESET RESET 9 10 4 2.1.31 AT89S53 STK200/300 Pin DIP PLCC TQFP MISO P1.6 7 8 2 MOSI P1.5 6 7 1 CLK P1.7 8 9 3 RESET RESET 9 10 4 2.1.32 AT89S2051 STK200/300 Pin DIP SOIC GND GND - - VCC VCC - - MISO P1.6 18 18 MOSI P1.5 17 17 CLK P1.7 19 19 RESET RESET 1 1 11
2.1.33 AT89S4051 STK200/300 Pin DIP SOIC GND GND - - VCC VCC - - MISO P1.6 18 18 MOSI P1.5 17 17 CLK P1.7 19 19 RESET RESET 1 1 2.1.34 AT89S8252 STK200/300 Pin DIP PLCC TQFP MISO P1.6 7 8 2 MOSI P1.5 6 7 1 CLK P1.7 8 9 3 RESET RESET 9 10 4 2.1.35 AT89S53 STK200/300 Pin DIP PLCC TQFP MISO P1.6 8 8 2 MOSI P1.5 6 7 1 CLK P1.7 8 9 3 RESET RESET 9 10 4 2.1.36 AT45DBxxxx Należy pamiętać by przed programowaniem Pin RESET oraz WP układu pamięci, podłączyć do zasilania. STK200/300 Pin DIP 8-SOIC 28-SOIC MISO SO 7 8 2 MOSI SI 1 1 6 CLK CLK 2 2 5 RESET CS 4 4 4 12
Rozdział 3 Oprogramowanie Programator STK200/300 nie działa autonomicznie, oznacza to że musi być podłączony do komputera, który będzie sterował jego pracą. Natomiast na komputerze musi być uruchomiony program umożliwiający programowanie układów. W Internecie można znaleźć ich wiele, niżej opisane będą najpopularniejsze z nich. Dostępne oprogramowania różnią się od siebie listą układów jakie obsługują: 13
Program Lista układów PonyProg AT90S1200, AT90S2313, AT90S2323, AT90S2343, AT90S4414, AT90S4434, AT90S8515, AT90S8535, AT90S2323, AT90S2343, AT90S2333, AT90S4433, AT90S4434, AT90S8535, AT90S8534, ATmega103, ATmega161, ATmega163, ATmega323, ATmega128, ATmega8,ATmega16, ATmega64,ATmega32, ATmega162, ATmega 169, ATmega8515, ATmega8535,ATtiny12, ATtiny15, AT89S8252, AT89S53. AvrDude AT90CAN128, AT90PWM2, AT90PWM3, AT90S1200, AT90S2313, AT90S2333, AT90S2343, AT90S4414, AT90S4433, AT90S4434, AT90S8515, AT90S8535, ATmega103, ATmega128, ATmega1280, ATmega1281, ATmega16, ATmega161, ATmega162, ATmega163, ATmega164, ATmega169, ATmega2560, ATmega2561, ATmega32, ATmega324, ATmega329, ATmega3290, ATmega48, ATmega64, ATmega640, ATmega644, ATmega649, ATmega6490, ATmega8, ATmega8515,ATmega8535,ATmega88, ATtiny12, ATtiny13, ATtiny15, ATtiny2313, ATtiny25, ATtiny26, ATtiny45, ATtiny85. BasCom Zobacz na stronie BasCom a Ispprog-Adama Dybkowskiego AT90CAN128, AT90PWM2, AT90PWM3, AT90S1200, AT90S2313, AT90S2333, AT90S2343, AT90S4414, AT90S4433, AT90S4434, AT90S8515, AT90S8535, ATmega103, ATmega128, ATmega1280, ATmega1281, ATmega16, ATmega161, ATmega162, ATmega163, ATmega164, ATmega169, ATmega2560, ATmega2561, ATmega32, ATmega324, ATmega329, ATmega3290, ATmega48, ATmega64, ATmega640, ATmega644, ATmega649, ATmega6490, ATmega8, ATmega8515,ATmega8535,ATmega88, ATtiny12, ATtiny13, ATtiny15, ATtiny2313, ATtiny25, ATtiny26, ATtiny45, ATtiny85, AT89S51,AT89S52, AT89S53, AT89S8252, AT89S8253, AT89S2051, AT894051, AT45DB011D, AT45DB021B, AT45DB021D, AT45DB041B, AT45DB041D, AT45DB081B, AT45DB081D, AT45DB161D, AT45DB321C, AT45DB321D. 14
3.1 PonyProg PonyProg jest najsprawniejszym programem do programowania układów przy pomocy STK200/300. Jednak niewątpliwą wadą progamatora jest to że nie działa z linij komend. Aby rozpocząć praqcę z PonyProg należy postępować według wskazówek w następnym podrozdziale. 3.1.1 Instalacja i konfiguracja 1. Zciągnąć program PonyProg kilkająć tu PonyProg download. 2. Rozpakuj i zainstaluj. 3. Uruchom program i podłącz programator STK200/300 do komputera. 4. Wybierz z głównego menu opcje Setup/Interface Setup... 5. Skonfiguruj okno które się pojawiło tak jak widzisz na rysunku poniżej. 6. Kliknij przycisk probe - spowoduje to test obecności programatora. 7. Jeśli pojawi się informacja Test Ok to możesz zamknąć okno konfiguracyjne. Natomiast jeśli test zawiud (pojawiła się informacja Test Failed ) masz problem sprzętowy, skontaktuj się z producentem SkyLive@vp.pl. 8. Wybierz z głównego menu opcje Setup/Calibration na oknie które się pojawi kliknij Yes. - Spowoduje to skalibrowanie programu w stosunku do prędkości komputera. 9. Teraz PonyProg jest gotowy do pracy. 3.1.2 Programowanie procesora 1. Wybierz układ który chesz programować - w menu głównym znajdziesz pole do wyboru grupy układów oraz do wyboru konkretnego układu. 15
2. Wczytaj plik programu układu - wybierz z menu głównego File/Open Device File... 3. Wybierz z menu głównego Command/Write All uruchomi to proces programowania. 4. Jeśli proces się powódł na jego końcu pojawi się komunikat Write Sukcesfull. 3.2 AvrDude Programem tym zaprogramujesz procesory serii AT90Sxxx. Program AvrDude dostarczany jako element pakietu WinAvr. Generalnie przeznaczony jest do pracy przy użyciu linij komend, lecz istnieje dla niego GUI(graficzny interfejs) mieszczący się w C:\WinAVR\binoavrdude-gui.exe. Przed rozpoczęciem pracy z tym programem na systemach opartych na technologii NT (XP,win2000) należy zainstalować sterownik giveio, który również dostępny jest w pakiecie WinAvr. Instalacja givio polega na uruchomieniu skryptu z katalogu C:\WinAVR\bin\install giveio.bat Najwygodniej AvrDude używa się poprzez makefile. Po poprawnym skonfigurowaniu pliku makefile i wywołaniu komendy make program rozpocznie się proces programowania. 16
3.3 BasCom Pakiet baskom jest zintegrowanym środowiskiem programistycznym dla procesorów z rodziny AVR oraz 8051. Zaletą tego oprogramowania jest łatwość obsługi oraz bogaty zestaw bibliotek. Wadą jest to, że trzeba pisać w języku BASOM, który nie przyda się w przyszłości na przykład gdy będzie trzeba programować procesory ARM, PC, motorola itd. Aby uruchomić programator STK200/300 przy użyciu pakietu BASCOM należy postępować według punktów: 1. Zciągnij i zainstaluj program BasCom z strony: http://www.mcselec. com/index.php?option=com_content&task=view&id=14&itemid=41 2. Uruchom program BASCOM i podłącz programator STK200/300 do komputera. 3. Otwórz dowolny, działający program; na przygład: C:\BASCOM-AVR\SAMPLES\Math\ACOS.bas 4. Otwórz z głównego menu okno konfigurujące rodzaj programatora Optcions/Programer i skonfiguruj je jak na obrazku poniżej. 5. Pole Port delay musisz uzupełnić sam. Jeżeli programator nie będzie działać z powodu zbyt szybkiego komputera wpisz tam większą wartość. 6. Kliknij OK. 7. Uruchom program ładujący przyciskając klawisz F4. 8. W opcji Chip wprowadź używany przez ciebie procesor jak na rysunku poniżej. 17
9. Zmaż procesor klikając ikonę. 10. Rozpoczni proces programowania klikając ikonę. 11. Gotowe. 3.4 Ispprog-Adama Dybkowskiego Program ten jest łatwy w obsłudze i bardzo elastyczny jeśli chodzi o dobór interfejsu programującego. Brakuje mu obsługi z linij komend. Konfiguracja programu powinna przebiegać następująco: 1. Zciągni i uruchom program IspProgramer Adama Dybkowskiega http: //www.amwaw.edu.pl/~adybkows/elka/ispprog.zip. 18
2. Naciśnij przycisk SETUP. Pojawi okno konfigurujące programator - wybierz programator STK200. 3. Teraz program gotowy jest do pracy. 19
Rozdział 4 Problemy z uruchomieniem 4.1 Komputer nie widzi programatora Programy współpracujące z STK200/300 rozpoznają programator na podstawie zworki na porcie LPT komputera PC, między pinem 2 a 12, zworkę tą posiada na stałe programator STK200/300. Przyczyny braku rozpoznawania programatora mogą być następujące: 1. Źle skonfigurowany program pracujący z programatorem. 2. Uszkodzony programator. 3. Uszkodzony port LPT. Aby zidentyfikować problem, postępuj według następujących punktów: 1. Zainstaluj program PonyProg i skonfiguruj na podstawie rozdziału Konfiguracja programu PonyProg 2. Jeżeli PonyProg nie identyfikuje programatora to na porcie LPT podłącz zworkę ja na zdjęciu poniżej. 3. Ponownie klikamy przycisk Probe w oknie konfiguracji interfejsu programu PonyProg. 20
4. Jeśli PonyProg nie rozpoznaje programatora (w tym przypadku jego imitacji - zworki) najprawdopodobniej masz problem z portem LPT. Natomiast jeśli zworkę rozpoznaję a prawdziwego programatora nie, to uszkodzony jest programator. Skontaktuj się z producentem mailto:skylive@vp.pl 4.2 Jak sprawdzić czy programator jest sprawny W tym celu należy ściągnąć programik STK TEST testujący programator podłączony do portu LPT1. Po jego uruchomieniu należy postępować według instrukcji w głównym polu programu. 21
Rozdział 5 Jak kupić Programator można nabyć kontaktując się z grupą SkyLive przez e-mail: mailto: skylive@vp.pl Istnieje również możliwość nabywca urządzenia na portalach: ALLEGRO, Świstak, Ebay. Alegratka. Życzymy radości z tworzenia. 22