Datorkunskap, hjälp och reparation

Miniatyr usb-programmerare för avr-mikrokontroller. Programmerare för AVR-mikrokontroller (USB, COM, LPT)

Tidigare använde jag AvrUsb500 av Petka (STK500) och AVR Studio 4 för att flasha AVR-mikrokontroller. Allt var bra tills FTDI FT232RL-chippet misslyckades och inte ville fungera. Efter det började jag leta efter alternativ och kom över Khazama AVR programmerare och . Jag gillade genast programmet för dess minimalism, det har ett enkelt och intuitivt gränssnitt. Liten och avlägsen. Sedan dess har jag använt denna underbara AVR-programmerare.

Khazama AVR-programmeringsfunktioner

Khazama fungerar med alla vanliga AVR-mikrokontroller, låter dig programmera flash och eeprom, läsa innehållet i flash- och eeprom-minnet, radera chipet och ändra konfigurationen av säkringsbitar (säkringar och låsbitar). Allt du behöver för att flasha AVR-mikrokontroller. Säkringarna konfigureras genom att välja klockkällan från rullgardinsmenyn, så sannolikheten att "döda" styrenheten av misstag minskar kraftigt. Säkringar kan också ändras genom att placera kryssrutor i det nedre fältet, medan du inte kan bocka för en obefintlig konfiguration, vilket gör säkringskonfigurationen säkrare. Och detta är också ett stort plus.

Inspelningssäkringar

Säkringarna skrivs till mikrokontrollerns minne genom att trycka på knappen Skriv allt. Det finns en Spara-knapp för att spara den aktuella konfigurationen, och Load returnerar den sparade. Standardknappen används för att skriva standardsäkringskonfigurationen, till exempel att mikrokontrollerna kommer från fabriken, vanligtvis 1MHz från den interna RC.
I allmänhet visade den sig från den bästa sidan när det gäller stabilitet, säkerhet och hastighet under hela tiden för att använda denna programmerare. Jag rekommenderar att du använder den till alla som vill programmera AVR-mikrokontroller.

I mitt fall är detta den absoluta rekordhållaren när det gäller leveranshastighet - cirka 5 månaders slarvig vandring, det är inte klart var. Trots den monstruösa tidsfördröjningen fick jag ändå paketet, vilket jag är otroligt glad över, trots bristerna, som jag kommer att berätta om nedan. Eftersom jag har ett väldigt dåligt minne var det nödvändigt att kombinera den användbara informationen som fanns någonstans på ett ställe i form av ett memo, att samla in den bit för bit i olika skrymslen och vrår av nätverket visade sig vara en icke-trivial sak. , så jag ordnar allt detta i ett separat inlägg.
USB ISP - den billigaste AVR-kontrollerprogrammeraren som finns på rea, togs för att vidga mina vyer och studera AVR mer djupgående.
Granskningen inkluderar: en beskrivning av programmeraren, hur man ansluter den till chippet, ställer in den i AvrDude Prog, Khazama, Atmel Studio 7 och mer.

Naturligtvis, istället för det, kan du använda Arduino UNO med ArduinoISP-skissen insydd i den, men det är inte bekvämt, att pilla med kablar, speciellt om det bara finns en UNO, avskräcker entusiasm. Det var lättare att ha en sådan programmerare separat, eller snarare två. Av två anledningar:
1) Redan före köpet var det redan klart från recensionerna att lödkvaliteten på dessa enheter var lidande, och några av dem kom också med delade zenerdioder. Det beslutades att spela säkert genom att beställa två.
2) En programmerare kan också sys till en annan genom att omorganisera bygeln på slavenheten.

Specifikationer

OS som stöds: Windows, macOS, Linux
CPU: Atmega8A
PC-anslutningsgränssnitt: USB
Programmeringsgränssnitt: ISP (in-circuit)
Programmeringsspänning: 5V eller 3,3V (beroende på JP2-bygelposition)
Programmeringsfrekvens: 375 kHz (standard) och 8 kHz (med bygel JP3 stängd)
Styrenheter som stöds: alla AVR med SPI-gränssnitt
Beskrivning:

Lista över mikrokontroller som stöds

ATmega-serien

ATmega8 ATmega48 ATmega88 ATmega168 ATmega328
ATmega103 ATmega128 ATmega1280 ATmega1281 ATmega16
ATmega161 ATmega162 ATmega163 ATmega164 ATmega169
ATmega2560 ATmega2561 ATmega32 ATmega324 ATmega329
ATmega3290 ATmega640 ATmega644 ATMEGA64 ATmega649
ATmega6490 ATmega8515 ATmega8535

Liten serie

ATtiny12 ATtiny13 ATtiny15 ATtiny26 ATTINY25
ATtiny45 ATtiny85 ATtiny2313

Klassisk serie

AT90S1200 AT90S2313 AT90S2333 AT90S2343 AT90S4414
AT90S4433 AT90S4434 AT90S8515
AT90S8535

CAN-serien

AT90CAN128

PWM-serien

AT90PWM2 AT90PWM3

Utseende

Leveransuppsättningen är minimal - en programmerare + en kabel utan ett elastiskt band. I mitt fall, dubbelt så mycket.

Föreställningskulturen är riktigt halt, snett lödda kammar fångade mig direkt. Överallt, där det är möjligt, finns det spår av flussmedel, och med oxider låg tydligen programmerarna i lagret länge, och de sattes ihop med den hastighet som är inneboende i kineserna.















Vissa hål är inte helt fyllda med lod



SMD-element är också snett lödda



Jag rätade ut kammen lite senare, det var smärtsamt obehagligt att titta på en sådan sned, jag lödde elementen och tvättade sedan brädan



Måtten på kortet är något större än USB-TTL-omvandlaren på CP2102



Tåget är ca 30cm långt, det finns en uppfattning om att ju kortare tåg desto bättre. Vissa gör det kortare med flit. Om du beställer den ursprungliga USBASP - det finns en komplett kabel redan 50cm.



Styrelsens kontroller

Det finns tre byglar på kortet som ställer in olika driftslägen för programmeraren:
JP1- stängs i händelse av uppdatering av firmware för själva programmeraren
JP2- trippelbygel, här väljer du vilken spänning som ska tillföras mikrokontrollern som blinkar, eller 5V (vänster position) och 3,3V (höger position)
JP3- om den är stängd kommer styrenhetens programmering att ske med en reducerad frekvens, men kineserna lödde inte kammen här, eftersom. på denna firmware krävs det inte
Programmeraren, som du kan se, är byggd på basis av Atmega8 med 12 MHz kvarts. Elementet längst upp till höger, signerat F1, med en inverterad siffra 4, är en återställningsbar säkring som skyddar USB-porten på en PC/laptop om en kortslutning plötsligt uppstår på kortet som blinkar. Under bygeln JP2 det finns en LDO-stabilisator 662K, vilket sänker spänningen från 5V till 3,3V om bygeln är inställd i rätt läge.

Installation av drivrutiner

För att börja använda programmeraren måste du först installera drivrutiner för den. Jag sätter in valfri programmerare i USB-porten på datorn, en signal om ny utrustning låter, lysdioden på själva enheten är på, men det finns ingen automatisk sökning efter drivrutiner.
notera. innan du installerar drivrutinen måste du inaktivera verifiering av digital signatur i Windows
1) Ladda ner, packa upp till en lämplig plats.
2) Gå till "Enhetshanteraren", till exempel, håll muspekaren över huvudknappen (Win10), högerklicka och välj "Enhetshanteraren".

3) I grenen "Andra enheter" kan du se en oidentifierad USBASP-enhet med en orange triangel -> håll muspekaren över den, högerklicka -> "Uppdatera drivrutiner ..."

4) Ange sökvägen till den tidigare uppackade drivrutinsmappen - "libusb_1.2.4.0", klicka på "OK"

5) "Installera den här drivrutinen ändå"

6) Klart, nu är den orangea triangeln borta, drivrutinerna är installerade



Fellow Firmware

Jag visste redan innan att kineserna säljer dessa programmerare utan den senaste firmware. Jag bestämde mig för att först uppdatera firmware på en av dem och sedan, för intressets skull, jämföra båda programmerarna i drift. För att göra detta ansluter jag båda enheterna med en kabel, på mastern (som jag sätter in i USB-porten), inga byglar berörs, och på slavprogrammeraren (på vilken vi kommer att uppdatera firmwaren) ordnade jag om bygeln från JP2JP1:



Jag går in i Khazama AVR Programmer-programmet, väljer ATmega8 från rullgardinsmenyn och läser först Flash-minnet genom menyalternativet "Kommando" -> "Läs FLASH till buffert" för att spara den kinesiska fabriksfirmwaren åt mig själv. För säkerhets skull.

I det här fallet kommer ett sådant fel att dyka upp med jämna mellanrum, stänger fönstret, programmet fortsätter att fungera.

Läsning pågår, vilket slutar med ett popup-fönster om lyckad inläsning av FLASH-minnet i bufferten

Nu måste du spara innehållet i bufferten: "File" -> "Save FLASH Buffer As ...". Välj en lämplig plats där den gamla firmware ska sparas, ge ett namn (till exempel kallade jag det firmware_1) och lägg till filtillägget * .hex - om du inte skriver det sparas det som en enkel fil utan en förlängning.


Jag laddar ner firmware för programmeraren från sidan, arkivet usbasp.2011-05-28.tar.gz(i samma arkiv finns drivrutiner för Windows, jag packar upp innehållet till en lämplig plats.
Under tiden kommer jag i Khazama att ladda upp den nedladdade firmware till bufferten. "Fil" -> "Ladda FLASH-fil till buffert". Jag väljer firmware, där atmega8 står skrivet i namnet, eftersom programmeraren som ska flashas finns på detta chip.

Som du kan se finns det tre firmware här - för Atmega8, 48 och 88. I vårt fall Atmega 8 - jag väljer det.

Jag syr. "Kommando" -> "Skriv FLASH-fil till buffert". Felet uppstår igen, men efter det finns en process som slutar med framgång.



Eftersom "programmering" i vanlig mening betyder inställning 1, då när man arbetar med säkringar är allt precis tvärtom, vilket orsakar förvirring och i det här fallet kan du oavsiktligt blockera styrenheten och då kommer det inte längre att vara möjligt att blinka Det. Khazama AVR-programmeraren är bekväm för att se säkringsbitar - där kan du tydligt se och schemalagd vilka som är installerade och vilka som inte är det.

De finns längs vägen "Kommando" -> "Säkringar och låsbitar ...", ett fönster öppnas:

Där, genom att trycka på "Read All"-knappen, räknas säkrings- och låsslag, och det ökända felet kommer att hinna komma ut så många som 5 gånger i rad. Det strömmar in fel på fabrikens kinesiska firmware. Men om du sätter in en nyligen flashad programmerare i USB-porten, med den fasta programvaran nedladdad från länken ovan, kommer dessa fel inte längre att komma ut, men felen kommer ut någon annanstans, men om dem senare.

Kommunikation med Pro Mini-kort (Atmega 168, 3,3V/8MHz)

I det här fallet är programmeringsstiften anslutna till stiften på Pro Mini-kortet, som illustreras i det schematiska diagrammet nedan. Byglar är inte omarrangerade, d.v.s. stannar på 5V.
Trots att Pro Mini-kortet är signerat som 3,3V kan 5V även levereras till den 168:e Atmega. AMS1117-stabilisatorn på 3,3V är förresten i allmänhet lödd ur kortet.



AVRDUDE PROG 3.3
Konsolprogrammet för blinkande mikrokretsar har inte sitt eget grafiska gränssnitt, det fungerar i lager från kommandoraden, men många skal har skrivits av entusiaster för det, för att det ska vara enkelt att arbeta med det. Ett av dessa skal heter AVRDUDE PROG, skapat av rysktalande utvecklare. Detta skal, enligt min mening, är bekvämt bara för Flash-blinkande MK. Efter lanseringen väljs styrenheten, i detta fall Atmega168 och programmerartypen är USBasp. Efter det kan du skriva/läsa minne. Både på fabrikens firmware och på den nya - i båda fallen var det inga problem med kommunikationen med Atmega168. För intressets skull flashade jag Arduinos standardblinkskiss, exporterad till en binär HEX-fil. Allt är smidigt.




Khazama AVR programmerare
Här räcker det med att välja mikrokontroller från rullgardinsmenyn och du kan redan arbeta med minne/bitar.
Men om den fasta programvaran från fabriken är installerad på själva programmeraren, kommer fel regelbundet att dyka upp, som redan nämnts ovan, på den nya firmware, dessa fel finns inte längre där.


Kommunikation med ATtiny13A-kontroller i SOIC8-paket

Anslutning enligt schemat nedan. Men det är här som saker och ting blir lite mer intressanta.

Eftersom det blotta chippet finns i SOIC8 SMD-paketet, placerade jag i det här fallet i SOIC8-DIP8-adaptern för enkel anslutning till programmeraren i framtiden. Du kan läsa en översikt över denna adapter.

AVRDUDE PROG 3.3
Här väljs styrenheten med samma namn, USBasp-programmeraren, från listan, och om programmeraren blinkar med kinesisk fabriksfirmware går alla operationer smidigt och smidigt. Det är dock värt att ersätta programmeraren med en annan med uppdaterad firmware, då uppstår ett fel under någon operation.

Det verkar på grund av det faktum att varken programmet eller programmeraren automatiskt kan gå in i det långsamma programmeringsläget som krävs för ATtiny13. Men det finns åtminstone två alternativ:
1) Järn: stäng bygeln JP3

2) Programvara: redigera filen "programm.ini" i mappen med programmet AVRDUDE PROG 3.3


Ange fyra rader kod där och spara. (tagen)
progisp=jtag2pdiportprog=COM1portenabled=1 progisp=Usbasp -B 3 portprog=usb portenabled=0

Notera. Här används nyckeln "-B", som är engagerad i överföringen av programmeraren till en reducerad programmeringsfrekvens. Värde "3" - tid i mikrosekunder

Efter det, kör AVRDUDE PROG 3.3 igen och välj UsbaspSpeed ​​​​i rullgardinsmenyn över programmerare. Arbeta nu med ATtiny13 på programmeraren med den nya firmwaren kommer att vara felfritt, och JP3-bygeln behöver inte längre stängas i detta fall.

Khazama AVR programmerare
Styrenheten väljs från listan och nästan samma situation.

Programmeraren med fabriksfirmware fungerar bra med ATtiny13, förutom de ständigt uppträdande fönstren med ett fel, som jag redan pratat om tidigare.
Men med programmeraren på den nya firmwaren, visas redan ett annat fel med oförmågan att läsa signaturen (digital signatur) för kontrollern.

Men det är värt att stänga bygeln JP3 och du kan arbeta säkert


Eller ställ bara in driftsfrekvensen från rullgardinsmenyn längs vägen "Kommando" -> "Programalternativ", jag ställer in frekvensen till 187,5 kHz.

Notera. Programmeringsfrekvensen måste vara minst 4 gånger lägre än klockfrekvensen för den blinkande mikrokretsen. Men om du tittar på säkringarna som läses från ATtiny13, så är den sista raden Int.Rc.Osc. 9,6 MHz indikeras.
Som ett minimum kommer en nybörjare att ha en fråga - varför visas samma fel på 1,5 MHz-uppsättningen i KHazame? Och också varför, om du i AtmelStudio skriver till exempel koden för att blinka lysdioden med en frekvens av en gång per sekund och skriver i makrot:
#define f_cpu 9600000 så kommer lysdioden att blinka väldigt långsamt genom att ladda upp koden till Attiny13?
- titta på näst sista raden, var Dela klocka med 8 interntär den medföljande frekvensförskalaren som delar denna 9,6MHz med 8, så den faktiska chipfrekvensen här är 1,2MHz. Om du väljer en frekvens på 187,5 kHz eller mindre försvinner därför felen och du kan arbeta normalt med styrenheten.

Anteckning 2. Metoden med val av frekvens i KHazame är flera gånger snabbare än metoden med fysisk stängning av JP3-bygeln, eftersom frekvensen i det senare fallet reduceras till 8 kHz.

Programmerarintegrering i Atmel Studio 7

Atmel Studio är en utvecklingsmiljö från Atmel, men den kan inte fungera direkt med USBASP, speciellt inte kinesiska. Men tack vare samma AVRDUDE-program, som är en del av AVRDUDE PROG 3.3-paketet, som kommer att spela rollen som en mellanhand här, kan du bygga en "krycka" och sedan lägga till möjligheten att flasha MK ansluten via USBASP redan i själva miljön.

Först måste du starta miljön, det antas att vi redan har skrivit och byggt en del kod. I mitt exempel är detta en enkel LED-blinker - Blink.

I det övre verktygsfältet, välj "Verktyg" - "Externa verktyg ..."

Ett litet fönster öppnas, klicka på "Lägg till"

I det översta fältet Titel: ange ett lämpligt namn, jag skrev "Atmega168", eftersom konfigurationen som jag kommer att ge nedan gäller specifikt för denna kontroller, och för alla andra kontroller konfigureras den individuellt.
I det stora fältet högst upp dupliceras instrumentets namn automatiskt.

Andra raden, fält Kommando:- här måste du ange sökvägen till filen "avrdude.exe", som finns i mappen med ovanstående program

Tredje raden, fält "Argument:" du måste ange själva konfigurationen

Konfiguration för Atmega168

P m168 -c usbasp -P usb -U flash:w:$(ProjectDir)Debug\$(Målnamn).hex:a
-p - styrenhetsnamn
-c - vilken programmerare
-P - port genom vilken firmware kommer att laddas upp
-U - vilken operation kommer att utföras med vilket minne (i detta fall, skriva till Flash)
Om du behöver konfigurera för en annan MK måste parametern "m168" ändras till motsvarande styrenhet som kommer att blinka. Till exempel "m8" för Atmega8 eller "m328p" för Atmega328p. Se parametrarna för andra MKs - du hittar även beskrivningar av AVRDUDE-nycklarna där.

Konfiguration för ATtiny13


När du har fyllt i fälten klickar du på "Apply" och "OK". Fönstret stängs

Nu, om du klickar på "Verktyg" igen, kommer det nyskapade verktyget att dyka upp där. Och genom att klicka på den kommer den kompilerade koden automatiskt att blinka in i styrenheten.

Men denna operation sker med två klick, vilket inte är särskilt bekvämt. Vi måste ta med det här verktyget till huvudverktygsfältet så att det alltid är i sikte.
För att göra detta, gå till "Verktyg" igen och klicka sedan på objektet "Anpassa ..."
Följande fönster öppnas:

Gå till fliken "Kommandon" - klicka på knappen "Lägg till kommando ...".

Ett annat fönster kommer att visas. I den - välj "Verktyg" i den vänstra kolumnen och välj "Externt kommando 1" i den högra kolumnen. Klicka på "OK"

"Externt kommando 1" kommer att vara överst på listan, och var uppmärksam på själva verktygsfältet - objektet "Atmega168" har dykt upp i gränssnittet.

Men det verkar för mig att platsen som tilldelats den inte är helt framgångsrik, det är önskvärt att flytta den till höger, för detta trycks knappen "Flytta ner" (ett klick = flytta en position till höger). Efter det kan du stänga fönstret genom att klicka på "Stäng"-knappen och sy chippet direkt från studion med ett klick genom den övervakade programmeraren.


När chippet blinkar med denna metod visas AVRDUDE-konsolfönstret i en sekund. Men det kan vara nödvändigt att på något sätt spara den här loggen för vidare visning - då måste du i fönstret "Externa verktyg" kontrollera fönstret "Använd utdata".

Och nu kommer loggen att visas i utdatafönstret, som finns längst ner i programmet ATmel Studio 7. Den här kryssrutan kan ställas in separat för varje styrenhet som läggs till i "Externa verktyg".

Tillägg för programmerares säkringar

Från READMI-dokumentet som följer med drivrutinerna och firmware för USBASP visade det sig senare att utvecklaren rekommenderar att man ställer in en viss konfiguration av säkringsbitarna som bestämmer den externa resonatorns funktion.
Nackdelen med khazam's är att HEX-värdena för de inställda bitarna inte visas i säkringsfönstret. Du kan redan se detta i AVRDUDE PROG. Fabrikssäkringar inställda av kineserna ser ut så här ( var noga med att sätta en prick "invers" - markerad med en blå rektangel):

Det är nödvändigt att ta bort två kryssrutor från "BODEN" och "SUT1" (markerad med en röd oval),
sätt två kryssrutor på "CKOPT" och "SUT0" (markerade med en grön rektangel),
i den högra kolumnen kommer HEX-värdena för de ändrade bitarna att visas (markerade med en fet röd rektangel): Lock Byte: 3F, Säkring hög byte: C9, Säkring låg byte: EF.

Om allt passar kan du trycka på "programmering"

UPPMÄRKSAMHET. Onda säkringsslag RSTDISBL- rör inte i alla fall, annars kommer installationen att blockera kontrollern och då kommer det inte längre att vara möjligt att flasha den via USBASP.
_____________________________________

Slutsatser

Testat, det fungerar. Om khazam inte är planerad att användas, är det ingen idé att uppdatera programmerarens firmware, eftersom det fungerar bra ändå, och i fallet med ATtiny13 krävs inga redigeringar eller byglar. Den senaste firmware - av någon anledning visade sig vara mer nyckfull i detta avseende. Det enda, efter att ha tagit emot, måste brädet lödas och tvättas.

Länklista

USBASP-programmerare - enhet, pinout, anslutning, firmware

Idag ska vi titta på hur man, utan extra kostnad och snabbt, programmerar vilken AVR-mikrokontroller som helst som stöder seriellt programmeringsläge (ISP-gränssnitt) via en dators USB-port. Som programmerare kommer vi att använda en mycket enkel och populär programmerare USBASP, och som ett program - AVRdude_Prog V3.3, som är designad för programmering av MK AVR.

Programmerare USBASP

För att programmera mikrokontrollern behöver du ha två saker:
- programmerare
- lämplig programvara för att registrera data i MK
En av de enklaste, mest populära och miniatyr AVR-programmerare är USBASP programmerare, skapad av tysken Thomas Fischl.
Det finns många olika kretslösningar för denna programmerare, du kan montera ihop programmeraren själv eller köpa den (kostnad - 2-3 dollar). Vid självmontering bör man komma ihåg att den monterade programmeraren måste flashas med en programmerare från tredje part.

Vi kommer att överväga den mest "fancy" versionen av programmeraren:


Funktioner hos programmeraren:
- fungerar med olika operativsystem - Linux, Mac OC, Windows (för Windows-operativsystemet, för att programmeraren ska fungera måste du installera drivrutiner - arkivera i slutet av artikeln)
- programmeringshastighet upp till (programmeringshastighet kan ställas in själv, till exempel i AVRDUDE_PROG) 375 (5) kb/s
- har ett 10-stifts ISP-gränssnitt (överensstämmer med ICSP-standarden med en 10-stifts pinout)
- stöder två programmeringsmatningsspänningar - 5V och 3,3V (alla PC USB-portar fungerar inte med 5 Volt)
- drivs av en dators USB-port, har inbyggt strömskydd (500 mA återställbar säkring)

Syftet med hopparna:
kontakt JP1- designad för att blinka programmerarens mikrokontroller (för att blinka - du måste stänga kontakterna)
kontakt JP2- programmerarens matningsspänning - 5 volt eller 3,3 volt (som standard - 5 volt, som på bilden). En programmerbar mikrokontroller, eller designen i vilken den är installerad, med en strömförbrukning på 300-400 mA kan drivas från programmeraren, för detta finns en + 5V (VCC) utgång på kontakten.
JP3-kontakt- bestämmer SCK-dataklockfrekvensen: öppen - hög frekvens (375 kHz), stängd - låg frekvens (8 kHz)
Läs mer om JP3-kontakt
Jumper JP3 är designad för att minska hastigheten för att skriva data till mikrokontrollern. Om mikrokontrollern har en klockfrekvens på mer än 1,5 MHz kan bygeln öppnas, samtidigt som programmeringshastigheten är hög. Om klockfrekvensen är mindre än 1,5 MHz är det nödvändigt att kortsluta bygelutgångarna - minska programmeringshastigheten, annars kommer mikrokontrollern inte att kunna programmeras. Till exempel, om vi programmerar ATmega8 mikrokontroller (i princip är nästan alla AVR MKs inställda på en standardklockfrekvens på 1 MHz), som har en standardklockfrekvens på 1 MHz, kommer det att vara nödvändigt att stänga bygelstiften (som i fotot). Det är förmodligen bättre att hålla denna bygel ständigt stängd så att du, om du glömmer dess existens, inte lider av frågan - varför mikrokontrollern inte blinkar.

Om du använder den som publicerats på webbplatsen kan du glömma bygeln

Programmeraren stöds av följande programvara:
— AVRdude
— AVRdude_Prog
— Bascom-AVR
— Khazama AVR Prog
eXtreme Burner AVR

Att arbeta med en sådan programmerare är mycket enkelt - anslut programmerarens motsvarande utgångar till mikrokontrollern, anslut den till USB-porten på datorn - programmeraren är redo att arbeta.
USBASP 10-stifts programmerarkabel stift :


1 - MOSI - datautgång för seriell programmering
2 - VCC - +5 (+3,3) Voltutgång för att driva den programmerbara mikrokontrollern eller det programmerbara kortet från datorns USB-port (maxström 200 mA - för att inte bränna USB-porten)
3 - NC - används ej
4 - GND - gemensam tråd (ström minus)
5 - RST - ansluten till RESET-stiftet på mikrokontrollern
6-GND
7 - SCK - dataklockutgång
8-GND
9 - MISO - dataingång för seriell programmering
10-GND

Installera drivrutiner för USBASP-programmeraren

Att installera drivrutinen för USBASB-programmeraren är mycket enkelt:
- anslut programmeraren till USB-porten på datorn, och en ny enhet "USBasp" kommer att visas i enhetshanteraren med en gul triangel och ett utropstecken inuti, vilket betyder att inga drivrutiner är installerade
- ladda ner och packa upp filen "USBasp-win-driver-x86-x64-ia64-v3.0.7"
- kör filen "InstallDriver" - drivrutinerna för programmeraren kommer att installeras automatiskt
- kolla enhetshanteraren - den gula triangeln ska försvinna (om inte, högerklicka på "USBasp"-enheten och välj "Uppdatera"
— programmeraren är redo att arbeta

FUSE-bitar vid programmering av USBASP AVR:

Arkivet "usbasp.2011-05-28" innehåller mappar:
=BIN:
- win-driver - drivrutiner för programmeraren
- Firmware - Firmware för mikrokontroller Mega8, Mega88, Mega48
= kretsdiagram över en enkel programmerare i PDF och Cadsoft Eagle

När en kinesisk programmerare blinkar rekommenderar jag att du installerar FUSE-biten CKOPT. CKOPT är relaterat till klockgränsen. Som standard är CKOPT återställt och stabil drift av programmerarens mikrokontroller när en kvartsresonator används är endast möjlig upp till en frekvens på 8 MHz (och programmerarens mikrokontroller arbetar med en frekvens på 12 MHz). Inställning av FUSE-biten CKOPT ökar den maximala frekvensen till 16 MHz. Kineserna rör inte denna FUSE-bit, vilket ganska ofta leder till ett fel hos programmeraren (vanligtvis upptäcker inte systemet programmeraren).

Arkiv "USBasp-win-driver-x86-x64-ia64-v3.0.7" utformad för att installera drivrutiner som nämns i artikeln

(518,9 KiB, 13 188 träffar)

(10,9 MiB, 24 942 träffar)

USBASP-programmeraren som beskrivs i artikeln, blinkade med den senaste versionen av programmet, testad i drift, med installerade byglar och byglar, kan du köpa i MirMK-SHOP onlinebutiken

Programmeraren är baserad på Objective Development-drivrutinen och är helt kompatibel med den ursprungliga ATMEL AVR910-programmeraren. Beskrivning av enheten. Säkringen skyddar strömledningarna i USB-porten från oavsiktliga kortslutningar i programmerarens strömförsörjningskretsar. Dioderna VD1, VD2 är kisellikriktare, de är designade för att sänka mikrokontrollerns strömförsörjning till 3,6 V. Enligt dokumentationen kan styrenheten arbeta med denna matningsspänning upp till en frekvens på drygt 14 MHz. Lysdioder VL1 (" RD"), VL2(" WR”) signalerar programmerarens aktuella åtgärder och indikerar läs- och skrivlägen. LED VL3 (" PWR”) indikerar att ström tillförs .

Bygel J1 - ( Ändra) tjänar till den initiala programmeringen av styr-MK-programmeraren. När den är stängd ansluts en extern programmerare till ISP-kontakten och styrprogrammet laddas in i MK. Efter programmering av styr-MK-programmeraren måste denna bygel öppnas och bygeln J2 - NORMal stängas.

Bygel J3 LÅG SCK sänker klockfrekvensen för SPI-porten på MK-programmeraren till ~ 20 kHz. När bygeln är öppen är SPI-frekvensen normal, när bygeln är stängd reduceras den. Du kan byta bygel när du är på språng, eftersom MK-programmerarens kontrollprogram kontrollerar statusen för PB0-linjen varje gång SPI-porten ansluts. Det rekommenderas inte att byta bygel medan processen att skriva/läsa av den programmerbara MK körs, eftersom detta troligen kommer att leda till förvrängning av skrivna/lästa data. Jumper J3 introduceras för möjligheten att programmera MK AVR, klockad från en intern 128 kHz generator.

Motstånd R10 - R14 är designade för att matcha signalnivåerna för programmerarens mikrokontroller och externa kretsar (programmerbar MK eller annan programmerare). Klockfrekvensen för SPI-porten på MK-programmeraren med den öppna bygeln J3 är 187,5 kHz. Detta gör att kontrollerna kan programmeras till cirka 570 kHz för ATtiny/ATmega, 750 kHz för 90S och 7,5 MHz för 89S. Styrenheter programmeras från 10 till 30 sekunder (med hjälp av AVRProg v.1.4-verktyget från AVR Studio-paketet) tillsammans med verifiering, beroende på mängden FLASH-minne och klockfrekvens.

En fyrkantsvåg med en frekvens på 1 MHz matas ut till LED-utgången på ISP-kontakten för att "återuppliva" MK, som hade felaktigt programmerade säkringsbitar som ansvarar för klockning. Signalen genereras konstant och beror inte på programmerarens driftsläge. Programmeraren testades med programmen AVRProg v.1.4 (ingår i AVRStudio-paketet), ChipBlasterAVR v.1.07 Evaluation, CodeVisionAVR, AVROSP (ATMEL AVR Open Source Programmer). För normal funktion av styrenheten i kretsen är det nödvändigt att bitarna programmeras (ställs in på "0"). SPIEN, CKOPT, SUT0 och BODEN. Vanligtvis kommer mikrokontroller från fabrik, d.v.s. ny, har redan programmerat bit SPIEN. De återstående bitarna måste vara oprogrammerade (inställd på "1").

Instruktioner för installation och drift. Blinka kontrollen. Anslut den nybakade programmeraren till datorn via USB. Operativsystemet hittar en ny enhet - AVR910 USB Programmer, när du uppmanas att automatiskt hitta drivrutinen, vägra och ange sökvägen till inf-filen, beroende på vilket operativsystem som är installerat på din dator.

Forumet innehåller alla filer, samt kretskortet för vår avr-programmerare. Här kommer jag att visa tekniken för att montera AVR USB-programmeraren och packa in den i fodralet. Ladda först ner arkivet och gör ett kretskort.

Sedan löder vi alla detaljer på den. Jag kunde inte hitta en liten kvarts, så jag lödde en stor, men på långa ben, så att jag senare kunde böja den så att den inte skulle störa när du installerade brädan i höljet. Därefter väljer vi ett lämpligt fodral, jag hade det klart.

Vi anpassar brädan efter fallet, gör alla mätningar, borrar hål och här är den färdiga enheten för dig, med en universalskiva.

Om det inte finns någon speciell mätutrustning kan du kontrollera med lysdioden. Lysdioden är ansluten anod till LED-stiftet, katod till valfritt GND-stift på ISP-kontakten. När strömmen är påslagen ska lysdioden lysa i "halvljus". När kvartsoscillatorns ben stängs med en pincett ska lysdioden antingen lysa i "full värme", eller så ska det inte lysa.

En monterad programmerare med en korrekt programmerad mikrokontroller behöver inte konfigureras utan fel. Men om RESET-ingången på den programmerbara MK dras upp till matningsspänningen av ett motstånd, bör motståndsvärdet inte vara lägre än 10 kOhm - detta beror på den reducerade matningsspänningen för styrkontrollen i programmeringskretsen och införande av begränsningsmotstånd på ISP-kontaktbussen.

Diskutera artikeln PROGRAMMER AVR USB

Khazama AVR Programmer är ett grafiskt skal av avrdude-konsolprogrammet, utvecklat av en arabisk programmerare, som stöds av Windows XP/Vista/7-system. Programmet är avsett för att blinka Atmel-mikrokontroller från AT90/ATtiny/ATmega/ATXmega-familjen.

Khazama kan läsa och skriva programkod, rensa minne och programmera FUSE-bitar, den har även en autoprogrammeringsfunktion och en justerbar programmeringsklocka. Programmet stöder arbete med programmeraren.

Installation och firmware

Vi startar programmet

Gå till för att ställa in programmet Kommando -> Programalternativ

Här är programinställningarna, varav de allra flesta är inställningar Autoprogram(automatisk programmering) markerad med rött i listan. Med hjälp av den automatiska programmeringsfunktionen utförs operationerna som läsning, radering, skrivning och kontroll automatiskt i tur och ordning, vilket är mycket bekvämt. Tryck bara på knappen Autoprogram och alla objekt markerade med bockar i programinställningarna kommer att utföras.

1. Placera programfönstret ovanpå andra fönster
2. Ladda den senast stängda filen i programbufferten
3. Läs in mikrokontrollerns FLASH-minne i programbufferten
4. Läs in mikrokontrollerns EEPROM-minne i programbufferten
5. Rensa mikrokontrollerminne
6. Skriv den fasta programvaran till mikrokontrollerns FLASH-minne
7. Skriv firmware till mikrokontrollerns EEPROM-minne
8. Verifiera byten i mikrokontrollerns FLASH-minne efter skrivning
9. Verifiera bytes av EEPROM-minnet för mikrokontrollern efter skrivning
10. Skriv säkringsbitar till mikrokontroller
11. Kontrollera rätt val av mikrokontrollermodell
12. Programmering av klockinställning

Välj mikrokontroller i rullgardinsmenyn

eller via menyn Arkiv -> AVR -> ...


Laddar firmwarefilen i programmet Arkiv -> Ladda FLASH-fil till buffert, välj filen och klicka Öppen

Liknande inlägg