Nel corso degli anni, anche gli strumenti per questi microcontrollori sono migliorati e i progettisti ora dispongono di un set di eccellenti compilatori e librerie di funzioni, che semplificano notevolmente il processo di sviluppo del software. Nei sistemi moderni vengono implementate anche funzionalità aggiuntive, ampliando la gamma di applicazioni in cui i microcontrollori possono essere utilizzati.
Un fattore significativo che contribuisce al continuo sviluppo di microcontrollori a 8 e 16 bit "più semplici" è il mercato delle applicazioni per l'Internet delle Cose (IoT). A causa dell'elevato numero di dispositivi e applicazioni operanti in questo segmento, i sistemi devono soddisfare l'esigenza di un basso consumo energetico. Ciò vale in particolare per i sensori intelligenti con connettività wireless, i dispositivi indossabili, i sistemi informativi che sostituiscono i tradizionali cartellini dei prezzi nei negozi, i beacon e così via. Molto spesso, tali dispositivi sono alimentati a batteria e gli utenti richiedono la massima autonomia possibile senza dover sostituire la batteria. In queste applicazioni, i microcontrollori a 8 e 16 bit sono imbattibili, poiché possono essere facilmente (e rapidamente) impostati in una modalità a basso consumo, in cui le periferiche e/o il core sono in modalità di risparmio energetico e vengono attivati/riattivati solo per il tempo necessario a eseguire le azioni richieste.
I moderni microcontrollori utilizzano moduli periferici in grado di operare indipendentemente dalla CPU ed eseguire compiti specifici (tradizionalmente gestiti dalla CPU via software) in modo autonomo e a livello hardware. Ciò si traduce in un basso consumo energetico e libera la potenza di calcolo di un microcontrollore relativamente piccolo, il cui core può quindi essere utilizzato per attività critiche per l'applicazione. L'utilizzo di questi moduli riduce i tempi di sviluppo per le nuove applicazioni. Inoltre, questi moduli periferici, di vario tipo, implementati nei microcontrollori, possono essere combinati internamente in blocchi più grandi, consentendo l'implementazione di funzioni più complesse. Per facilitare la configurazione delle periferiche indipendenti dal core (CIP) da parte dei progettisti, i produttori forniscono strumenti con un'interfaccia grafica intuitiva.
Microcontrollore della famiglia AVR128DB in package TQFP48.
I microcontrollori con le caratteristiche sopra menzionate erano un elemento imprescindibile nella linea di prodotti Microchip.
AVR128DB
combina le prestazioni di un core AVR® a basso consumo con un set di periferiche indipendenti dal core (CIP) e un gran numero di periferiche analogiche integrate. La possibilità di funzionare con una tensione di alimentazione di 5 V aumenta l'immunità alle interferenze.
Di seguito, analizzeremo principalmente le periferiche CIP disponibili nella serie AVR128DB, sebbene la funzionalità dei sistemi stessi sia molto più ampia. La famiglia di microcontrollori AVR128DB include, tra le altre caratteristiche, convertitori analogico-digitali (ADC) a 10 bit, un orologio in tempo reale (RTC), generatori PWM (inclusi generatori TCB a 12 bit adattati per sistemi di alimentazione), interfacce hardware USART, SPI e TWI, sorgenti di tensione di riferimento per misurazioni precise, comparatori e la possibilità di generare interrupt esterni su tutti i pin di I/O. I circuiti AVR128DB sono inoltre dotati di un massimo di tre amplificatori operazionali integrati. Insieme ai convertitori analogico-digitali, questi consentono un'elaborazione completa e precisa dei segnali in ingresso. I microcontrollori dispongono anche di una porta di ingresso/uscita adatta a funzionare con diversi livelli logici (da 1,8 V a 5,5 V), rendendo superfluo l'utilizzo di convertitori esterni. Questo rappresenta il passo successivo verso la miniaturizzazione e l'efficienza energetica dei circuiti, e i sistemi utilizzati saranno prodotti da Microchip. Vi consigliamo di familiarizzare con l'intera gamma di prodotti.
Event
System è un potente strumento di offload del kernel per microcontrollori. Consente di stabilire semplici dipendenze tra eventi. Le istruzioni condizionali vengono eseguite senza il kernel (o addirittura senza riattivarlo). Un esempio è il funzionamento di un pulsante, indipendentemente dal codice del programma. Il superamento della differenza di potenziale impostata sul comparatore può comportare, ad esempio, l'attivazione del trasduttore su un pin specifico, l'avvio di un conteggio, ecc. Questa funzionalità riduce la quantità di codice necessaria al funzionamento del dispositivo e aumenta la velocità di risposta complessiva del microcontrollore.
logiche configurabili
(CLC) offrono una funzione simile, attiva anche in modalità a basso consumo. Permettono di eseguire operazioni logiche su segnali provenienti da sorgenti esterne e interne (contatori, registri) e di trasferire il risultato a una delle periferiche o ai pin di uscita. Ciò elimina la necessità di istruzioni condizionali nel codice del programma. Il modulo CLC svolge le funzioni di porte logiche (AND, OR, XOR, NOT e loro combinazioni), latch o flip-flop senza la procedura di attivazione che consuma energia.
Rilevatore di passaggio per lo zero (
ZCD): Il modulo ZCD viene utilizzato per attivare interruzioni quando il segnale CA supera la soglia a potenziale zero (rispetto alla massa del microcontrollore). Il sistema integrato nel microcontrollore può campionare la tensione direttamente dalla rete elettrica; l'unico componente passivo richiesto in questo caso è una resistenza in serie per limitare la corrente e (opzionalmente) una resistenza di pull-up. Un circuito analogico equivalente richiederebbe molti più componenti. La funzionalità ZCD consente un controllo efficace del triac (regolazione della luminosità, regolazione del riscaldamento), il monitoraggio della qualità dell'energia (misurazione del periodo) o la limitazione delle interferenze elettromagnetiche nei circuiti che controllano l'alimentazione di un determinato dispositivo CA (accensione quando l'onda sinusoidale è prossima allo zero, eliminando i picchi di tensione e le interferenze elettromagnetiche che generano). Inoltre, la periferica può essere configurata per segnalare uno specifico tipo di overshoot (curva di salita, curva di discesa o entrambe). Il segnale ZCD non necessita di programmazione e può essere inviato a uno dei pin di I/O del microcontrollore.
Watchdog Timer avanzato:
anche i circuiti digitali meglio progettati, che funzionano in modo impeccabile e sono stati ripetutamente testati, possono "bloccarsi". Questo problema può verificarsi per molte ragioni, a volte non correlate alle funzioni svolte dal codice. Potrebbe essere dovuto al superamento della temperatura di esercizio consentita o a un disturbo sulla linea di alimentazione. La protezione di base contro tali situazioni è fornita dai watchdog timer (WDT), che operano indipendentemente dal programma in esecuzione. Se un'istruzione impiega più tempo del previsto per essere eseguita, il WDT riavvia il microcontrollore. Nel caso della famiglia AVR128DB, è possibile programmare un "intervallo di tempo" (Window Mode Watchdog Timer, WWDT) entro il quale il programma verrà eseguito. In caso di tale controllo, il funzionamento del dispositivo verrà interrotto e riavviato dall'inizio, sia che il periodo tra le risposte dei core sia troppo lungo o troppo breve. In quest'ultimo caso, è possibile che parte dell'istruzione non sia stata eseguita con conseguenze negative, soprattutto se il blocco operativo omesso era direttamente correlato alla protezione del circuito o del dispositivo (ad esempio, un segnale di finecorsa non rilevato).
Controllo di ridondanza ciclica (CRC/SCAN)
La generazione e la verifica di un checksum è un metodo comunemente utilizzato per garantire una comunicazione efficiente tra i sistemi nei microprocessori. Sfortunatamente, l'implementazione di tale checksum tramite software consuma una notevole potenza di elaborazione e può rallentare il funzionamento dei sistemi coinvolti, soprattutto con unità a 8 bit che operano a una frequenza limitata (per risparmiare energia). I più recenti microcontrollori Microchip (sia PIC che AVR) sono dotati di periferiche che generano automaticamente un checksum (anche sotto forma di polinomio a 32 bit) e lo memorizzano in un registro accessibile dal programma. La funzionalità nota come SCAN consente al sistema CRC di accedere direttamente alla memoria del microcontrollore, migliorando ulteriormente la gestione dei checksum.
Esempi di utilizzo dei moduli CIP in applicazioni specifiche e i vantaggi del loro impiego nella creazione di circuiti che implementano funzionalità complesse sono mostrati nei video preparati dal produttore qui sotto.
Contenuto preparato da Transfer Multisort Elektronik Sp. z oo.
Fonte originale del testo
