Hallo, ich habe einen Bewegungssensor mit ATMEGA328 und MPU6000 gebaut, funktioniert gut, möchte aber mehrere dieser Sensoren betreiben, die sollen per Funk das Ganze an eine 'Zentrale' melden. Alle diese Daten müssen perfekt synchronisert sein. Dabei ist ein Problem, dass ich die ATMEGAs mit der Zentrale synchronisiere. Das ist schon gelöst, die ticken also alle ziemlich im selben Takt. Ich weiss aber nicht, wie ich die einzelnen MPU6000 mit dem jeweiligen ATMEGA synchronisieren kann. MPU600 gibt immer dann Daten ab, wenn sie fertig sind, aber das ist mir nicht genau genug. MPU6000 kann extern getriggert werden : Optional external clock inputs of 32.768kHz or 19.2MHz. Ist es möglich/sinnvoll, dies vom ATMEGA aus zu machen über so eine Art von PWM-Signal? Hat das mal jemand probiert? Danke, Hamster
Ich verstehe 'perfekt synchronisert' nicht. Diese Bausteine werden über I2C oder SPI ausgelesen. Alleine dadurch ist doch schon eine Verzögerung gegeben. Dann senden alle die Daten über Funk. Geht das denn gleichzeitig? Stört da nicht einer den anderen? Überhaupt fehlen Angaben zum Timing: Sekundengenau? Oder doch Microsekunden? Und wenn mehrere CPU parallel laufen, dann läuft da auch der Takt auseinander. Es sei denn, alles sitzt auf einer Platine. Aber dann braucht man ja auch nur einen Beschleunigungssensor.
Danke PittyJ für die Antwort! Die Synchronisation der Sensoren und der Zentrale (ATXMEGA 128) geht so, dass die Zentrale jedesmal wenn ein Datenpaket kommt, danach ihren aktuellen Timer-Stand an die Peripherie (Sender des Datenpaketes) sendet. Das geht ganz gut mit dem Protokoll des RFM70 Funkmodul. Der periphere Prozessor gleicht das dann mit seinem eigenen Timer ab und verändert ggf.die Zykluszeit im Programm/software dieses Prozessors (ATMEGA328, Sender), indem die Anzahl Tics, die die Zyclusschleife läuft, verändert wird. Somit sind die Einlesezyclen aller Sensoren synchronisiert (Genauigkeit im Bereich von ca 1 ms). Dann hat jeder Sensor in diesem gemeinsamen Zyclus ein Zeitfenster, in dem er senden darf. Daten sollen mit ca 100 - 250 Hz von MPU6000 aufgenommen werden (14 Bytes, 100-250 x pro s) . Daher wäre es wichtig, MPU6000 und ATMEGA zu synchronisieren, damit MPU6000 in jedem Zyclus die selbe Anzahl von Daten liefert. Und da war die Frage, wie man das am besten macht. Gruss, Hamster
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.