Selvom jeg meget gerne vil dykke ned i de forskellige tilgængelige programmeringsmetoder, har en anden allerede det. Her er Dean Camera 's tutorial om AVRFreaks, AVR-programmeringsmetoder:
Der er mange måder at programmer AVRmicrocontrollers. Da mange mennesker læser om forskellige på én gang eller en anden, tænkte jeg, at jeg ville skitsere dem her, så deres spørgsmål kan bønnesvares hurtigt og effektivt. Tilgiv mig, hvis jeg savner en metode, der laver en fejl.
METODE 1: I systemprogrammering (ISP)
Understøttet af: Langt størstedelen af AVR'er (se nedenstående indlæg)
Understøttede programmerere: AVRISP MKI / II , JTAG MKII, STK500, STK600, Dragon, AVRISP-kloner, AVR910-programmerere, AVRONE
I SystemProgrammering er måske den mest almindelige metode til programmering af flash, EEPROM, sikring og lockbytes på hele AVR-linjen. Internetudbyderen kan programmere AVRsat ekstremt høje urfrekvenser (forudsat at målet AVR kører med en høj frekvens, og programmørerne understøtter det) og er metoden til valg for næsten alle AVR-hobbyister. Der er mange, mange AVRISP-kloner og AVR910-programmører på markedet i tillæg til det enkle at gøre -det-selvdongler, der opretter forbindelse til dincomputers parallelle port.
Nylige nye dongle-designs bruger muligvis computerens serielle port, men der er anført et bevis for, at denne metode er ekstremt langsom på grund af tekniske begrænsninger.
Internetudbyder kræver, at mål-AVR'en kører med en hastighed på mindst fire gange den for ISP-uret. Dette er en almindelig faldgrube og en kilde til forvirring for mange nye til AVR'er.
METODE 2: JTAG
Understøttet af: Se AVRStudio Tools-hjælp til MKI og MKII enhedsstøtte
Understøttede programmerere: JTAG-ICE, JTAG-ICE MKII, Dragon, JTAG-ICEclones, AVRONE, STK600 (kun programmering)
Teknisk set er JTAG adebugging-system , ikke en programmeringsmetode. JTAG-grænsefladen tillader stadig programmering af en AVR, der understøtter den.
JTAG er et fejlfindingsværktøj i systemet, der giver dig mulighed for at manipulere og undersøge status for en understøttet AVR, mens den kører i et kredsløb. JTAG tillader brugeren at stoppe eksekvering til enhver tid, manipulation af AVR's interne registre og meget mere.
De officielle JTAG-ICE-enheder fra ATMEL er blevet afløst af JTAG-ICEMKII, som understøtter den nyere og mere bredt understøttet på tværs af AVRrange DebugWire debugging-protokol såvel som programmering via ISP-metoden (se ovenfor).
JTAG-ICE-kloner er tilgængelige til lave priser, men deres begrænsede kompatibilitet med kun en håndfuld AVR begrænser deres anvendelighed. Uanset dette, hvis din AVRunderstøtter JTAG-grænsefladen, JTAG-ICE forbliver en meget flot og effektiv fejlretningsmetode og -programmer.
METODE 3: DebugWire
Understøttet af: Mange mindre AVR'er
Understøttede programmerere: JTAG-ICE MKII, Dragon, AVRONE
DebugWire er igen en debugging snarere end en programmeringsgrænseflade, men kan bruges til at indlæse programmer i understøttede AVR'er. DW-grænsefladen bruger en enkeltAVR-pin (/ RESET-linjen) til al kommunikation, hvilket gør den ideel til AVR-enheder med lavt pinantal.
METODE 4: Bootloader
Understøttet af : De fleste nyere AVR'er
Understøttede programmører: Ikke relevant
Igen teknisk set ikke en programmeringsmetode. En bootloader er et lille AVR-program, der sidder i en bruger -indstillelig reserveret sektion af den almindelige flash.Bootloadere gør brug af flash-selv-modifikationsfunktionerne tilgængelige i de nyere AVR'er for at tillade AVR-topprogrammet selv via programdata indlæst fra en ekstern kilde. Bootloaders kan hente deres data fra en hvilken som helst placering (f.eks. Eksternt dataflad eller SD-kort), men langt den mest almindelige type Bootloader kommunikerer med aPC via AVR's RS-232-port (seriel).
Bootloaders er begrænsede ved, at de bruger flash plads (begrænser størrelsen på den flash, der er tilgængelig for AVR's applikation), og de kan ikke
at ændre AVR-fusebits.
Bootloaders er bredt tilgængelige på internettet til download, men de lider af et "kylling og æg" -problem; du har brug for en anden type programmer, der er anført her for at programmere i bootloader i første omgang. Dette løses normalt ved konstruktionen af en simpel parallel portdongle (se ISP-sektion) eller ved køb af en AVR, der allerede er forudindlæst med en bootloader (f.eks. AVRButterflyboard). p>
METODE 5: HVPP (High Voltage Parallel Programming)
Understøttet af: De fleste ikke-TINY AVR'er (med undtagelser)
Understøttede programmører : STK500, STK600, Dragon, Homebrew Dongles, AVRONE
HøjspændingsparallelProgrammering er en metode til programmering, som sjældent bruges på grund af besværet, det kræver at konfigurere. Desværre er HVPP-programmering almindeligvis brugt til at "genoplive" AVR'er, hvornår sikringsbid er blevet konfigureret forkert via en anden programmeringsmetode.
Både STK500 og Dragons understøtter HVPP. Under HVPP hæves målets / RESET-pin til den usædvanligt høje værdi på 12V, som aktiverer det interne parallelle programmeringskredsløb. / RESET pin er den eneste pin i AVR'en (på HVPP-understøttede AVR'er), som kan hæves sikkert til dette niveau.
Du kan lave dine egne HVPP-dongle-brug af online-planer som denne.
METODE 6: Højspændings seriel programmering (HVSP)
Understøttet af: Mange TINY AVR'er (med undtagelser)
Understøttede programmører: STK500 , STK600, Dragon, Homebrew Dongles, AVRONE
HVSP svarer til HVPP, bortset fra at dataoverførslen udføres i stedet for parallelt. Dette er den alternative programmeringsmetode, der anvendes på mange TINY-seriens AVR'er, der mangler nok ben til HVPP.
METODE 7: PDI
Understøttet af: XMEGA AVRs
Understøttede programmerere: STK600, AVRONE, JTAG MKII, Dragon, AVRISP MKII
PDI er den nye programmeringsgrænseflade, der er baseret på debugWire-protokollen, for XMEGA-linjen med AVR'er. Det er ikke
bruges i øjeblikket på andre 8-bit AVRmicrocontrollere.
METODE 8: TPI
Understøttet af: 6-pin TINY AVR'er (ATTINY10 osv.) Understøttede programmerere: STK600, Dragon, AVRISP MKII
TPI er en meget lille programmeringsgrænseflade til derefter TINY-linjen AVR'er med limitedpins, som 6-pin ATTINY10. LikedW, TPI bruger enhedens / RESET lineas-del af kommunikationsinterfacet, men der er ligheden. Da den lille størrelse TINY AVRslack et fejlagtigt kredsløb på chip, brugerTPI-protokollen et nyt programmeringsinterface af tre ben i ahalf-duplex-protokol. Fordi linjen / RESET skal hæves til + 12V for programmering, når enhedens RSTDSB-pin er indstillet, understøttes dette i øjeblikket kun af det nyere STK600-programmeringskort.
Bonus FAQ-sektion!
Hvilken er den bedste metode?
Der findes ingen universel "bedste" metode. ISP-programmering er enkel og ekstremt populær, men alle ovenstående metoder fungerer. De to høje voltageprogrammeringsfunktioner (alt efter hvad der finder anvendelse på din enhed) er de mest funktionsrige, da de tillader reparation af en AVR, der har fået fejlkonfigureret dens sikringer. Disse metoder er imidlertid en smerte at sætte op, da det er grunden til, at de fleste brugere går med med ISP.
-
Jeg har lavet en parallelport-dongle. Kan jeg bruge det med AVRStudio?
Jeg er bange for ikke. AVRStudio kan ikke grænsefladen med nogen "dumme" dongler - det kræver en smart programmeringsenhed - der indeholder en mikrokontroller selv - for at dechifrere kommunikationsprotokollen, den sender. Enkle dongler uden amicrocontroller skal være "bit-banged" (dvs. de passende signaler simuleret gennem donglen via computeren).
-
Så min dongle er ubrugelig da?
Nej Du kan stadig programmere gennem en hjemmelavet dongle med et tredje partyprogrammeringssoftwareværktøj. AVRDude er en god, kendt, gratis kommandolinjeanvendelse - og den følger med WinAVR-pakken.
Hvad er mine muligheder, hvis jeg vil have min programmør til at arbejde med AVRStudio?
Vælg en programmør, der bruger en AVRStudio-understøttet protokol. Dette kan være den enkle "AVR910" -protokol (udfaset) eller en brugerdefineret implementering af den protokol, der bruges af STK500 / AVRISP. Bemærk, at disse programmer kræver en mikrocontroller i dem, hvilket fører til en catch-22-situation. Dette kan løses ved at have programmørens AVR-forprogrammerede på købstidspunktet med den relevante firmware eller ved at have AVR'en forprogrammeret med abootloader.
-
Ok, jeg vil gerne brug en bootloader. Hvordan får jeg det der i første omgang ?!
For at bruge en bootloader i enAVR skal du først have programmeret bootloaderen. Hvis du ikke har en eksisterende programmør (selv en simpel dum dongle er tilstrækkelig til den indledende programmering), kan du alternativt købe AVRforprogrammeret med en bootloader fra flere leverandører.
Atmelalso fremstiller Butterfly demoboard, hvis MEGA169 AVR kommer forudindlæst med en AVR-Studiokompatibel bootloader.
-
Hjælp! Jeg har rodet med sikringerne og knækket min AVR, mens jeg bruger ISP! Den mest almindelige fejl er at ændre sikringerne til urvalg til en ugyldig indstilling. Prøv at sætte et eksternt ur på AVRs XTAL1-pin, og se om det hjælper.
Hvis det ikke lykkes, skal du bruge en af højspændingsmetoderne. Disse vil rette enhver forkert konfiguration, inklusive ender, der involverer urkilden, da højspændingsmetoderne giver sin egenur til AVR'en til programmering.
-
Hvordan bruger jeg interface til min programmør?
Hvilken software du bruger til at grænseflade til din programmør afhænger af den type programmør, du bruger.
Enkle "dumme" dongler kræver tredjepartssoftware, såsom PonyProg eller AVRDude. Disse måske kommandolinie- eller GUI-værktøjer - lookaround på nettet, og du vil finpudse, så de passer til dine behov.
Programmører og bootloadere baseret på AVR910-protokollen kan bruges i AVRStudio. Vælg menuen Funktioner
valgmuligheden "AVRProg" for at åbne en GUI-skærm til interface med dit program. Som et alternativ er tredjepartsværktøjer som AVRDude også AVR910-kompatible.
Officielle værktøjer er tæt integreret i AVRStudio, især i tilfælde af fejlfindingsvarianter (JTAG / Dragon / osv.). Fra menuen AVRStudioTools skal du vælge undermenuen "ProgramAVR ..." og klikke på "Connect" -punktet. Fra dit nye vindue skal du vælge dit værktøj og dets forbindelsesinterface og klikke på ok.
Som det er tilfældet med de dumme dongler og AVR910-programmører, kan det officielle værktøj også bruges med tredje partyprogrammeringssoftware.
ol> (C) Dean Camera, 2009. Alle rettigheder forbeholdes. Ikke til reproduktion på andre websteder end AVRFreaks.net uden forudgående eksplicit tilladelse.