30.11.2022 Views

LEZIONE 23

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Abbiamo un microcontrollore centrale nel mio sistema di elaborazione, poi con dei bus SPI

abbiamo i seguenti fili: MOSI, MISO, CLOCK, GND e l’alimentazione VCC. Questi fili a loro

volta vanno verso un microcontrollore che si interfaccia con il segnale analogico che proviene

dall’AD8232 che a sua volta ha tre terminali che vanno verso gli elettrodi. Quest’ultimo diventa per

noi un sensore ECG con interfaccia digitale SPI. Quindi, per fare questo, il primo microcontrollore

deve lavorare come master, mentre il secondo è diventato uno slave e quindi non possiamo

utilizzare la stessa classe in mbed e allora dobbiamo programmare quest’ultimo tramite la libreria

SPI Slave dove in realtà di differente rispetto alla precedente non presenta grandi differenze perché

abbiamo la classe per definire l’oggetto, il format perché anche lui deve sapere su quale fronte, con

quale polarità ecc., la frequenza, e in questo caso deve avere il comando receive che la precedente

non aveva perché la precedente aveva solo il write perché lui è un master che decide lui quando

cominciare a parlare, lo slave invece deve stare continuamente in ascolto sul bus per capire se c’è

qualche cosa e infatti vediamo che con il metodo secondo il quale, supponendo che l’oggetto si

chiama slave ECG, scriviamo slave ECG.receive in modo tale che interroga l’SPI per vedere se è

stato ricevuto un dato. Perché infatti lui che cosa dovrebbe fare? Fare il campionamento da

analogico a digitale a intervalli di tempo regolari e ascoltare se qualcuno gli sta chiedendo un

risultato; se il .receive è vero, è true, allora lui deve usare il comando reply. Quindi vuoi sapere da

me quanto è il valore? Allora dopo che ho fatto il .receive che mi ha ritornato true, io faccio .reply e

gli rispondo con i 16 bit e quindi gli devo inviare prima un byte e poi un altro byte della

conversione analogico/digitale del mio sensore.

A questo punto entriamo nel dettaglio di un possibile sensore. Questo è il caso studio di un sensore

digitale: è un accelerometro in grado di darci la misura delle accelerazioni lungo i tre assi x, y e z,

ha la possibilità di avere un’interfaccia sia SPI sia I2C (che non abbiamo ancora visto). Ora ci

soffermiamo sull’SPI. La presente boardina ha i seguenti pin: SCL (clock), MOSI, MISO, due pin

di interrupt, un chip select, l’alimentazione e il GND. Gli interrupt sono dei pin che possono essere

configurati, per capirci valutiamo il seguente esempio di applicazione: configuro il sensore per fare

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!