Home › Forum › Controllori SlimLine e Netsyst (LogicLab) › Sensori pressione barometrica su bus I2C
- Questo topic ha 2 risposte, 1 partecipante ed è stato aggiornato l'ultima volta 1 anno, 3 mesi fa da Sergio Bertana.
-
AutorePost
-
Gennaio 9, 2023 alle 12:21 pm #69064Edi ZobecPartecipante
Ho necessità di aggiungere ad un SlimLine Cortex M7 (codice MPS056A120) un modulo di espansione I/O Mixed signal con relativo cavo di collegamento, E fino a qui non ho tanti dubbi.
Inoltre, dovrei poter leggere due sensori di pressione barometrici: il BMP180 e il BMP388, che ho già utilizzato con successo in altri contesti su sistemi Raspberry. I due sensori si interfacciano su bus I2C con indirizzo di default 0x77: immodificabile per il BMP180, mentre sul BMP388 esiste un ponte che se saldato ne cambia l’indirizzo in 0x76. Così è semplice gestirli dal software.
La domanda quindi è: visto che il collegamento tra la CPU e l’espansione pare essere di tipo I2C, posso mettere in cascata sullo stesso bus anche i due sensori?
Però il cavo proposto tra la CPU e l’espansione ha 10 poli, mentre il bus I2C ne ha di solito solo 4 (VCC, GND, SDA, SCL).
Gennaio 9, 2023 alle 2:17 pm #69113Sergio BertanaAmministratore del forumCollegare dispositivi I2C sul bus di espansione è sicuramente possibile diamo disponibile la funzione SysI2CWrRd proprio per questo scopo. Unico accorgimento è che i dispositivi I2C non si sovrappongano al campo di indirizzamento degli eventuali moduli di estensione (Da 0x20 a 0x2F).
Connesso il dispositivo al bus di espansione con il comando telnet I2CSts è possibile verificare se viene riconosciuto dal sistema.
Per la connessione se fai riferimento al manuale riferimenti hardware modulo CPU OEM troverai degli schemi elettrici di riferimento. In pratica puoi dal connettore 10 poli di estensione ricavare sia l’alimentazione a 5Vdc che i segnali SCL e SDA.
Gennaio 9, 2023 alle 2:24 pm #69114Sergio BertanaAmministratore del forumAggiungo al post precedente che utilizzando il FB I2CBusManager è possibile simulare il bus I2C utilizzando gli I/O del modulo CPU.
Questa soluzione può essere utilizzata se si vuole gestire dispositivi I2C posizionati molto distanti dal modulo CPU, inoltre utilizzando gli I/O si dispone di un bus I2C isolato galvanicamente dal sistema.
Naturalmente la velocità di gestione dei dispositivi sarà molto rallentata ma come nel tuo caso che devi acquisire sensori la cui velocità di acquisizione può essere relativamente lenta, può essere una soluzione attuabile.
-
AutorePost
- Devi essere connesso per rispondere a questo topic.