I2C DMA 3-verschiedene Sensoren auslesen

OP #4805039
Lesenswert?
• ▲
▼
Hi

Ich versuche mit einem DMA (auf einem STM32F4) 3-verschiedene Sensoren 
über die I2C Schnittstelle auszulesen. Alle Sensoren sind auf dem selben 
Board und können über unterschiedliche Adressen angesteuert werden. Nun 
frage ich mich, wie ich das bewerkstelligen soll? Ich habe es mit states 
versucht, doch wenn ich nach einem erfolgreichen DMA read sogleich einen 
neuen aufsetze, dann crasht mir das oft, da der DMA zu schnell ist. Ich 
muss bei allen Sensoren 6 Byte Daten holen, daher ist zumindest schon 
mal der RX Buffer für alle gleich gross.

Hat da Jemand Erfahrung wie man das am besten macht?

Grüsse
Gast #4805147
Lesenswert?
• ▲
▼
Datenblätter lesen. I2C Bus verstehen! Errata lesen. Appnotes studieren. 
Oder vorhandenen geprobten libraries nutzen.

> Ich habe es mit states
> versucht, doch wenn ich nach einem erfolgreichen DMA read sogleich einen
> neuen aufsetze, dann crasht mir das oft, da der DMA zu schnell ist.

Selten so ein Schmarrn gelesen.

> Hat da Jemand Erfahrung wie man das am besten macht?
Der Master spricht sequentiell jeden Slave + Register an, dann werden 
die gewünschten Daten gesenden. Beim i2c weiß man immer wie viele Daten 
ankommen...

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.