Indholdsfortegnelse:

Ghetto -udviklingsmiljø: 5 trin
Ghetto -udviklingsmiljø: 5 trin

Video: Ghetto -udviklingsmiljø: 5 trin

Video: Ghetto -udviklingsmiljø: 5 trin
Video: Ghetts - Daily Duppy | GRM Daily #5MilliSubs 2024, Juli
Anonim
Ghetto -udviklingsmiljø
Ghetto -udviklingsmiljø

For et stykke tid siden lagde jeg op en hurtig og beskidt "el cheapo" metode til at komme i gang med at programmere Atmel AVR-serien chips: Ghetto Programmer (version 1.0) Siden da har jeg vampet, vampet og ellers forbedret min opsætning. Synes det ville være rart at dokumentere det. Målet var at få et fleksibelt, kompakt, bærbart, AVR-baseret mikrokontroller-prototypemiljø, hvor som helst, hvor som helst kan bruges. På den billige (ish). Så uden videre, her er Ghetto Development Environment (GDE) (version 1.2).

Trin 1: Sættet

Sættet
Sættet

Basissættet indeholder følgende ting: USB -programmerer. Fordi du vil være i stand til at programmere mikrokontrollere fra din bærbare computer hvor som helst. Og fordi USB er en meget praktisk kilde til +5v. Programmeringsholdere. En for hver slags chip, du spiller med. For mig betyder det en med 8 ben (ATtiny13, 15), en med 20 ben (ATtiny 2313) og en med 28 ben (ATmega8). Blinkenlights. Når der er noget galt med din kode, rydder intet op som at sætte lys ind for at diagnosticere. Plus, LED -blinkerprogrammet er "Hello World" af mikrokontrollere. Breadboard. Det er jo et udviklingssæt.

Trin 2: USB -programmereren

USB programmereren
USB programmereren
USB programmereren
USB programmereren

I Ghetto Programmer (v.1.0) brugte jeg en parallelport programmerer. Det er fantastisk, fordi det er enkelt og billigt og hurtigt. Men min bærbare computer har ikke en parallelport. Jeg legede lidt med at lave serielle portprogrammører lidt, men ærligt talt er de lige så komplicerede som USB -versionen og endda serielle porte er ved at blive knappe. Min bærbare computer har faktisk kun USB. Så det er USB. Når man ser sig omkring, er USBTiny-programmereren ret enkel og fungerer med de gratis GNU/AVR-GCC-værktøjer. Gør det selv eller køb et kit? DIY -metoden er god, hvis du allerede kan programmere en ATTiny2313 (med parallel programmerer) og have en 12MHz krystal siddende. USBTiny Page beskriver det grundlæggende. Han afslutter programmeringskablet med en parallelport, men jeg ville afslutte det i en standard 6-benet header, hvis jeg startede på ny. (Hvorfor? Fordi det er standard.) Her er hans pin-outs, og tjek billedet herunder for kabellayoutet. PD3 - MISOPD5 - ResetPD6 - SCKPD7 - MOSIIHvis du laver din egen, kan du lære af min erfaring og putte den i en dejlig plastikæske. Hvis du ikke gør det, mislykkes det til sidst, når 12MHz krystallen bryder af. Derfor bruger jeg nu … Den hurtige og elegante måde er Ladyadas USBtinyISP-kit. Det giver dig $ 22 tilbage, men du får et flot printkort, forprogrammeret ATTiny2313 og en ren boks med flotte kabler. Rå dele koster alligevel $ 15-16, og du behøver ikke ringe til Digikey og derefter bekymre dig om at programmere din egen 2313. Det tager 30 minutter - 1 time at lodde det hele sammen. Splurge. Stol på mig. (Ingen tilknytning, tilfreds kunde) Og så lige dette link: Ladyadas AVR -vejledning, som synes mig ret god. (Og vær opmærksom på, at Ladyadas design og den originale USBTiny bruger forskellige USB-produktidentifikationskoder-du skal finde ID-strengene og genkompilere avrGCC, hvis du skifter mellem de to. Jeg tror, at der er instruktioner på de respektive websider.)

Hvis du er på et Ubuntu Linux-system og bruger USBTiny-programmereren, er her kommandoerne, der får hele værktøjskæden til at køre: sudo apt-get install build-essential avr-libc binutils-avr gcc-avr avrdude (testet på Hardy Heron) Hvis du har en AMD64-bue, har du muligvis også brug for: byacc libusb-dev flex bison libc6-devand for derefter at kompilere AVRdude i hånden: (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 nødvendig til 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 ## for at teste) Hvis du ser noget i stil med "avrdude: AVR -enhed initialiseret og klar til at acceptere instruktioner" så er du ' er færdig. Åh ja, og kredit til Wendel Oskay for diagrammet over standardprogrammererens pinouts.

Trin 3: Programmeringsholderen

Programmeringsholderen
Programmeringsholderen
Programmeringsholderen
Programmeringsholderen
Programmeringsholderen
Programmeringsholderen

I Ghetto Programmer v.1.0 brugte jeg en programmeringsholder med en ikke-standard pin-indgang og med kvindelige pin-headers til at stikke ting ind i. Ikke-standard pins er en dårlig idé, fordi du ikke kan bruge din vugge med en andens programmør og omvendt. Kvindelige pin-headers var sjove, fordi du direkte kunne tilslutte lysdioder til dem, men når jeg begyndte at gøre noget mere komplekst, ville jeg alligevel ende med at tilslutte det til et brødbræt. Med den nye vugge skar jeg mellemmanden ud. Mindre håndledninger = bedre. Men den største fordel ved dette vuggedesign er, at du kan tilslutte holderen næsten hvor som helst du kunne tilslutte AVR-chippen. Dette viser sig at være enormt. I stedet for at designe ISP -kredsløb i din robot eller hvad som helst, stikker du bare denne vugge i IC -stikket. Derefter kan du programmere/genprogrammere din robots hjerne i kredsløb. Når du er færdig med at udvikle, skal du tilslutte AVR'en direkte, og du går videre til den næste. Det er let nok at lave vuggerne-alt hvad du skal gøre er at forbinde stifterne fra 6-benet header til de rigtige steder på chipsene. Denne gang brugte jeg ætsede PCB'er. Du kan lige så godt hånd-wire det hele på perfboard. ATTiny13/15 holderen er lavet med en 8-bens wire-wrap stik. Jeg elsker disse. Det er let at indsætte chippen i sine flotte runde huller, og de lange ben giver ekstra frigang på brødbrættet. Jeg lavede PCB -sporene i fri hånd med en Sharpie. ATTiny2313 holderen blev lavet med Eagle og laserpapir toneroverførselsmetoden. Jeg kunne ikke finde nogen 20-pin wire-wrap-stik, så jeg måtte ty til en 20-pin almindelig fatning loddet på 2 10-pin pin headers. Dette ender med en vugge med kortere ben, men det virker. Skematikken og PDF'en, jeg brugte til kredsløbet, er nedenfor. På begge måtte jeg håndtråd en ekstra linje. Sådan er livet.

Trin 4: Blinkenlights

Blinkenlights
Blinkenlights
Blinkenlights
Blinkenlights

Enkelheden selv. Jeg ville slet ikke nævne disse, hvis de ikke var så forbandet praktisk.

Lod en modstand (150-220 ohm er en god værdi.) Lige på den negative ledning af nogle lysdioder. Det lyser fra omkring 2v-6v uden at brænde ud. Og modstanden hjælper dig med at huske, hvilken side der er negativ. Stick dem, hvor du vil vide, at der er elektricitet. Find ud af om transistoren er sprængt. Gør en nicad-batteripakke til en lang levetid nattelys. Brug en blinkende kode-grænseflade til at læse værdier ud af din mikroprocessor (langsomt). Eller lav 8 af dem, og du har et one-byte display (plus den aktive ingrediens i Cylon øjne.) Lav dem. Lav mange. Lav dem nu.

Trin 5: Slutningen

Slutningen
Slutningen

Så dette "system" opfylder næsten alle mine udviklingsbehov. Det er modulært, skalerbart, kompakt og bærbart.

For eksempel udarbejdede jeg rutinerne for at køre rullende meddelelser på det 4-cifrede display (intro-side) på flyet på vej til en vens bryllup. Gør en god isbryder med stewardesser. Dette potientiometer -> ADC -> PWM -drevet ammeteropsætning blev breadboardet, kodet og debugget helt mellem min sofa og spisebord og rydder op på cirka 2 minutter, når venner kommer forbi. (Det er den alarm-tidsindstillende del af det, der skal være et måler-ur.) Jeg får opsætningen til at fungere nogle gange, når jeg har lyst til at spille hooky. Tilføj en lille pose godbidder (nogle kondensatorer og modstande, tilslutningstråd, transistorer, piezo-højttalere, fotodioder, mikrofoner, små motorer osv.), Og du vil være så langt foran MacGuyver, at det ikke engang er sjovt.

Anbefalede: