Collegare dispositivi SPI

Da raspibo.
Versione del 10 mar 2013 alle 13:15 di Renzo (discussione | contributi) (Creata pagina con 'SPI e' un bus seriale a (almeno) tre fili: clock, MISO (master input, slave output), MOSI (master output, slave input). "Almeno" perche' se volete collegare piu' unita' al bus...')
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)
Jump to navigation Jump to search

SPI e' un bus seriale a (almeno) tre fili: clock, MISO (master input, slave output), MOSI (master output, slave input). "Almeno" perche' se volete collegare piu' unita' al bus occorre un filo di "abilitazione" per ogni unita'.

Raspberry PI ha il supporto sul pettine di contatti per funzionare come master con due unita' SPI collegate.

I fili da usare sono:

  • Pin 19/GPIO 10/SPI_MOSI
  • Pin 21/GPIO 9/SPI_MISO
  • Pin 23/GPIO 11/SPI_CLK
  • Pin 24/GPIO 8/SPI enable 0
  • Pin 26/GPIO 7/SPI enable 1

Usando questi fili si puo' usare il driver del kernel altrimenti e' possibile usare altri fili e gestire l'intero protocollo SPI via software (il cosiddetto bit banging).

Qui verrà descritto il funzionamento con il driver del kernel. Un esempio che usa bit banging si puo' trovare in questa spiegazione di Adafruit

Per poter usare il supporto del kernel per SPI occorre caricare il relativo modulo:

# modprobe spi_bcm2708

Compariranno (udev-magicamente) i due device /dev/spidev0.0 e /dev/spidev0.1, che corrispondono rispettivamente alle unita' che avrete collegato usando il pin 24 o il pin 26 per enable.

Proviamo per esempio a collegare l'integrato mcp3008 che ha 8 canali ADC (conversione analogico digitale) a 10bit.