MMA745xL è un sensore digitale espressamente progettato per la misura di bassi valori di accelerazione. Le dimensioni del componente sono estremamente compatte (il package presenta uno spessore di un solo mm), è interamente realizzato in tecnologia MEMS (Micro Electro Mechanical System) e la misura di accelerazione viene eseguita sui tre assi X,Y,Z.
Un’importante pregio di questo componente è quello di consentire una semplice e facile integrazione con architetture hardware basate su microcontrollore: esso infatti dispone di un’uscita di tipo digitale la quale, da un lato, consente un’interfacciamento immediato con numerosi tipi di controllori, e dall’altro si traduce in un significativo risparmio sui costi non essendo più necessario un convertitore analogico-digitale esterno. L’output digitale viene attuato mettendo a disposizione dell’utente un’interfaccia con bus sia SPI che I2C, quindi due protocolli di comunicazione largamente diffusi sul mercato. Il dispositivo possiede inoltre funzionalità avanzate tra le quali la possibilità di rilevare e segnalare la condizione di 0g attraverso un interrupt, ed il rilevamento della condizione di superamento di una soglia preimpostata; possono inoltre essere selezionati tre range di sensibilità del componente (±2g, ±4g, e ±8g, con risoluzione su 8 bit), ed il passaggio da un valore di sensibilità ad un altro richiede solamente 5 millisecondi.
CARATTERISITICHE TECNICHE ED IMPIEGHI
Le principali caratteristiche di questo accelerometro digitale si possono così riassumere:
- uscita di tipo digitale con interfaccia SPI (Serial Periphera Interface) o I2C (Inter Integrated Circuit)
- package LGA a 14 pin di dimensioni compatte (3 x 5 x 1 mm) che facilita l’utilizzo su dispositivi portatili
- sensibilità sui 3 assi X,Y,Z
- assorbimento di corrente contenuto (400 µA in modo misura, con soli 5 µA in modo standby) e bassa tensione di alimentazione (2.4 – 3.6V), caratteristica fondamentale per dispositivi alimentati da batterie
- funzione di calibrazione 0g attraverso registri programmabili dall’utente
- interrupt di superamento soglia programmabile per il rilevamento di movimenti rapidi
- elevata sensibilità: fino a 64 LSB/g a 2g ed 8g con uscita su 10 bit
- rilevamento di urti, vibrazioni, cadute, singolo o doppio click
- funzione di autodiagnosi in grado di verificare l’integrità del sensore MEMS # signal conditioning integrato con filtro passa-basso
- elevata robustezza (sopporta accelerazioni fino a 10000 g)
- compensazione della temperatura
- basso costo.
Per quanto concerne invece le applicazioni relative a questo componente, possiamo elencare le seguenti:
- telefoni cellulari, smartphone, e palmari: rilevamento del movimento, scorrimento del testo, orientamento portrait/landscape, stabilità dell’immagine
- computer portatili: rilevamento della caduta, protezione anti-furto
- hard disk e dispositivi multimediali portatili: rilevamento della cadutanavigatori satellitari: navigazione con sistema “dead reckoning”
- foto/videocamere digitali: stabilità dell’immagine, orientamento portrait/landscape
Il fatto di disporre di un’uscita digitale consente, come già detto, di non rendere necessario un convertitore analogico-digitale. Lo svantaggio, tuttavia, è rappresentato dal fatto che all’interno del sensore sono presenti dei filtri digitali che possono limitare la frequenza di campionamento per alcuni tipi di applicazioni. In particolare, è possibile selezionare una tra due frequenze di campionamento del segnale: 125 Hz (con uno filtro digitale a 62,5 Hz) oppure 250 Hz (con filtro digitale a 125 Hz). In figura 2 è mostrato lo schema a blocchi del componente.
STRUTTURA DELL’ACCELEROMETRO
Internamente il componente comprende un sensore capacitivo di movimento (la g-cell) ed un ASIC con funzione di signal conditioning. La g-cell (il trasduttore di accelerazione) è un’unità fabbricata con tecnologia MEMS con un sensore di tipo capacitivo composto da molti raggi connessi ad una massa centrale in grado di muoversi liberamente tra di essi. L’accelerazione applicata al sensore fa muovere la g-cell modificandone la capacità. L’unità gcell è ermeticamente sigillata sul layer di silicio, formando così un sensore robusto ed affidabile. La g-cell è progettata in modo tale che la sua frequenza di risonanza sia molto maggiore della frequenza di cut-off del filtro passa-basso all’interno del dispositivo: in questo modo, la frequenza di risonanza non ha alcun effetto sulla risposta dell’accelerometro. L’ASIC, realizzato in tecnologia CMOS, ha la funzione di misurare le variazioni di capacità della g-cell e di calcolare il corrispondente valore di accelerazione. Altre operazioni eseguite da questo chip sono: amplificazione del segnale, signal conditioning, filtro passa-basso, e compensazione della temperatura. Il segnale di uscita prodotto dall’IC di controllo è di tipo raziometrico e proporzionale all’accelerazione. In figura 3 è visualizzata la struttura interna del sensore con evidenziati i due componenti principali.
MODI DI FUNZIONAMENTO
Vediamo ora in dettaglio i quattro modi di funzionamento del sensore.
Modo standby
Questo modo di funzionamento è particolarmente indicato per l’utilizzo con batterie, dal momento che l’assorbimento in questo caso può scendere fino a soli 2.5 µA. In modo standby le uscite sono tutte disattivate, non viene eseguita alcuna misura, ma viene comunque mantenuta attiva la comunicazione tramite I2C/SPI. Attraverso questa, è così possibile cambiare la modalità di funzionamento agendo su un opportuno registro interno al componente (MODE[1:0]).
Modo misura
In questo modo viene abilitata la misura continua sui tre assi, con una frequenza di campionamento selezionabile tra 125 e 250 Hz. Quando una nuova misura è disponibile, viene attivato il bit DRDY, accessibile tramite il registro di stato; nel caso in cui una nuova misura diventi disponibile prima che la precedente sia stata letta, viene anche attivato il bit DOVR sempre nel registro di stato. Di default tutti gli assi sono abilitati, ma è possibile programmare la misura solo sugli assi desiderati; inoltre, si può scegliere tra misura in valore assoluto oppure con segno.
Level detection
In questo modo è attivata la misura oltre ad un interrupt associato al superamento di un livello: se il valore di accelerazione misurato risulta inferiore (o superiore, a seconda della selezione impostata) ad una certa soglia, viene attivato un interrupt che rimane in questo stato sino a che non viene eseguito il clear corrispondente. Non possono essere utilizzati timer in questa modalità.
Pulse detection
E’ la modalità più completa, nella quale vengono attivate tutte le funzionalità: misura, level detection, e pulse detection. Sono disponibili due interrupt associati al livello ed al pulse (sono previsti sia il pulse singolo che quello doppio), ed esiste la possibilità di utilizzare i timer.
FUNZIONI APPLICATIVE
A seconda della particolare applicazione pratica in cui è impiegato il sensore può essere importante espletare una funzione piuttosto che un’altra. Vediamo quali sono queste funzioni attuabili con il componente MMA745xL.
Rilevamento del movimento
Questa funzione serve a riconoscere se un determinato dispositivo è in uso o meno; in quest’ultimo caso esso può infatti essere portato in un uno stato standby (a basso assorbimento) preservando la durata delle batterie. Il meccansimo applicato è il seguente: vengono monitorate le uscite X,Y,Z dell’accelerometro e, qualora si misuri una variazione significativa di accelerazione (ad esempio superiore ad 1-2 g), si passa in modalità misura. L’MMA755xL dispone per questo scopo sia della modalità Level detection che di quella Pulse detection. Con la prima occorre programmare una soglia di accelerazione per innescare la transizione da modo standby a misura, e agganciare il superamento di soglia direttamente ad un interrupt. La seconda invece permette di rilevare battiti sia singoli che doppi, ed in questo caso occorre programmare sia la soglia che la durata del battito.
Caduta libera (freefall)
Ha lo scopo di riconoscere se l’oggetto ha un elevata probabilità di impatto a seguito di una caduta (è molto utile per parcheggiare le testine degli hard disk sui portatili). L’MMA745xL si presta a determinare questo tipo di movimento tramite il Pulse detection, tipicamente applicato all’asse verticale, ed impostando opportunamente soglia e timer. Il Level detection non è invece molto indicato perchè si basa solamente sulle soglie e non ha possibilità di utilizzare un timer.
Colpo/urto
Serve ad aumentare la sicurezza della merce nelle procedure di trasporto, spedizione, e per riconoscere il “tapping” (molto utilizzato su alcuni modelli di smartphone). L’MMA745xL è in grado di misurare accelerazioni sino ad 8g e pertanto si presta egregiamente anche per questo tipo di applicazione.
Vibrazione
Anche questo tipo di movimento può essere rilevato dall’accelerometro; in questo caso la frequenza massima di vibrazione rilevabile è pari a 125 Hz, limitata dalla massima frequenza di campionameno del filtro digitale pari a 250 Hz.
Tilt
Il tilt viene usato in numerose applicazioni, sia sui cellulari che sui dispositivi multimediali portatili; la sua funzione è quella di rilevare l’orientamento portrait/landscape, lo scrolling, e la selezione nei menu.
COLLEGAMENTO DEL SENSORE AD UNA MCU
Il pin /CS del sensore viene impiegato per selezionare il tipo di interfaccia di comunicazione: quando esso è basso viene selezionata l’interfaccia SPI, altrimenti l’ I2C. Vediamo le due tipiche modalità di connessione del sensore di accelerazione con un microcontrollore, basate sull’utilizzo delle due interfacce digitali di cui esso dispone.
I2C
L’MMA745xL è conforme allo standard del protocollo di comunicazione I2C Philips (ora NPX), basato sull’utilizzo di due linee seriali: SDA (Serial Data Line) e SCL (Serial Clock Line). Vengono supportate sia la velocità di 100 kbps in Standard Mode, che quella di 400 kbps in Fast Mode. Le linee SDA e SCL vanno collegate al positivo dell’alimentazione tramite resistenze di pull-up, con valore consigliato compreso tra 2.2 e 4.7 KÙ.L’accelerometro è sempre slave sul bus I2C, mentre la MCU è sempre master. L’indirizzo sul bus è prefissato al valore 1D hex, ma esiste anche un address bit per impostare un altro valore di indirizzo.
SPI
In questo caso i pin da collegare sono sei (si veda la figura 5): due per l’alimentazione, il clock (SPSCK), il master-output/slave-input (MOSI), il master-input/slave-output (MISO), ed il CS per la selezione dello slave. Il protocollo SPI viene tipicamente utilizzato per la comunicazione tra un dispositivo master ed uno o più dispositivi slave: l’MMA745xL si comporta sempre come slave, mentre il microcontrollore agisce da master.
SOFTWARE E TOOL DI SVILUPPO
Evaluation board
In figura 6 è mostrato il pinout della scheda di valutazione del componente MMA745xL, visibile in figura 7.
Si osservi l’estrema semplicità della scheda, nella quale tutti i 14 pin di I/O del dispositivo sono riportati per un comodo utilizzo su due connettori da 7 pin ciascuno. Freescale mette anche a disposizione del progettista un’applicazione software con interfaccia grafica tramite la quale eseguire la programmazione del componente in modo semplice ed immediato. Quest’applicazione (in figura 8 una schermata di esempio) è scaricabile dal sito Freescale previa registrazione.
Sensor Toolbox
Sensor Toolbox è una piattaforma hardware/software sviluppata da Freescale per assistere il progettista nell’attività di progettazione con sensori di pressione, accelerazione, e prossimità. A questa famiglia appartiene la scheda di sviluppo LFSTBEB7455 (visibile in figura 9) la quale include un microcontrollore ad 8 bit con compiti di acquisizione dati ed una memoria EEPROM. Il kit contiene anche la scheda di valutazione per l’accelerometro MMA745xL citata nel paragrafo precedente.
ZSTAR3
Freescale offre anche lo strumento di sviluppo ZSTAR3, composto da diverse board equipaggiate con accelerometri sia digitali che analogici ed in grado di comunicare con un singolo nodo USB attraverso un link radio di tipo ZigBee a 2.4 GHz. Il nodo USB viene poi tipicamente connesso ad un PC, sul quale è installato un opportuno software dedicato, in grado di gestire numerosi nodi. La scheda con il sensore MMA745xL alimenta direttamente il sensore, il quale assorbe normalmente meno di 500 µA e addirittura un solo µA in modo sleep (ciò avviene perchè in questa modalità il sensore viene spento completamente, anzichè mantenuto nel modo standby. La scheda trasmette le misurazioni eseguite con la frequenza massima di 30 campioni al secondo; qualora non fossero riscontrate variazioni significative della misura rispetto al valore precedentemente trasmesso, la trasmissione non viene attuata al fine di preservare la durata delle batterie. Lo strumento ZSTAR3 permette di velocizzare la fase di progettazione e sviluppo con il sensore MMA745xL, soprattutto nel campo delle applicazioni di tipo wireless, come ad esempio la telefonia mobile, i sistemi anti-furto per i computer portatili, ed il rilevamento del movimento per i pedometri. In figura 10 è mostrata un’immagine di una scheda appartenente alla piattaforma ZSTAR3 ed equipaggiata con un sensore di accelerazione tri-assiale.