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