30.11.2022 Views

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.

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

Saved successfully!

Ooh no, something went wrong!