Domanda:
Possiamo usare altri pin GPIO come I2C
KMP_a learner
2016-12-22 22:18:05 UTC
view on stackexchange narkive permalink

Vorrei collegare più dispositivi I2C al mio Raspberry Pi. Posso farlo? Di cosa ho bisogno per prendermi cura? Inoltre, esiste una libreria che riproduca I2C su altri GPIO?

È possibile collegare più dispositivi al bus I2C utilizzando gli stessi pin. Questo è il motivo per cui i dispositivi I2C hanno indirizzi in modo che le comunicazioni possano condividere un bus tra più dispositivi. Puoi leggere ulteriori informazioni su come funziona I2C su [wikipedia] (https://en.wikipedia.org/wiki/I%C2%B2C) e [sparkfun] (https://www.google.com/url?sa= t & rct = j & q = & ESRC = s & source = web e cd = 2 & cad = rja & uact = 8 & ved = 0ahUKEwiYz83OnIjRAhUV8YMKHfZrB-cQFggkMAE & url = https% 3A% 2F% 2Flearn.sparkfun.com% 2Ftutorials% 2Fi2c & usg = AFQjCNGl5nMdURoF50fASyeujl-V3E8vkw & SIG2 = AEOR106WKnc8kAgeG-uNsQ)
Una risposta:
joan
2016-12-22 22:36:39 UTC
view on stackexchange narkive permalink

Il punto centrale di I2C è che è un autobus. È quindi possibile collegare più dispositivi I2C allo stesso GPIO a condizione che abbiano indirizzi di dispositivi I2C diversi.

Se i dispositivi condividono un indirizzo che non può essere modificato, è possibile utilizzare un chip multiplexor I2C per collegare in genere 8 dispositivi allo stesso bus I2C. Si invia un comando al multiplexor per specificare il dispositivo da indirizzare.

I kernel Pi recenti supportano direttamente i seguenti dispositivi con l'albero dei dispositivi.

  Nome: i2c-muxInfo: Aggiunge il supporto per una serie di multiplexer bus I2C su i2c_armLoad: dtoverlay = i2c-mux, <param> = <val>Params: pca9542 Seleziona il dispositivo NXP PCA9542 pca9545 Seleziona il dispositivo NXP PCA9545 Aggiungi il dispositivo PCA9545 PXP )  

Vedi / boot / overlays / README per i dettagli.

I kernel Pi recenti supportano direttamente il bit bang del software di I2C su qualsiasi GPIO di riserva con albero dei dispositivi.

  Nome: i2c-gpioInfo: aggiunge il supporto per il controller i2c software sui pin gpioLoad: dtoverlay = i2c-gpio, <param> = <val>Params: i2c_gpio_sda di default GPIO 23 ") i2c_gpio_scl GPIO utilizzato per l'orologio I2C (predefinito" 24 ") i2c_gpio_delay_us Ritardo dell'orologio in microsecondi (predefinito" 2 "= ~ 100kHz)  

Vedi / boot / overlays / README per i dettagli.

Inoltre ci sono molti esempi di software bit bang per Raspberry Pi I2C disponibili facendo una ricerca su Internet.

Nota. Se non usi il bus I2C standard (pin 3/5) dovrai aggiungere pull-up esterni a 3V3 sul GPIO che scegli di utilizzare. Come guida i pin 3/5 hanno pull-up da 1k8 a 3V3.

La libreria pgpio di Joan è ovviamente un ottimo esempio che consente di utilizzare pin aggiuntivi per I2C bit-bang. In alcuni scenari di utilizzo __può__essere utile avere bus separati, ho una configurazione che sto pianificando che utilizzerà il bus "integrato" per l'interfacciamento ad alta velocità con un paio di dispositivi locali (un display LCD con uno zaino I2C ) e un dispositivo I / O a 8 pin e un bus separato a bassa velocità per una "lunga distanza" (deve essere più lento) Bus di automazione domestica tramite alcuni driver bidirezionali I2C per interfacciarsi con altri I / O a 8 bit dispositivi per interruttori per porte / finestre antifurto e altre cose.


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...