Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Bus I2C. Strana configurazione. Come gestirla?

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[1] Bus I2C. Strana configurazione. Come gestirla?

Messaggioda Foto Utenteharpefalcata » 8 mag 2019, 10:35

Buongiorno a tutti.

Mi trovo a dover affrontare una comunicazione su bus I2C, ma in una configurazione un po' particolare e volevo chiedere lumi alla community riguardo possibili soluzioni.

Ho un dispositivo, che si chiama HP Edgeline EL300, che espone una rastrelliera di pin che sono controllati da un bus I2C.

Abbiamo appreso, con non poca difficoltà, che questo edgeline sul bus si comporta SEMPRE come master, nel senso che sia in caso debba scrivere sul bus, che nel casso debba leggere, è sempre lui ad iniziare la comunicazione.

A questo punto io devo realizzare, tramite il mio controller, che è l'STM32F103, un dispositivo I2C slave, che possa, almeno in questo momento trasmettere dati su questo bus.

Dunque chiedo: dal momento che su questo bus non esistono altri nodi oltre il master stesso, ed il mio controller che sarà lo slave, è possibile instaurare una comunicazione qualunque sia l'I2C-ADDRESS comunicato allo slave?

Lo cheìiedo perché, stando a quanto letto sul reference manual del controller (lo slave: l'STM32), esiste un apposito registro che si chiama OAR (Own Address Register), che si occupa proprio di assicurarsi che l'indirizzo trasmesso corrisponda a quanto precedentemente impostato.

Spero di aver chiarito il mio dubbio.

Grazie.

Buna giornata.
Avatar utente
Foto Utenteharpefalcata
326 1 3 6
Stabilizzato
Stabilizzato
 
Messaggi: 422
Iscritto il: 28 lug 2015, 21:03

0
voti

[2] Re: Bus I2C. Strana configurazione. Come gestirla?

Messaggioda Foto UtenteStefDrums » 6 giu 2019, 8:57

Ciao,
il BUS I2C consente la comunicazione multi-master quindi puoi attaccare su BUS sia master che slave. A seconda della complessità della periferica hardware all' interno del microprocessore può essere o meno prevista la possibilità di rilevare collisioni su bus.

non ho capito bene cosa intendi con questo:
harpefalcata ha scritto: è possibile instaurare una comunicazione qualunque sia l'I2C-ADDRESS comunicato allo slave?
Avatar utente
Foto UtenteStefDrums
240 1 6 9
Stabilizzato
Stabilizzato
 
Messaggi: 367
Iscritto il: 20 feb 2013, 14:15

0
voti

[3] Re: Bus I2C. Strana configurazione. Come gestirla?

Messaggioda Foto UtenteDrCox » 6 giu 2019, 9:02

harpefalcata ha scritto: esiste un apposito registro che si chiama OAR (Own Address Register), che si occupa proprio di assicurarsi che l'indirizzo trasmesso corrisponda a quanto precedentemente impostato.



Che è esattamente ciò che ti occorre per poter lavorare in modalità slave.
Uno slave non può sapere se esiste solo lui o se ci sono altri millemila slave sul canale, per questo motivo risponde solo e soltanto quando viene interrogato, i.e. quando viene fatta una richiesta di servizio rivolta allo slave su quel determinato indirizzo.

Non puoi usare quel valore di indirizzo nel tuo master?
"The past is not really the past until it has been registered. Or put another way, the past has no meaning or existence unless it exists as a record in the present."
John Archibald Wheeler
Avatar utente
Foto UtenteDrCox
2.738 2 8 12
Master EY
Master EY
 
Messaggi: 744
Iscritto il: 8 giu 2010, 21:42


Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti