LEZIONE 23
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
configurazione di default però questo non è il modo di operare. Allora la prima cosa che faccio è
quella di configurarlo, ma come faccio a dire al sensore che voglio configurare e in particolare
voglio andare a scrivere nel registro data format (0x31) per configurare tutte queste informazioni?
Do un primo byte, quindi il sensore si è appena svegliato e la prima cosa che vede è che gli è
arrivato un messaggio con l’indirizzo 31esadeciamale e lui capisce e dice ok qui c’è qualcuno che
non vuole le accelerazioni ma mi vuole configurare, quindi dopo che ha letto 31 sul bus SPI, il
prossimo dato che riceve sarà il contenuto di questo registro e il contenuto di questo registro che noi
gli inviamo è 0B. Vediamo sulla calcolatrice (in modalità programmatore) quali sono gli 8 bit di
questo registro (0B): 0000 1011.
Vediamo se ci troviamo.
Questa dovrebbe essere la stringa, il commento sul programma dice che stiamo selezionando ±16g e
quindi il least significant bit (LSB), quindi ogni livello del convertitore analogico/digitale, varrà
0.004g.
NB: nel datasheet c’è un errore nel pdf: se i primi due bit valgono 00 = ±2g, se valgono 01 = ±4g,
se valgono 10 = ±8g, se valgono 11 = ±16g.
NB2: sto leggendo la stringa a partire da destra.
Quindi possiamo dire che stiamo procedendo bene.
Dopodiché, li vogliamo allineati a destra o a sinistra? In realtà non è che ci cambia molto, questo
dipende se poi il LSB sarà il primo da sinistra o il primo da destra. Abbiamo scelto 0, quindi right
justify result.
Poi il quarto bit è 1 (0 output is 10 bit always, quindi il nostro risultato indipendentemente dal fondo
scala ci verrà restituito sempre su 10 bit). Il quinto bit è sempre zero e tutti gli altri sono zero perché
in realtà non stiamo scegliendo una comunicazione half duplex quindi laddove la comunicazione
avviene in due tempi differenti ma mentre ricevo un video, quindi la comunicazione classica
dell’SPI, l’ultimo bit si setterebbe ad 1 solo per fare un self test del sensore per capire se sta
funzionando bene.
Quindi ho configurato il data format register.
Poi, finisco la trasmissione perché per il momento gli dovevo dare l’informazione, gliel’ho data, lui
si è configurato e lo rimetto di nuovo in una fase di riposo (cs=1).
Poi decido di volergli parlare ancora con il sensore, quindi metto di nuovo cs=0, lui si attiva un’altra
volta e capisce che qualcuno gli vuole dire qualche cosa. E che cosa faccio? Vado a configurare
quello che viene detto power control register.