Hallo, gibt es einen STM32 mit mehreren unabhängigen I2C-Pins? Ich habe eine Vielzahl (4-8) Sensoren, die mittels I2C kommunizieren und alle die selbe unveränderliche Adresse haben. Ich frage nur, bevor ich einen externen Multiplexer verwende. mfg I2C_STM32
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
Die meisten haben 3 oder 4 I2C, die sind wenn sonst nicht so viel gebraucht wird auch bei kleineren Packages nutzbar. Ansonsten gibt es auch I2C multiplexer, PCA9546ARGVR z.B.
:
Bearbeitet durch User
I2C_STM32 schrieb: > alle die selbe unveränderliche Adresse haben Sicher? Bei manchen Herstellern gibt es, wenn man Glück hat noch ein weiteres Modell mit eigener Modellnummer das aber bis auf die I2C-Adresse identisch ist.
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.
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.
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 ... ;)
Mehr als 4 gibt's anscheinend nur beim STM32H7. Aber 4 gibt's auch schon im LQFP-48: L451CET, L452CET, L462CET G471CCT, G471CET, G473CBT, G473CCT, G473CET, G483CET, G474CBT, G474CCT, G474CET, G484CET
Ansonsten gibt es noch I²C Multiplexer und Soft-I²C.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.