Quaderni di Elettronica corso per creativi ed inventoriSpazio Chirale alla GarbatellaStefano Capezzone
SSID: spazio chirale bestPass: persico32www.chirale.it/download-elettronica
This document is licensed under Creative Common Attribution 4.0 International license
Segnali dall’ambiente
Comandi elettronici verso altri dispositivi
Sensori
Attuatori
Microcontrollore
CPU
Schema logico di un MCU
Schema ATMega 328P
Come si programma un mcu?
Ambiente IDE su PC, ad esempio Atmel Studio
Programmatore ISP, o HVSP
+
Esempio di codice per ATMega328p#include <avr/io.h> #include <util/delay.h>
int main(void) { DDRB = (1<<PB5); for(;;)
{PORTB |= (1<<PB5)_delay_ms(1000); PORTB &= ~(1<<PB5); _delay_ms(1000);
} return 0;
}
Compilatore
Linker
Loader
Configurazione mediante impostazioni dei fuse
Sui PCB si usano deboli connessioni in stagno tra due pin per consentire all’utente di configurare la scheda elettronica fondendo (programmando) i collegamenti.
Nei circuiti integrati digitali è rimasto il nome di fusibile ma si tratta di registri fatti di bit riscrivibili.I “fuse” di un MCU determinano la sua configurazione hardware.
Configurare il MCU
I “fuse” devono essere programmati per far funzionare correttamente il firmware
Gli IDE professionali come Atmel Studio hanno delle utility proprie per questo compito
Nel mondo maker si utilizza il tool open source “avrdude”, che serve anche a caricare il firmware
I fuse sono critici
Un errore nella programmazione dei fuse può portare al blocco del MCU
Il problema del brick!
Unbrick dei microcontrollori Atmel
In realtà una cattiva configurazione dei fuse non crea un vero “brick” del MCU, semplicemente non consente la programmazione via “internal systemprogrammer”.
Gli Atmel, come altri MCU, possono essere programmati anche con la modalità High Voltage, dove l’applicazione di una tensione di 12V pone l’elettronica interna nello stato di programmazione.
Un programmatore professionale come STK500 di Atmel consente di riprogrammare i fuse.
Il progetto Arduino
Coding semplificato e intuitivo
IDE ARDUINO
www.arduino.cc -> Download
Ecco a voi l’AtTiny85!
Il più piccolo microcontrollore di casa Atmel
2 Euro circa se comprato al dettaglio
Bassa potenza elettrica, si alimenta con una pila a bottone da 3V
Arduino compatibile, come tutti gli Atmel
Attiny85 pin mapping
Il programmatore USBASP
1. Selezionare il modello del programmatore
2. Compilare il software come al solito
3. Tenere premuto lo SHIFT mentre si preme il pulsante di caricamento
Il comando di menù “Scrivi il bootloader” programma i fuse e poi carica sul MCU il bootloader di Arduino
L’IDE può utilizzare un programmatore esterno
Definiamo la nuova scheda
Per default l’IDE Arduino non conosce le board “ATtiny85”, per cui dobbiamo scaricare da Internet il file di configurazione.
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
”
Scaricare la nuova definizione della scheda
Verificare che l’ide abbia acquisito la nuova scheda
Selezionando ATtiny85Compaiono due voci nuove di menù
Configuriamo i FUSE
Questa funzione imposta i FUSE!L’ATTiny85 non ha il BOOTLOADER che vedremo dopo
Il “blink”
5. Prepariamo lo sketch blink
6. Carichiamo (firmware burn)
Per prima cosa dobbiamo selezionare nell’IDE la scheda ATtiny25/45/85
Poi impostiamo il processore ATtiny85
Poiché le librerie Arduino sono tarate per un clock di 8 Mhz, impostiamo tale clock. Attenzione a non impostare un clock esterno!!!
Effettuiamo la programmazione dei fuse caricando il bootloader. ATtiny non prevede alcun bootloader ma la procedura serve a programmare i fuse.
Se tutto è andato bene, premiamo lo shift e carichiamo lo sketch blink.