Presentazione standard di PowerPoint - Unisalento

46
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

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»

http://arduino.cc/en/Main/ArduinoBoardUno

Open Hardware

Sistema di espansione a shield

http://shieldlist.org/

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")

Atmel ATmega328P

Versione PDIP

Plastic Dual In-line Package

Versione SMD

Surface-Mount Device

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

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

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.

General Purpose Register

SRAM Data Memory

General Purpose Register SRAM Data Memory

SRAM Data Memory

SRAM Data Memory

SRAM Data Memory

SRAM Data Memory

SRAM Data Memory

SRAM Data Memory

SRAM Data Memory

AVR CPU

• 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 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