quaderni di elettronica corso per creativi ed inventori...gli atmel, come altri mcu, possono essere...

25
Quaderni di Elettronica corso per creativi ed inventori Spazio Chirale alla Garbatella Stefano Capezzone SSID: spazio chirale best Pass: persico32 www.chirale.it/download-elettronica This document is licensed under Creative Common Attribution 4.0 International license

Upload: others

Post on 08-Mar-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Quaderni di Elettronica corso per creativi ed inventori...Gli Atmel, come altri MCU, possono essere programmati anche con la modalità High Voltage, dove l’applicazione di una tensione

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

Page 2: Quaderni di Elettronica corso per creativi ed inventori...Gli Atmel, come altri MCU, possono essere programmati anche con la modalità High Voltage, dove l’applicazione di una tensione

Segnali dall’ambiente

Comandi elettronici verso altri dispositivi

Sensori

Attuatori

Microcontrollore

Page 3: Quaderni di Elettronica corso per creativi ed inventori...Gli Atmel, come altri MCU, possono essere programmati anche con la modalità High Voltage, dove l’applicazione di una tensione

CPU

Page 4: Quaderni di Elettronica corso per creativi ed inventori...Gli Atmel, come altri MCU, possono essere programmati anche con la modalità High Voltage, dove l’applicazione di una tensione

Schema logico di un MCU

Page 5: Quaderni di Elettronica corso per creativi ed inventori...Gli Atmel, come altri MCU, possono essere programmati anche con la modalità High Voltage, dove l’applicazione di una tensione

Schema ATMega 328P

Page 6: Quaderni di Elettronica corso per creativi ed inventori...Gli Atmel, come altri MCU, possono essere programmati anche con la modalità High Voltage, dove l’applicazione di una tensione

Come si programma un mcu?

Ambiente IDE su PC, ad esempio Atmel Studio

Programmatore ISP, o HVSP

+

Page 7: Quaderni di Elettronica corso per creativi ed inventori...Gli Atmel, come altri MCU, possono essere programmati anche con la modalità High Voltage, dove l’applicazione di una tensione

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

Page 8: Quaderni di Elettronica corso per creativi ed inventori...Gli Atmel, come altri MCU, possono essere programmati anche con la modalità High Voltage, dove l’applicazione di una tensione

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.

Page 9: Quaderni di Elettronica corso per creativi ed inventori...Gli Atmel, come altri MCU, possono essere programmati anche con la modalità High Voltage, dove l’applicazione di una tensione

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

Page 10: Quaderni di Elettronica corso per creativi ed inventori...Gli Atmel, come altri MCU, possono essere programmati anche con la modalità High Voltage, dove l’applicazione di una tensione

I fuse sono critici

Un errore nella programmazione dei fuse può portare al blocco del MCU

Il problema del brick!

Page 11: Quaderni di Elettronica corso per creativi ed inventori...Gli Atmel, come altri MCU, possono essere programmati anche con la modalità High Voltage, dove l’applicazione di una tensione

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.

Page 12: Quaderni di Elettronica corso per creativi ed inventori...Gli Atmel, come altri MCU, possono essere programmati anche con la modalità High Voltage, dove l’applicazione di una tensione

Il progetto Arduino

Page 13: Quaderni di Elettronica corso per creativi ed inventori...Gli Atmel, come altri MCU, possono essere programmati anche con la modalità High Voltage, dove l’applicazione di una tensione

Coding semplificato e intuitivo

IDE ARDUINO

www.arduino.cc -> Download

Page 14: Quaderni di Elettronica corso per creativi ed inventori...Gli Atmel, come altri MCU, possono essere programmati anche con la modalità High Voltage, dove l’applicazione di una tensione

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

Page 15: Quaderni di Elettronica corso per creativi ed inventori...Gli Atmel, come altri MCU, possono essere programmati anche con la modalità High Voltage, dove l’applicazione di una tensione
Page 16: Quaderni di Elettronica corso per creativi ed inventori...Gli Atmel, come altri MCU, possono essere programmati anche con la modalità High Voltage, dove l’applicazione di una tensione

Attiny85 pin mapping

Page 17: Quaderni di Elettronica corso per creativi ed inventori...Gli Atmel, come altri MCU, possono essere programmati anche con la modalità High Voltage, dove l’applicazione di una tensione

Il programmatore USBASP

Page 18: Quaderni di Elettronica corso per creativi ed inventori...Gli Atmel, come altri MCU, possono essere programmati anche con la modalità High Voltage, dove l’applicazione di una tensione

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

Page 19: Quaderni di Elettronica corso per creativi ed inventori...Gli Atmel, come altri MCU, possono essere programmati anche con la modalità High Voltage, dove l’applicazione di una tensione

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

Page 20: Quaderni di Elettronica corso per creativi ed inventori...Gli Atmel, come altri MCU, possono essere programmati anche con la modalità High Voltage, dove l’applicazione di una tensione

Scaricare la nuova definizione della scheda

Page 21: Quaderni di Elettronica corso per creativi ed inventori...Gli Atmel, come altri MCU, possono essere programmati anche con la modalità High Voltage, dove l’applicazione di una tensione

Verificare che l’ide abbia acquisito la nuova scheda

Selezionando ATtiny85Compaiono due voci nuove di menù

Page 22: Quaderni di Elettronica corso per creativi ed inventori...Gli Atmel, come altri MCU, possono essere programmati anche con la modalità High Voltage, dove l’applicazione di una tensione

Configuriamo i FUSE

Questa funzione imposta i FUSE!L’ATTiny85 non ha il BOOTLOADER che vedremo dopo

Page 23: Quaderni di Elettronica corso per creativi ed inventori...Gli Atmel, come altri MCU, possono essere programmati anche con la modalità High Voltage, dove l’applicazione di una tensione

Il “blink”

Page 24: Quaderni di Elettronica corso per creativi ed inventori...Gli Atmel, come altri MCU, possono essere programmati anche con la modalità High Voltage, dove l’applicazione di una tensione

5. Prepariamo lo sketch blink

Page 25: Quaderni di Elettronica corso per creativi ed inventori...Gli Atmel, come altri MCU, possono essere programmati anche con la modalità High Voltage, dove l’applicazione di una tensione

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.