Inhoudsopgave:

Ghetto-ontwikkelomgeving: 5 stappen
Ghetto-ontwikkelomgeving: 5 stappen

Video: Ghetto-ontwikkelomgeving: 5 stappen

Video: Ghetto-ontwikkelomgeving: 5 stappen
Video: Gikkels & Fresku - Stappenplan // #5 Rode Terreur 2024, Juli-
Anonim
Getto ontwikkelingsomgeving
Getto ontwikkelingsomgeving

Een tijdje geleden heb ik een snelle en vuile "el cheapo"-methode gepost om te beginnen met het programmeren van de Atmel AVR-serie chips: Ghetto Programmer (versie 1.0) Sindsdien heb ik mijn setup verbeterd, vernieuwd en anderszins verbeterd. Ik dacht dat het leuk zou zijn om het te documenteren. Het doel was om een flexibele, compacte, draagbare, overal te gebruiken AVR-gebaseerde microcontroller-prototyping-omgeving te krijgen. Goedkoop. Dus zonder verder oponthoud, hier is de Ghetto Development Environment (GDE) (versie 1.2).

Stap 1: De kit

De uitrusting
De uitrusting

De basiskit bevat de volgende spullen: USB-programmeur. Omdat je overal microcontrollers vanaf je laptop wilt kunnen programmeren. En omdat USB een zeer handige bron van +5v is. Programmeerhouders. Eén voor elke soort chip waarmee je speelt. Voor mij betekent dat een met 8 pinnen (ATtiny13, 15), een met 20 pinnen (ATtiny 2313) en een met 28 pinnen (ATmega8). Knipperlichten. Als er iets mis is met uw code, lost niets het op zoals het insteken van lampjes om een diagnose te stellen. Bovendien is het LED-knipperprogramma de "Hello World" van microcontrollers. Breadboard. Het is tenslotte een ontwikkelkit.

Stap 2: De USB-programmeur

De USB-programmeur
De USB-programmeur
De USB-programmeur
De USB-programmeur

In Ghetto Programmer (v.1.0) heb ik een parallelle poortprogrammeur gebruikt. Het is geweldig omdat het eenvoudig, goedkoop en snel is. Maar mijn laptop heeft geen parallelle poort. Ik heb een tijdje gespeeld met het maken van seriële poortprogrammeurs, maar eerlijk gezegd zijn ze net zo ingewikkeld als de USB-versie en zelfs seriële poorten worden schaars. Inderdaad, mijn laptop heeft alleen echt USB. Dus USB is het. Als je om je heen kijkt, is de USBTiny-programmer vrij eenvoudig en werkt hij met de gratis GNU/AVR-GCC-tools. Zelf doen of een kit kopen? De doe-het-zelf-manier is goed als je al een ATTiny2313 (met parallelle programmer) kunt programmeren en een 12MHz-kristal hebt. USBTiny Page legt de basis uit. Hij sluit de programmeerkabel af met een parallelle poort, maar ik zou hem afmaken in een standaard 6-pins header als ik opnieuw zou beginnen. (Waarom? Omdat het standaard is.) Hier zijn zijn pin-outs, en bekijk de afbeelding hieronder voor de kabellay-out. PD3 - MISOPD5 - ResetPD6 - SCKPD7 - MOSIAls je er zelf een maakt, leer dan van mijn ervaring en stop het in een mooie plastic doos. Als je dat niet doet, zal het uiteindelijk mislukken wanneer het 12MHz-kristal afbreekt. Daarom gebruik ik nu… De snelle en elegante manier is Ladyada's USBtinyISP-kit. Het kost je $ 22, maar je krijgt een mooie PCB, voorgeprogrammeerde ATTiny2313 en een schone doos met mooie kabels. Ruwe onderdelen kosten sowieso $ 15-16, en je hoeft Digikey niet op te roepen en je vervolgens zorgen te maken over het programmeren van je eigen 2313. Het duurt 30 min - 1 uur om alles aan elkaar te solderen. Uitspatting. Geloof me. (Geen affiliatie, tevreden klant) En ik zag net deze link: Ladyada's AVR-zelfstudie die me redelijk goed lijkt. (En houd er rekening mee dat Ladyada's ontwerp en de originele USBTiny verschillende USB-productidentificatiecodes gebruiken - je zult de ID-strings moeten vinden en avrGCC opnieuw moeten compileren als je tussen de twee schakelt. Ik denk dat er instructies op de respectieve webpagina's staan.)

Als u een Ubuntu Linux-systeem gebruikt en de USBTiny-programmeur gebruikt, zijn hier de opdrachten waarmee u de hele toolchain aan de gang krijgt: sudo apt-get install build-essential avr-libc binutils-avr gcc-avr avrdude(getest op Hardy Heron)Als je een AMD64-boog hebt, heb je mogelijk ook nodig: byacc libusb-dev flex bison libc6-devand en vervolgens om AVRdude met de hand te compileren:(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 nodig voor AMD64: wget https://savannah.nongnu.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 ## om te testen)Als u iets ziet als "avrdude: AVR-apparaat geïnitialiseerd en klaar om instructies te accepteren", dan moet u' opnieuw gedaan. Oh ja, en eer aan Wendel Oskay voor het diagram van de standaard pin-outs van de programmeur.

Stap 3: De programmeerhouder

De programmeerhouder
De programmeerhouder
De programmeerhouder
De programmeerhouder
De programmeerhouder
De programmeerhouder

In Ghetto Programmer v.1.0 heb ik een programmeerslede gebruikt met een niet-standaard pin-ingang en met vrouwelijke pin-headers om dingen in te steken. Niet-standaard pinnen zijn een slecht idee omdat je je cradle niet kunt gebruiken met de programmeur van iemand anders, en vice versa. Vrouwelijke pin-headers waren leuk omdat je er direct LED's op kon aansluiten, maar als ik iets ingewikkelders zou gaan doen, zou ik het toch in een breadboard aansluiten. Met de nieuwe wieg heb ik de tussenpersoon uitgeschakeld. Minder handmatige bedrading = beter. Maar het grootste voordeel van dit cradle-ontwerp is dat u de cradle bijna overal kunt aansluiten waar u de AVR-chip zou kunnen aansluiten. Dit blijkt enorm te zijn. In plaats van ISP-circuits in je robot of wat dan ook te ontwerpen, steek je dit wiegding gewoon in de IC-socket. Dan kun je het brein van je robot in circuit programmeren/herprogrammeren. Als je klaar bent met ontwikkelen, sluit je de AVR direct aan en kun je aan de volgende beginnen. de chips. Deze keer heb ik geëtste PCB's gebruikt. Je kunt het geheel net zo goed met de hand bedraden op perfboard. De ATtiny13/15-slede is gemaakt met een 8-pins wire-wrap-aansluiting. Ik hou van deze. Het is gemakkelijk om de chip in zijn mooie ronde gaten te steken en de lange poten zorgen voor extra ruimte op het breadboard. Ik heb de PCB-sporen uit de vrije hand gemaakt met een Sharpie. De ATtiny2313-slede is gemaakt met Eagle en de laser-papiertoneroverdrachtsmethode. Ik kon geen 20-pins wire-wrap sockets vinden, dus ik moest mijn toevlucht nemen tot een 20-pins gewone socket die op 2 10-pins headers was gesoldeerd. Dit resulteert in een wieg met kortere pootjes, maar het werkt. Het schema en de PDF die ik voor het circuit heb gebruikt, staan hieronder. Op beide moest ik een extra lijn met de hand bedraden. Zo is het leven.

Stap 4: Knipperlichten

Knipperlichten
Knipperlichten
Knipperlichten
Knipperlichten

De eenvoud zelf. Ik zou deze helemaal niet noemen als ze niet zo verdomd handig waren.

Soldeer een weerstand (150-220 ohm is een goede waarde.) rechtstreeks op de negatieve draad van sommige LED's. Het zal oplichten van ongeveer 2v-6v zonder op te branden. En de weerstand helpt je te onthouden welke kant negatief is. Plak ze waar je wilt weten of er elektriciteit is. Zoek uit of die transistor is opgeblazen. Verander een nicad-batterij in een nachtlampje met een lange levensduur. Gebruik een blinky-code-interface om (langzaam) waarden uit uw microprocessor te lezen. Of maak er 8 en je hebt een weergave van één byte (plus het actieve ingrediënt in Cylon-ogen.) Maak ze. Maak er veel. Maak ze nu.

Stap 5: Het einde

Het einde
Het einde

Dit "systeem" voldoet dus aan bijna al mijn ontwikkelingsbehoeften. Het is modulair, schaalbaar, compact en draagbaar.

Ik heb bijvoorbeeld de routines uitgewerkt voor het weergeven van scrollende berichten op het 4-cijferige display (intropagina) in het vliegtuig op weg naar de bruiloft van een vriend. Maakt een goede ijsbreker met de stewardessen. Deze potentiometer -> ADC -> PWM-aangedreven ampèremeteropstelling was volledig gepaneerd, gecodeerd en debugged tussen mijn bank en eettafel, en ruimt op in ongeveer 2 minuten wanneer vrienden langskomen. (Het is het alarm-tijd-instellingsgedeelte van wat een meterklok gaat worden.) Ik breng de opstelling soms aan het werk als ik zin heb om hooky te spelen. Voeg een klein zakje met goodies toe (sommige condensatoren en weerstanden, aansluitdraad, transistors, piëzo-luidspreker, fotodiodes, microfoons, kleine motoren, enz.) en je bent MacGuyver zo ver voor dat het niet eens grappig is.

Aanbevolen: