-
-
Erfahrener Benutzer
Roboter Experte
Ich habe nicht alles bis ins Detail gelesen aber ein paar Punkte meinerseits:
I2C-Bus:
- Der I2C-Bus ist für viele Chips an einem Bus ausgelegt und funktioniert damit auch
Ich habe an meinem Roboter 9 I2C-Devices hängen. Das ganze funktioniert super. Die Verzögerungen durch den Bus sind Minimal. Das ganze ist ja mit 100kHz bzw. mit 400kHz getaktet. Das ist im Vergleich zu dem Datenaufkommen von ein paar Bytes pro Device völlig ausreichend. Das einzige was zeitintensiv ist sind die EEPROMs die physikalisch bedingt nunmal bis zu 10ms zum Schreiben brauchen. Hier eignen sich jedoch Flash-Speicher, die sind bedeutend schneller.
Und wenn man wirklich auf Zeit arbeiten will und EEPROMs braucht kann man ´nen Flash einbauen, den der MasterµC beschreibt und ein Slave die daten vom Flash in einen EEPROM brennt.
µC:
Ich verstehe nicht wieso du das so kompliziert machst? Soweit ich das verstanden habe hast du ein paar Sensoren, Motoren und ein Display. Dafür 4µC zu nehmen ist wie ich finde total ineffizient. Dazu reicht wirklich ein einziger dicker AVR.
Ich würde die ATmega8 Flotte gegen einen einzigen ATmega128 ersetzen, den mit 14,7xx MHz (für RS232) oder glatten 16MHz takten.
Der schafft das spielend.
Der Clou liegt nur in der Programmierung. Du darfst nicht eine (zeitintensive) Aufgabe nach der anderen machen sondern musst diese geschickt aufsplitten. So kommt es auch zu keinen bzw. minimalen Verzögerungen. Die liegen auf jeden Fall bei wenigen ms.
Ich hab selbst ein Programm mit ca. >10k Zeilen, dutzend Sensoren, Motoren, Servos, LCD, I2C, RS232...der AVR braucht nur ca. 100ms um das komplette Programm einmal zu durchlaufen. Darin enthalten sind auch Delays für die RS232, wenn man die rauslässt dauerts keine 50ms.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen