In meinem Archie geht ne ganze Menge über I²C - aktuell elf (11) Controllerplatinen, d.h. zehn Satelliten und ein Zentralrechner. Da war ich längere Zeit perplex über die hohe Datenrate (400 kHz, auch 800kHz - als Vorgaben von mir :-/ ) und wiederholte Störungen, bis ich mir die Signalflanken angesehen hatte. Die entsprachen dann meinen Vorstellungen/Befürchtungen; immerhin ist das Kabel knapp zwei Meter lang. Seit ich mit 74 k am Master fahre, gibts keine Störungen.
Im Kopfkontroller von Archie laufen zehn Servos - die sollen auch synchron laufen. Das funktioniert bei mir durch entsprechend abgestimmte Startzeiten und zeitliche Kontrolle der Ansteuerung der einzelnen Servos; billige, analoge Dinger.
Die Synchronisation "über alle Controller" erfolgt im Prinzip über I²C - durch präzise getimte Befehle - aber eben nacheinander an die einzelnen Satelliten - und in besonderen Fällen durch Rücklesen der aktuellen Stände - bei dieser komplexen Bewegung (leider ein schrecklich schlechtes Video) klappt das dann ganz gut.
Eine Synchronisation über eine digitale Königswelle (Klebwax: ein klasse Ausdruck!!, Kompliment!) wollte ich auch machen. Auf fast allen meinen Platinen (Ausnahme 2 Sonderfälle für andere Lösungen) habe ich einen Heartbeat von 50 µs, der nach 1 sek eine LED toggelt. Ursprünglich sollte der Master auf diesem Weg die Satelliten synchronisieren; es ist ja nix einfacher als das LED-Signal über das ganze System zu schicken. Diese Absicht hatte ich fallen gelassen als ich sah, dass die "übliche" I²C-Kommuniktion zu so genauen Ergebnissen führt, dass für das menschliche Auge in der Feinmotorik so gut wie keine Störungen zu erkennen sind.
Lesezeichen