WiringPi mette a disposizione alcune funzioni che semplificano l'uso dell'interfaccia SPI:
Per la documentazione dettagliata di rimanda al sito ufficiale: http://wiringpi.com/reference/spi-library.
Questo esempio utilizza un convertitore analogico digitale MCP3202 connesso al canale 1 SPI. Il circuito può essere realizzato su breadboard oppure può semplicemente essere utilizzato RPi demo, come mostrato nella fotografia di apertura.
Lo schema è particolarmente semplice:
Il codice lo trovare a fondo pagina e semplicemente utilizza le due funzione descritte ad inizio pagina.
Di seguito le forme d'onda misurate eseguendo il codice e quanto riportato nei fogli tecnici di MCP3202.
pi@raspberrypi:~ $ ./mcp3201
Data read: 0x00 0x05 0x2d -> 1325 -> 1.067 V
A fondo pagina il codice di esempio che utilizza un ADC MAX146. Lo schema è lo stesso già visto, pagina a cui si rimanda per la descrizione dei codici trasmessi e ricevuti
Il terzo esempio, sempre relativo al MAX146 mostra come è possibile acquisire una serie di campioni mantenendo una discreta temporizzazione: in pratica, e con molta fantasia, un oscilloscopio digitale. Occorre precisare che Raspbian è lontano dall'essere un sistema operativo real time e quindi le temporizzazioni sono tutt'altro che rigorose. Malgrado questo, il programma manifesta un buon comportamento se sono rispettate due condizioni:
Il codice è costituito da un loop che acquisisce 100 campioni e, al termine li salva nel file di testo voltage.txt. Come test è stato usato un segnale sinusoidale con ampiezza picco-picco di 2 V, valor medio 1 V e frequenza 50 Hz.
Per esaminare graficamente i risultati è stato utilizzato il programma gnuplot, direttamente eseguito su Rpi (nota 2) :
pi@vv-rpi-14:~ $ ./max146
pi@vv-rpi-14:~ $ gnuplot
gnuplot> plot "voltage.txt" w l lt 1
L'unica osservazione è quella relativa al ritardo (nell'esempio pari a 825 µs): tale valore, trovato sperimentalmente, è quello che sommato all'effettivo tempo di acquisizione ed elaborazione, garantisce una frequenza di campionamento mediamente vicina a 1 KHz.
Data di creazione di questa pagina: marzo 2017
Ultima modifica: 31 marzo 2018
Raspberry Pi: note di hardware - Versione 1.31 - Luglio
2019
Copyright 2013-2019, Vincenzo Villa (https://www.vincenzov.net)
Quest'opera è stata rilasciata con licenza Creative Commons | Attribuzione-Condividi allo stesso modo 3.0 Unported.