W dwóch poprzednich wpisach dotyczących płytki testowej z mikrokontrolerem AVR ATtiny2313 (Mini płytka testowa AVR z odzysku i Usprawnienie mini płytki testowej AVR z dekodera Cyfrowego Polsatu) opisałem sposób jej pozyskania i modyfikacji zwiększającej funkcjonalność. Dzisiaj pokażę, jak zrobić bardzo prosty programator, dzięki któremu będzie można ładować do modułu programy. W poprzednich częściach skupiałem się na maksymalnym wykorzystaniu części z odzysku i jak najmniejszych wydatkach. Podobnie teraz – koszt budowy całego programatora to mniej niż 3zł – ceny sprawdziłem w pobliskim sklepie elektronicznym. Kupując przez internet lub bazując na posiadanych zapasach, może być jeszcze taniej.
Do budowy programatora mikrokontrolerów AVR potrzebny będzie męski (czyli z bolcami) ) wtyk DB25, kawałek 5 żyłowego kabla – polecam tasiemkę z różnokolorowymi żyłami, ja użyłem jeszcze pojedyncze goldpiny, tak by kabelki można było łatwo wpinać w płytkę stykową. Gdybym chciał to kupić w sklepie elektronicznym, który czasem odwiedzam, to za wtyk DB25 zapłaciłbym 1,21zł, 5 goldpinów to koszt 20 groszy (trzeba kupić listwę z 40 pinami za 1,50zł, z której wyłamuje się pojedyncze końcówki), 50cm taśmy 6-żyłowej kosztuje 1,35zł (2,70zł za metr) – razem wychodzi mniej niż 3 zł. Budowany programator został opracowany przez producenta oprogramowania Bascom i nosi nazwę Sample Electronics programmer. W układzie pominąłem rezystory zabezpieczające – nasza mini płytka zawiera takie o wartości 100Ω. Oto jego schemat:
Jego budowa jest prostsza niż STK200 bez bufora, bo nie trzeba łączyć pinów we wtyczce. Drugi argument, który przemawiał za akurat tym “układem” to fakt, że zrobiłem taki naprędce ponad 7 lat temu i wykorzystałem do zaprogramowania AT90S2313 podczas wykonywania pracy inżynierskiej, a trzeci – jest on obsługiwany przez programator avrdude.
Patrząc na przód gniazda, jego piny będą pełniły następujące role:
W celu łatwiejszego lutowania kabelków do wtyczki, opisałem również jej tył. Piny od 18 do 25 można połączyć, ale nie jest to konieczne, bo są one dołączone do masy w gnieździe komputera. Zdjęcie z tyłu:
Jak wspomniałem wcześniej, do końcówek taśmy przylutowałem pojedyncze goldpiny, dzięki temu łatwo programatorek wpinać do płytki stykowej. To samo zrobiłem z kablami i 9-pinową wtyczką wylutowaną z dekodera DSB-616. Całość wygląda tak:
Kolejny etap to wpięcie programatora i płytki za pośrednictwem kabelka do wygodnej płytki stykowej. Warto się w taką zaopatrzyć, ja za swoją zapłaciłem mniej niż 10zł i była to bardzo dobra inwestycja. Budowa prototypów trwa teraz bardzo krótko i bez użycia lutownicy, łatwo też wprowadzać zmiany.
Przy łączeniu płytki i programatora warto podeprzeć się opisem gniazdka, który znajduje się tutaj Mini płytka testowa AVR z odzysku. Kabelki GND muszą być połączone ze sobą, płytka potrzebuje jeszcze zasilania. Najlepiej, gdy będzie to zasilacz stabilizowany, wtyczkowy o napięciu 5V, ale równie dobrze można je pozyskać z portu USB lub użyć 3 baterii AA połączonych szeregowo. Ja do zasilacza, który był ładowarką już nie pamiętam czego, dolutowałem stabilizator LM7805 i zamiast kabla wyjściowego zastosowałem metr jednej pary pomarańczowej skrętki komputerowej, którą miałem akurat pod ręką. U mnie całość wygląda tak:
Przed sprawdzeniem, czy wszystko działa, warto obejrzeć połączenia dwa razy i upewnić się, że wszystko jest dobrze wpięte. Do zabaw z elektroniką kupiłem sobie stary komputer PC – dokładniejszy opis jest tutaj Bardzo tani komputer dla elektronika amatora. Zainstalowałem na nim Linux Mint i po pewnym czasie stwierdziłem, że Windows nie jest mi potrzebny, dlatego dalsza część opisu będzie bazowała właśnie na linuksie, ale da się to zrobić w Windowsie w prawie taki sam sposób, tymi samymi programami. Do programowania wykorzystałem znany avrdude, jeśli nie masz go u siebie, wykonaj:
sudo apt-get install avrdude
Następnie podłącz zasilanie do płytki i wtyk programatora do komputera. W terminalu wpisz:
avrdude -c bascom -p t2313
W parametrze -c definiujemy typ programatora, w -p typ procesora. Ja po wciśnięciu entera dostałem błąd związany z brakiem uprawnień do portu lpt, czyli /dev/parport0 Permission denied, co wyglądało dokładnie tak:
Znalazłem na szybko metodę, która na czas bieżącej sesji nadaje uprawnienia do odczytu i zapisu zalogowanemu użytkownikowi. Tak więc chwilo problem rozwiązuje komenda:
sudo chmod a+rw /dev/parport0
Problem uprawnień definitywnie rozwiązuje dodanie się do grupy lp w linuksie. Po wpisaniu hasła roota możemy znowu wpisać linijkę pozwalającą na test programatora, lub wciśnąć kilka razy strzałkę do góry (wybór ostatnio wpisanych komend). U mnie wszystko zadziałało, oto efekt:
W następnych wpisach pokażę jak zainstalować środowisko programistyczne Eclipse, które bardzo zwiększy komfort pracy (tutaj: Instalacja narzędzi dla AVR i IDE Eclipse w Linux Mint) i udostępnię prosty program, który po skompilowaniu i wgraniu przetestuje wyświetlacz i porty mikrokontrolera ATtiny2313 (tutaj: Test mini płytki AVR z ATtiny2313 – pierwszy program)
Przydatne linki:
Mega tanie, bezprzewodowe moduły Internet of Things na dobre zadomowiły się w naszych sieciach. Od…
Pewnie nie każdy posiadacz tytułowej stacji lutowniczej wie, że posiada ona możliwość aktualizacji firmware'u. Producent…
Jakiś czas temu, przeglądając Aliexpress natknąłem się na ciekawy shield do Arduino Nano. Według opisu…
W mailach i komentarzach kilka razy przewijała się prośba o ten wpis. Chodzi o aktualizację…
Dziś tematyka audio, a nawet audiofilska. Uznany wzmacniacz słuchawkowy Lehmann Black Cube Linear o dość…
Tradycyjnie w styczniu, publikuję podsumowanie minionego roku na stronie grylewicz.pl. Poniżej trochę liczb, lista najpopularniejszych…
Zobacz komentarze