Forum: Mikrocontroller und Digitale Elektronik I2C oder UART verwenden?


von Alexander I. (daedalus)


Lesenswert?

Hallo,

folgende Aufgabenstellung: Es gibt eine Platine mit 24 Kleincontrollern 
(Cortex M0). Einer der Controller (immer der Gleiche) übernimmt die 
Masterrolle und stimmt die Aufgaben mit den anderen 23 Kollegen ab. Die 
können also z.B. nach einem Status gefragt werden oder eine kleine 
Aufgabe bekommen (z.B. messe mit ADC und schicke mir bei der nächsten 
Anfrage das Ergebnis zu). Hierfür kämen jetzt I2C oder UART infrage. 
Beim UART könnte man auf "Single-Wire"-Betrieb umstellen und in Hardware 
wird auch eine Adress-Erkennung angeboten.

Zusätzlich soll dieser Bus diagnosefähig sein. Das sieht dann so aus, 
dass man den Master durch eine Steckbrücke zum Slave macht und ein 
angeschlossener PC die Master-Rolle übernimmt. Darüber können dann z.B. 
Parameter konfiguriert oder Statistikinformationen der einzelnen 
Controller abgefragt werden. Da die meisten PCs heute eh keinen UART 
mehr haben, ist es mir in dieser Hinsicht egal ob ich nun USB-I2C oder 
USB-UART-Adapter verwenden müsste ...

Ich habe sowas ähnliches schonmal gemacht. Damals haben wir das per 
quasi-UART (andere Pegel, etc. aber logisch identisch) gelöst und ein 
kleines Protokoll gefahren. I2C war damals nicht im Controller verfügbar 
und deshalb keine Option.

Ich habe also schon ein wenig Erfahrungen gesammelt bei selbstgebauten 
UART-Bussystemen. I2C ist für mich dagegen Neuland. Das Layout sollte 
diese Woche fertig werden, d.h. sollte ich mich zügig für UART oder I2C 
entscheiden.

Als Baudrate würde ich 57,6k oder 115,2k fahren. Die Antwort-Zeitfenster 
für die Slaves sollen eher kurz sein, damit jeder Mal die Chance hat 
zeitnah (wenige ms) dranzukommen, falls ein anderer seinen Slot 
"verschläft". Die Datenpakete sind eher kurz, 8-10 Bytes an Nutzdaten.

Was ist eure Empfehlung? Es bleibt nur die Wahl zwischen I2C und UART...

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
Noch kein Account? Hier anmelden.