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

Post on 08-Mar-2021

0 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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.

top related