Digitale, Sez.5 Sistemi di Elettronica - Ufficio 24 Dip. Ingegneria dell'Informazione - Alessandra Flammini
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
Sistemi di Elettronica Digitale, Sez.5 Alessandra Flammini alessandra.flammini@unibs.it Ufficio 24 Dip. Ingegneria dell’Informazione 030-3715627 Lunedì 16:30-18:30 Sistemi di elettronica digitale, A. Flammini, AA2021-2022
Elaborazione di segnali • Acquisisco ingressi e informazioni, elaboro, genero uscite • Ingressi (da acquisire) e uscite (da generare) – Segnali digitali "statici" (informazione binaria) – Segnali digitali "time-coded" (l'informazione è codificata nel tempo) – durata di un impulso (Ton) – periodo di un'onda quadra o rettangolare (T=Ton+Toff) – duty cycle di un onda rettangolare (Ton/T) – sfasamento tra due segnali –… – Segnali "codificati" (informazioni) – interfacce seriali dirette (UART, SPI, I2C,…) – interfacce seriali indirette (verso moduli di comunicazione) – USB, Ethernet,… – Bluetooth, WiFi,… – Segnali analogici (informazione numerica 0…N=2n) • I segnali sono normalmente gestiti mediante dispositivi periferici – Periferiche per gestione di vari tipi di segnali • Esistono processori che integrano periferiche (microcontrollori) Sistemi di Elettronica Digitale, A. Flammini 2
Sistemi embedded • I sistemi embedded sono sistemi hardware + software residente (firmware –FW-) + segnali di ingresso e uscita per lo svolgimento di compiti precisi • I sistemi embedded sono basati su dispositivi/processori speciali che integrano periferiche – Dispositivi integrati (es. lab-on-chip, auricolari BLE,…) – Sistemi integrati (es. Arduino, Raspberry,…) Sistemi di Elettronica Digitale, A. Flammini 3
Sistemi embedded • I sistemi embedded tipicamente comprendono: – Un processore, tip. un microcontrollore, destinato alla gestione di Ingressi e Uscite (I/O) digitali e/o analogici – Un sistema di alimentazione tipicamente a batteria o comunque a basso consumo (es. USB) – Un sistema di comunicazione, cablato (USB) o wireless (Bluetooth Low Energy), sul quale il sistema è slave • I sistemi embedded possono anche comprendere: – Un sistema di comunicazione, cablato (Ethernet, USB OTG) o wireless (Bluetooth Low Energy, WiFi), sul quale il sistema può gestire altri slave – Sensori Sistemi di Elettronica Digitale, A. Flammini 4
Sistemi embedded, il microcontrollore (MCU) • Processore: – 8-16-32 bit, aritmetica intera, sommatori HW, moltiplicatori firmware – No sistema operativo, compilatore C • Memorie: – Flash per codice, SRAM per dati, Serial Flash o EEPROM per configurazione • Periferiche e pin di I/O: – Porti di I/O logico. Normalmente configurati come ingressi, possono essere programmati come uscite. Sono costituiti da un buffer 3-state (inizialmente a Z) con un ricevitore in antiparallelo – Unità di temporizzazione. Timer free-running (contatori) con registri che memorizzano istanti di eventi (es. fronte di salita di un ingresso o istante di commutazione di un’uscita). Uscite PWM – Interfacce Seriali (UART, I2C, SPI) verso dispositivi periferici seriali (es. sensori, moduli Bluetooth, ecc.) o per comunicazione tra MCU – Convertitori Analogico/Digitale che gestiscono in MUX più ingressi (tip. ad approssimazioni successive, 10 bit, max 100kSa/s per 8 bit) – Interfacce USB, il microcontrollore è normalmente un device e il sistema embedded può essere connesso ad un PC come una periferica NOTA: Ciascun pin può essere configurato in uno dei modi sopra elencati Sistemi di Elettronica Digitale, A. Flammini 5
Elaborazione di segnali • Segnali analogici • Applicazioni – Controllo e regolazione di sistemi (genero u(t) per ottenere un desiderato e(t)) – Misura o stima o trasferimento di informazione (e(t)) – Generazione di stimoli (u(t)) • Ogni blocco introduce rumore (ni(t)=rumore) e impiega un tempo ti n0(t) n1(t) n2(t) n3(t) n4(t) Analogico Digitale e(t) - v(t x(n) Digital y(n) w(t) - u(t) + ) Signal + Digitale Processing Analogico t0 t1 t2 t3 t4 Sistema Sistemi di Elettronica Digitale, A. Flammini 6
Elaborazione di segnali • Elaborazione analogica • Stadio di condizionamento tipico: –eventuale stadio a guadagno G e’(t) = G1e(t)+ G0 –filtro passa-basso (o passa-banda) con frequenza di taglio fch < fs/2 e ordine m •Possibili problemi: –Il filtro, di ordine limitato, non attenua sufficientemente oltre fs/2 –G non è costante in tutta la banda di interesse (OA, filtro) –v(t) risulta in ritardo rispetto a e(t) •Possibili soluzioni: –Sovracampionamento rispetto alla banda utile del segnale –e(t) ={f1, f2} fs>>f2, fch>>f2 (tip. fch10f2, fs100f2) maggiori costi n0(t) n0A(t) n0B(t) e(t) v(t) e(t) - e'(t) v(t) - + +G fcl fch Sistemi di Elettronica Digitale, A. Flammini 7
Elaborazione di segnali • Convertitore analogico/digitale • Lo stadio di conversione è caratterizzato da 3 parametri: – Frequenza di campionamento fs (Tempo di conversione Ts = 1/fs) – Numero B di bit del convertitore – Stabilità delle tensioni di riferimento Vrefh, Vrefl – Legge di conversione x=2B(v-Vrefl)/(Vrefh-Vrefl) • xx, tt Rappresentazione implicita del tempo (tn-tn-1=Ts=1/fs) – x(n) = v(nTs) • Il rumore associato all’ADC dipende da: x – tempo di apertura, linearità, Vref,... – Rumore di quantizzazione associato a B 2B-1 Nota: S/H può non essere utile (es. approx. succ.) 2B livelli v(t) S/H ADC 2 1 Δ x(n) 0 Logic Vref Vrefl Vrefh v Sistemi di Elettronica Digitale, A. Flammini 8
Elaborazione di segnali • Convertitore analogico/digitale, rumore di quantizzazione • Errore di quantizzazione qT (qT
Elaborazione di segnali • Convertitore analogico/digitale, rumore di quantizzazione • Segnale sinusoidale v=Asin(wt) - Potenza del segnale 2(v)=(1/2)(Asin(wt))2d(wt)=A2/2 - Il valore di A deve essere massimo possibile ma compreso nel range d’ingresso •A≤(Vrefh-Vrefl)/2 ma =2-B(Vrefh-Vrefl) per cui A=2B-1 - Potenza del rumore 2(qT)=PqT(x-E(qT))2dx=2/12 - SNR = (22B-22/2)/(2/12) = 3·22·22B-3 = (3/2)22B - SNR[dB]= 20B·log2 + 10log(3/2) = 6B+1.76 - SNR=(3/2)22B SNR[dB]= 20Blog2 + 10log(3/2) = 6B+1.76 Nel dominio delle frequenze si avrebbe (FFT a M punti) 1 M 1 2 SNR Arms Arms 1 X avg ni X avg M ni 2 2 1 X avnfh m 2 M M M N d 1 m 1 NOTA: dal rumore viene spesso cancellata la componente continua e le armoniche, Nd è il numero delle componenti cancellate +2 (le fondamentali) Sistemi di Elettronica Digitale, A. Flammini 10
Elaborazione di segnali • Convertitore analogico/digitale, ENOB • Effective Number of Bits – Misuro SNR totale, conosco 2(v), calcolo 2(qT) e stimo ENOB – Se sinusoide, in base a SNR=6B+1.76, stimo ENOB (Numero di Bit effettivi) • Filtro anti-aliasing – Per evitare che le repliche spettrali alle frequenze superiori a fs/2 possano riflettersi in banda a causa dell’aliasing, si mette un filtro passa-basso a fch
Elaborazione di segnali • Convertitori analogico/digitale • Tipi di convertitori A/D tradizionali • Applicazioni ad elevata velocità (fb > MHz) convertitori flash – banco di 2B–1 comparatori a soglie differenti (Ts=Tcomp+Tlogic) • Applicazioni a bassa velocità (fb LSB (1 compar., Ts=N(Tcomp+Tlogic+TassD/A) • Tipi di convertitori A/D “modificati” FS/2 MS –ad approssimazioni successive parallele (a residui Ai) v(t) B –più veloce di quello ad approx. perchè D/A a 1 bit +- D/A + –con un S/H dopo il G=2 può operare in pipeline A 1 2 FS/2 MSB- 1 •Tipi di convertitori A/D per usi speciali +- D/A –convertitori A/D non lineari (es. voce, legge A e μ) A + –A/D lavora spesso nel campo a minor precisione 2 2 FS/2 MSB- –Conv. lineare: D=v+q Conv. logaritmica: D=logv+q +- 2 –Imponendo q=logkq si ha D=log(kqv) qrel=cost. + D/A A 3 Sistemi di Elettronica Digitale, A. Flammini 12
Elaborazione di segnali • Convertitori analogico/digitale • Conversione logaritmica per trasmissione del segnale telefonico (problema per x = 0 –> y = lnx = ln0 = - ) • Legge (Stati Uniti): traslazione tipo y=ln(1+kx) ln(1 x/FS) y =255 (si approssima la legge continua con 8 segmenti lineari) ln( 1 ) • Legge A (Europa): raccordo con tratto lineare y=lnx per x>1/A e y=kx per x
Elaborazione di segnali • Convertitore A/D Sigma/Delta v(t) • Invece di convertire il valore assoluto di v(t) converte + - D le differenze nel tempo v’ D/A Q U/DCk - L’uscita D è una sequenza di bit Res - Esempio di convertitore a inseguimento (Q=risultato ADC) - A inseguimento finito (DC) ho una sequenza 010101...+-+-+ - Integrando tale sequenza ottengo 0 (variazione nulla) v(t) + Ck L’ - Aumentando Ck aumento la risoluzione - D - La frequenza di lavoro (Ck) è >> della dinamica di v(t) v’ Q • Convertitore delta a integratore: - Caratteristiche simili allo schema sopra - Maggiore semplicità implementativa v’ v(t) • Convertitore Sigma-delta (prima integro e poi ) - Decimazione mediante filtri numerici v(t) + Ck L’ v(t) A/D Decimatore - D + +- v’ Q D/A Sistemi di Elettronica Digitale, A. Flammini 14
Elaborazione di segnali v(t) + - D • Convertitore A/D Sigma/Delta v’ D/A Q U/DCk Res • Il convertitore differenziale a inseguimento, per assestare il valore di Q (v(t) a bassa dinamica) deve attendere 2N colpi di clock (N=dim. contatore) Uscita Q a N bit dopo 2N colpi di clock Decimazione: rapporto di riduzione = 2N/N In realtà i decimatori sono filtri • Il sovracampionamento migliora SNRa (filtro anti-alias meno critico) e SNRq (sparpaglio meglio la densità spettrale del rumore di quantizzazione qT=2/12fs) Ipotesi: rumore quantizzazione additivo bianco (uniformemente distribuito in f) Non vale per v(t) = costante (rumore di quantizzazione “coloratissimo”) • Noise shaping (ulteriore riduzione della densità spettrale di qT in banda) Convertitore Sigma-Delta nel dominio delle frequenze X ( s) Y ( s) Y ( s) 1 Y ( s) Y ( s) s Y ( s) Y ( s) N ( s) s X ( s) s 1 s N ( s) s 1 +qT(s) Segnale x(s) Rumore + A/D Decimatore +- y(s) D/A Sistemi di Elettronica Digitale, A. Flammini 15
Elaborazione di segnali • Convertitori A/D integrati nei microcontrollori • Tipicamente i convertitori integrati nei microcontrollori a basso costo sono ad approssimazioni successive • Es. ATmega32u4 12 canali multiplexati (uno alla volta) 10/8 bit (+/-2LSB Accuracy) tempo di conversione a 10 bit da 65us = 13 ADC Clocks @ 200kHz (fino a 15kSps – Samples per second-), ma Arduino non supera tipicamente 9kSps. Amplificazione programmabile (1x, 10x, 40x, 200x) Riferimento interno di tensione a 2,56V (oppure riferimento a Vcc) Interrupt che stimolano la conversione (End-of-Conversion Interrupt) Comparatori analogici (confrontano le tensioni tra 2 pin) • Nota: alcune funzionalità non sono pienamente supportate da Arduino Sistemi di Elettronica Digitale, A. Flammini 16
Elaborazione di segnali • Convertitori D/A • Architettura a correnti pesate – Come realizzo le correnti? corrente di riferimento Stato dello switch (parola binaria) (Max IOUT) • Architettura a resistenze pesate Correnti “pesate” – Come realizzo le resistenze? • La soluzione a rete R/2R • La soluzione PWM N=16 Sistemi di Elettronica Digitale, A. Flammini 17
Elaborazione di segnali • Convertitori D/A N=16 • PWM, Pulse Width Modulation • I segnali PWM sono caratterizzati da una frequenza portante fo=1/To, per cui i fronti di salita del segnale sono equidistanti To • Il periodo To viene suddiviso in N=2n intervalli di durata To/N • Il fronte di discesa viene programmato dopo k intervalli, ossia a distanza k·To/N dal fronte di salita con k programmabile tra 0 e N-1 • Il segnale PWM codifica nel tempo Ton = k·To/N (tempo in cui il segnale è a "1") l'informazione (Ton+Toff=To) • Il segnale varia tra Vol e Voh e, in CMOS, circa tra massa e alimentazione; se filtrato passa-basso (RC) con frequenza di taglio fc
Elaborazione di segnali • Convertitori D/A integrati nei microcontrollori • Tipicamente i microcontrollori a basso costo non integrano convertitori D/A ma solo uscite PWM •Es. ATmega32u4 4 canali PWM a 8 bit 4 canali PWM con risoluzione programmabile da 2 a 16 bit 6 canali fast-PWM con risoluzione programmabile da 2 a 11 bit e con frequenza portante pari a Fclk_I/O/(N*256) con N = 1, 8, 64, 256, 1024 Arduino ha frequenza portante pari a 488Hz(/976Hz) (es. analogWrite (11, 63) genera un'onda rettangolare a 488Hz con duty cycle D=25% (=63/255) NOTA: E' sempre possibile programmare a basso livello, modificando la tabella dei registri dell'MCU (da vedere/capire poi) Oltre al PWM, i timer permettono di generare baud rate per le seriali, realizzare funzioni basate su timer di sistema (es. millis(), micros(), delay(), ecc.), acquisire/generare commutazioni con timestamp Sistemi di Elettronica Digitale, A. Flammini 19
Sistemi embedded, GPIO CONTROL OUT GPIO IN • GPIO, General Purpose Input/Output: Periferica – Punti di Ingresso Uscita digitale – Possono essere connessi a periferiche anche diverse tra loro. Le periferiche sono sempre connesse al pin mediante transceiver – inizialmente (al reset) i GPIO sono configurati come ingressi e tutti i trasmettitori 3-state e i transceiver sono disabilitati (uno solo abilitato alla volta) Sistemi di Elettronica Digitale, A. Flammini 20
Sistemi embedded, interfacce seriali • UART (Universal Asynchronous Receiver-Transmitter): – shift register con clock locale in sovracampionamento – autodetect del clock mediante trasmissione di pattern speciali (es. 55hex) o misura distanza tra start bit e stop bit – storicamente nata per l'RS232 (COM, oggi virtualizzata dai PC su USB), oggi ancora presente in bus master-slave multipoint (RS485) Sistemi di Elettronica Digitale, A. Flammini 21
Sistemi embedded, interfacce seriali • SPI (Serial Peripheral Interface): – MOSI (Master Output Slave Input) – MISO (Master Input Slave Output) • HW device selection: – lo slave si attiva solo sul traffico di sua pertinenza • SW device selection: – lo slave si attiva sempre e legge un indirizzo nel pacchetto Sistemi di Elettronica Digitale, A. Flammini 22
Sistemi embedded, interfacce seriali • SPI (Serial Peripheral Interface): – Interfaccia che i uC supportano SDA come Master e come Slave • I2C (Inter-Integrate Circuit): SCL – Due sole linee (dati e clock) Sistemi di Elettronica Digitale, A. Flammini 23
Sistemi embedded, Timing Processing Unit • Timer/Counter – i timer nei microcontrollori sono dei contatori alimentati da un clock legato al clock di funzionamento della ALU (più timer/counter in un MCU) – permettono la gestione del tempo relativo –tempo trascorso tra un evento e un altro-, ma non del tempo assoluto –giorno, ora, minuti, secondi- • Input Capture (IC) – cattura del valore del Counter in corrispondenza di un fronte di un segnale • Output Compare (OC) – generazione di evento quando il Counter ha un valore specificato – l’evento può essere relativo ad un segnale di uscita o ad altre periferiche – il PWM è un caso di OC PRS Peripheral Reflex System (periferiche che comunicano senza passare dall’MCU Sistemi di Elettronica Digitale, A. Flammini 24
Sistemi embedded, MCU (Es. Atmega 32u4) Sistemi di Elettronica Digitale, A. Flammini 25
Sistemi embedded, MCU (Es. Atmega 32u4) - Gli MCU non hanno bus dati e bus indirizzi, ma porti - I porti sono gruppi di 8 GPIO connessi a una o più perifieriche - La personalizzazione dei porti dipende dalla programmazione di alcuni registri - Esiste anche una tabella degli interrupt (vettori) Sistemi di Elettronica Digitale, A. Flammini 26
Sistemi embedded, Port (Es. Atmega 32u4, portB) 18 19 20 21 22 23 Bluefruit LE PIN Registro DDRF, ind.31hex, Data Direction Port F NOTA: è possibile utilizzare le funzioni Arduino o agire direttamente a livello di registri del microcontrollore (MCU). Esempi: pinMode (22, INPUT) equivale a DDRF &= 0xFD; // AND maschera x resettare un bit pinMode (23, OUTPUT) equivale a DDRF |= 0x01; // OR maschera x settare un bit Sistemi di Elettronica Digitale, A. Flammini 27
Sistemi embedded: USB Sistema di connessione punto-a-punto USB 1.0 (1996->1999) • interfaccia lenta, rimpiazza la RS232 (UART) per mouse, tastiere, e la parallela Centronics per le stampanti (1,5Mbit/s -> 12Mbit/s). USB è anche una sorgente di potenza (5V, 5A) USB 2.0 (2000) • aumento di velocità (480Mbit/s). Usato per trasferimento file e immagini (USB memory stick, cameras, etc). Non usato per segnali video (HDMI) USB 3.0 (2008) • interfaccia veloce (4,8Gbit/s -> 10Gbit/s), più potenza, più tipi di connettori USB è la connessione ideale tra PC e dispositivi mobili (ricarica) • il connettore microUSB è uno standard di alimentazione USB è una connessione master (host) - slave (peripheral) • 1 host e fino a 127 periferici; i periferici non possono comunicare tra di loro • HUB (port multiplier): utilizzato per connettere più periferici (cavo < 5m) • USB On-the-Go (USB OTG) permette ad un dispositivo (es. Smartphone) di essere sia host che peripheral Plug-and-play (no driver) Sistemi di Elettronica Digitale, A. Flammini 28
Sistemi embedded: Ethernet Sistemi di Elettronica Digitale, A. Flammini 29
Sistemi embedded: Ethernet, internet Sistemi di Elettronica Digitale, A. Flammini 30
Sistemi embedded, lo Smartphone (Galaxy S5) Sistemi di Elettronica Digitale, A. Flammini 31
Sistemi embedded, lo Smartphone Sistemi di Elettronica Digitale, A. Flammini 32
Sistemi embedded: lo Smartphone lo è o no? Processori (CPU, Central Processing Unit) • Digital Baseband Processor: interfacce radio (WiFi, Bluetooth) e sistema operativo (OS). E’ un sistema, con CPU, memorie e firmware • Application processor: per OS e applicazioni. Normalmente a 32 o 64 bit (floating points), orientato al basso consumo Memorie • DDR SDRAM (Double Data Rate Synchronous Dynamic Random Access Memory), veloce trasferisce 64bits 2 volte ad ogni periodo di clock • SRAM per codice e dati • Serial FLASH per dati di configurazione Molti dispositivi inerenti l’alimentazione • La vita della batteria è uno dei principali problemi Human interface e periferiche • Touchscreen, display, audio, fotocamera (possono essere considerati come sensori) Sensors • GPS, accelerometri, giroscopi, sensori di temperatura, altro Lo SMARTPHONE non è un sistema embedded ma può esserne la base Sistemi di Elettronica Digitale, A. Flammini 33
Sistemi embedded: il progetto RASPBERRY Pi • Computer compatti compatibili Linux (Great Britain 2012) • Basato su un System-on-Chip BCM2836 che integra un ARM (900 MHz 32-bit quad-core ARM Cortex-A7), memoria (1GB RAM), uSD e interfacce USB, Ethernet, Monitor e I/O digitale e porte seriali • https://www.sparkfun.com/products/13297 https://www.raspberrypi.org/ Sistemi di Elettronica Digitale, A. Flammini 34
Sistemi embedded: il progetto RASPBERRY Pi • Raspberry pi Model A (2012) – BCM2835 (ARM1176JZ 32bit, Low-power a 700MHz, single CPU, GPU dual-core, Video out HDMI, Video in MIPI camera interface, Audio, 1 USB, 17 GPIO), 256M SDRAM, Sdcard, 300mA (1,5W), 86mmx57mm, 31g, 25$ •Raspberry pi Model A+ (2014) – 512MB SDRAM, HDMI, MicroSD, 200mA (1W), 65mmx57mm, 23g, 20$ • Raspberry pi Model B (2012) – 512MB SDRAM, HDMI, 2 USB, Ethernet, 21 GPIO, 700mA (3,5W), 86mmx57mm, 31g, 35$ – Raspberry pi Model B+ (2014), 4 USB, MicroSD, 25$ • Raspberry pi Model B2 (2015) Raspi 2 – BCM2836 (ARMCortex A7 quadcore 900MHz 32bit, GPU dual-core, Video out HDMI, Video in MIPI camera interface, Audio, 4 USB, Ethernet10/100, 17GPIO), 1G SDRAM, uSDcard, 800mA (4W), 86mmx57mm, 31g, 25$ – 512MB SDRAM, HDMI, MicroSD, 200mA (1W), 86mmx57mm, 45g, 35$ • Raspberry pi Model B3 (2016) – BCM2837 (ARMCortex A53 quadcore 1,2GHz 64 bit, WiFi, BLE4.1,…) • Raspberry pi Model B4 (2019) – BCM2711 (4xCortex-A72 1,5GHz 64 bit, fino a 8G SDRAM, WiFi, BLE5.0, uHDMI,…) Sistemi di Elettronica Digitale, A. Flammini 35
Sistemi embedded: Raspi 2 (40 pin connector) Sistemi di Elettronica Digitale, A. Flammini 36
Sistemi embedded: Competitors del Raspi 3 • Beaglebone Black (Debian, Android, Ubuntu) –AM335x 1GHz ARM Cortex A8 –SGX530 Graphics Accelerator –NEON Floating-point Accelerator –USB –Micro HDMI –512MB DDR3 800MHz –4GB Embedded Flash and Micro SD Card slot – See https://beagleboard.org/ • Raspi 4 ($35-45-55) vs Raspi 3B+4 ($35) –Better CPU (4xCortex-A72 vs A53) but more power –Faster and scalable Memory (1/2/4GB vs 1BG) –Dual 4k monitor support (2xμHDMI, VideoCore VI GPU) –USB 3.0 (vs 2.0), more ports (BT5 vs BLE4.2) but no full size HDMI – https://www.raspberrypi.org/ • Onion – All inclusive IoT board – Omega2s – see https://onion.io/ Sistemi di Elettronica Digitale, A. Flammini 37
Sistemi embedded: il progetto ARDUINO • Il Progetto open source ARDUINO è nato nel 2005 a Ivrea • Consta di Ambiente di programmazione, Schede Processore, Shield • Ambiente di programmazione (IDE, Integrated Development Environment) – Linguaggio di programmazione C/C++ per realizzare «sketch» – Libreria software per il supporto semplice dell’accesso a I/O – Il programma è articolato in una parte di inizializzazione setup() e una parte loop() che viene eseguita ciclicamente – Il programma viene caricato nell’Hardware (CPU) da un Bootloader residente nell’HW stesso • Schede Processore (CPU), es. UNO https://www.arduino.cc/en/Main/ArduinoBoardUno – Microcontrollore ATMega (ATMega328), 32k Flash (5k Bootloader), 2k RAM, 1k EEPROM, Connettore con I/O e porte seriali predefinito per connessione con schede Shield • Schede Shield – Schede che si connettono alla scheda Processore per sensori, attuatori o sistemi di comunicazione Sistemi di Elettronica Digitale, A. Flammini 38
Sistemi embedded: ARDUINO UNO Sistemi di Elettronica Digitale, A. Flammini 39
ARDUINO UNO, MCU ATMega328 • CPU e Memorie – Arch. RISC a 131 istruzioni (tante a ciclo singolo, MUL8 a 2 cicli) – Clock a 20MHz, clock interno a 32kHz – 32 registri a 8 bit, 32k Flash (5k Bootloader), 2k RAM, 1k EEPROM • Periferiche – 2 8bit Timer/Counter, 1 16bit Timer/Counter con eventi I/O correlati (Input Capture, Output Compare), 6 canali PWM – Convertitore A/D a 10 bit con 6 canali, 260us di tempo di conversione (30us a bassa risoluzione) – Interfacce seriali USART, SPI, I2C – Comparatori analogici on-chip – Interrupt e wake-up su cambi di stato di pin – 23 pin programmabili • Alimentazione – Alimentazione tra 1,8V e 5V – Basso consumo (0,2mA-9mA in modo attivo, 0,1uA in Power-down mode,…6 modi di funzionamento a bassa potenza) Sistemi di Elettronica Digitale, A. Flammini 40
ARDUINO LEONARDO, MCU ATMega32u4 • CPU e Memorie – Arch. RISC a 135 istruzioni (tante a ciclo singolo, MUL8 a 2 cicli) – Clock a 48MHz, clock interno a 32kHz, 16MIPS@16MHz (max freq.) – 32 registri a 8 bit, 32k Flash (5k Bootloader), 2.5k RAM, 1k EEPROM • Periferiche – un 8bit Timer/Counter, due 16bit Timer/Counter con eventi I/O correlati (Input Capture, Output Compare), 8 canali PWM – Convertitore A/D a 10 bit con 12 canali, 260us di tempo di conversione (65us a bassa risoluzione). – Interfacce seriali USART, SPI, I2C, USB 2.0 – Comparatori analogici on-chip – Interrupt e wake-up su cambi di stato di pin – 26 pin programmabili • Alimentazione – Alimentazione tra 2,7V e 5V – Basso consumo (0,2mA-10mA in modo attivo, 0,1uA in Power-down mode,…6 modi di funzionamento a bassa potenza) Sistemi di Elettronica Digitale, A. Flammini 41
IL PROGETTO ARDUINO • ARDUINO è una piattaforma open source di Physical Computing – open source = libero di usare e modificare – physical computing = sistemi hardware e software che interagiscono con i segnali del mondo fisico • ARDUINO significa 3 cose: – un oggetto fisico (scheda a microcontrollore) – un ambiente di sviluppo per la programmazione e il debug (IDE) – una comunità ed una filosofia di sviluppo ( www. arduino.cc ) • Con ARDUINO si realizzano sistemi embedded www.youtube.com/watch?v=SaPbuy5WL_s Sistemi di Elettronica Digitale, A. Flammini 42
IL PROGETTO ARDUINO, IDE • Terminologia – IDE = Integrated Develpment Environment – sketch = programma scritto da utente che si compone di: –inizializzazione setup() che va in esecuzione una sola volta al reset –parte principale loop() che viene eseguita ciclicamente in modo continuo e asincrono – pin = i piedini di ingresso (input) o uscita (output) – board = scheda con MCU – shield = scheda di espansione (es. controllo motori, sensori, comunicazione) – upload o "flashing" = operazione di programmazione della scheda • Sul sito ARDUINO trovo tutto: – l'ambiente di sviluppo da scaricare (Software -> download) – tutorials e getting started (Resources -> Tutorial o getting started) – manuale tecnico del linguaggio (Resources -> Reference), ripartito in Functions, Variables, Structure https://www.arduino.cc/reference/en/ • Per fare esperienze di programmazione ho bisogno di una scheda supportata (e di eventuali shield supportati) e collegata su USB: – Es. noi a laboratorio usiamo ADAFRUIT Bluefruit Feather32u4 e i relativi shield si chiamano FeatherWing Sistemi di Elettronica Digitale, A. Flammini 43
IL PROGETTO ARDUINO, IDE Sistemi di Elettronica Digitale, A. Flammini 44
IL PROGETTO ARDUINO, IDE • Struttura del programma semplice – include di eventuali librerie (esempio #include "Boards.h") – dichiarazione di costanti (esempio #define ANALOG 0x02) – dichiarazione variabili (esempio int numeromio = 5); – programma di inizializzazione (void setup() { } ) – dichiarazione variabili (esempio int numeromio = 5; – dichiarazione di sottoprogrammi (es. void reportPinDigitalData(byte pin) ) – programma in esecuzione continua (void loop() { } ) – le istruzioni sono delimitate da ; • Principali funzioni: – pinMode() usata in genere in setup(), permette di definire se un pin è INPUT o OUTPUT – digitalWrite() permette di impostare un pin di output come HIGH o LOW – digitalRead() permette di leggere lo stato di un pin – analogRead() permette di leggere un pin analogico – analogWrite() permette di impostare un pin analogico – delay() mette in attesa il programma per il numero di ms impostato – millis() legge il numero di millisecondi trascorsi dall'accensione della scheda • Per ulteriori informazioni guarda https://www.arduino.cc/reference/en/ Sistemi di Elettronica Digitale, A. Flammini 45
Puoi anche leggere