Innehållsförteckning:

Ghetto -utvecklingsmiljö: 5 steg
Ghetto -utvecklingsmiljö: 5 steg

Video: Ghetto -utvecklingsmiljö: 5 steg

Video: Ghetto -utvecklingsmiljö: 5 steg
Video: Lellow & Saliboy - Första klivet ( Official Video ) 2024, November
Anonim
Ghetto -utvecklingsmiljö
Ghetto -utvecklingsmiljö

För ett tag sedan lade jag upp en snabb och smutsig "el cheapo" -metod för att komma igång med programmeringen av Atmel AVR-seriens chips: Ghetto Programmer (version 1.0) Sedan dess har jag vampat, om-vampat och annars förbättrat mitt setup. Trodde att det skulle vara trevligt att dokumentera det. Målet var att få en flexibel, kompakt, bärbar, AVR-baserad mikrokontroller-prototypmiljö överallt. På den billiga (ish). Så utan vidare, här är Ghetto Development Environment (GDE) (version 1.2).

Steg 1: Satsen

Satsen
Satsen

Grundpaketet innehåller följande saker: USB -programmerare. Eftersom du vill kunna programmera mikrokontroller från din bärbara dator var som helst. Och eftersom USB är en mycket praktisk källa till +5v. Programmeringshållare. En för varje typ av chip du spelar med. För mig betyder det en med 8 stift (ATtiny13, 15), en med 20 stift (ATtiny 2313) och en med 28 stift (ATmega8). Blinkljus. När något är fel med din kod, rensar ingenting det som att tända lampor för att diagnostisera. Dessutom är LED -blinkersprogrammet "Hello World" för mikrokontroller. Breadboard. Det är trots allt ett utvecklingspaket.

Steg 2: USB -programmeraren

USB -programmeraren
USB -programmeraren
USB -programmeraren
USB -programmeraren

I Ghetto Programmer (v.1.0) använde jag en parallellport programmerare. Det är bra eftersom det är enkelt och billigt och snabbt. Men min bärbara dator har inte en parallellport. Jag lekte med att göra seriella portprogrammerare lite, men ärligt talat är de lika komplicerade som USB -versionen och till och med seriella portar blir knappa. Min bärbara dator har faktiskt bara USB. Så USB är det. När du ser dig omkring är USBTiny-programmeraren ganska enkel och fungerar med de gratis GNU/AVR-GCC-verktygen. Gör det själv eller köp ett kit? DIY -sättet är bra om du redan kan programmera en ATTiny2313 (med parallell programmerare) och ha en 12MHz kristall sittande. USBTiny Page beskriver grunderna. Han avslutar programmeringskabeln med en parallellport, men jag skulle avsluta den med en vanlig 6-stifts rubrik om jag skulle börja om på nytt. (Varför? För att det är standard.) Här är hans pin-outs och kolla bilden nedan för kabellayouten. PD3 - MISOPD5 - Återställ PD6 - SCKPD7 - MOSIILär av min erfarenhet och lägg den i en fin plastlåda om du gör din egen. Om du inte gör det misslyckas det så småningom när 12MHz -kristallen bryts av. Därför använder jag nu … Det snabba och eleganta sättet är Ladyadas USBtinyISP-kit. Det kommer att ge dig tillbaka $ 22, men du får en bra PCB, förprogrammerad ATTiny2313 och en ren låda med fina kablar. Rådelar kostar i alla fall $ 15-16, och du behöver inte ringa Digikey och sedan oroa dig för att programmera din egen 2313. Det tar 30 minuter - 1 timme att löda ihop allt. Splurge. Lita på mig. (Ingen anslutning, nöjd kund) Och såg just den här länken: Ladyadas AVR -handledning som verkar ganska bra för mig. (Och notera att Ladyadas design och den ursprungliga USBTiny använder olika USB-produktidentifieringskoder-du måste hitta ID-strängarna och kompilera avrGCC igen om du växlar mellan de två. Jag tror att det finns instruktioner på respektive webbsidor.)

Om du använder ett Ubuntu Linux-system och använder USBTiny-programmeraren, här är kommandona som kommer att få hela verktygskedjan igång: sudo apt-get install build-essential avr-libc binutils-avr gcc-avr avrdude (testad på Hardy Heron) Om du har en AMD64-båge kan du också behöva: byacc libusb-dev flex bison libc6-devand för att sedan kompilera AVRdude för hand: (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 behövs för 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 ## att testa) Om du ser något i stil med "avrdude: AVR -enhet initierad och redo att acceptera instruktioner" då är du ' gjort igen. Åh ja, och tack till Wendel Oskay för diagrammet över standardprogrammerarens pinouts.

Steg 3: Programmeringsvaggan

Programmeringsvaggan
Programmeringsvaggan
Programmeringsvaggan
Programmeringsvaggan
Programmeringsvaggan
Programmeringsvaggan

I Ghetto Programmer v.1.0 använde jag en programmeringsvagga med en icke-standardiserad stiftingång och med kvinnliga stifthuvuden att sticka in saker i. Icke-standardiserade pins är en dålig idé eftersom du inte kommer att kunna använda din vagga med någon annans programmerare, och vice versa. Kvinnliga pin-headers var roliga eftersom du direkt kunde ansluta lysdioder till dem, men när jag skulle börja göra något mer komplext skulle jag sluta koppla in det i ett brödbräda ändå. Med den nya vaggan klippte jag ut mellanhanden. Mindre handledningar = bättre. Men den största fördelen med denna vaggdesign är att du kan ansluta vaggan nästan var som helst du kan ansluta AVR-chipet. Detta visar sig vara enormt. Istället för att designa ISP -kretsar i din robot eller vad som helst, stoppar du bara den här vaggan i IC -uttaget. Sedan kan du programmera/omprogrammera din robots hjärna i krets. När du är klar med att utveckla, koppla in AVR: n direkt och du går vidare till nästa. Det är enkelt att göra vaggarna-allt du behöver göra är att ansluta stiften från 6-stiftshuvudet till rätt plats på chipsen. Den här gången använde jag etsade PCB. Du kan lika gärna handtråda det hela på perfboard. ATTiny13/15-vaggan är gjord med ett 8-poligt trådlindingsuttag. Jag älskar dessa. Det är lätt att sätta in chipet i sina fina runda hål och de långa benen ger extra spel på brödbrädan. Jag gjorde PCB -spåren med frihand med en Sharpie. ATTiny2313 -vaggan gjordes med Eagle och laserpapperets toneröverföringsmetod. Jag kunde inte hitta några 20-stifts trådlindade uttag, så jag var tvungen att tillgripa ett 20-stifts vanligt uttag lödt på 2 10-stifts stifthuvuden. Detta slutar med en vagga med kortare ben, men det fungerar. Schemat och PDF -filen jag använde för kretsen är nedan. På båda var jag tvungen att handtråda en extra linje. Sånt är livet.

Steg 4: Blinkenlights

Blinkljus
Blinkljus
Blinkljus
Blinkljus

Enkelheten själv. Jag skulle inte nämna dessa alls om de inte var så jävla praktiska.

Löd ett motstånd (150-220 ohm är ett bra värde.) Rakt på den negativa ledningen på vissa lysdioder. Den tänds från cirka 2v-6v utan att brinna ut. Och motståndet hjälper dig att komma ihåg vilken sida som är negativ. Stick dem där du vill veta att det finns elektricitet. Ta reda på om den transistorn är blåst. Förvandla ett nicad-batteri till ett långlivat nattljus. Använd ett blinkande kodgränssnitt för att läsa värden ur din mikroprocessor (långsamt). Eller gör 8 av dem och du har en en-byte display (plus den aktiva ingrediensen i Cylon ögon.) Gör dem. Gör många. Gör dem nu.

Steg 5: Slutet

Slutet
Slutet

Så detta "system" uppfyller nästan alla mina utvecklingsbehov. Det är modulärt, skalbart, kompakt och bärbart.

Till exempel utarbetade jag rutinerna för att köra rullande meddelanden på den 4-siffriga displayen (intro-sidan) på planet på väg till en väns bröllop. Gör en bra isbrytare med flygvärdinnorna. Den här potientiometern -> ADC -> PWM -driven ammeterinställning brödades, kodades och felsökades helt mellan min soffa och matbord och städas på ungefär 2 minuter när vänner kommer över. (Det är den alarm-tidsinställande delen av det som kommer att bli en mätarklocka.) Jag tar upp installationen till jobbet ibland när jag känner för att spela hooky. Lägg till en liten påse med godsaker (några kondensatorer och motstånd, anslutningstråd, transistorer, piezohögtalare, fotodioder, mikrofoner, små motorer, etc.) så kommer du så långt före MacGuyver att det inte ens är roligt.

Rekommenderad: