STM32 mit mehreren I2C Verbindungen zu Sensoren

(Firma: Raich Gerätebau & Entwicklung) #6741931
Lesenswert?

4 I2C  könnte es bei manchen Modellen schon geben(Pinanzahl >100). 8 
sicher nicht.
Du könntest ja das auch "zu Fuß" programmieren mittels Pin toggling. Hab 
ich schon gemacht, hat problemlos funktioniert. Allerdings sollten die 
Datenmengen überblickbar sein, sonst hast du womöglich ein Zeitproblem.
 Grüsse
Gast #6741977
Lesenswert?

Bei meinem STM32H7 habe ich 4 mal I2C.
Benutze aber nur einen, denn die 4 benötigten LM73 gehen auch an einem 
Bus. Es gibt Adress-Decoder Pins am LM37, und es gibt noch den LM73-1 
mit geändertem Adressbereich.

Sag einfach mal, was du 8fach benötigst, und wir schauen nach Ersatz, 
der an einem Bus geht.
#6741980
Lesenswert?

I2C single Master läßt sich auch sehr gut in Software machen.
Das läßt sich auch leicht erweitern für mehrere Master, indem man SCK 
gemeinsam verwendet und den aktiven Master per Maskenbyte auswählt.
1
  I2C_SDA_OUT = 0;       // prepare low level
2
  mask = 1<<0;           // select master 0
3
  I2C_SDA_DIR |= mask;   // set SDA0 to low
4
  I2C_SDA_DIR &= ~mask;  // set SDA0 to high impedance
5
  if (I2C_SDA_IN & mask) // read SDA0 in

Sind die Ports 32Bit breit, lassen sich mit einer Maske bis zu 32 I2C 
Master auswählen.
#6741986
Lesenswert?

Ja genau: ich hatte I2C Lichtsensoren RGB zu verwalten. Drei Stück. alle 
Adresse 0x21. Hab dann, weil ich es nicht besser wusste, einen PCA9548A 
davor geschaltet. Geht ganz gut. Der kann acht verschiedene Bausteine 
mit gleicher Adresse ansprechen. Mutiplexer eben.

Peter D. schrieb:
> Das läßt sich auch leicht erweitern für mehrere Master, indem man SCK
> gemeinsam verwendet und den aktiven Master per Maskenbyte auswählt.

Darauf bin ich nicht gekommen, nice ... ;)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren