Sommario:
Video: Programmazione di ATTiny85, ATTiny84 e ATMega328P: Arduino come ISP: 9 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
Prefazione
Di recente ho sviluppato alcuni progetti IoT basati su ESP8266 e ho scoperto che il core processor faticava a svolgere tutte le attività di cui avevo bisogno per gestire, quindi ho deciso di distribuire alcune delle attività meno importanti a un microcontrollore diverso in in questo modo, l'ESP8266 può andare avanti con il suo lavoro di dispositivo IoT.
Dato che volevo pubblicare il mio progetto a un pubblico il più ampio possibile, ho scelto di utilizzare l'IDE Arduino come piattaforma di sviluppo preferita poiché ha una comunità così ampiamente supportata.
Vincoli di progettazione
Al fine di fornire una ragionevole diffusione di dispositivi target che consentano la selezione di un microcontrollore appropriato per l'applicazione in questione, ho optato per le seguenti parti Atmel; ATMega328P, ATTiny84 e ATTiny85. Per limitare la complessità del programmatore necessario ho vincolato la scelta del clock a interno per tutti i dispositivi e a 16MHz esterno solo per ATMega328P e ATTiny84.
Quella che segue è una raccolta di note sulla programmazione con Arduino e una descrizione di come ho messo insieme un semplice programmatore basato su Arduino Uno per questi dispositivi (foto sopra).
Di quali parti ho bisogno?
Per costruire il programmatore avrai bisogno delle seguenti parti
- 1 sconto su Arduino Uno
- 2 prese DIP a 28 pin Zero Insertion Force (ZIF) (per contenere ATMega328P, ATTiny85, ATTiny84)
- 1 off Arduino prototipo shield (ho preso il mio qui;
- 2 LED 5MM spenti
- 2 resistenze da 1K
- 1 resistore da 10K
- 4 condensatori ceramici da 22 pF
- 2 cristalli da 16 MHz
- 3 condensatori ceramici da 0,1 uF
- 1 condensatore elettrolitico da 47 uF
- 1 condensatore elettrolitico da 10uF
- Filo di avvolgimento del filo di varie lunghezze.
Di che software ho bisogno?
Arduino IDE 1.6.9
Di quali competenze ho bisogno?
- Conoscenza dell'IDE Arduino
- Qualche conoscenza di elettronica e come saldare
- Una grande manualità
- Un carico di pazienza e buona vista
Argomenti trattati
- Introduzione generale alla programmazione dei microcontrollori Atmel
- ISP o Bootloader: è tutto un po' confuso
- Panoramica del circuito
- Configurare il programmatore
- Utilizzo del programmatore ISP Arduino
- Sviluppo del codice sul tuo sistema di destinazione
- Trabocchetti
- Conclusione
- Riferimenti utilizzati
Disclaimer
Come sempre, utilizzi queste istruzioni a tuo rischio e pericolo e non sono supportate
Fase 1: Introduzione generale alla programmazione dei microcontrollori Atmel
Sono disponibili due metodi per la programmazione dei microcontrollori Atmel;
- In Programmazione di sistema (ISP),
- Autoprogrammazione (tramite un bootloader).
Il primo metodo (1) programma direttamente il microcontrollore tramite l'interfaccia SPI dopo aver prima ripristinato il dispositivo. Se non diversamente indicato, un programma sorgente eseguibile compilato viene scritto sul dispositivo in modo incrementale nella memoria del codice da dove viene eseguito all'avvio. Esistono molti dispositivi ISP in grado di programmare i dispositivi Atmel, alcuni dei quali sono (foto 1); AVRISPmkII, Atmel-ICE, Olimex AVR-ISP-MK2, Olimex AVR-ISP500. La figura 2 mostra come il dispositivo ISP si connette all'ATMega328P (contrassegnato in modo strano ICSP) sulla scheda Arduino Uno R3 (la figura 3 mostra il pin out dell'ISP). È anche possibile programmare un microcontrollore Atmel tramite la sua interfaccia SPI utilizzando un Arduino Uno come ISP (figura 4), qui Uno viene utilizzato per programmare un ATMega328P.
Quest'ultimo metodo (2) utilizza un piccolo stub di codice noto come 'bootloader' residente permanentemente nella memoria del codice eseguibile (di solito bloccato per evitare sovrascritture accidentali fig 5). Questo codice viene eseguito per prima cosa all'accensione o al reset del dispositivo e consente al microcontrollore di riprogrammarsi con il nuovo codice ricevuto tramite una delle sue interfacce da una sorgente esterna a se stesso. Il metodo bootloader viene utilizzato dall'IDE Arduino per riprogrammare gli Arduino mappati come porta di comunicazione USB sul PC (o MAC, Linux box ecc., Fig. 6) e nel caso di Arduino Uno comunica con il dispositivo Atmel tramite il suo interfaccia seriale sui Pin IC 2 e 3 di ATMega328P. Anche l'Arduino Uno (con il microcontrollore ATMega328P rimosso) può essere utilizzato per programmare un ATMega328P tramite il metodo bootloader agendo efficacemente come un dispositivo adattatore da USB a seriale (foto 7).
Che cos'è un adattatore da USB a seriale?
Un adattatore da USB a seriale è un componente hardware che si collega alla porta USB del PC e si presenta come una porta com seriale (un retaggio dei tempi precedenti quando i computer utilizzavano uno standard di comunicazione seriale noto come EIA-232, V24 o RS232) che consente di inviare e ricevere dati seriali agli stessi livelli elettrici del microcontrollore. Quando selezioni Strumenti -> Porta -> COMx dall'IDE Arduino, stai collegando/interfacendo il tuo PC con Arduino.
Un dispositivo come questo è a volte indicato come FTDI (foto 8, che in realtà è un marchio) o CH340G ecc. Da USB a seriale su Arduino uno si ottiene tramite un IC ATMega16U2-MU(R) ZU4 come nello schema Arduino sotto.
Per chiarezza l'immagine 9 identifica i due dispositivi Atmel e i rispettivi connettori ISP sull'Arduino Uno R3.
Nota 1: se scegli di seguire il percorso del dispositivo FTDI, assicurati di acquistare da un venditore affidabile poiché sul mercato sono stati trovati molti dispositivi contraffatti economici che non hanno funzionato dopo l'applicazione di un aggiornamento di Windows.
Consigliato:
Cavo di programmazione fai-da-te con Arduino Uno - Baofeng UV-9R Plus: 6 passaggi (con immagini)
Cavo di programmazione fai-da-te con Arduino Uno - Baofeng UV-9R Plus: Ciao a tutti, questa è una semplice guida su come convertire il cavo per cuffie / auricolari Baofeng UV-9R (o plus) in un cavo di programmazione utilizzando un Ardunio UNO come USB Convertitore seriale. [DISCLAIMER] Non mi assumo alcuna responsabilità per eventuali danni causati
ATtiny85 Orologio e programmazione per il monitoraggio delle attività vibranti indossabili ATtiny85 con Arduino Uno: 4 passaggi (con immagini)
ATtiny85 Orologio e programmazione per il monitoraggio dell'attività con vibrazione indossabile ATtiny85 con Arduino Uno: come realizzare l'orologio per il monitoraggio dell'attività indossabile? Questo è un gadget indossabile progettato per vibrare quando rileva la stagnazione. Passi la maggior parte del tuo tempo al computer come me? Stai seduto per ore senza rendertene conto? Quindi questo dispositivo è f
Come masterizzare ATTiny85 utilizzando Arduino-Mega come ISP: 5 passaggi
Come masterizzare ATTiny85 utilizzando Arduino-Mega come ISP: collaboratori - Sayan Wadadar, Chiranjib KunduProgrammare ATTiny85 utilizzando Arduino MEGA2560 come ISP. Alcuni mesi fa, stavo cercando di ridurre il mio progetto Arduino usando il mio Attiny 85 ic. Era la prima volta che provavo a programmare un ATTiny 85 da 20u usando
Chip di programmazione con Arduino - ISP AVR che copre ATTiny85, ATTiny2313 e ATMega328: 3 passaggi
Chip di programmazione con Arduino - ISP AVR che copre ATTiny85, ATTiny2313 e ATMega328: l'ho trovato come una bozza di molti anni fa. È ancora utile almeno per me, quindi lo pubblicherò! Questo Instructable è una raccolta di conoscenze raccolte da tutta la rete e anche da 'nstructables. Copre la programmazione di AVR Microco
Come modificare facilmente un segno "Luce/LED" per una facile programmazione Arduino: 7 passaggi (con immagini)
Come modificare facilmente un segno "Luce/LED" per una facile programmazione Arduino: in questo tutorial mostrerò come chiunque può trasformare qualcosa con luci in luci lampeggianti arduino programmabili o "luci mobili"