Gecko Starter Kit: lo sviluppo senza compromessi

Lo sviluppo software è spesso motivo di non poca preoccupazione per il progettista, che oltre all’onere dell’implementazione di programma della nuova strategia, deve tenere presente che questo necessita di una struttura hardware per le operazioni di validazione di sistema.

Il Kit descritto in questo articolo offre una valida soluzione al problema.

Oltre all’onere dello sviluppo del software, spesso lo sviluppatore deve prendersi carico di realizzare anche una piccola piattaforma HW che gli permetta di provare il SW appena implementato. Ovviamente, quanto detto è valido principalmente per sviluppi nei piccoli ambienti di lavoro, dove lo specialista in hardware è anche il progettista del software e in alcuni casi ne è addirittura anche il validatore. Sotto quest’ottica, pensare ad un sistema preassemblato con tutte le periferiche già connesse in un’unica scheda, che permetta di garantire il pieno utilizzo di tutte le funzionalità messe a disposizione dal microcontrollore, risulta un grandissimo vantaggio.

Questi sistemi adatti allo sviluppo vengono definiti “Starter Kit”. La traduzione letterale dall’inglese porta subito a pensare a un qualcosa che sia utilizzato principalmente per scopi didattici, ed effettivamente questi strumenti sono spesso utilizzati da scuole ed università per destare l’interesse degli studenti, permettendo loro di “toccare con mano” quelle che sono le potenzialità di un sistema integrato. Ma oltre all’aspetto educativo è da tenere in considerazione anche quello affine allo sviluppo di nuove applicazioni. Infatti, attraverso uno Starter Kit lo sviluppatore può concentrare tutte le sue energie sull’implementazione del codice, piuttosto che sugli aspetti puramente fisico-pratici come quelli relativi all’HW.

GECKO SK COME SOLUZIONE DEFINITIVA

Tutti i produttori di microcontrollori propongono le loro soluzioni in merito all’argomento, ed in questo articolo ci si soffermerà su quella messa a disposizione dalla Wonder attraverso la propria famiglia di micro “Gecko EFM32”, unendo la potenza del Cortex M4F a un’oculata gestione dell’energia per ridurre drasticamente i consumi. Nel numero precedente di questa rivista ho trattato in maniera approfondita quelle che sono le caratteristiche del sistema EFM32, concentrando l’attenzione sui bassi consumi energetici che questi dispositivi permettono di ottenere, facendo sì che si prestino perfettamente a situazioni di portabilità e alla necessità di autonomia estesa. In Figura 1 è riportato il layout della scheda e quali parti la compongono. Come si può osservare dall’immagine, spiccano tra tutte l’interfaccia LCD con caratteri ad 8 segmenti e la batteria tampone.

Figura 1: Layout dello Starter Kit

Figura 1: Layout dello Starter Kit

Quest’ultima risulta fondamentale per garantire ai sistemi RTC, integrati nel micro, di continuare il conteggio anche durante le modalità energetiche più a “basso consumo”. Una delle caratteristiche principali è la possibilità di controllare la scheda in run time, tale operazione può avvenire esclusivamente durante l’alimentazione tramite USB, il Controller della scheda permette di gestire operazioni come:

  • debugging e monitoraggio dei consumi energetici, che in questo articolo saranno approfonditi in seguito;
  • interfaccia UART, attraverso il pin EFM_BC_EN (PF7) relativo all’enable, ed utilizzando le linee EFM_BC_TX (PE0) e EFM_BC_RX (PE1) per la comunicazione.

La Wonder oltre alla scheda mette a disposizione il “Simplicity Studio”, ovvero una serie di tool per la programmazione del micro attraverso lo starter kit, integrando driver, codici d’esempio e la documentazione necessaria. All’interno del tool sono presenti due software, uno per il caricamento del codice all’interno del micro, detto “energyAware Commander”, mentre il secondo “energyAware Profiler” torna utile per effettuare il debug allo scopo di monitorare i consumi energetici. Una parola va spesa in merito al numero di I/O che la scheda mette a disposizione dell’utente. In Figura 2 è riportata una semplice rappresentazione di come i vari pad sono nominati e disposti nella scheda. In questo articolo verranno trattate le varie periferiche di cui il kit è dotato, ed ognuna di essa ha un corrispettivo pad per il monitoraggio e per l’estrazione del segnale verso l’esterno.

Figura 2: Schema Pad su Kit

Figura 2: Schema Pad su Kit

Torna quindi molto utile avere un’idea dei nomi dei vari pin in modo da orientarsi meglio all’interno della scheda. L’alimentazione del sistema può avvenire attraverso le tre seguenti modalità:

  • attraverso la porta per il debug;
  • attraverso la connessione USB;
  • attraverso la batteria al litio da 3 V.

L’utente può decidere da quale sorgente l’alimentazione deve raggiungere la scheda tramite un selettore a tre posizioni. In Figura 3 è riportato lo schema relativo alla gestione delle tre possibili fonti di alimentazione. Come si può osservare dall’immagine, un nodo di notevole importanza è quello relativo al DBG, dove tra il connettore ed il selettore è presente un blocco detto: “Advanced Energy Monitor”, attraverso il quale sarà possibile misurare e monitorare i consumi energetici del micro con estrema precisione. Queste informazioni sono ottenibili esclusivamente in modalità DBG. La scheda integra al proprio interno un condensatore di backup che garantisce le funzionalità del microcontrollore durante le fasi di basso consumo. Questa modalità di “recovery” è detta “Power Backup Domain”, ed è attiva solo se non sono presenti né la batteria a bottone né l’alimentazione USB.

Figura 3 : Schema per la gestione delle tre alimentazioni

Figura 3: Schema per la gestione delle tre alimentazioni

LE PERIFERICHE

Le potenzialità che un sistema di questo tipo possiede sono direttamente proporzionali al numero di periferiche integrate. Infatti, maggiore è il loro numero (in numero e tipologia), più alta sarà la potenzialità implementativa dell’oggetto. Ovviamente, nulla vieta l’eventuale integrazione di una nuova periferica nello Starter Kit, per ovviare ad una qualche carenza. Ma focalizzando l’attenzione sulle periferiche già a disposizione, troviamo: 2 Pulsanti e 2 LED d’interfaccia. In Figura 4 è rappresentata una schematizzazione dei due LED e dei due pulsanti con la rispettiva interfaccia nelle connessioni della scheda. Lo scopo di queste due periferiche è principalmente quello di testare velocemente la corretta acquisizione in un input digitale (pulsante) o l’azionamento di un’uscita (LED).

Figura 4: Schema led e pulsanti di interfaccia utente

Figura 4: Schema LED e pulsanti di interfaccia utente

LCD

In Figura 5 è riportato lo schema di principio con indicazione di quali pin corrispondono ai vari segmenti del display. Il numero totale dei segmenti è pari a 160, controllati attraverso 28 pin in 8 linee comuni e 20 linee per i segmenti (20 x 8 = 160).

Figura 5: Schema del display con indicazioni pinout

Figura 5: Schema del display con indicazioni pin out

TOUCH SLIDER

La scheda presenta un’innovativa periferica di input, un cursore capacitivo azionato tramite contatto “touch”. In Figura 6 è riportato lo schema del cursore. La posizione del dito è interpretata nell’attivazione di una delle 4 linee. Il meccanismo di attivazione del sistema capacitivo al tocco si basa sulla variazione di capacità innescata dal corpo umano durante il contatto, generando una componente RC capace di far variare notevolmente la frequenza di un oscillatore integrato nel driver.

Figura 6: schema cursore al tocco.

Figura 6: Schema cursore al tocco

SENSORE PER METALLI LC

In Figura 7 è riportato lo schema del sensore induttivo-capacitivo, il quale rappresenta uno dei punti di spicco di questo sistema. Difatti, sfruttando la poca energia necessaria per eccitare il sistema del secondo ordine, attraverso il campo magnetico da esso generato il sensore riesce a rilevare la presenza di un metallo. Questa si traduce in una variazione dell’oscillazione di eccitamento, proporzionale alla distanza tra l’oggetto metallico ed il sensore stesso.

Figura 7: Sensore per metalli LC

Figura 7: Sensore per metalli LC

SENSORE DI LUMINOSITÀ

Lo Starter Kit, oltre a dare valore aggiunto con nuovi sensori, non fa mancare al suo pacchetto di periferiche anche i tipi più “classici”, tra i quali il sensore di luminosità, da molti conosciuto come “crepuscolare”, rappresentato in Figura 8, che sfrutta i due pin per la lettura di eventuali variazioni luminose. La luce, infatti, eccitando la base di un foto-transistor, abilita la conduzione tra collettore ed emettitore permettendo di leggere sul pin ”PC6” la corrente di attivazione.

Figura 8: Sensore di luminosità

Figura 8: Sensore di luminosità

L’ADVANCED ENERGY MONITOR

Attraverso il tool “Simplicity Studio”, fornito da Silabs, oltre al caricamento ed al debug si ha la possibilità di eseguire il monitoraggio in tempo reale degli assorbimenti energetici di sistema, quindi la verifica del reale funzionamento del microcontrollore nelle 5 possibili modalità di consumo. La possibilità di leggere con precisione in quale modalità energetica ci si trova è data attraverso Advanced Energy Monitor, detto AEM. In Figura 9 è riportato lo schema per la lettura degli assorbimenti.

Tale sistema, per essere in grado di misurare con precisione una corrente la cui intensità varia da 0,1 μA a 50 mA, utilizza una resistenza posta in serie all’ingresso; la differenza di potenziale che si genera ai suoi capi viene inviata a un amplificatore operazionale, per essere poi elaborata da un amplificatore a doppio stadio a guadagno differenziato. Questo duplice stadio permette di ottenere due valori amplificati con guadagni diversi, ottenendo una differenza tra i due campi di circa 250 μA. Durante l’avvio del kit, viene eseguita una taratura automatica dell’AEM. Questa calibrazione compensa l’errore di offset introdotto dai vari amplificatori di rilevamento.

Nella rappresentazione (sempre in Figura 9) si può anche osservare come, a monte, si ha il sistema di rilevamento dell’energia, mentre a valle del selettore di alimentazione è presente il sistema con sensori e periferiche. L’AEM permette di leggere con grande accuratezza valori di corrente al di sotto dei 250 μA con una risoluzione di 1 μA, mentre per valori superiori l’accuratezza raggiunge il valore di 0,1 mA. Oltre alla rilevazione, quello che contraddistingue l’AEM è il numero di campioni al secondo che utilizza per acquisire gli assorbimenti: 6250 sample/secondo. Questo numero fornisce un’indicazione chiara di quanto i progettisti si siano adoperati per ottenere un prodotto adatto alle applicazioni definite “Ultra Low Power”, mettendo nelle mani del progettista una strumento in grado di verificare la corretta implementazione della strategia di progetto.

Figura 9: Schema di principio Advance Energy Monitor (AEM)

Figura 9: Schema di principio Advanced Energy Monitor (AEM)

 

MAGGIORI APPROFONDIMENTI SULL'ARGOMENTO