
Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-23 15:03

Jakiś czas temu zamieściłem szybką i brudną metodę "el cheapo" rozpoczęcia programowania układów z serii Atmel AVR: Ghetto Programmer (wersja 1.0). Pomyślałem, że fajnie byłoby to udokumentować. Celem było uzyskanie elastycznego, kompaktowego, przenośnego środowiska prototypowania mikrokontrolerów opartego na AVR, którego można używać w dowolnym miejscu. Tanio (ish). Więc bez zbędnych ceregieli, oto środowisko rozwoju getta (GDE) (wersja 1.2).
Krok 1: Zestaw

Podstawowy zestaw zawiera następujące rzeczy: programator USB. Ponieważ chcesz mieć możliwość programowania mikrokontrolerów z laptopa w dowolnym miejscu. A ponieważ USB jest bardzo przydatnym źródłem +5v. Programowanie podstawek. Po jednym na każdy rodzaj żetonu, którym grasz. Dla mnie oznacza to jedną z 8 pinami (ATtiny13, 15), jedną z 20 pinami (ATtiny 2313) i jedną z 28 pinami (ATmega8). Migające światła. Kiedy coś jest nie tak z twoim kodem, nic tak nie rozwiązuje problemu, jak wstawianie świateł w celu zdiagnozowania. Dodatkowo program migaczy LED to "Hello World" mikrokontrolerów. Płytka do krojenia chleba. W końcu to zestaw rozwojowy.
Krok 2: Programator USB


W Ghetto Programmer (v.1.0) użyłem programatora portu równoległego. Jest świetny, ponieważ jest prosty, tani i szybki. Ale mój laptop nie ma portu równoległego. Bawiłem się trochę z tworzeniem programatorów portów szeregowych, ale szczerze mówiąc, są one tak skomplikowane, jak wersja USB, a nawet porty szeregowe stają się coraz rzadsze. Rzeczywiście, mój laptop ma tylko USB. Więc to jest USB. Rozglądając się dookoła, programator USBTiny jest dość prosty i współpracuje z darmowymi narzędziami GNU/AVR-GCC. Zrób to sam lub kup zestaw? Sposób DIY jest dobry, jeśli możesz już zaprogramować ATTiny2313 (z programatorem równoległym) i mieć wokół siebie kryształ 12 MHz. Strona USBTiny przedstawia podstawy. Zakańcza kabel do programowania portem równoległym, ale gdybym zaczynał od nowa, wykończyłbym go w standardowym 6-pinowym gnieździe. (Dlaczego? Ponieważ to standardowe.) Oto jego wyprowadzenia i sprawdź na poniższym obrazku układ kabli. PD3 - MISOPD5 - ResetPD6 - SCKPD7 - MOSIJeżeli robisz swój własny, skorzystaj z mojego doświadczenia i włóż go do ładnego plastikowego pudełka. Jeśli tego nie zrobisz, w końcu zawiedzie, gdy kryształ 12 MHz się zepsuje. Dlatego teraz używam… Szybkim i eleganckim sposobem jest zestaw USBtinyISP Ladyady. Kosztuje 22 $, ale dostajesz ładną płytkę PCB, zaprogramowany ATTiny2313 i czystą skrzynkę z ładnymi kablami. Surowe części i tak kosztują 15-16 USD i nie musisz dzwonić do Digikey, a potem martwić się programowaniem własnego 2313. Polutowanie wszystkiego zajmuje 30 minut - 1 godzinę. Popisywać się. Zaufaj mi. (Brak przynależności, zadowolony klient) I właśnie zobaczyłem ten link: Samouczek Ladyady AVR, który wydaje mi się całkiem niezły. (I zauważ, że projekt Ladyady i oryginalne USBTiny używają różnych kodów identyfikacyjnych produktów USB – będziesz musiał znaleźć ciągi identyfikacyjne i ponownie skompilować avrGCC, jeśli przełączasz się między nimi. Myślę, że są instrukcje na odpowiednich stronach internetowych.)
Jeśli korzystasz z systemu Ubuntu Linux i używasz programatora USBTiny, oto polecenia, które uruchomią cały łańcuch narzędzi: sudo apt-get install build-essential avr-libc binutils-avr gcc-avr avrdude(tested na Hardy Heron)Jeśli masz archa AMD64, możesz również potrzebować: byacc libusb-dev flex bison libc6-devand, a następnie ręcznie skompilować AVRdude:(wget https://download.savannah.gnu.org/releases/avrdude/ avrdude-5.5.tar.gz tar xvzf avrdude-5.5.tar.gz cd avrdude-5.5 ## Patch potrzebny do AMD64: wget https://savannah.nonngu.org/patch/download.php?file_id=14754 patch -p1 < avrdude-5.5.usbtiny.64bit.patch./configure make && make install sudo avrdude -p attiny2313 -c usbtiny ## to test)Jeśli zobaczysz coś w stylu „avrdude: urządzenie AVR zainicjowane i gotowe do przyjęcia instrukcji”, to ponownie zrobione. O tak, i chwała Wendelowi Oskayowi za schemat standardowych wyprowadzeń programatora.
Krok 3: podstawka programowania



W Ghetto Programmer v.1.0 użyłem podstawki programistycznej z niestandardowym wejściem pinów i żeńskimi nagłówkami pinów, do których można wbijać różne rzeczy. Niestandardowe piny to zły pomysł, ponieważ nie będziesz mógł używać swojej kołyski z cudzym programistą i vice versa. Kobiece nagłówki pinów były zabawne, ponieważ można było bezpośrednio podłączyć do nich diody LED, ale kiedy zaczynałem robić coś bardziej złożonego, i tak podłączałem je do płytki stykowej. Z nową kołyską odciąłem pośrednika. Mniej ręcznego okablowania = lepiej. Jednak największą zaletą tej konstrukcji dokującej jest to, że można ją podłączyć niemal wszędzie, gdzie można podłączyć układ AVR. To okazuje się ogromne. Zamiast projektować obwody ISP w swoim robocie lub czymkolwiek, po prostu wstawiasz tę podstawkę do gniazda IC. Następnie możesz zaprogramować/przeprogramować mózg robota w obwodzie. Po zakończeniu programowania podłącz odbiornik AVR bezpośrednio i przejdź do następnego. Tworzenie podstawek jest dość łatwe - wystarczy podłączyć styki z 6-stykowego złącza w odpowiednie miejsca na frytki. Tym razem użyłem wytrawionych płytek drukowanych. Równie dobrze można okablować całość ręcznie na płycie perforowanej. Kołyska ATTiny13/15 jest wyposażona w 8-pinowe gniazdo wire-wrap. Uwielbiam to. Chip można łatwo włożyć w ładne okrągłe otwory, a długie nóżki zapewniają dodatkowy prześwit na płytce stykowej. Ślady PCB wykonałem odręcznie za pomocą Sharpie. Kołyska ATTiny2313 została wykonana metodą Eagle i metodą laserowego transferu tonera do papieru. Nie mogłem znaleźć żadnych 20-pinowych gniazd do owijania, więc musiałem uciec się do zwykłego 20-pinowego gniazda przylutowanego do 2 10-pinowych listew. To kończy się kołyską z krótszymi nogami, ale to działa. Schemat i plik PDF, którego użyłem do obwodu, znajdują się poniżej. W obu musiałem ręcznie podłączyć dodatkową linię. Takie jest życie.
Krok 4: Migające światła


Sama prostota. W ogóle bym o nich nie wspominał, gdyby nie były tak cholernie przydatne.
Przylutuj rezystor (150-220 omów to dobra wartość.) bezpośrednio do ujemnego wyprowadzenia niektórych diod LED. Zaświeci się od około 2v-6v bez wypalania. A rezystor pomaga zapamiętać, która strona jest ujemna. Przyklej je tam, gdzie chcesz wiedzieć, że jest prąd. Dowiedz się, czy ten tranzystor jest przepalony. Zmień akumulator nikad w długowieczną lampkę nocną. Użyj interfejsu z kodem blinky, aby odczytać wartości z mikroprocesora (powoli). Albo zrób 8 z nich i masz jednobajtowy wyświetlacz (plus aktywny składnik w oczach Cylonów). Zrób je. Zrób wielu. Zrób je teraz.
Krok 5: Koniec

Tak więc ten „system” spełnia prawie wszystkie moje potrzeby rozwojowe. Jest modułowy, skalowalny, kompaktowy i przenośny.
Na przykład opracowałem procedury wyświetlania przewijanych wiadomości na 4-cyfrowym wyświetlaczu (strona wstępu) w samolocie w drodze na ślub przyjaciela. Jest dobrym lodołamaczem ze stewardesą. Ten potencjometr -> ADC -> amperomierz sterowany PWM został wprowadzony do tablicy, zakodowany i debugowany całkowicie między moją kanapą a stołem jadalnym i czyści się w około 2 minuty, gdy przyjdą przyjaciele. (To ustawianie czasu budzenia część tego, co ma być zegarem licznika.) Czasami uruchamiam konfigurację, gdy mam ochotę się pobawić. Dodaj małą torbę gadżetów (niektóre kondensatory i rezystory, przewód przyłączeniowy, tranzystory, głośnik piezoelektryczny, fotodiody, mikrofony, małe silniki itp.), a będziesz tak daleko przed MacGuyverem, że to nawet nie jest śmieszne.
Zalecana:
Jak skonfigurować środowisko programistyczne AVR w systemie Linux: 5 kroków

Jak skonfigurować środowisko programowania AVR w systemie Linux: Jeśli chcesz zaprogramować mikrokontrolery AVR w systemie Windows, masz Studio, ale w systemie Linux mamy tylko Kolesia. AVRDUDE to interfejs wiersza poleceń do programowania układów AVR, może to być trochę trudne najpierw skonfigurować. W tej instrukcji będę s
Środowisko adaptacyjne (automatyzacja akademika): 5 kroków

Adaptive Environment (Automatyzacja akademika): Ten projekt jest początkiem mojego zagłębienia się w automatyzację. Jako „mózg” wybrałem Raspberry Pi. tej operacji, ponieważ GPIO ma tak wiele różnych zastosowań i pokładową sieć WIFI/Bluetooth. Moje wprowadzenie do klasy prototypowania kwestionowane
Wrogie środowisko Mp3 Case: 9 kroków

Wrogie środowisko Mp3 Case: Zrobiłem etui ochronne, aby mój nowy Creative Zen V Plus był bezpieczny przed wrogimi elementami w środowisku spawalniczym. Trzy elementy, którymi najbardziej się interesowałem, to: iskry spawalnicze, odłamki szlifierskie i metaliczny pył. Iskry spawalnicze mogą być dość gorące
System rozwoju logiki programowalnej getta (CPLD): 13 kroków

Getto Programmable Logic (CPLD) Development System: Od kilku miesięcy korzystam z Getto Development System dla procesorów AVR. W rzeczywistości to prawie zero-dolarowe narzędzie okazało się tak fascynujące i przydatne, że zacząłem się zastanawiać, czy możliwe jest rozszerzenie tej koncepcji na F
Konfiguracja pakietu Panasonic ADK w systemie Windows Vista dla rozwoju MHP: 4 kroki

Konfiguracja Panasonic ADK w systemie Windows Vista dla rozwoju MHP: Panasonic ADK został opracowany dla środowiska Linux. Dla facetów, którzy wolą programowanie w systemie operacyjnym Windows, to jest to, co możesz zrobić. Próby i błędy zajęły mi cały tydzień, aby w końcu uzyskać pierwszy xlet działa na dekoderze! Oto skrót… Th