Vai al contenuto

Connettere dispositivi I2C al bus di espansione SlimLine

Home Forum Controllori SlimLine e Netsyst (LogicLab) Connettere dispositivi I2C al bus di espansione SlimLine

Stai visualizzando 10 post - dal 1 a 10 (di 10 totali)
  • Autore
    Post
  • #35657
    Ruben
    Partecipante

    Ho 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.

    #36634
    Sergio Bertana
    Amministratore del forum

    Il 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.

    #40030
    Fabio
    Partecipante

    In 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?

    #40031
    Sergio Bertana
    Amministratore del forum

    Il 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.

    #39969
    Stefano
    Partecipante

    Ho 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.

    #39967
    Sergio Bertana
    Amministratore del forum

    Non 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).

    #50187
    Sergio.ghirardelli
    Partecipante

    Ho 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?

    #50192
    Sergio Bertana
    Amministratore del forum

    Tutti 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.

    #54305
    Alice
    Partecipante

    Io 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?

    #54344
    Sergio Bertana
    Amministratore del forum

    Non 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.

Stai visualizzando 10 post - dal 1 a 10 (di 10 totali)
  • Devi essere connesso per rispondere a questo topic.