Presentazione standard di PowerPoint - Unisalento
-
Upload
khangminh22 -
Category
Documents
-
view
0 -
download
0
Transcript of Presentazione standard di PowerPoint - Unisalento
http://forum.arduino.cc/index.php?action=profile;u=58300
CORSO di ELECTRONIC DESIGN AND RAPID
PROTOTYPING
UNIVERSITA’ DEL SALENTO
Dip. Ingegneria dell’Innovazione
Prof. P. Visconti
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
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
Il prototipo “zero” di Arduino, “quando
ancora si chiamava Programma 2003”
Nascita di Arduino
Arduino con interfaccia seriale RS-232
piuttosto che con interfaccia USB
Arduino Duemilanove
Evoluzione di Arduino Arduino NG (Nuova Generazione)
Millestone: 2005 Prima versione della scheda
basata sul microcontrollore AVR ATmega8 con programmazione e scambio dati RS232.
2006 Arduino NG (nuova generazione).
2008 Arduino Duemilanove versione basata sul microcontrollore Atmel ATmega 328 (raddoppia memoria on-chip 32kB).
2010 Arduino Uno basato su microcontrollore Atmega 328.
2010 Arduino Mega2560 basato sul microcontrollore Atmega 2560 porta la memoria programma on-chip a disposizione della scheda fino a 256kB, mettendo a disposizione un maggior numero di GPIO (54) e aumentate interfacce di comunicazione.
2010 Arduino Uno R3 si differenzia dalla versione 2009 per la presenza di uno speciale convertitore USB/seriale che è implementato da un microcontrollore ATmega8U2 in cui è integrato un transceiver USB liberamente programmabile
Arduino Uno Arduino Uno R3
http://arduino.cc/en/Main/Products
Arduino Mega 2560 Arduino Ethernet Arduino Leonardo Arduino YUN
Arduino NANO Arduino Due Arduino Mini
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»
Prima di Arduino…
Computer
• Software
• Eclipse
• AVR Studio 4
•Porte
• Serial
• Parallel
• USB
Programmatore
• Interfaccia
• JTAG/ICE
• ISP
•Programmatore
• Bit-Bang
• ICSP
• AVRISP Mk II
Microcontrollore
• Versione
•DIP
•SOIC
•QFN
•Funzioni
•ADC/DAC
•PWM
•USB
Arduino Uno R3 LED
Connettore
USB
Jack Alimentazione
Connettori Pin Digitali Pulsante di Riavvio
Microcontrollore
AVR
ATmega328P
Connettori Pin Analogici Connettori alimentazione
Convertitore
USB-Seriale
Arduino Uno R3 Alimentazione
La scheda Arduino Uno può essere alimentata attraverso la connessione USB oppure con un alimentatore esterno tramite l'apposito plug.
Come visibile nello schema, la fonte di alimentazione è selezionata automaticamente, attraverso il circuito formato da uno dei due amplificatori operazionali contenuti nell’integrato U1 LM358D e dal Mosfet T1 a canale P tipo FDN304.
Connettore USB
Alimentazione Esterna
Alimentazione con batteria
<Vin; restituisce la tensione applicata dall'alimentatore al plug e può
essere usato per alimentare altri circuiti che dispongano già di un
regolatore di tensione (ad esempio gli shield applicati al modulo);
<GND; è il contatto di massa (GND).
<5 V; fornisce i 5 volt prelevati dall'uscita del regolatore interno ed è utile
per alimentare altri circuiti compatibili con i 5 volt;
<3.3V; questo pin fornisce i 3,3 volt ricavati dal regolatore corrispondente
e consente di alimentare circuiti compatibili con tensioni di 3,3 volt (la
massima corrente prelevabile e di 150 mA);
Tutte le tensioni sono disponibili sui pin del connettore POWER
Arduino Uno R3 Interfaccia seriale
Per l’interfaccia seriale come già detto nell’ scheda Arduino UNO non utilizza un chip FTDI (il FT232RL (o alternativamente il CH340 o CH341) per convertire i segnali da USB a seriale TTL e viceversa. È invece utilizzato un microcontrollore ATmega8U2 in cui è integrato un transceiver USB liberamente programmabile.
Programmazione con Atmega 8U2 Programmazione con CH340
In questo modo a differenza del chip della FDTI, per il quale era necessario installare appositi driver, con I'utilizzo dell'integrato ATmega8U2 ciò non è più necessario, perché sono usati i driver comuni della periferica USB già disponibili con il sistema operativo. La presenza del connettore ICSP1 permette agli utenti avanzati di riprogrammare il processore, trasformando la scheda Arduino UNO in un diverso tipo di dispositivo USB. Per esempio si potrà usare la scheda come tastiera, mouse, disco driver o come un'interfaccia MIDI, ecc Il clock del processore è fornito di quarzo da 16 MHz Q1.
Microcontrollore
In elettronica digitale il microcontrollore o microcontroller o MCU (MicroController Unit) è un dispositivo elettronico integrato su singolo chip, nato come evoluzione alternativa al Microprocessore ed utilizzato generalmente in sistemi embedded ovvero per applicazioni specifiche di controllo digitale.
http://it.wikipedia.org/wiki/Microcontrollore
ANALOG
INPUTS
AVR (Alf and Vegard RISC processor)
• Sviluppati da Atmel nel 1996
• Famiglia di Microcontrollori RISC (reduced instruction set computer)
• Istruzioni a lunghezza fissa, accesso alla memoria di tipo load-store con 32 registri general-purpose
• Pipeline a due stadi per velocizzare l’esecuzione
• Esecuzione della maggior parte delle istruzioni in un solo ciclo di clock
• Fino a 12 volte più veloce di una architettura standard CISC
Architettura Harvard
http://it.wikipedia.org/wiki/Architettura_di_von_Neumann
Architettura Von Neumann
Nella macchina di von Neumann: • dati e istruzioni memorizzati in un’unica memoria che permette lettura e scrittura; • la memoria è costituita da celle uguali, indirizzate dalla loro posizione; • le istruzioni vengono eseguite in modo sequenziale.
http://it.wikipedia.org/wiki/Architettura_Harvard
Architettura Harvard
Surveyor SRV-1 Blackfin Robot
L'architettura di Von Neumann si contrappone all'architettura Harvard nella quale invece i dati del programma e le istruzioni del programma sono memorizzati in spazi di memoria distinti.
Nello specifico i microcontrollori Atmel AVR utilizzano una memoria flash per la memorizzazione del programma, mentre una memoria SRAM (Static RAM) per la memorizzazione dei dati
AVR Microcontroller (caratteristiche) Memoria Flash programmabile (almeno 10.000 volte) , RAM, EEPROM
interne (scrivibile almeno 100.000 volte)
Sistema di programmazione interno (ISP)
Varietà di periferiche: I/O digitali, ADC, Timer, UART, RTC timer, pulse width modulator (PWM)…
Clock fino a 20MHz
Ampia gamma di tensioni di funzionamento: da 1.8 V a 6.0 V.
Package variabile da 8 pin fino a 64 pin
Watchdog con oscillatore interno autonomo
POR (Power On Reset)
Famiglie
ATtiny25-45-85, ATtiny24-44-84, ATtiny2313-4313 ...
ATmega88, ATmega168, ATmega328P ...
XMega (sigle che iniziano con "ATXMega")
http://www.atmel.com/Images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-
328-328P_datasheet.pdf
Caratteristiche ATmega328P
http://arduino.cc/en/Main/ArduinoBoardUno
Caratteristiche Arduino Uno
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: 1 oppure 0)
Tensioni
• 5 V (per lo stato HIGH)
• 0 V (per lo stato LOW)
• 3.3 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
Valori massimi
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
Ci sono 5 metodi di indirizzamento: • Diretto; • Indiretto con spostamento; • Indiretto; • Indiretto con pre-incremento; • Indiretto con post-incremento
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.
AVR CPU
• Caricamento istruzione dalla memoria programma (Fetch)
• Caricamento dati dalla memoria dalla memoria dai registri.
• Decodifica dell’istruzione (Decode)
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 comunicazione del flusso di informazioni da e per il 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.
Un insieme di pin
definisce una porta del
microcontrollore
Schema ATmega328 PDIP
http://forum.arduino.cc/index.php/topic,146315.0.html
Nome
Pin
Funzioni
Speciali
Numero
Pin
http://forum.arduino.cc/index.php/topic,146315.0.html
Schema atmega328 SMD