Connettere dispositivi I2C al bus di espansione SlimLine
Home › Forum › Controllori SlimLine e Netsyst (LogicLab) › Connettere dispositivi I2C al bus di espansione SlimLine
- Questo topic ha 9 risposte, 6 partecipanti ed è stato aggiornato l'ultima volta 5 anni fa da
Sergio Bertana.
-
AutorePost
-
Giugno 5, 2017 alle 12:07 pm #35657
Ruben
PartecipanteHo bisogno di interfacciare ad uno SlimLine un dispositivo I2C che lavora a 3.3V. Vorrei sapere se lo SlimLine ha resistori interni di pull-up a 5V, o se posso utilizzare resistori esterni di pull-up a 3.3 Volts.
Giugno 5, 2017 alle 12:15 pm #36634Sergio Bertana
Amministratore del forumIl bus di espansione I2C dei sistemi SlimLine è a 5 Volts, il circuito interno ha già le resistenze di pull-up per il segnali di Clock e Dato. Se utilizzi dispositivi a 5 Volts puoi connetterli direttamente al bus di espansione così come riportato nel Manuale riferimenti hardware.Se il tuo dispositivo a 3.3 Volts è tolerant 5 Volts lo puoi connettere direttamente, in caso contrario devi utilizzare un traslatore di livello I2C (Esempio un PCA9507) come quello indicato nel manuale.
Febbraio 16, 2018 alle 10:19 am #40030Fabio
PartecipanteIn un altro post avevo capito che il bus di espansione I2C non era compatibile con altri strumenti che non fossero le schede di espansione Elsist. Mi date qualche ragguaglio?
Febbraio 17, 2018 alle 7:28 am #40031Sergio Bertana
Amministratore del forumIl bus di espansione dei sistemi SlimLine e dei sistemi Netsyst è un bus I2C standard, quindi è possibile interfacciare qualsiasi dispositivo con interfaccia I2C. Il bus opera con una frequenza di 400KHz quindi i dispositivi devono supportare questa frequenza di comunicazione.
Nella libreria di funzioni supportate da LogicLab vi è la funzione SysI2CWrRd (Estratto manuale) che permette di leggere e scrivere dati verso i dispositivi connessi al bus. Nel forum trovi parecchi topics che trattano l’argomento con progetti di esempio per la gestione di moduli commerciali. In questo topic, un programma per gestire un PIO PCF8574. In questo topic un programma per gestire display LCD SainSmart compatibile Arduino.
Probabilmente la tua confusione è nata da questo post dove si tratta l’argomento opposto, ossia la possibilità di gestire i nostri moduli di espansione da un modulo CPU I2C master proprietario. In questo caso anche se il bus I2C è standard il protocollo di comunicazione tra la CPU ed i moduli di espansione è una soluzione proprietaria di cui non forniamo le specifiche.
Febbraio 23, 2018 alle 12:13 pm #39969Stefano
PartecipanteHo scovato questo interessante progetto relativo ad un encoder rotativo su bus I2C. Ci possono essere controindicazioni usandolo sul bus espansione SlimLine ? Più che altro come lunghezza massima delle connessioni.
Febbraio 28, 2018 alle 3:44 pm #39967Sergio Bertana
Amministratore del forumNon diamo una distanza massima per il bus I2C, tra i nostri cavi di espansione puoi trovare anche il cavo da 1 metro. Naturalmente questi sono cavi terminali quindi ne puoi usare solo 1 al termine del blocco di moduli (Tutti interconnessi tra di loro con i cavi di estensione).Detto questo per la distanza molto dipende dal “rumore” elettrico in cui il cavo di bus si trova, è chiaro che in un laboratorio dove non vi sono disturbi posso allungare anche di molto il cavo, mentre in un ambiente industriale (Ambiente dove i nostri prodotti operano abitualmente) devo stare molto più attento (Topic).
Ottobre 11, 2019 alle 2:26 pm #50187Sergio.ghirardelli
PartecipanteHo scaricato LogicLab, ma la funzione SysI2CWrRd non è presente nelle librerie. Ho visto che fa parte della libreria XTarget_07_0, ma non è possibile scaricarla dal sito. E’ possibile reperirla in qualche modo?
Ottobre 11, 2019 alle 2:33 pm #50192Sergio Bertana
Amministratore del forumTutti gli oggetti funzioni ed FB il cui nome inizia per Sys, sono oggetti di sistema, quindi sono embedded e quindi essendo insiti nel sistema operativo sono sempre disponibili.
Il fatto she venga indicato XTarget_07_0, significa che era già disponibile da quella versione di target, oggi siamo ad XTarget_12.
Per vederla se apri la finestra delle librerie embedded in LogicLab <Ctrl-L> oppure menù View -> Tool Windows -> Operators and blocks vedrai che la trovi. Posizionandoti con il mouse sull’oggetto lo puoi trascinare nel progetto e con l’oggetto selezionato il tasto [F1] apre il manuale sulla pagina contestuale.
Marzo 27, 2020 alle 10:47 am #54305Alice
PartecipanteIo ho bisogno di collegare diversi slave I2C che condividono lo stesso indirizzo (0x44) allo stesso SlimLine.
Pensavo di utilizzare un multiplexer I2C come il TCA9548A, al quale tuttavia devo inviare un byte con l’indirizzamento (1 bit alto da 0 a 7) per specificare quale canale sto utilizzando. C’è modo di fare questo? o c’è un’alternativa all’uso del multiplexer?
Marzo 27, 2020 alle 10:52 am #54344Sergio Bertana
Amministratore del forumNon ho mai usato multiplexer I2C come quello che citi, ma leggendo il datasheet mi sembra di capire che il multiplexer usa un indirizzo I2C per la sua gestione.
Quindi nessun problema esegui un comando di write di 1 byte sull’indirizzo I2C del multiplexer indicando quale canale vuoi attivare. Da questo momento tutti i comandi I2C andranno in uscita sul canale indirizzato.
Alternative… Se i componenti che usi hanno un pin di abilitazione puoi parallelarli tutti sul bus I2C e poi dovrai gestire (Magari con un PIO I2C) i vari comandi di abilitazione.
-
AutorePost
- Devi essere connesso per rispondere a questo topic.