Le periferiche del micro AVR UC32

Una panoramica delle periferiche presenti a bordo dei microcontrollori Atmel AVR UC32. UC3 è la famiglia di microcontrollori AVR  a  32  bit di Atmel per sistemi ad elevate prestazioni nei più diversi ambiti di applicazione, che vanno dal controllo nei settori industriale ed automotive, alle apparecchiature consumer portatili.

I microcontrollori si basano su CPU RISC a 32 bit che dispone di istruzioni dedicate per operazioni DSP, accessi read-modify-write e  manipolazione di  singoli bit, garantendo così una capacità di calcolo di 1.51 DMIPS/MHz. Una matrice di connessione multi-livello controlla lo scambio dati con le periferiche, eventualmente mediante controller DMA a più canali. Adeguata capacità di memoria interna è garantita da banchi RAM e Flash embedded. Controller dedicati consentono poi l’accesso a memorie esterne di tipo SDRAM e NAND Flash o dispositivi di memorizzazione di massa come MMC, SD/SDIO, Memory Stick.

La famiglia UC3 si compone delle serie A, B, C e L che si caratterizzano per le diverse configurazioni hardware. Caratteristiche principali di tutti i dispositivi restano, comunque, l’ampia gamma di periferiche rese disponibili che assicurano, tra l’altro, elevata connettività, elevate prestazioni in applicazioni di processamento dati anche in ambito DSP, elevata capacità di trasferimento dati, bassa dissipazione di potenza grazie alla tecnologia picoPower, ampio supporto software disponibile attraverso l’AVR Software Framework con una libreria completa di drivers e middleware. In questo articolo soffermeremo la nostra attenzione, in particolare, sul primo aspetto, ovvero sulle caratteristiche delle principali periferiche presenti a bordo di questa famiglia di microcontrollori (figura 1).

Figura 1: la famiglia UC32 di microcontrollori AVR a 32 bit.

Figura 1: la famiglia UC32 di microcontrollori AVR a 32 bit.

CONNETTIVITÀ SERIALE

Piuttosto disparate, ad esempio, sono le interfacce di connessione seriale che consentono, ad esempio, la realizzazione di gateway di comunicazione e sistemi di comunicazione multi-utility (figura 2).

Figura 2: comunicazione multi-utility con i microcontrollori UC32.

Figura 2: comunicazione multi-utility con i microcontrollori UC32.

Tra queste, possiamo citare, in particolare, un Controller SPI che dispone di fino a 4 segnali di selezione per indirizzare, mediante decoder esterno, fino a 16 periferiche connesse al bus. E’ possibile gestire dispositivi di memoria esterna come DataFlash o EEPROM, ADC e DAC, controller LCD o sensori. La porta supporta le funzionalità master e slave con lunghezza di parola programmabile da 4 a 16 bit. Sono pure programmabili la fase e la polarità dei segnali di controllo, i ritardi tra clock e dato all’interno di un trasferimento e tra trasferimenti consecutivi. Il controller dispone poi di due canali, uno in trasmissione ed uno in ricezione, connessi al controller DMA del microcontrollore per ridurre il carico della CPU nella trasferimento dei dati da e verso la memoria; la logica di ricezione integra un buffer FIFO di quattro caratteri. Oltre alla porta SPI, sulla maggior parte dei modelli, sono presenti porte TWIS (Two-Wire Slave Interface) e TWIM (Two-Wire Master Interface) che consentono di implementare i protocolli di comunicazione I2C, SMBus e PMBus. La porta TWIS supporta le funzionalità slave mentre quella TWIM quelle master. In modalità I2C la velocità di trasferimento dati è fino a 400 Kbps ed è previsto indirizzamento a 7 e 10 bit. In modalità SMBus, invece, è implementato il solo indirizzamento a 7 bit, ma sono poi previsti la generazione in hardware del controllo, l’address matching sugli indirizzi riservati alla gestione del protocollo, oltre ad una linea dedicata SMBALERT per la richiesta di servizio al master da parte degli slave connessi al bus. Come per l’interfaccia SPI, anche le porte TWIS e TWIM dispongono di connessione al controller DMA; supportano trasferimenti di lunghezza arbitraria e clock stretching nel caso in cui i buffer di ricezione o trasmissione interni risultino rispettivamente pieni o vuoti. Protocolli seriali sincroni diffusamente impiegati in ambito audio o telecom, come I2S, Short Frame Sync, Long Frame Sync, sono invece supportati dall’interfaccia SSC (Synchronous Serial Controller). La periferica integra logiche di trasmissione e ricezione indipendenti con divisore comune per la generazione del clock di linea. Supporta lunghezze di trasferimento dati e di sincronismo programmabili, avvio delle funzioni di trasmissione e ricezione di tipo automatico od in risposta ad eventi sulla linea di sincronizzazione, connessione mediante due canali al controller DMA del sistema. La porta USART (Universal Synchronous Asynchronous Receiver Transmitter) supporta, invece, i protocolli LIN, SPI, ISO7816 (per interfaccia verso le carte di identificazione elettroniche a contatto) e IrDA (per dispositivi ad infrarossi). Implementa comunicazione sincrona od asincrona, full-duplex, con lunghezza di parola tra 5 e 9 bit, numero di bit di stop programmabili fino a 2, generazione del controllo di parità e verifica degli errori. Supporta un meccanismo di controllo di flusso dati hardware di tipo RTS-CTS o DTR-DSR-DCD-RI (per l’interfaccia verso modem). Sono previste le modalità remote loopback, local loopback e automatic echo per le operazioni di test del canale di comunicazione. In modalità IrDA, il controller USART consente trasmissioni dati fino a 115.2 kbps. In modalità LIN, invece, è compatibile con le versioni 1.3 e 2.0 della specifica, implementando le modalità master e slave, la gestione di frame con fino a 256 byte, il supporto completo delle funzioni di error checking e reporting.

CONNETTIVITÀ USB, ETHERNET E CAN

La connessione dati ad elevata velocità è garantita dalla interfaccia USBB (Hi-Speed USB On-The-Go). Compatibile con la revisione 2.0 della specifica USB, la porta consente trasferimenti High Speed (480Mbit/s), Full Speed (12Mbit/s) e Low Speed (1.5Mbit/s) oltre alle funzionalità On-The-Go (consultare il datasheet per verificare il supporto di tutte le modalità da parte del modello selezionato). Supporta fino a 8 endpoints/pipes con due banchi di memoria dedicati per ognuno e canali DMA specifici. Include un transceiver UTMI con resistori di pull-up/pull-down on chip. Oltre alla porta USB, nella serie C è poi presente anche una porta Ethernet 10/100 Mbps con supporto per comunicazione halfduplex e full-duplex, interfaccia dati di tipo MII/RMII verso il Physical Layer e gestione dello stesso mediante interfaccia MDIO. La periferica implementa buffer FIFO in trasmissione e ricezione, supporto per jumbo frame fino a 1024 bytes, connessione al controller DMA del microcontrollore, generazione automatica di CRC per i frame in trasmissione e scarto dei frame ricevuti con errore, verifica d’indirizzo e hash matching sugli indirizzi unicast e multicast, funzionalità di Wake-On-LAN. Sempre nella serie C è pure disponibile un’interfaccia CAN, compatibile con la revisione 2.0B della specifica. La periferica supporta trasferimenti dati fino a 1 Mbps e 2 canali indipendenti. Implementa le modalità single shot e di trasmissione/ricezione automatica. Dispone di funzionalità di solo ascolto per applicazioni di monitoring del bus e di wake-up automatico dallo stato di sleep in presenza di attività sul bus stesso.

CONVERSIONE ADC E DAC

Oltre alla periferiche di connessione appena descritte, i microcontrollori della serie AVR UC32 dispongono poi di convertitori ADC e DAC per applicazioni di conversione analogico-digitale e viceversa. Le serie A e B, in particolare, integrano un convertitore ADC di tipo SAR (Successive Approximation Register) caratterizzato da una risoluzione di 8 o 10 bit per campione. Il convertitore dispone di multiplexer analogico in ingresso ad 8 canali (con tempo di sample&hold configurabile) e sequencer programmabile per l’esecuzione automatica di scansioni multiple. E’ prevista la possibilità di iniziare una conversione mediante comando software, linea di trigger esterna od interna (generata mediante timer/counter). La serie C dispone, invece, di convertitore ADC con risoluzione di fino a 12 bit e fino a 16 canali di ingresso multiplexati in due gruppi di 8. I due multiplexer sono connessi a due sample and hold indipendenti così da consentire il campionamento simultaneo di due segnali d’ingresso. Il convertitore raggiunge una frequenza di campionamento di 1.5 MSamples/s (2 Msample/s per risoluzioni inferiori a 12 bit). Sono previsti un sequencer ad 8 stati, registri dedicati per il valore campionato di ogni ingresso ed un meccanismo di windowing del segnale con un canale selezionabile. La conversione ad 11 e 12 bit per campione, può essere ottenuta pure dai convertitori presenti a bordo dei dispositivi della serie L; tali convertitori sono di tipo ad approssimazione successiva con risoluzione nativa di 10 bit ma possono garantire maggiore risoluzione mediante interpolazione di 4 o 16 campioni successivi (a scapito, evidentemente, della frequenza di campionamento che si riduce di un fattore equivalente). Per quanto riguarda le periferiche di conversione digitale-analogico, segnaliamo, invece, i convertitori DAC delle serie C e L che si caratterizzano per una risoluzione di 12 bit, una capacità di conversione di 1 MSamples/s, la disponibilità di uscita singola in modalità continua o doppia mediante circuito S/H, oltre ad un meccanismo intrinseco di calibrazione di gain e offset. Sulla serie A e B è invece presente un DAC di tipo Sigma-Delta (del terzo ordine), con risoluzione di 16 bit per campione e fattore di oversampling di 128, pensato espressamente per applicazioni audio. Il filtro digitale di interpolazione è di tipo Comb4. La porta dispone di due canali in parallelo per il supporto di applicazioni stereo. Ogni uscita è di tipo differenziale e può essere connessa ad un amplificatore esterno ad alta impedenza. Per ottenere le migliori prestazioni è suggerita l’adozione di un filtro passa-basso del quarto ordine sull’uscita ma un filtro del primo ordine, ad una frequenza di taglio di 50 KHz, è più che sufficiente per interfacciare speaker o amplificatori a banda limitata.

APPLICAZIONI AUDIO

Sempre per applicazioni audio (figura 3), è pure disponibile sulla serie C una porta IISC (Inter-IC Sound Controller) per la connessione di dispositivi I2S compatibili. La periferica implementa le funzionalità master e slave previste dal protocollo, con clock rate programmabile da 32 KHz a 192 KHz. Sono previste modalità mono e stereo ed una risoluzione compresa da 8 a 32 bit per campione. La porta supporta i formati I2S a 2 canali con word select e TDM 1-a-8 canali con Frame Sync (eventualmente con canali DMA indipendenti verso la memoria dati del microcontrollore).

Figura 3: applicazioni audio con i microcontrollori o UC32.

Figura 3: applicazioni audio con i microcontrollori o UC32.

INTERFACCIA PER SCHEDE DI MEMORIA

Come detto in precedenza, oltre alla memoria interna, i microcontrollori della famiglia AVR UC32 possono disporre di supporti di memoria di massa esterni grazie a controller dedicati. L’interfaccia MCI, ad esempio, presente a bordo dei microcontrollori della serie A, è compatibile con le specifiche Multimedia Card specification version 4.3, SD Memory Card specification version 2.0, SDIO specification version 1.1 e CE-ATA specification 1.1. Dispone di due porte indipendentemente configurabili per l’uno o l’altro standard ma non accessibili simultaneamente. Supporta accessi in lettura e scrittura di tipo stream, block o multiblock. Integra buffer FIFO fino a 256 byte e dispone di connessione al controller DMA. Supporte la modalità Boot Operation e High Speed delle memorie MMC. L’interfaccia SD è di tipo a 9 bit (il segnale di clock, una linea di comando e quattro per i dati, oltre a tre linee di alimentazione) mentre quella MultiMedia Card a 7 pin (clock, linea di comando e linea dati, tre linee di alimentazione ed una linea riservata per usi futuri). La porta MSI (Memory Stick Interface) supporta, invece, la connessione di Memory Stick ver 1x e Memory Stick Pro con interfaccia seriale fino a 20 MHz o parallela fino a 40 MHz. L’interfaccia supporta gestione hardware del CRC a 16 bit, trasferimenti DMACA, riconoscimento di inserzioni/rimozione della memoria, buffer FIFO da 64 bit x 4.

PWM E CONTROLLO MOTORI

Per applicazioni di controllo motori, sulla sola serie C, sono disponibili moduli PWM e QDEC. Il controller PWM, in particolare, dispone di 4 canali indipendenti con contatori di risoluzione 20 bit, controlli di abilitazione dedicati, configurabilità indipendente di periodo, duty cycle, dead-time, polarità della forma d’onda d’uscita. Due linee di evento indipendenti consentono di sincronizzare la generazione del controllo PWM con una richiesta di campionamento al convertitore ADC; otto moduli di comparazione permettono di generare altrettante interruzioni. I 4 canali possono, in alternativa, essere utilizzati come 2 canali Gray up/down a 2 bit per il controllo di motori stepper. La periferica QDEC consente, invece, l’acquisizione di segnali in quadratura per la misura di velocità e posizioni di sistemi rotanti. La periferica supporta fino a 3 canali con due segnali di fase ed uno di indice, risoluzione di 16 bit nei contatori di posizione e rivoluzione, funzionalità di capture e comparazione.

SENSORI TOUCH DI TIPO CAPACITIVO

Come sappiamo, la tecnologia dei sensori touch sta prendendo sempre più piede in molte applicazioni, ad esempio, in sistema HMI. Proprio in questi ambiti (figura 4), la serie L dispone di una periferica dedicata per il controllo di sensori touch di tipo capacitivo. Il modulo implementa i due metodi proprietari QTouch e QMatrix che consentono, rispettivamente, l’acquisizione di N sensori mediante 2N pin e di una matrice di X per Y sensori mediante (X + 2Y) pin del dispositivo. In modalità QTouch è prevista la possibilità di gestione autonoma del sensore senza intervento della CPU, questo consente di utilizzare la porta, ad esempio, come sensore di prossimità o di attivazione e utilizzare la relativa interruzione per risvegliare la CPU dalla modalità di sleep.

Figura 4: applicazioni HMI con i microcontrollori UC32.

Figura 4: applicazioni HMI con i microcontrollori UC32.

CIFRATURA DATI PER APPLICAZIONI DI SICUREZZA

Solo sulla seria A è invece disponibile, per le applicazioni che richiedano sicurezza dei dati, una periferica di cifratura mediante schema AES (Advanced Encryption Standard). La periferica supporta chiavi a 128, 192 e 256 bit con tempi di cifratura rispettivamente di 12, 14 16 cicli di clock ed implementa tutti i diversi modi operativi previsti dalla raccomandazione NIST Special Publication 800-38A.

Scrivi un commento