Il passo di introduzione sul mercato di dispositivi a microcontroller basati su ARM® è incredibile. L’utilizzo di una famiglia comune di core compatibili, con diversi livelli di prestazioni, offre molti benefici agli sviluppatori di sistemi integrati alla ricerca di un nuovo dispositivo su cui basare la progettazione di un nuovo prodotto o una nuova piattaforma tecnologica. I fornitori di microcontroller devono tuttavia valutare se introdurre un dispositivo sul mercato nei tempi più brevi possibili o investire una quantità maggiore di tempo per perfezionare l’insieme di periferiche e le migliorie dell’architettura basate sul core ARM e, in quest’ultimo caso, perdendo possibilmente quote di mercato da clienti fidelizzati che, iniziando una nuova fase di progettazione, richiedono immediatamente i dispositivi. L’architettura Cortex-M0/M0+ della ARM ne è un ottimo esempio. Realizzando che i clienti avevano molto apprezzato alcune migliorie relative ai consumi energetici e alle periferiche incorporate negli ultimi anni nei dispositivi a 8 bit e che per creare il prodotto migliore possibile per qualsiasi piattaforma sono necessari adattamenti personalizzati, alcuni fornitori di microcontroller hanno introdotto sul mercato il dispositivo Cortex®-M0+ della ARM seguendo un approccio più meticoloso. La Atmel è uno di questi.
Iniziando a seguire questo percorso con il loro primo prodotto M0+, la Atmel ha fatto tesoro dei 2 decenni di esperienza nello sviluppo di microcontroller flash integrati a 8 bit e di oltre 17 anni trascorsi come licenziatario della ARM. Era chiaro che la maggior parte dell’innovazione introdotta nei loro dispositivi tinyAVR®, megaAVR® e AVR XMEGA® sarebbe stata estremamente pertinente nella loro implementazione per il dispositivo M0+. Un esempio di una caratteristica AVR® molto apprezzata dai progettisti è il Peripheral Event System. Questo è un approccio che consente alle periferiche di cooperare tra di loro senza utilizzare le risorse della CPU o del bus. Un’altra caratteristica della Atmel molto apprezzata è l’IP a bassa potenza. Questo comprende l’utilizzo di oscillatori a bassa potenza, clock gating e prescaling, oltre a modalità di sleep walking e miglioramenti alle comunicazioni seriali per evitare la perdita di dati durante la riattivazione da una modalità di pausa profonda.
Come risultato derivante dall’introduzione di molte caratteristiche delle innovazioni per microcontroller della Atmel con il core IP della ARM, il SAM D20, il dispositivo basato su Cortex-M0+ della Atmel, presenta un benchmark CoreMark di 2,14 coreMark/MHz e un consumo di potenza inferiore a 150µA/MHz in modalità attiva e di circa 2µA in modalità di conservazione RAM. Come termine di paragone, altri dispositivi sul mercato hanno un consumo di potenza in modalità attiva dell’ordine di 200-400 µA/MHz eseguendo le stesse operazioni con i medesimi livelli di prestazioni. Esaminiamo più attentamente alcune delle migliorie che hanno reso possibili queste prestazioni.
Come citato precedentemente, l’Event System consente alle periferiche di comunicare senza richiedere l’intervento della CPU. Si tratta di una rete di routing indipendente dai percorsi tradizionali del bus dati. Diversi trigger a livello di periferica possono determinare un evento come, ad esempio, il segnale di clock che genera una reazione in un’altra periferica. L’Event System comprende 8 canali indipendenti nel D20 e 12 nel D21 e ha una latenza fissa di 2 cicli. Il SAM D10 e D11 hanno 4 canali nell’Event System. Non presentando alcuna distorsione, rappresenta un metodo deterministico al 100%, che soddisfa appieno le necessità delle applicazioni in tempo reale. Non si verifica nessuna perdita di eventi, che sono gestiti a livello di periferica in 2 cicli, anche se la CPU sta eseguendo un interrupt non mascherabile. Il metodo tradizionale per gestire le operazioni in un’applicazione a bassa potenza è attraverso l’utilizzo di interrupt che attiverebbero però la CPU. Prendiamo in esame, ad esempio, un’applicazione per il controllo di motori tramite PWM. Per rilevare situazioni di errore, diverse applicazioni per il controllo di motori utilizzano un comparatore analogico o ADC per misurare la corrente in entrata nel modulo di controllo del motore. In una situazione di sovracorrente, è necessario interrompere il prima possibile i canali PWM per evitare danni permanenti al circuito e per ragioni di sicurezza. Senza un Event System, la situazione di sovracorrente attiverebbe un interrupt, ma la richiesta del servizio di interrupt potrebbe essere ritardata se la CPU sta eseguendo altre operazioni ad alta priorità. Utilizzando l’Event System è possibile collegare il comparatore analogico o ADC direttamente al timer e interrompere il timer sempre in 2 cicli, a prescindere dalle operazioni
eseguite dalla MCU.
La Figura 1 illustra come l’Event System gestirebbe la protezione della corrente del modulo di controllo del motore senza richiedere l’intervento della CPU. I vantaggi di questo approccio sono molti, tra cui i principali sono la riduzione dei consumi complessivi di potenza, la rimozione efficiente di operazioni di routine dalla CPU e l’ottenimento di tempi di reazione completamente prevedibili.
Figura 1 - Event System - Esempio di driver di controllo del motore
Una delle altre caratteristiche principali che differenziano il dispositivo della Atmel, è la disponibilità di un modulo di comunicazione con più interfacce seriali (SERCOM) completamente configurabile. Il modulo è composto da 6 canali seriali di interfaccia nei dispositivi D20 e D21 e 3 canali seriali nei dispositivi D10 e D11. Ciascuna porta seriale è configurabile per essere utilizzata come interfaccia I2C, SPI o USART. Questa caratteristica offre agli sviluppatori una flessibilità senza limiti, dato che possono configurare le interfacce disponibili secondo necessità. Quindi è possibile configurare, ad esempio, 2 interfacce come I2C e 4 come UART. I benefici che lo sviluppatore di sistemi integrati trae da questo approccio sono due e molto importanti. Innanzitutto, non è più necessario cercare nelle specifiche dei microcontroller alla ricerca di un dispositivo con il numero di interfacce seriali necessario. Questo consente non solo di risparmiare molto tempo, ma permette anche di adottare un unico microcontroller per progetti diversi ma simili, dove le interfacce richieste possono essere leggermente diverse; quindi non è più necessario acquistare un dispositivo con 5 UART perché sono richiesti 3 SPI. Il secondo beneficio si riflette sul progetto del PCB. Scegliendo il tipo di interfaccia in modo che coincida con la posizione di
qualsiasi parte o interconnessione di interfaccia di supporto sul PCB, è possibile creare piste sul PCB che non solo sono più corte, ma evitano anche i lunghi percorsi dei segnali in prossimità di parti che generano rumore elettrico. Questo è reso possibile dalla disponibilità di più moduli SERCOM e il fatto che ciascuno di essi presenta diverse opzioni di connessione dei pin. Il dispositivo SAM D20 della Atmel supporta la modalità veloce I2C fino a 400 kHz, mentre le interfacce SPI e UART offrono velocità di trasferimento fino a 24 Mb/s. I moduli di comunicazione seriale sono tutti collegati al Peripheral Event System sopra citato, che consente la cooperazione delle periferiche senza l’intervento della CPU. Anche se non sarà richiesto da molte applicazioni, ciascun modulo SECOM può anche essere riconfigurato istantaneamente da software in un altro tipo di interfaccia.
Infine, per offrire un progetto Cortex-M0+ con le caratteristiche più utili che gli sviluppatori di sistemi integrati potrebbero richiedere, la Atmel ha anche aggiunto nei dispositivi SAM D20 e D21, un controller touch di periferiche basandosi sulla sua vasta esperienza con la linea di prodotti maXTouch. Questo controller rappresenta la più innovativa delle nuove periferiche nei dispositivi SAM D20 e D21 e può essere utilizzato per implementare interfacce di controllo touch utilizzando pulsanti, rotelle e cursori. È anche disponibile la possibilità di rilevare la prossimità. Grazie al supporto fino a 256 canali in una configurazione a matrice, il modulo del controller della periferica touch supporta i metodi di rilevamento auto-capacitivo e mutuo. Le caratteristiche eccezionali di immunità al rumore e sensibilità, oltre a quelle di calibrazione autonoma, forniscono al dispositivo SAM D20 moltissime capacità on-chip per il controllo touch.
Il dispositivo SAM D21 offre inoltre le modalità Host e Dispositivo USB. I piccoli dispositivi SAM D10 e D11 offrono la modalità Dispositivo USB, nonostante siano disponibili in confezioni compatte da 14, 20 e 24 pin. Anche se i dispositivi D10 e D11 non offrono capacità DMA, supportano fino a 8 canali per un ADC a 350 ksps a 12 bit e un canale di un DAC a 350 ksps a 10 bit. Il dispositivo D21 contiene inoltre 2 canali per I2S con un PLL frazionale a 96 MHz per lo streaming audio.