Taula de continguts:

Programació d'ATTiny85, ATTiny84 i ATMega328P: Arduino com a ISP: 9 passos (amb imatges)
Programació d'ATTiny85, ATTiny84 i ATMega328P: Arduino com a ISP: 9 passos (amb imatges)

Vídeo: Programació d'ATTiny85, ATTiny84 i ATMega328P: Arduino com a ISP: 9 passos (amb imatges)

Vídeo: Programació d'ATTiny85, ATTiny84 i ATMega328P: Arduino com a ISP: 9 passos (amb imatges)
Vídeo: HOW TO: Programming an Arduino ATTiny85 made simple 2024, De novembre
Anonim
Programació d'ATTiny85, ATTiny84 i ATMega328P: Arduino com a ISP
Programació d'ATTiny85, ATTiny84 i ATMega328P: Arduino com a ISP
Programació d'ATTiny85, ATTiny84 i ATMega328P: Arduino com a ISP
Programació d'ATTiny85, ATTiny84 i ATMega328P: Arduino com a ISP

Pròleg

Recentment he estat desenvolupant alguns projectes IoT basats en l’ESP8266 i he trobat que el processador principal tenia problemes per dur a terme totes les tasques que necessitava per gestionar, així que vaig decidir distribuir algunes de les activitats menys importants a altres microcontroladors de d’aquesta manera, allibereu l’ESP8266 per continuar amb la feina de ser un dispositiu IoT.

Tenint en compte que volia publicar el meu projecte a un públic el més ampli possible, vaig optar per utilitzar Arduino IDE com a plataforma de desenvolupament que trieu, ja que compta amb una comunitat amb un suport tan ampli.

Restriccions de disseny

Per tal de proporcionar una distribució raonable de dispositius de destinació que permetessin seleccionar un microcontrolador adequat per a l'aplicació que ens ocupa, em vaig fixar en les següents parts d'Atmel; ATMega328P, ATTiny84 i ATTiny85. Per limitar la complexitat del programador necessari, vaig limitar l’elecció del rellotge a intern per a tots els dispositius i extern a 16 MHz només per a ATMega328P i ATTiny84.

El que segueix és una col·lecció de notes sobre la programació amb l'Arduino i una descripció de com he creat un senzill programador basat en Arduino Uno per a aquests dispositius (Imatges anteriors).

Quines parts necessito?

Per construir el programador necessitareu les següents parts

  1. 1 de descompte a Arduino Uno
  2. 2 connectors DIP de 28 pins ZERO Insertion Force (ZIF) (per subjectar ATMega328P, ATTiny85, ATTiny84)
  3. 1 escut del prototip d'Arduino (tinc el meu aquí;
  4. 2 LEDs de 5 MM apagats
  5. 2 resistències de 1K de descompte
  6. 1 resistència de 10K fora
  7. 4 condensadors de ceràmica de 22pF
  8. 2 cristalls de 16 MHz
  9. 3 condensadors ceràmics de 0,1 uF
  10. 1 de condensador electrolític de 47uF
  11. 1 de condensador electrolític de 10 uF
  12. Filferro de diverses longituds.

Quin programari necessito?

Arduino IDE 1.6.9

Quines habilitats necessito?

  1. Coneixement d'Arduino IDE
  2. Alguns coneixements sobre electrònica i com soldar
  3. Una gran quantitat de destresa manual
  4. Un munt de paciència i bona vista

Temes tractats

  1. Introducció general a la programació de microcontroladors Atmel
  2. ISP o Bootloader: tot és una mica confús
  3. Visió general del circuit
  4. Configuració del programador
  5. Utilitzant el vostre programador ISP Arduino
  6. Desenvolupament de codi al vostre sistema de destinació
  7. Gotchas
  8. Conclusió
  9. Referències utilitzades

Exempció de responsabilitat

Com sempre, utilitzeu aquestes instruccions pel vostre compte i risc i no s’admeten

Pas 1: Introducció general a la programació de microcontroladors Atmel

Introducció general a la programació de microcontroladors Atmel
Introducció general a la programació de microcontroladors Atmel
Introducció general a la programació de microcontroladors Atmel
Introducció general a la programació de microcontroladors Atmel
Introducció general a la programació de microcontroladors Atmel
Introducció general a la programació de microcontroladors Atmel

Hi ha dos mètodes disponibles per programar microcontroladors Atmel;

  1. A la programació del sistema (ISP),
  2. Autoprogramació (mitjançant un carregador d’arrencada).

El primer mètode (1) programa directament el microcontrolador a través de la interfície SPI després de restablir primer el dispositiu. Tret que s'indiqui el contrari, s'escriu un programa d'origen executable compilat de manera incremental al dispositiu a la memòria de codi des d'on s'executa a l'inici. Hi ha molts dispositius ISP capaços de programar dispositius Atmel, alguns dels quals són (foto 1); AVRISPmkII, Atmel-ICE, Olimex AVR-ISP-MK2, Olimex AVR-ISP500. La imatge 2 mostra com es connecta el dispositiu ISP a l’ATMega328P (ICSP marcat de forma estranya) a la placa Arduino Uno R3 (la foto 3 dóna sortida al pin ISP). També és possible programar un microcontrolador Atmel mitjançant la seva interfície SPI mitjançant un Arduino Uno com a ISP (imatge 4), aquí l’Uno s’utilitza per programar un ATMega328P.

Aquest darrer mètode (2) utilitza un petit registre de codi conegut com a "carregador d'arrencada" resident permanentment a la memòria de codi executable (generalment bloquejat per evitar la sobreescriptura accidental de la foto 5). Aquest codi s’executa primer quan s’engega o es reinicia el dispositiu i permet al microcontrolador tornar a programar-se amb un codi nou rebut a través d’una de les seves interfícies des d’una font externa a ell mateix. El mètode d’arrencada l’utilitza l’Arduino IDE per tornar a programar Arduinos assignat com a port de comunicació USB al PC (O MAC, caixa Linux, etc., foto 6) i, en el cas de l’Arduino Uno, es comunica amb el dispositiu Atmel mitjançant interfície sèrie als pins IC 2 i 3 de l'ATMega328P. També es pot utilitzar l’Arduino Uno (amb el microcontrolador ATMega328P eliminat) per programar un ATMega328P mitjançant el mètode del carregador d’arrencada que actua efectivament com a dispositiu adaptador USB a sèrie (foto 7).

Què és un adaptador USB a sèrie?

Un adaptador USB a sèrie és una peça de maquinari que es connecta al port USB dels vostres ordinadors i sembla un port serial com (un llegat de temps anteriors en què els ordinadors utilitzaven un estàndard de comunicacions en sèrie conegut com EIA-232, V24 o RS232) que us permet enviar i rebre dades de sèrie als mateixos nivells elèctrics del microcontrolador. Quan seleccioneu Eines -> Port -> COMx des de l'IDE Arduino, esteu connectant / connectant el vostre PC al vostre Arduino.

Un dispositiu com aquest de vegades es coneix com a FTDI (foto 8, que en realitat és un nom de marca) o CH340G, etc. El USB a sèrie de l'Arduino uno s'aconsegueix mitjançant un IC ATMega16U2-MU (R) IC ZU4 com en l'Arduino Schematic baix.

Per a una imatge més clara, 9 identifica els dos dispositius Atmel i els seus respectius connectors ISP a l’Arduino Uno R3.

Nota 1: Si decidiu baixar per la ruta del dispositiu FTDI, assegureu-vos de comprar a un venedor de bona reputació, ja que hi ha hagut al mercat molts dispositius falsificats barats que han fallat en aplicar una actualització de Windows.

Recomanat: