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