Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
PROTOTYPING
Prof. P. Visconti
http://forum.arduino.cc/index.php?action=profile;u=58300
Argomenti
Architettura generale dei microcontrollori
Ambiente di sviluppo integrato
Caratteristiche e elementi di Arduino UNO
Principali caratteristiche del ATmega328P
Concetti di porte e pin del microcontrollore
Istruzioni per comandare i pin del microcontrollore
Nascita di Arduino
Nel 2005 un gruppo di ricerca del Italy’s Interaction
Institute of Ivrea ha sviluppato una piattaforma elettronica
basata su microcontrollore destinata a scopi didattici e di
ricerca denominata Arduino. Il nome deriva un bar posto nelle
vicinanze dell’istituto denominato Bar di Re Arduino.
Dalla sua prima comparsa Arduino ha attirato l’attenzione di
studenti inventori e ingegneri, i quali hanno scritto e
condiviso codice e progettato soluzioni hardware dedicate a
tali schede
Nascita di Arduino
Il primo prototipo funzionante di Arduino
http://arduino.cc/en/Main/Products
Cos’è Arduino?
Arduino è una piattaforma elettronica
hardware dotata di microcontrollore.
In aggiunta, Arduino include un
opportuno software di sviluppo
(Arduino IDE Integrated Development
Enviroment), all’interno del quale è
poter scrivere i programmi
(denominati sketch) che verranno
eseguiti dal microcontrollore.
Piattaforma di sviluppo open source
Open Source Hardware
Open Source Software
Economica e facilmente reperibile
Espandibile tramite «shield»
Open Hardware
http://arduino.cc/en/Main/ArduinoBoardUno
Sistema di espansione a shield
http://shieldlist.org/
Prima di Arduino…
Connettore
USB
Microcontrollore
AVR
Convertitore
ATmega328P
USB-Seriale
Jack Alimentazione
Alimentazione
Esterna
ANALOG
INPUTS
http://it.wikipedia.org/wiki/Architettura_di_von_Neumann
Architettura Harvard
Versione PDIP
Plastic Dual In-line Package
Versione SMD
Surface-Mount Device
Caratteristiche ATmega328P
http://www.atmel.com/Images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-
328-328P_datasheet.pdf
Caratteristiche Arduino Uno
http://arduino.cc/en/Main/ArduinoBoardUno
Tensione di lavoro dei pin
• I Microcontrollori sono fondamentalmente dei dispositivi digitali
dove l’informazione è ‘codificata’ in due stati discreti:
• HIGH or LOW (stato logici: 1oppure 0)
Tensioni
• 5 V (per lo stato HIGH)
• 0 V (per lo stato LOW)
http://www.atmel.com/Images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-
328-328P_datasheet.pdf
Schema a blocchi - Architettura interna ATmega328
Periferiche interne
• Memoria Flash (memoria
Programma)
• Memoria SRAM (memoria dati)
• Memoria EEPROM (memoria dati)
• WatchDog Timer
• Interfaccia Seriale
• Interfaccia SPI
• Interfaccia I2C
• Convertitore Analogico – Digitale
• Timers
• Porte/Pin
Memorie integrate
Architettura Harvard
Flash-program memory
• 32kB
SRAM-data memory
• 2KB
EEPROM
• Per dati da
conservare anche in
caso di rimozione
dell’alimentazione.
• Presenza su I/O bus
Memorie integrate
Flash memory (32KB) (indirizzi da 15bit)
• Utilizzata per la memoria programma-
sola lettura
• Non volatile
• Alloca i dati nella flash utilizzando l
l’attributo PROGMEM
SRAM (2KB)
• Valori temporanei, stack,etc…
• Memoria volatile
• Dimensione limitata
EEPROM (1KB)
• Dati a lungo termine
FLASH PROGRAM MEMORY
Visto che tutte le istruzioni AVR sono a 16bit o 32bit, la memoria flash per la
memorizzazione del programma è organizzato in 16K locazioni x 16 bit. Per motivi di
sicurezza del software la memora flash è divisa in due sezioni: la sezione destinata al
bootloader e la sezione destinata alla memoria del programma nel dispositivo. Il
program counter (PC) del ATmega328/P è largo 14bits, in modo da indirizzare le 16K
locazioni di memoria programma.
SRAM Data Memory
Le 2303 locazioni di memoria dati più basse indirizzano sia i Register File, la
memoria I/O, la memoria I/O estesa e i dati della SRAM. Le prime 32 locazioni
indirizzano i Register File, le successive 64 locazioni indirizzano la memoria I/O ,
dopo 160 locazioni della memoria I/O estesa, e i successivi 2K locazioni indirizzano i
dati della SRAM.
• Caricamento istruzione
dalla memoria
programma (Fetch)
• Caricamento dati dalla
memoria dalla memoria
dai registri.
• Decodifica dell’istruzione
(Decode)
AVR CPU
• Esecuzione
istruzione (Execute)
AVR CPU
SRAM Data Memory
L’accesso alla memoria SRAM è eseguito in due cicli di clock come descritto nella
figura seguente:
Porte e Pin del Microcontrollore
Costituiscono il canale di Un insieme di pin
comunicazione del flusso di definisce una porta del
informazioni da e per il microcontrollore
microcontrollore.
Pin Digitali della scheda Arduino (pin
microcontrollore):
• Pins 0 – 7: PORT D [0:7] (pin 2-6,11-13)
• Pins 8 – 13: PORT B [0:5] (pin 14-19)
• Pins 14 – 19: PORT C [0:5] (pin 1, 23-28)
(configurabili anche come pin analogici)
• I pin digitali 0 e 1 sono RX and TX per la
comunicazione seriale
• il pin digitale 13 è connesso anche ad un
LED integrato sulla scheda
Es. PORTB
• Pins PB0 – PB7 Possono non essere contigui
• spesso sono bidirezionali.
Schema ATmega328 PDIP
Nome Numero
Pin Pin
Funzioni
Speciali
http://forum.arduino.cc/index.php/topic,146315.0.html
Schema atmega328 SMD
http://forum.arduino.cc/index.php/topic,146315.0.html