Taula de continguts:

ÚS de EXtreme Burner per a la programació de microcontroladors AVR: 8 passos
ÚS de EXtreme Burner per a la programació de microcontroladors AVR: 8 passos

Vídeo: ÚS de EXtreme Burner per a la programació de microcontroladors AVR: 8 passos

Vídeo: ÚS de EXtreme Burner per a la programació de microcontroladors AVR: 8 passos
Vídeo: 4. Arduino для производства! Как использовать USBasp для программирования/прошивки микроконтроллера 2024, De novembre
Anonim
ÚS d’Extreme Burner per a la programació de microcontroladors AVR
ÚS d’Extreme Burner per a la programació de microcontroladors AVR

Tota la vostra fraternitat d’usuaris AVR i aquells que només entren al corrent. Alguns de vosaltres van començar amb microcontroladors PIC i alguns van començar amb AVR ATMEL, això està escrit per a vosaltres.

Per tant, heu comprat un USBASP perquè és barat i eficaç per fer flaixar la ROM del vostre dispositiu Atmega, o potser de la gamma ATTINY. Es poden obtenir per menys de 5 $, com a clons xinesos de codi obert USB-ASP. AVRdude és el programari per programar-los.

Sens dubte, sabeu com generar un fitxer Hex amb Atmel Studio (encara faig servir AVR Studio v4.19 en lloc de l’últim v7 perquè és més ràpid i ràpid al meu ordinador portàtil de CPU simple nucli) / Netbook i WINAVR s’instal·len si esteu llegint. Tot el que està escrit a DotNet funciona lentament. i les versions posteriors estan dissenyades perquè el vostre ordinador portàtil funcioni com una tortuga. Podeu utilitzar Studio v4.19 la millor versió de Studio d’ATMEL per a microcontroladors AVR, canviant a la versió 7 quan realment la necessiteu per als xips posteriors i feu que el vostre temps al portàtil sigui més productiu, treballant en lloc d’esperar. Això és el que recomano.

Una línia d'ordres típica de tipus AVR per programar un Atmega amb un fitxer Hex, s'executa així:

ESCRIURE A FLASH: AVRdude -s -c avrisp -p t44 -P usb -U "flash: w: D: / ARDUINO / pwmeg1.hex: a"

aquí pwmeg1.hex és el fitxer hexadecimal Intel que s'ha de "cremar" o "llançar" al "MCU de destinació" del microcontrolador Lingo

És un bocí per recordar! Podeu escriure un fitxer per lots i executar-lo a la línia d’ordres de Windows, anomenant-lo write_flash.bat. De la mateixa manera, per llegir els fusibles, un altre bocí de línia per recordar. Es fa tediós.

per llegir flash + eeprom: AVRdude -s -c avrisp -p t44 -P usb -U "flash: r: D: / ARDUINO / pwmeg1.hex: i" -U "eeprom: r:: i"

La solució és utilitzar una de les eines d’interfície gràfica d’usuari fàcils d’utilitzar per a AVRdude, com Bitburner, el programador Khazama, que són gairebé similars. eXtreme Burner. He utilitzat l'eina lliure d'utilitzar: eXtreme Burner, és versàtil, fiable, i aquest tutorial tracta d'això. No només pot llançar el fitxer / programa hexadecimal a la MPU, mitjançant ordres emeses a AVRdude en segon pla, sinó que també us pot ajudar a configurar FUSES, que és un tema complicat que sovint confon els principiants amb la programació AVR. Aquí teniu un enllaç a un excel·lent tutorial sobre el tema FUSIBLES que podeu passar o aprofundir. Una paraula de precaució: ATMEL utilitza l'estat "1" d'un bit FUSE per indicar-ne l'estat "per defecte" (estat no definit o no programat) i "0" per indicar-ne l'estat programat, definit o activat. Això és just el contrari del que feu amb els bits FUSE en un microcontrolador PIC. Aneu amb compte quan modifiqueu els bits de fusible del rellotge, com fer que el rellotge RC intern canviï a cristall extern, ja que això crearà problemes per connectar-se al xip sense una configuració de cristall extern. De la mateixa manera, tingueu precaució quan canvieu l'estat dels bits de fusible crítics com SPIEN i RESET DISABLE (sempre s'han de configurar a SPIEN = 0 i RESET DISABLE = 1 si voleu continuar comunicant-vos amb l'MCU amb el vostre USB-ASP en mode ISP / SPI Si feu això, necessitareu un programador d'alta tensió per "desenganxar" el vostre AVR.

Si us pregunteu "què diables són els fusibles" i "què fan"? Llegiu aquesta excel·lent redacció:

Un altre tema relacionat és com configurar la velocitat de rellotge de la vostra MPU AVR, que pot velocitats d’1 MHz fins a 16 o 20 MHz. També hi ha una opció especial de cristall de baixa freqüència de potència especial de 31,25 kHz que, si es dissenya correctament, pot fer que el vostre AVR esgoti bateries AA durant 3 mesos.

Ambdós bits de fusible de rellotge (freqüència i tipus de rellotge intern / cristall extern de rellotge i altres bits de fusible) es poden configurar a través de la pestanya FUSIBLES de eXtreme Burner. Primer us mostrarem com llegiu la ROM i, a continuació, com fer flaixar el fitxer hexadecimal amb eXtreme Burner. Per descomptat, també podríeu utilitzar els llocs web de fusibles AVR en línia, però l'opció que explico es pot utilitzar també quan estigueu fora de línia i en qualsevol lloc.

Pas 1: Configuració que cal fer:

Configuració que cal fer
Configuració que cal fer
Configuració que cal fer
Configuració que cal fer
Configuració que cal fer
Configuració que cal fer
Configuració que cal fer
Configuració que cal fer

Les imatges mostren la CONFIGURACIÓ que cal fer abans de començar el treball. (només és una vegada). A l’element del submenú “Configuració del maquinari”, seleccionem 375Hz perquè la majoria de l’MCU de fàbrica ATMEL estan configurats com a Configuració predeterminada del rellotge de la CPU d’1 MHz a l’oscil·lador RC intern. La velocitat de l'ISP és una quarta part de F_cpu. Això ens proporciona la velocitat més propera de 375 kHz, també podríeu anar a una velocitat més baixa, no farà molta diferència. Podeu provar de connectar-vos deixant això per defecte i emetre un "llegir tot", si falla, podríeu venir aquí i modificar la velocitat, fent-la més baixa.

Perquè si no podeu connectar-vos (el missatge es mostrarà a la finestra del programador "no es pot comunicar amb el xip, no es pot SCK"), el senyal de rellotge del vostre PC no es podria sincronitzar amb el xip que esteu intentant llegir o programa)., no podreu canviar la velocitat de rellotge de la CPU ni alterar-ne la velocitat i el tipus. Per tant, connectar és la base de tot! És com "PRIMER CONTACTE" com es veu a les pel·lícules de Spielberg. Si teniu èxit, sempre podeu augmentar la velocitat de rellotge de la vostra MCU programant els fusibles en conseqüència i, més endavant, utilitzar una velocitat més alta per connectar-vos.

Per tant, passeu per les instantànies de configuració de maquinari que es proporcionen aquí i, a continuació, configureu també el tipus de dispositiu (el xip que esteu intentant programar, el seu número de model).

Pas 2: Configuració del tipus de dispositiu

Configuració del tipus de dispositiu
Configuració del tipus de dispositiu
Configuració del tipus de dispositiu
Configuració del tipus de dispositiu
Configuració del tipus de dispositiu
Configuració del tipus de dispositiu

veure la captura de pantalla, foto 1, hem definit "ATTINY44A". Es tracta d’un microcontrolador de 14 pins sense UART. He estat utilitzant això recentment, la versió SSU. Si heu instal·lat la versió extrema de Burner, no veureu Attiny44A a la llista desplegable de selecció de dispositius, veureu un Attiny44 que a tots els efectes també podem utilitzar per programar Attiny44A, per introduir qualsevol dispositiu que no aparegui en aquesta llista desplegable., llegiu el meu altre instructiu "Hacking eXtreme Burner".

He estat utilitzant Atmega88PA-AU també amb eXtreme Burner, però en aquest manual esmenta "Attiny44A" a tot arreu. Ara bé, com podeu fer una versió de taulers de suport del petit xip SMD quadrat de 7 mm i provar-la amb els vostres programes? (vegeu les imatges que indiquen la mida del xip). Per a això, vegeu la meva altra instrucció on us demostro com fer que els mòduls complementaris adequats per a la placa de pa utilitzin Attiny44A-SSU i ATmega88PA-AU

Un cop hàgiu après aquesta tècnica, podreu comprovar qualsevol xip que tingueu curiositat per jugar, ja sigui el paquet SMD o DIL. Per exemple, fins i tot he utilitzat un xip SMD amb un paquet Quad de 0,8 mm de 32 pins (Atmega88A) de manera similar.

. O simplement podeu utilitzar la versió DIL de 28 pines de l’Attiny44A per a aquest AVR instructable o qualsevol altre AVR que feu servir en aquest moment per provar eXtreme Burner per a la programació AVR.

Pas 3: emetre un LLIURE TOT o LLEGIR FLASH

Emet un LLEGIR TOT o LLEGIR FLASH
Emet un LLEGIR TOT o LLEGIR FLASH
Emet un LLEGIR TOT o LLEGIR FLASH
Emet un LLEGIR TOT o LLEGIR FLASH

Connecteu el vostre USBasp al port USB del vostre portàtil, suposo que ja heu carregat els controladors correctes que venien amb el vostre programador i que s’han detectat correctament. Hauria d'aparèixer a "Dispositius i impressores" al menú d'inici de Windows, si ho fos, tan bon punt estigui connectat al port USB. Connecteu el xip objectiu al tauler amb el vostre USBasp (els pins SDI // ISP rellevants mitjançant un cable de 6 o 10 pins han d’estar connectats entre els dos, és a dir, els pins: MOSI, RESET, MISO, SCK, Vcc, Ground).

Emet un LLEGIR TOT des del MENÚ de Xtreme Burner. Consulteu fotos i missatges que hem obtingut. Inicialment, a la pantalla es mostrava "FF" per a ROM a First TAB del cremador, després de llegir-ho tot, mostrarà el contingut real de la ROM al xip. Si utilitzeu un xip nou de fàbrica o un xip esborrat, veureu FF al contingut després d'un "Llegir-ho tot". Un xip no programat mostrarà "FF" a la seva memòria, de manera que ho fa una EEPROM (segona pestanya del programador), l'última pestanya mostra els FUSIBLES.

Després de LLEGIR TOTES les 3 pestanyes mostraran la informació correcta continguda al xip. Abans no ho faria, així que publiqueu una lectura de tot primer tan aviat com ho connecteu tot.

Pas 4: escriviu a Flash (el fitxer hexadecimal s'ha convertit en ROM al xip)

Escriure a Flash (el fitxer hexadecimal s'ha convertit en ROM al xip)
Escriure a Flash (el fitxer hexadecimal s'ha convertit en ROM al xip)
Escriure a Flash (el fitxer hexadecimal s'ha convertit en ROM al xip)
Escriure a Flash (el fitxer hexadecimal s'ha convertit en ROM al xip)
Escriure a Flash (el fitxer hexadecimal s'ha convertit en ROM al xip)
Escriure a Flash (el fitxer hexadecimal s'ha convertit en ROM al xip)

Seleccioneu un fitxer mitjançant el quadre de diàleg Examinar que s'obre quan feu clic a la primera icona de la barra MENÚ de més amunt. Hem seleccionat un fitxer tal i com es veu a la imatge. Un cop heu seleccionat el fitxer hexadecimal (format hexadecimal intel), la barra de menú que mostrava "no s'ha carregat cap fitxer" ha canviat al nom del fitxer que heu carregat.

Ara publiqueu un Flash d’escriptura des del menú del programari. Els missatges us mostraran què està passant. veure les imatges.

Després d'una escriptura reeixida, veureu que el "FF" que marca una ROM nova o esborrada canvia al contingut del vostre programa o fitxer hexadecimal. La mida o el nombre de bytes que ocupa el fitxer a la ROM també els coneixeu mirant aquesta pantalla, que us mostra el contingut real de la ROM del vostre xip objectiu que heu capturat recentment.

El pas de verificació també es realitza mitjançant la lectura del xip, segons la CONFIGURACIÓ que vam fer al primer pas. Això es veu als missatges que la verificació també va tenir èxit.

Pas 5: FUSIBLES: Com configurar-los a EXtreme Burner

FUSIBLES: Com configurar-los a EXtreme Burner
FUSIBLES: Com configurar-los a EXtreme Burner

Quan va emetre una LLEGIR TOTS els fusibles es van llegir des del xip. Aquesta és la PRIMERA foto que es mostra fuses.jpg.

Ara potser haureu de canviar-los per una altra cosa. Els fusibles consten de 4 caixes a l’últim TAB de la pantalla del vostre eXtreme Burner. És a dir, BYTE DE FUSIBLE BAIX, BYTE DE FUSIBLE ALT, BYTE DE FUSIBLE AMPLIAT, BYTE DE FUSIBLE DE LOCK i BYTE DE CALIBRACIÓ. en aquest ordre es mostren.

Simplement podeu utilitzar una calculadora de fusibles ONLINE i emplenar-los. Com el de

eleccelerator.com/fusecalc/fusecalc.php?

O podeu fer servir eXtreme Burner per fer-ho per vosaltres. sense connexió en qualsevol moment: seleccioneu la llista desplegable que apareix quan feu clic al botó DETALLS que hi ha a sota de cada tipus de byte de fusible. Simplement feu doble clic a qualsevol línia de la pantalla DETALLS i observeu com canvia de SET a CLEARED i canvieu el seu estat amb el clic del ratolí a cada línia. El byte de fusible al quadre superior canviaria en conseqüència.

Si us pregunteu "què diables són els fusibles" i "què fan"? Llegiu aquest excel·lent escrit:

www.instructables.com/id/Avr-fuse-basics-Running-an-avr-w--an-external-cl/

Pas 6: Configuració de fusibles mitjançant la calculadora de fusibles EXtreme Burner

Configuració de fusibles mitjançant la calculadora de fusibles EXtreme Burner
Configuració de fusibles mitjançant la calculadora de fusibles EXtreme Burner
Configuració de fusibles mitjançant la calculadora de fusibles EXtreme Burner
Configuració de fusibles mitjançant la calculadora de fusibles EXtreme Burner
Configuració de fusibles mitjançant la calculadora de fusibles EXtreme Burner
Configuració de fusibles mitjançant la calculadora de fusibles EXtreme Burner

Podeu veure la pantalla de detalls que apareix per a cadascun dels bytes del fusible (BAIX, ALT, AMPLIAT, BLOC i calibració). El byte de calibratge s’ha de deixar inalterat, ja que mostra el byte de dades de calibratge a l’AVR que s’aplica a l’oscil·lador RC intern. El byte LOCK sol ser només FF (no es parla a les imatges anteriors), ja que no bloquejareu el Flash ni l'EEPROM mentre estigueu en fase d'aprenentatge. Només canvieu els bytes BAIX, ALT i AMPLIAT. Ves amb compte !

Si canvieu el bit SPIEN a 1 (l'estat no programat és 1 als microcontroladors AVR), no podríeu comunicar-vos amb el vostre xip mitjançant USBASP o cap programador. L'estat per defecte també es mostra a la pantalla per a cada bit de fusible. Això us avisa que el valor predeterminat de SPIEN sempre és 0 (estat programat) per permetre-us utilitzar el mode SPI per a la programació de l’ISP. El cable de depuració o el bit DW sempre es deixa 1 (sense programar) quan SPIEN està configurat a 0. Aquest també és el seu estat per defecte. A més, en els bits de fusibles ampliats, 'Self Programming Enable hauria de ser' 1 '(sense programar) si utilitzeu el vostre USB-ASP per programar el vostre xip objectiu (no utilitzant la ROM del carregador d'arrencada com a ARDUINO).

Podeu canviar els bits CLOCK (3 en nombre) per seleccionar un RC intern o un cristall extern. Normalment el deixo per a un RC intern que us permet obtenir 2 pins addicionals que alliberen el cristall extern per utilitzar-lo com a pins PORT per als vostres projectes AVR. Normalment es necessita cristall extern quan necessiteu una sincronització d’alta precisió al vostre projecte. Per als estudiants, la RC interna és suficient.

Normalment, un cop us fixeu en alguna combinació de fusibles, no el canvieu. Seria puntual. Només estaria llampant la ROM o, de vegades, l'EEPROM. Per a intermitències, el vostre estudi WINAVR / ATMEL genera un fitxer.eep separat per EEPROM si el programa utilitza EEPROM per emmagatzemar dades. En cas contrari, l'EEPROM es deixa inutilitzar, s'omple amb les dades "FF" que mostren "Estat NO DATA" de l'EEPROM.

Pas 7: valor final dels fusibles

Valor final dels fusibles
Valor final dels fusibles

Després de configurar tots els bits de fusible i tancar els quadres DETALLS que heu utilitzat, podeu veure el valor dels bits de fusible calculat pel programa (vegeu la imatge). Només queda emetre "Fusibles d'escriptura" mitjançant el menú. I mireu els missatges que informen que s'ha escrit correctament. Més endavant, també podeu emetre un LLEGIR TOT des del menú i comprovar si els fusibles llegits a l'última pestanya de la pantalla del cremador coincideixen amb el que volíeu escriure al xip. (Verificació de fusibles).

Us adonareu que, al principi d’aquest instructiu, quan vam fer FUSIBLES LLEGITS, la pantalla mostra els mateixos valors de FUSIBLE que veiem aquí. Això es deu al fet que aquests són els fusibles que faig servir sovint i que rarament els canvio un cop els he establert a la meva MCU, tret que canviï la freqüència d’1 MHz a 4 MHz per a alguns projectes. El AVR es pot configurar com a màxim a 20 MHz (alguns xips només fins a 16 MHz). La freqüència que configureu per a F_cpu també depèn del voltatge amb què subministreu el xip. Per exemple, si el vostre xip funciona des d'1,8V de Vcc fins a 5,5V de Vcc (consulteu el full de dades), no esperaria que funcionés el vostre xip a 20 mhz si només li proporcionés 1,8V. n’esperes massa! Una taula del full de dades us indica a quina tensió s’aconsegueix la freqüència en quina xifra. Com més alta sigui la vostra freqüència de funcionament del xip, més calor i més potència consumeix. Penseu en la freqüència com el batec del cor d’un animal. Un colibrí amb un ritme elevat de ritme auditiu tindria una cremada d’energia més alta per minut en comparació amb una balena o un elefant amb un batec del cor molt inferior. Però llavors pot fer molt més en un temps més curt. La MCU és així.

Pas 8: finalitzeu

Ara heu completat tots els passos de l’eXtreme burner, heu llegit la ROM d’un xip, heu obert un fitxer HEX i l’heu llançat al xip i heu comprovat que el flaix estava bé, també heu après a configurar els fusibles i fer-los passar al xip..

Si teniu cap pregunta, estaré encantat de respondre o modificar el tutorial per fer-lo més clar.

Per a alguns xips, és possible que trobeu a faltar la seva entrada a la llista desplegable de selecció de xips del menú. O és possible que tingueu problemes d'escriptura i verifiqueu els errors. En aquests casos, si us plau, llegiu la meva altra instrucció "Hacking eXtreme Burner" per resoldre el problema.

Programació feliç.

Recomanat: