DZWON

Są tacy, którzy czytają tę wiadomość przed tobą.
Subskrybuj, aby otrzymywać najnowsze artykuły.
E-mail
Nazwa
Nazwisko
Jak chciałbyś przeczytać The Bell?
Bez spamu

Wcześniej do flashowania mikrokontrolerów AVR używałem AvrUsb500 firmy Petka (STK500) i AVR Studio 4. Wszystko było w porządku, dopóki układ FTDI FT232RL nie zawiódł i nie chciał działać. Potem zacząłem szukać alternatyw i natknąłem się na Programista Khazama AVR oraz . Program od razu spodobał mi się za jego minimalizm, ma prosty i intuicyjny interfejs. Mały i zdalny. Od tego czasu korzystam z tego wspaniałego programatora AVR.

Funkcje programatora Khazama AVR

Khazama współpracuje ze wszystkimi popularnymi mikrokontrolerami AVR, umożliwia programowanie flash i eepromów, odczyt zawartości pamięci flash i eeprom, kasowanie układu oraz zmianę konfiguracji fuse bitów (Fuses i Lock Bits). Wszystko, czego potrzebujesz do flashowania mikrokontrolerów AVR. Bezpieczniki konfiguruje się wybierając źródło zegara z listy rozwijanej, dzięki czemu prawdopodobieństwo „zabicia” sterownika przez pomyłkę jest znacznie zmniejszone. Bezpieczniki można również zmienić, umieszczając pola wyboru w dolnym polu, natomiast nie można zaznaczyć nieistniejącej konfiguracji, co sprawia, że ​​konfiguracja bezpieczników jest bezpieczniejsza. I to też jest duży plus.

Bezpieczniki nagrywania

Bezpieczniki są zapisywane w pamięci mikrokontrolera po naciśnięciu przycisku Write All. Istnieje przycisk Zapisz, aby zapisać bieżącą konfigurację, a Ładuj przywraca zapisaną. Przycisk Default służy do zapisywania standardowej konfiguracji bezpieczników, np. mikrokontrolery pochodzą z fabryki, zwykle 1MHz z wewnętrznego RC.
Ogólnie przez cały czas korzystania z tego programatora pokazywał się z jak najlepszej strony pod względem stabilności, bezpieczeństwa i szybkości. Polecam używać go każdemu, kto chce programować mikrokontrolery AVR.

Tak jak teatr zaczyna się od wieszaka, tak programowanie mikrokontrolera zaczyna się od wyboru dobrego programisty. Odkąd zaczynam opanowywać mikrokontrolery ATMEL, musiałem dokładnie zapoznać się z ofertą producentów. Oferują wiele ciekawych i smacznych rzeczy, tylko w niebotycznych cenach. Na przykład, szalik z jednym dwudziestonożnym mikrokontrolerem z parą oporników i diod jako opasaniem kosztuje jak „samolot”. Dlatego pojawiło się pytanie o samodzielny montaż programatora. Po długich badaniach nad rozwojem doświadczonych radioamatorów zdecydowano się na montaż znanego programatora USBASP, którego mózgiem jest mikrokontroler Atmega8 (istnieją również opcje oprogramowania układowego dla atmega88 i atmega48). Minimalne wiązanie mikrokontrolera pozwala na złożenie dość miniaturowego programatora, który zawsze możesz zabrać ze sobą, jak pendrive.

Autorem tego programatora jest Niemiec Thomas Fichl, jego strona rozwojowa ze schematami, plikami PCB i sterownikami.
Gdy podjęto decyzję o zmontowaniu miniaturowego programatora, przerysowałem układ dla mikrokontrolera Atmega8 w pakiecie TQFP32 (wyprowadzenia mikrokontrolera różnią się od wyprowadzeń w pakiecie DIP):

Zworka J1 jest używana w przypadku konieczności flashowania mikrokontrolera z częstotliwością zegara poniżej 1,5 MHz. Nawiasem mówiąc, tego skoczka można całkowicie wyeliminować umieszczając na ziemi 25. nogę MK. Wtedy programator będzie zawsze pracował ze zmniejszoną częstotliwością. Osobiście zauważyłem, że programowanie ze zmniejszoną prędkością jest o ułamek sekundy dłuższe, dlatego teraz nie ściągam zworki, tylko ciągle z niej szyję.
Diody Zenera D1 i D2 służą do dopasowania poziomów między programatorem a magistralą USB, będzie działać bez nich, ale nie na wszystkich komputerach.
Niebieska dioda LED sygnalizuje gotowość układu do programowania, czerwona dioda świeci podczas programowania. Styki do programowania wyprowadzone są na złącze IDC-06, wyprowadzenie odpowiada standardowi ATMEL dla 6-pinowego złącza ISP:

Złącze to posiada styki do zasilania urządzeń programowalnych, tutaj jest pobierane bezpośrednio z portu USB komputera, więc trzeba uważać, aby nie dopuścić do zwarć. To samo złącze służy również do programowania mikrokontrolera sterującego, do tego wystarczy podłączyć piny Reset na złączu i na MK (patrz czerwona przerywana linia na schemacie). W autorskim schemacie robi to zworka, ale nie zaśmiecałem płytki i ją usunąłem. W przypadku pojedynczego oprogramowania wystarczy zwykła zworka drutowa. Płyta okazała się dwustronna o wymiarach 45x18 mm.

Na końcu urządzenia umieszczono złącze do programowania oraz zworkę zmniejszającą prędkość programatora, co jest bardzo wygodne

Oprogramowanie układowe mikrokontrolera sterującego
Tak więc po złożeniu urządzenia pozostaje najważniejsza rzecz - flashowanie mikrokontrolera sterującego. Do tych celów dobrze nadają się znajomi, którzy opuścili komputery z portem LPT :) Najprostszy pięcioprzewodowy programator do AVR
Mikrokontroler można sflashować ze złącza programowania podłączając piny Reset mikrokontrolera (noga 29) i złącze. Firmware istnieje dla modeli Atmega48, Atmega8 i Atmega88. Wskazane jest użycie jednego z dwóch ostatnich kamieni, ponieważ wsparcie dla wersji Atmega48 zostało przerwane, a najnowsza wersja oprogramowania pochodzi z 2009 roku. Wersje dla 8 i 88 kamieni są stale aktualizowane, a autor wydaje się planować dodanie debuggera w obwodzie do funkcjonalności. Bierzemy oprogramowanie na niemieckiej stronie. Do wgrania programu sterującego do mikrokontrolera użyłem programu PonyProg. Podczas programowania konieczne jest, aby kryształ działał z zewnętrznego źródła zegara o częstotliwości 12 MHz. Zrzut ekranu programu z ustawieniami zworki bezpieczników w PonyProg:

Po oprogramowaniu powinna zaświecić się dioda LED podłączona do 23 nogi mikrokontrolera. Będzie to pewny znak, że programator został pomyślnie sflashowany i jest gotowy do pracy.

Instalacja sterownika
Instalacja została przeprowadzona na maszynie z systemem Windows 7 i nie pojawiły się żadne problemy. Przy pierwszym połączeniu z komputerem pojawi się komunikat o wykryciu nowego urządzenia, prosząc o zainstalowanie sterownika. Wybierz instalację z określonej lokalizacji:

W jednej chwili pojawi się okno z ostrzeżeniem, że instalowany sterownik nie posiada podpisu cyfrowego dla małych softów:

Oceniamy ostrzeżenie i kontynuujemy instalację, po krótkiej przerwie pojawi się okno informujące o pomyślnym zakończeniu operacji instalacji sterownika

Wszystko, teraz programista jest gotowy do pracy.

Programista Khazama AVR
Do pracy z programatorem wybrałem flasher Khazama AVR Programmer. Wspaniały program z minimalistycznym interfejsem.

Współpracuje ze wszystkimi popularnymi mikrokontrolerami AVR, umożliwia flashowanie i eeprom, przeglądanie zawartości pamięci, kasowanie układu, a także zmianę konfiguracji bitów bezpieczników. Ogólnie dość standardowy zestaw. Bezpieczniki są konfigurowane poprzez wybór źródła zegara z listy rozwijanej, dzięki czemu prawdopodobieństwo omyłkowego zablokowania kryształu jest znacznie zmniejszone. Bezpieczniki można również zmienić, umieszczając checkboxy w dolnym polu, natomiast checkboxów nie można umieścić na nieistniejącej konfiguracji, a to również duży plus pod względem bezpieczeństwa.

Zapis bezpieczników w pamięci MK, jak można się domyślić, odbywa się poprzez naciśnięcie przycisku Write All. Przycisk Zapisz zapisuje bieżącą konfigurację, a przycisk Załaduj przywraca zapisaną. Co prawda nie mogłem wymyślić praktycznego zastosowania tych przycisków. Przycisk Default służy do zapisania standardowej konfiguracji bezpieczników, np. mikrokontrolery pochodzą z fabryki (zwykle 1MHz z wewnętrznego RC).
Generalnie przez cały czas użytkowania tego programatora wykazywał się on z jak najlepszej strony pod względem stabilności i szybkości. Działało bez problemów zarówno na starym komputerze stacjonarnym, jak i na nowym laptopie.

Możesz pobrać plik PCB w SprintLayout przez

Program został zaktualizowany do wersji 08.06.2010.
Autor Uniprof niestrudzenie pracuje nad ulepszaniem swojego programu, czyniąc go jeszcze lepszym. Wersja programu od 08.06.2010 znacznie lepiej szyje mikrokontrolery. Częste awarie obserwowane w poprzedniej wersji podczas programowania bez pola wyboru „hamulec” to już przeszłość. Wszystko inne, co tak bardzo lubimy w UniProf, pozostało na swoim miejscu.

Szczerze mówiąc, na początku zdecydowałem się użyć programu AVRDUDE („rura”) do flashowania mikrokontrolerów. AVRDUDE to potężny program, który zasługuje na szacunek - może współpracować z ogromną liczbą programistów, z wieloma ustawieniami i jest dość szeroko stosowany w mikrokontrolerach AVR. Program nie ma własnego „GUI” (działa z wiersza poleceń) i zamierzałem napisać pliki wsadowe dla każdego oprogramowania, aby sflashować kontroler „jednym kliknięciem”. Ale po namyśle doszedłem do wniosku:
- program powinien być prosty i przystępny - tak, aby nawet osoba, która nigdy nie pracowała z mikrokontrolerami, mogła to rozgryźć (no cóż, jestem takim idealistą :));
- był mały, przenośny, z własnym GUI, wizualnie wyświetlał wszystkie etapy programowania, obsługiwał mikrokontrolery zastosowane na blogu.
Niestety AVRDUDE nie spełnia tych wymagań.
Ale odpowiedni jest inny program - UniProf-uniwersalny programator dla AVR. Program ma pewne wady, ale niweluje je prostota i dostępność. Poza tym UniProf może współpracować z naszymi programistami LPT i COM. Dlatego postanowiłem zrobić ogólny post-recenzję programu UniProf, a później osobno opiszę programowanie przez port LPT i COM. Więc …

Autorem programu jest Michaił Nikołajew. Program ma dość długą historię, ale nie może pochwalić się częstymi aktualizacjami. Jednocześnie program jest tak prosty i wygodny, że nie traci na aktualności nawet teraz, nawet na tle bardziej zaawansowanych programów.

Zacznijmy od wprowadzenia.
zawiera wszystkie funkcje programu. Nie musisz wspinać się po menu – wszystko odbywa się jednym kliknięciem. Program posiada własną pomoc (naciśnij F1), w której wszystko jest szczegółowo opisane. Interfejs UniProf jest intuicyjny, ale przejdźmy przez elementy okna.
Głównym elementem jest okno PROGRAM. To (w komórkach tabeli) wyświetla odczytane lub zapisane wartości komórek pamięci kontrolera. Jeśli odznaczysz pole PROGRAM, okno zniknie. Jest też checkbox EEPROM do pokazania lub ukrycia okna EEPROM pamięci sterownika (w większości przypadków EEPROM nie jest nam potrzebny - odznacz to).

Górny rząd przycisków (od lewej do prawej)

Zapisz zawartość okien (firmware) do kontrolera. Najpierw musisz załadować oprogramowanie układowe z pliku do systemu Windows. (gdy pole wyboru EEPROM jest zaznaczone, obszar EEPROM jest również zapisywany).

Sprawdzenie (weryfikacja) pamięci sterownika z wartościami w pudełkach. Różnice oznaczono gwiazdkami. (Po nagraniu weryfikacja odbywa się automatycznie - więc nie musisz sprawdzać).

Sprawdzenie sterownika pod kątem czystości. W przypadku „czystego” kontrolera wszystkie komórki pamięci zawierają 0xFF, co jest sprawdzane.

Ustawianie bitów FUSE. Ostrożnie zaznacz pola jak na obrazku dołączonym do każdego firmware.
Ważny! Przed miganiem bitów FUSE, upewnij się, że zaznaczyłeś pole wyboru „brake”, zmniejszy to ryzyko nieprawidłowego nagrywania.

zespół niskiego poziomu. Lepiej nie dotykaj.

Wyczyszczenie (Usuń) kontroler. Przed każdym programowaniem wyczyść kryształ.

Pierwsze trzy otwórz plik oprogramowania układowego odpowiedniego typu (opublikuję oprogramowanie HEX) i wypełnij pola wartościami z otwartego pliku. Następne trzy Zapisz do pliku wybrany typ wartości z pól.

"oskal"- odczyt bajtów kalibracyjnych sterownika. Nie potrzebujemy.

F1-pomoc– wezwij wbudowaną pomoc.

Kolejne dwa przyciski debugowanie w kontrolerze- nie potrzebujemy.

Kołki LPT- bardzo przydatna rzecz dla tych, którzy już odpalili kilka linii portu LPT lub używają programatora o innej konstrukcji. Umożliwia przypisanie dowolnych linii portowych w celu zastąpienia spalonych.

Pola wyboru pod przyciskami.

Ustaw jak na zdjęciu. Pierwszy pokazuje bajty odczytane lub gotowe do zapisania w kontrolerze. Drugi to wymuszony zapis 0xFF do pustej komórki. Trzeci to odwracanie linii portu COM (przy użyciu układu buforującego w programatorze). Nazwa podłączonego kontrolera zaświeci się na niebiesko. Dalej - włącz / wyłącz okno EEPROM. Częstotliwość systemu jest pokazana na czerwono.
Ważny! Jeśli klikniesz na czerwony, program ponownie zsynchronizuje się ze sterownikiem. Wciśnij na wszelki wypadek przed programowaniem.

Pozostałe elementy okna.

Te pola wyboru usuwają dodatkowe przyciski (aby się nie pomylić). Umieszczamy to jak na zdjęciu.

Bardzo ważne! Wymagane pole wyboru. W starej wersji programu występowały pewne problemy z niezawodnością programowania bez tego pola wyboru. Ten problem został rozwiązany w nowej wersji programu! Ale jeśli wystąpią błędy podczas pisania lub czytania, program natychmiast to przyznaje. Jeśli otrzymasz - zaznacz pole "hamulec", a wszystko zostanie nagrane bez problemów! Tylko wolniej. Podczas nagrywania bezpieczników wymagany jest „hamulec”! Nie musisz podejmować ryzyka.

Możesz określić, który obszar ma zostać wypalony - ustaw "Wszystko!".

Wybór portu, z którym będziemy pracować. Jeśli nie wiemy, gdzie wbito programistę, sortujemy wszystko po kolei, aż kontroler zaświeci się na niebiesko.

Są też skróty klawiszowe.

F2 Ustawienie opóźnienia nagrywania, normalne = 6. Jeśli występują błędy, spróbuj je zwiększyć (? nie obserwuje się efektu).

F3 Pokazuje listę obsługiwanych kontrolerów.

Szary-,+ Zmniejsz - powiększ czcionkę liczb w oknach Flash i EEPROM - może to być przydatne podczas zmiany rozmiaru okna.

wyjście– anulować bieżącą akcję.

Jest ich więcej, ale niezbyt potrzebnych - przeczytaj wbudowaną pomoc.

UniProf można pobrać tutaj:
- Programator do AVR. Zobacz avr.nikolaew.org

PS Zresztą z biegiem czasu używamy AVRDUDE - potężnej rzeczy!

(Odwiedzone 48 833 razy, 11 wizyt dzisiaj)

Dowiemy się czym jest interfejs ISP, zajmiemy się niedrogim i wygodnym programatorem USB ISP. Rozważ schematy obwodów najprostszych programistów mikrokontrolerów AVR wykorzystujących porty COM i LPT komputera. Ta informacja wystarczy do flashowania większości modeli mikrokontrolerów AVR nie tylko w Linuksie, ale także w innych systemach operacyjnych.

Interfejs programowania ISP w systemie

Aby napisać program do mikrokontrolera AVR, będziesz potrzebować programatora.

programista- jest to mały układ elektroniczny, który umożliwia podłączenie mikrokontrolera do jednego z portów komputera (COM, LPT, USB) w celu późniejszego odczytu i zapisu oprogramowania układowego (programowania).

Istnieje wiele różnych konstrukcji programatorów do mikrokontrolerów AVR, które łączą się z różnymi portami w komputerze.

Najbardziej niezawodną i wygodną opcją jest programator podłączany do portu USB, ponieważ nowe komputery stacjonarne i laptopy nie instalują już portów COM i LPT.

W gotowych urządzeniach programator jest połączony z mikrokontrolerem za pomocą interfejsu ISP(In System Programming) - interfejs do programowania wewnątrzsystemowego. Interfejs ISP składa się z kilku przewodów, przez które odbierany jest sygnał zegarowy i dane w celu połączenia programatora z mikrokontrolerem.

Z reguły interfejs ISP jest umieszczony na płytkach w postaci dziesięciu lub sześciu pinów, do których programator jest podłączony poprzez odpowiednie złącze za pomocą kabla.

Ryż. 4. Interfejs ISP na płycie.

Przypisanie pinów w interfejsie ISP:

  1. VCC - plus zasilanie, zwykle +5V;
  2. GND - minus zasilanie, masa (masa);
  3. MOSI - wejście danych (Master Out Slave In);
  4. MISO - wyjście danych (Master In Slave Out);
  5. SCK - sygnał zegarowy (zegar szeregowy);
  6. RST - aby wysłać sygnał resetu (Reset).

Do programowania w układzie mikrokontrolera wystarczą tylko 4 piny, ponieważ mikrokontroler może być zasilany z samego układu, w którym jest zainstalowany.

Jak podłączyć programator do układu mikrokontrolera AVR, jeśli nie jest wlutowany w układ? - bardzo proste, wykorzystujące te same piny interfejsu ISP, w razie potrzeby zasilanie mikrokontrolera ze źródła zasilania.

Programator USB ISP ASP

Aby pracować z układami AVR, kupiłem niedrogi programator USB ISP za około 10 USD. Takie urządzenie jest już w sprzedaży w wielu krajowych i zagranicznych sklepach internetowych, więc nie powinno być problemów z zakupem.

Ryż. 5. USB ISP - programator z pętlą do programowania w układzie mikrokontrolerów AVR firmy ATMEL.

Ten programator jest bezpieczny w użyciu, ma niewielkie rozmiary i jest obsługiwany przez większość programów do flashowania mikrokontrolerów AVR. USB ISP działa w systemach operacyjnych Linux, Mac OS X i Windows. W przypadku Linuksa nie trzeba instalować żadnych sterowników, po podłączeniu programatora do portu USB urządzenie zostanie od razu wykryte i gotowe do użycia.

Poniżej znajduje się wyprowadzenie złącz programatora USB ISP - przyda się później przy podłączaniu do mikrokontrolera.

Ryż. 6. Lokalizacja pinów na złączu USB ISP (pinout).

Ryż. 7. Lokalizacja styków w gniazdach złącza podłączonego do programatora USB ISP.

Co zrobić, jeśli nie można kupić programatora USB ISP?- możesz programować mikrokontrolery za pomocą prostych programatorów domowej roboty, które podłącza się do portu COM lub LPT, ale lepiej zrobić sobie USB ISP podczas programowania dla niego chip mikrokontrolera za pomocą prostego programatora domowej roboty przez COM lub LPT Port.

Ryż. 8. Schemat ideowy domowego programatora USB ASP ISP.

Szczegółowe informacje na temat produkcji USB ASP, a także płytek drukowanych, sterowników i oprogramowania układowego dla mikrokontrolera można znaleźć na oficjalnej stronie internetowej: http://www.fischl.de/usbasp/

Ponadto w Internecie jest wiele zasobów dla tego darmowego programisty, istnieje wiele gotowych układów PCB, w tym w programie SprintLayout, więc nie będziemy się nad tym szczegółowo rozwodzić w tym artykule.

Programator korzystający z portu COM

Ten programista jest również nazywany „programistą Gromov”, na cześć tego, który wymyślił ten schemat, twórcy programu Algorithm Builder (środowisko graficzne do programowania AVR pod Windows przy użyciu języka algorytmicznego) - G.L. Gromow.

Programator ten umożliwia programowanie układów AVR za pomocą portu COM komputera - interfejsu RS232. Aby zmontować taki programator, potrzebujesz minimum części - 3 diody, 7 rezystorów, złącze DB-9 lub DB-25 (w zależności od tego, które pasujące złącze jest zainstalowane w twoim komputerze) oraz złącze ISP do podłączenia do mikrokontrolera (lub tylko kilka przewodów do chipowania). Diody w obwodzie mogą być używane z dowolną małą mocą.

Ryż. 9. Schemat ideowy programatora mikrokontrolerów AVR poprzez port COM komputera.

Dla kompletności informacji poniżej znajduje się opis wyprowadzeń portów RS-232 dla opcji DB-9 i DB-25.

Ryż. 10. RS232 - Port COM, wyprowadzenie DB-9.

Ryż. 11. Port RS232 COM DB-25 - pinout na złączach.

Programator korzystający z portu LPT

Jak wiemy, port LPT komputera jest przeznaczony do podłączenia drukarki lokalnej (Local Printer Port), ale mimo to często jest używany do podłączania różnych urządzeń i produktów domowej roboty. W tym przypadku możemy go wykorzystać do programowania mikrokontrolerów AVR, montując w tym celu bardzo prosty układ, który pokazano poniżej.

Ryż. 12. Schemat ideowy programatora mikrokontrolerów AVR wykorzystującego port LPT komputera.

Jak widać, układ jest jeszcze prostszy niż w opcji c, tutaj wystarczą nam tylko 4 rezystory małej mocy i złącze (męskie, z pinami) do podłączenia do portu LPT komputera.

Ryż. 13. Lokalizacja pinów złączy portu LPT.

Wszystkie części i połączenia można umieścić w obudowie złącza LPT, a do połączenia z mikrokontrolerem wyprowadzić kabel ze złączem do interfejsu ISP lub tylko niezbędne przewody do podłączenia do mikroprocesora.

Oprogramowanie i notatki

Po podłączeniu programatora COM lub LPT do mikrokontrolera należy pamiętać o zasilaniu samego mikroprocesora. Jako źródło zasilania mikrokontrolera możesz użyć baterii lub zasilacza ze stabilizatorem, będzie to najbezpieczniejsze zarówno dla portu komputera, jak i chipa. Omówiliśmy już, jak z niego korzystać.

Pod Linuksem jest bardzo potężny program, który może współpracować z programistami USB ASP, COM i LPT - to jest program AVRDUDE, które zostaną omówione w kolejnych sekcjach.

Do flashowania układów AVR pod Windows przy użyciu tych programatorów COM i LPT potrzebny jest program UniProf firmy Nikolaev, który jest uniwersalnym programatorem dla AVR (avr.nikolaew.org).

UWAGA! Bądź wyjątkowo ostrożny i ostrożny podczas montażu i używania programatorów za pomocą portu COM lub LPT komputera, prosty błąd może łatwo podpal te porty. Do normalnej pracy takich programatorów należy starać się używać jak najkrótszych przewodów od złącza do układu programatora i mikrokontrolera. Pożądane jest, aby mikroprocesor komputerowy miał częstotliwość nie większą niż 1-2 GHz i pożądane jest używanie Win2000 lub WinXP jako systemu operacyjnego do programowania układów.

Warto też wiedzieć, że przejściówki USB-RS232 (USB-COM Port) najprawdopodobniej nie będą działać z programatorem Gromov, prawdopodobnie będą działać tylko te z nowszymi mikroukładami, więc lepiej poszukać maszyny z natywnym portem COM .

Wniosek

Programiści, o których mowa w artykule to tylko kilka z najbardziej przystępnych i prostych rozwiązań z dużej listy programistów AVR: USBTinyISP, AVR-Doper, AVR vusbtiny, AVRISP-MkII, programiści FTDI i inni.

Teraz w każdym razie możesz złożyć dostępny programista i sflashować co najmniej jeden mikroukład, na podstawie którego możesz zmontować inny wygodniejszy programator lub jakieś urządzenie.

W następnym artykule dowiemy się jak podłączyć różne modele mikrokontrolerów AVR do programatora, dowiemy się skąd uzyskać informacje o pinoutach mikrokontrolerów.

Na płytce do krojenia chleba metatablica bardzo wygodny w montażu ISP programista dla AVR mikrokontrolery AVRProg. Schemat jest bardzo prosty, kod źródłowy programatora jest otwarty i dostępny dla dwóch wariantów programatora - jest wersja usbasp i wersja AVR Doper. Obwód programatora jest montowany bezpośrednio na polu układu płytki metaboard. Firmware (wersja programatora) można łatwo zmienić za pomocą bootloadera USB wbudowanego w metaboard.

[Funkcje programatora AVRProg]

1. Programator posiada dwa gniazda do montażu programowalnych mikrokontrolerów AVR w pakietach DIP na 8, 20 i 28 pinów, w tym popularne ATTiny25/45/85, ATTiny2313, ATMega8, ATMega48/88/168/328 (8-pin AVR) podłączony do 20-pinowego gniazda).

2. Dla mikrokontrolerów programowalnych generowana jest częstotliwość taktowania 1 MHz (dla tych mikrokontrolerów, których bezpieczniki są ustawione do pracy z zewnętrzną częstotliwością zegara lub z zewnętrznym rezonatorem kwarcowym).

3. Układ programatora jest bardzo prosty i wygodny do samodzielnego montażu w domu.

4. Dla obwodu tego programatora (AVRProg na metaboard) zostały przeniesione dwie wersje oprogramowania układowego - usbasp oraz AVR Doper. Przenoszenie jest również oczekiwane w przyszłości AVRminiProg. Aby uzyskać łącza do pobierania oprogramowania układowego, zobacz .

5. Oddzielne 10-pinowe złącze ISP z wyprowadzeniem zgodnym ze standardowym 10-pinowym ISP (można obejrzeć standardowe wyprowadzenia złącz ISP), przeznaczone do programowania w obwodzie mikrokontrolerów AVR (a także jako port wyjściowy debugowania w wersja AVR-Doper, patrz poniżej) . Złącze to wyprowadza napięcie zasilania 5 V dla płytki programowalnej, które można podłączyć przez ustawienie zworki JP5 (patrz schemat programatora), częstotliwość taktowania 1 MHz i debugowanie sygnałów nadawczo-odbiorczych UART.

[Schemat ideowy programatora AVRProg]

Aby maksymalnie uprościć obwód (i odpowiednio ułatwić samodzielny montaż programatora), wyklucza się z niego konwertery poziomów, które w ogólnym przypadku są zwykle instalowane tak, aby pasowały do ​​poziomów logicznych programatora i obwodu zaprogramowane przez ISP, ponieważ napięcie zasilania układu programatora może różnić się od napięcia zasilania urządzeń programowalnych (patrz opcje podłączenia takich przetworników poziomów w ). Oznacza to, że programator AVRProg i urządzenie programowane przez złącze SV1 ISP powinny, jeśli to możliwe, być zasilane mniej więcej tym samym poziomem napięcia (około 5 woltów). Do układu dodawane są rezystory R1..R7, połączone szeregowo w obwód sygnału cyfrowego, które nieco łagodzą (ale nie eliminują całkowicie) problem z różnicą poziomów logicznych. Rezystory te ograniczają maksymalny prąd i zapobiegają uszkodzeniom programatora i programatora, które są zasilane różnymi napięciami. Dzięki tym rezystorom i obecności diod ochronnych w AVR następuje konwersja poziomu sygnału. 1MHZ, RESETOWANIE, MOSI, MISO, SCK, RXD, TXD, więc powinno być możliwe programowanie urządzeń ISP zasilanych napięciem 3,3 V.

Ponadto istnieje możliwość dodatkowego zasilania programowanego urządzenia +5 woltów. Zasilanie aktywuje się zakładając zworkę JP5. Należy pamiętać, że obwód programatora AVRProg nie ma ochronnego ograniczenia prądu stosowanego do programowanego urządzenia. Oczywiście poza przypadkiem, gdy sam programator jest zasilany przez USB, a kontroler USB komputera ma takie zabezpieczenie. Nigdy nie instaluj zworki JP5, jeśli urządzenie programowalne ISP jest zasilane z własnego źródła napięcia i jeśli napięcie zasilania urządzenia programowalnego (podłączonego przez ISP SV1) nie wynosi +5V!

Zastosowany obwód programatora 10-pinowy dostawca usług internetowych"stary styl" (oprócz takich pinoutów ISP są też wygodniejsze 6-pinowy dostawca usług internetowych złącza), ponieważ dodatkowe sygnały są wyprowadzane na jego nogi (które są podłączone do GND w oryginalnym 10-pinowym wyprowadzeniu ISP). Są to trzy dodatkowe sygnały, które w razie potrzeby możesz wykorzystać do swoich potrzeb w urządzeniu programowalnym:

X1MHZ- częstotliwość taktowania 1 MHz. Może być używany do ożywienia chipów, które są zaprojektowane do pracy z wewnętrznym oscylatorem RC, ale których bezpieczniki są nieprawidłowo ustawione, aby użyć zewnętrznego generatora kryształu lub zegara. Bez podania zewnętrznej częstotliwości zegara lub podłączenia kwarca nie da się zaprogramować takich AVRów, tu może się przydać zewnętrzny sygnał zegara 1 MHz.

XRXD- Wejście portu szeregowego, które może odbierać dane debugowania z programowanego urządzenia. Ta funkcja jest obsługiwana w wersji oprogramowania sprzętowego AVR-Doper. Wszystko, co debugowane urządzenie transmituje poprzez UART (prawie każdy mikrokontroler AVR ma sprzętowy UART) można wyświetlić w oknie terminala podłączonego do wirtualnego portu USB COM AVR-Doper. Ta funkcja ułatwia pisanie i debugowanie oprogramowania na programowalnym urządzeniu ISP na mikrokontrolerze AVR. Aby włączyć tę funkcję, należy podłączyć wyjście sprzętowe TXD portu UART programowalnego AVR do sygnału XRXD (pin 10 złącza SV1 ISP), a także użyć makr wyjścia debugowania w debugowanym oprogramowaniu (w Biblioteki WinAVR, to jest makro DBG, możesz także użyć printf, przekierowany do UART).

XTXD- wyjście portu szeregowego, które może przesyłać dowolne dane użytkownika do programowalnego urządzenia. Ta funkcja jest obsługiwana w wersji oprogramowania sprzętowego AVR-Doper. Wszystko, co zostanie wydrukowane w oknie terminala (podłączonym do wirtualnego portu COM USB AVR-Doper) zostanie przeniesione na wejście UART debugowanego urządzenia (prawie każdy mikrokontroler AVR ma sprzętowy UART). Jest to mniej powszechnie używane niż wyjście debugowania XRXD (poprzez makro DBG lub instrukcję printf), ale ułatwia również pisanie i debugowanie oprogramowania na urządzeniu programowalnym przez ISP. Na przykład możesz wydawać polecenia tekstowe do debugowanego urządzenia bezpośrednio z okna terminala. Aby włączyć tę funkcję, należy połączyć wejście sprzętowe RXD portu UART programowalnego AVR z sygnałem XTXD (pin 8 złącza SV1 ISP).

Zasilanie programowalnych układów AVR zainstalowanych w gniazdach IC1 i IC2 jest dostarczane z dwóch nóg mikrokontrolera płytki metaboard PC3 i PC4 (piny 4 i 5 złącza JP3). Porty PC3 i PC4 są zaprogramowane jako wyjścia, a ich prąd wyjściowy jest wystarczający do bezpośredniego zasilania programowalnego mikrokontrolera zainstalowanego w gnieździe (dwa porty połączone równolegle służą specjalnie do zwiększenia obciążalności wyjścia). Jeśli dziennik jest wydawany na PC3 i PC4. 1, wtedy zasilanie jest dostarczane do programowalnego mikrokontrolera. Stan ten wskazuje również na świecenie czerwonej diody LED podłączonej do pinu 1 złącza JP3 (kontrolowanego przez pin oprogramowania portu PC0). Jeśli dziennik jest wydawany na PC3 i PC4. 0, wówczas mikrokontroler programowalny jest wyłączony spod napięcia (z wyłączoną diodą LED) i można go swobodnie wyjąć z gniazdka bez obawy o uszkodzenie elektryczne.

[Składanie programatora]

Aby móc zainstalować złącze ISP SV1, musisz odlutować złącze zasilania JP4 na metaboard (jeśli jest zainstalowane). Zespół nie ma innych funkcji, wystarczy podłączyć wszystkie przewody, kierując się schematem obwodu - mniej więcej tak, jak pokazano na zdjęciu. Wielokolorowe przewody są używane tylko dla przejrzystości, aby ułatwić zrozumienie okablowania różnych sygnałów. Prawidłowo zmontowany układ zaczyna działać natychmiast i nie wymaga debugowania.

Wiele elementów na schemacie AVRProg jest opcjonalnych do instalacji. Na przykład, jeśli nie potrzebujesz łóżeczka z gniazdem i potrzebujesz tylko usługodawcy internetowego, to gniazd IC1 i IC2 nie można zainstalować i odlutować. Lub, na przykład, jeśli nie potrzebujesz możliwości programowania ISP, nie możesz zainstalować złącza ISP SV1, a także nie potrzebujesz rezystorów R1..R7 i zworki JP5.

Poniżej opisano różnice w działaniu dwóch wersji oprogramowania programatora - USBasp i AVR-Doper. Obie opcje można łatwo ładować do pamięci układu za pomocą bootloadera USB i programu Khazama AVR Programmer (patrz), dzięki czemu zawsze masz możliwość łatwego przeflashowania dowolnej pożądanej wersji programatora. Aby aktywować bootloader, należy zainstalować zworkę JP6 Upload i przy metaboardzie podłączonym przez USB do komputera nacisnąć przycisk S1 Reset (zworka JP6 i przycisk S1 są wstępnie zainstalowane na metaboard). Po tej prostej procedurze na komputerze pojawi się urządzenie USBasp USB (jeśli nie ma sterownika, Windows o to poprosi. Pobierz sterownik z pakietu pod linkiem). Urządzenie USB bootloadera USBasp (program ładujący USB emuluje programator USBasp) może akceptować polecenia z powłoki Khazama AVR Programmer. Korzystając z programu Khazama AVR Programmer, w pamięci układu metaboard można zapisać dowolną z dwóch opcji oprogramowania układowego programatora - USBasp i AVR-Doper (opis pracy z tym oprogramowaniem znajduje się poniżej). Gotowe opcje oprogramowania układowego (zarówno USBasp, jak i AVR-Doper) są dostępne pod linkiem.

[usbasp]

Pobierz pakiet archiwum z linku i pobierz z niego plik binarny (plik HEX) z odpowiednią nazwą pliku. Nazwa pliku wskazuje rodzaj oprogramowania układowego (USBasp lub AVR-Doper), typ mikrokontrolera zastosowanego w metapłycie (zarówno ATmega168PA, jak i ATmega328P są równie odpowiednie) oraz częstotliwość taktowania kwarcu (zwykle kwarc jest używany na 16 MHz, ale częstotliwości też są możliwe 12 , 15 , 16.5 , 20 MHz). Wgraj plik binarny do pamięci chipa za pomocą bootloadera metaboard USB i programu Khazama AVR Programmer (wybierz w nim chip metaboard i). Zignoruj ​​ostrzeżenia o niemożliwości zmiany częstotliwości zegara ISP - bootloader USB jest niezwykle uproszczony i nie obsługuje przetwarzania polecenia ustawienia częstotliwości ISP (nie jest to konieczne dla bootloadera).

Po zapisaniu oprogramowania układowego USBasp w pamięci układu metaboard, ponownie podłącz metaboard do zmontowanego programatora przez USB, a programator USBasp jest gotowy do pracy. Do współpracy z programatorem AVRProg w wersji USBasp można użyć tego samego programu Programista Khazama AVR(wersja 1.7.0 lub nowsza) lub narzędzie wiersza poleceń avrdude.

Wersja USBasp podobała mi się mniej niż wersja AVR-Doper, ponieważ ten firmware ma wady związane z brakiem obsługi zmiany częstotliwości zegara ISP (powłoka Khazama AVR Programmer wyświetla komunikaty o błędach, ale programator nadal działa). Ponadto niektóre układy scalone, takie jak układ ATmega328P, nie obsługują bezpieczników. Z avrdude jest nieco lepiej, ale praca z tym narzędziem nie jest zbyt wygodna, ponieważ nadal jest to narzędzie wiersza poleceń, a nie GUI. Jednak w przypadku pracy wsadowej (gdy trzeba zautomatyzować programowanie strumieniowe dużej liczby urządzeń), avrdude może być najlepszym wyborem. Aby pracować z avrdude, wybierz protokół usbasp.

[AVR Doper]

Firmware wariantu AVR-Doper jest sflashowany w taki sam sposób, jak opisano proces dla USBasp, wystarczy pobrać inny plik oprogramowania układowego z archiwum (którego nazwa wspomina AVR-Doper). Moim zdaniem ta opcja zasługuje na większy szacunek, ponieważ reprezentuje obsługę protokołu STK500 przez Atmel (protokół ten stał się de facto standardem ze względu na popularność platformy AVR i jej narzędzi). Obsługiwany protokół STK500 Studio AVR, więc opcja AVR-Doper będzie działać dobrze z powłoką programatora AVRprog środowiska programistycznego AVR Studio. Jest to bardzo wygodne dla użytkowników AVR Studio i otwiera szerokie możliwości programowania chipów (nie ma problemów z obsługą łączenia w niektórych AVR, jak ma to miejsce w przypadku Khazama + USBasp). Aby pracować z avrdude, wybierz protokół STK500.

Podczas pracy w środowisku AVR Studio uruchom narzędzie programatora AVRprog i wybierz opcję programatora STK500 z początkowego okna dialogowego. Uwaga: narzędzie AVRprog zaoferuje ponowne przesłanie oprogramowania układowego programatora, odrzuć je, klikając przycisk „Nie”. W przeciwnym razie praca z narzędziem programisty nie ma żadnych szczególnych cech i nie zasługuje na osobny opis. Zobacz także przegląd pracy z AVRprog AVRStudio pod linkiem.

[Jak zainstalować programowalne układy scalone w gniazdach?]

Programowanie DIP8 Programowanie DIP20 Programowanie DIP28

ATtiny25/45/85 ATtiny2313A-PU ATmega8, ATmega48/88/168/328

[Kompilacja kodu źródłowego USBasp i AVR-Doper]

Ponieważ dostępny jest kod źródłowy oprogramowania układowego programatora metaboard AVRProg (dla wersji USBasp i AVR-Doper), można go modyfikować do własnych potrzeb, rekompilować i flashować za pomocą bootloadera do pamięci układu metaboard. W szczególności wersja USBasp może dodać obsługę poleceń zmiany zegara ISP.

Zarówno w kodzie źródłowym USBasp, jak i AVR-Doper występuje ten sam błąd, który związany jest z nieprawidłowym zarządzaniem portami wskaźnika LED1 LED (wybór portu niezgodny ze schematem). W kodzie źródłowym, który można pobrać z linku, ten błąd został naprawiony.

Kompilacja jest prosta, tak samo dla wersji USBasp i AVR-Doper. Aby skompilować, musisz mieć zainstalowany pakiet WinAVR. Rozpakuj kod źródłowy oprogramowania układowego do osobnego folderu. Przejdź do katalogu głównego projektu, w którym znajduje się plik makefile i uruchom dwie komendy jedna po drugiej w wierszu komend: oczyścić oraz zrób metaboard. Następnie plik pojawi się w katalogu głównym projektu main.hex, który jest binarnym plikiem oprogramowania układowego dla programisty. To właśnie należy wpisać za pomocą bootloadera USB do pamięci układu metaboard.

Metaboard może być używany z mikrokontrolerami ATmega168PA i ATmega328P. Zarówno ATmega168PA, jak i ATmega328P używają oprogramowania układowego programatora skompilowanego dla ATmega168PA. Należy pamiętać, że oprogramowanie skompilowane dla ATmega328P nie działa (jeszcze nie wiem dlaczego). Jeśli używasz rezonatora kwarcowego w metaboard nie dla 16 MHz, ale dla innej częstotliwości (12, 15, 16,5 lub 20 MHz), edytuj makro w pliku makefile przed kompilacją F_CPU.

1 . Oryginalny kod źródłowy oprogramowania układowego programatora USBasp przeniesiony na metaboard AVRProg (uwaga: ten kod zawiera błędy, użyj kodu źródłowego z linku). Zobacz Pobierz na końcu artykułu (pobierz avprog-metaboard-1.1.zip lub nowszą wersję).
2 . Oryginalny kod źródłowy oprogramowania układowego programatora AVR-Doper, przeniesiony na metaboard AVRProg (uwaga: ten kod zawiera błędy, użyj kodu źródłowego z linku).
3 . .
4 . Wyprowadzenia złącza ISP.
5 . Khazama AVR Programmer i sterownik USB dla USBasp (system operacyjny Windows) . Aby pracować z wersją USBasp programatora AVRProg, zainstaluj Khazama w wersji 1.7.0 lub nowszej!
6 .

DZWON

Są tacy, którzy czytają tę wiadomość przed tobą.
Subskrybuj, aby otrzymywać najnowsze artykuły.
E-mail
Nazwa
Nazwisko
Jak chciałbyś przeczytać The Bell?
Bez spamu