Synchronisation MPU6000 und Atmega 328

Gast #5833195
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
Gast #5833609
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.
Gast #5835594
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 7 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.