Innholdsfortegnelse:

Ghetto Development Environment: 5 trinn
Ghetto Development Environment: 5 trinn

Video: Ghetto Development Environment: 5 trinn

Video: Ghetto Development Environment: 5 trinn
Video: Fix Unreal Engine 5 LAG - Step By Step Solutions For Better Performance 2024, Juli
Anonim
Ghetto Development Environment
Ghetto Development Environment

For en stund tilbake la jeg ut en rask og skitten "el cheapo" -metode for å komme i gang med å programmere Atmel AVR-serien chips: Ghetto Programmer (versjon 1.0) Siden den gang har jeg vampet, re-vampet og ellers forbedret oppsettet mitt. Trodde det ville være fint å dokumentere det. Målet var å få et fleksibelt, kompakt, bærbart, bruk-hvor som helst, AVR-basert mikrokontroller prototypemiljø. På den billige (ish). Så uten videre, her er Ghetto Development Environment (GDE) (versjon 1.2).

Trinn 1: Settet

Settet
Settet

Det grunnleggende settet inneholder følgende ting: USB -programmerer. Fordi du vil kunne programmere mikrokontrollere fra den bærbare datamaskinen hvor som helst. Og fordi USB er en veldig praktisk kilde til +5v. programmering av vugger. En for hver type chip du spiller med. For meg betyr det en med 8 pins (ATtiny13, 15), en med 20 pins (ATtiny 2313), og en med 28 pins (ATmega8). Blinkenlys. Når noe er galt med koden din, er det ingenting som klarner det som å sette inn lys for å diagnostisere. I tillegg er LED -blinklys -programmet "Hello World" for mikrokontrollere. Brødbrett. Det er tross alt et utviklingssett.

Trinn 2: USB -programmereren

USB -programmereren
USB -programmereren
USB -programmereren
USB -programmereren

I Ghetto Programmer (v.1.0) brukte jeg en parallellportsprogrammerer. Det er flott fordi det er enkelt og billig og raskt. Men den bærbare datamaskinen min har ikke en parallellport. Jeg lekte litt med å lage serieport -programmerere, men ærlig talt er de like kompliserte som USB -versjonen og til og med serielle porter blir knappe. Min bærbare har faktisk bare USB. Så USB er det. Når du ser deg rundt, er USBTiny-programmereren ganske enkel og fungerer med gratis GNU/AVR-GCC-verktøy. Gjør det selv eller kjøp et sett? DIY -måten er bra hvis du allerede kan programmere en ATTiny2313 (med parallell programmerer) og ha en 12MHz krystall som sitter rundt. USBTiny Page beskriver det grunnleggende. Han avslutter programmeringskabelen med en parallellport, men jeg ville fullføre den i en standard 6-pinners topptekst hvis jeg startet på nytt. (Hvorfor? Fordi det er standard.) Her er hans pin-outs, og sjekk bildet nedenfor for kabeloppsett. PD3 - MISOPD5 - ResetPD6 - SCKPD7 - MOSII Hvis du lager din egen, vennligst lær av min erfaring og legg den i en fin plastboks. Hvis du ikke gjør det, vil det mislykkes etter hvert når 12MHz krystallet bryter av. Derfor bruker jeg nå … Den raske og elegante måten er Ladyadas USBtinyISP-sett. Det gir deg $ 22 tilbake, men du får en fin PCB, forhåndsprogrammert ATTiny2313 og en ren boks med fine kabler. Rå deler er uansett $ 15-16, og du trenger ikke ringe Digikey og deretter bekymre deg for å programmere din egen 2313. Det tar 30 minutter - 1 time å lodde alt sammen. Splurge. Stol på meg. (Ingen tilknytning, fornøyd kunde) Og så nettopp denne lenken: Ladyadas AVR -opplæring som virker ganske bra for meg. (Vær oppmerksom på at Ladyadas design og den originale USBTiny bruker forskjellige USB-produktidentifikasjonskoder-du må finne ID-strengene og kompilere avrGCC på nytt hvis du bytter mellom de to. Jeg tror det er instruksjoner på de respektive nettsidene.)

Hvis du bruker et Ubuntu Linux-system og bruker USBTiny-programmereren, er her kommandoene som får hele verktøykjeden i gang: sudo apt-get install build-essential avr-libc binutils-avr gcc-avr avrdude (testet på Hardy Heron) Hvis du har en AMD64-bue, kan du også trenge: byacc libusb-dev flex bison libc6-devand for deretter å kompilere AVRdude for hånd: (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 for 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 å teste) Hvis du ser noe som "avrdude: AVR -enhet initialisert og klar til å godta instruksjoner" så er du ' er ferdig. Oh yeah, og æren til Wendel Oskay for diagrammet over standard programmereren pinouts.

Trinn 3: Programmeringsvuggen

Programmeringsvuggen
Programmeringsvuggen
Programmeringsvuggen
Programmeringsvuggen
Programmeringsvuggen
Programmeringsvuggen

I Ghetto Programmer v.1.0 brukte jeg en programmeringsholder med en ikke-standard pin-inngang og med kvinnelige pin-headers for å stikke ting inn. Ikke-standardiserte pins er en dårlig idé fordi du ikke kan bruke vuggen din med noen andres programmerer, og omvendt. Kvinnelige pin-headers var morsomme fordi du direkte kunne koble lysdioder til dem, men når jeg begynte å gjøre noe mer komplekst, ville jeg uansett ende opp med å koble den til et brødbrett. Med den nye vuggen kuttet jeg ut mellommannen. Mindre håndledninger = bedre. Men den største fordelen med denne vuggedesignen er at du kan koble til holderen nesten hvor som helst du kan koble til AVR-brikken. Dette viser seg å være stort. I stedet for å designe ISP -kretser inn i roboten din eller hva som helst, stikker du bare denne holderen inn i IC -kontakten. Deretter kan du programmere/omprogrammere robotens hjerne i krets. Når du er ferdig med å utvikle, kobler du AVR-en til direkte, og du går videre til neste. Det er enkelt å lage vuggene-alt du trenger å gjøre er å koble pinnene fra 6-pinners topptekst til de riktige stedene på sjetongene. Denne gangen brukte jeg etsede PCB. Du kan like godt håndkoble det hele på perfboard. ATTiny13/15-holderen er laget med en 8-pinners wire-wrap-kontakt. Jeg elsker disse. Det er enkelt å sette brikken i de fine runde hullene, og de lange bena gir ekstra klaring på brødbrettet. Jeg laget PCB -sporene på frihånd med en Sharpie. ATTiny2313 holderen ble laget med Eagle og laserpapirtoneroverføringsmetoden. Jeg kunne ikke finne noen 20-pinners wire-wrap kontakter, så jeg måtte ty til en 20-pins vanlig socket loddet på 2 10-pin pins headers. Dette ender opp med en vugge med kortere ben, men det fungerer. Skjematisk og PDF -filen jeg brukte for kretsen er nedenfor. På begge måtte jeg håndkoble en ekstra linje. Sånn er livet.

Trinn 4: Blinkenlights

Blinkenlys
Blinkenlys
Blinkenlys
Blinkenlys

Enkelheten selv. Jeg ville ikke nevnt disse i det hele tatt hvis de ikke var så jævla hendige.

Lodde en motstand (150-220 ohm er en god verdi.) Rett på den negative ledningen til noen lysdioder. Den lyser fra rundt 2v-6v uten å brenne ut. Og motstanden hjelper deg med å huske hvilken side som er negativ. Fest dem der du vil vite at det er strøm. Finn ut om transistoren er sprengt. Gjør en nicad-batteripakke til et levetid nattlys. Bruk et blinkende kodegrensesnitt for å lese verdier ut av mikroprosessoren (sakte). Eller lag 8 av dem, og du har en en-byte skjerm (pluss den aktive ingrediensen i Cylon-øyne.) Lag dem. Lag mange. Lag dem nå.

Trinn 5: slutten

Slutten
Slutten

Så dette "systemet" dekker nesten alle mine utviklingsbehov. Den er modulær, skalerbar, kompakt og bærbar.

For eksempel utarbeidet jeg rutinene for kjøring av rullemeldinger på det firesifrede displayet (intro-siden) på flyet på vei til en venns bryllup. Gjør en god isbryter med flyvertinnene. Dette potensiometeret -> ADC -> PWM -drevet ammeteroppsett ble breadboardet, kodet og feilsøket helt mellom sofaen og spisebordet, og rydder opp på 2 minutter når venner kommer. (Det er den tidsinnstillende delen for alarmen til det som kommer til å bli en meterklokke.) Noen ganger får jeg oppsettet til å fungere når jeg har lyst til å spille hektisk. Legg til en liten pose med godbiter (noen kondensatorer og motstander, tilkoblingskabler, transistorer, piezo-høyttalere, fotodioder, mikrofoner, små motorer osv.), Og du vil være så langt foran MacGuyver at det ikke engang er morsomt.

Anbefalt: