Spisu treści:

Środowisko rozwoju getta: 5 kroków
Środowisko rozwoju getta: 5 kroków

Wideo: Środowisko rozwoju getta: 5 kroków

Wideo: Środowisko rozwoju getta: 5 kroków
Wideo: ARECZEK PRG X ROBSON PRO-OPOWIEŚCI Z GETTA PROD.MORFIX 2024, Listopad
Anonim
Środowisko rozwoju getta
Środowisko rozwoju getta

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

Zestaw
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

Programator USB
Programator USB
Programator USB
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

Podstawka Programowania
Podstawka Programowania
Podstawka Programowania
Podstawka Programowania
Podstawka Programowania
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

Migające światła
Migające światła
Migające światła
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

Koniec
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: