MSP430: DMA bei I²C und Stop Condition

Gast #2769849
Hallo!

Würde gerne bei dem von mir eingesetzten MSP430 die DMA zum 
automatischen abholen der via I²C empfangen Daten verwenden.
Hab mir das so vorgestellt, dass ich ein Array mit ausreichender Größe 
anlege.
Bevor ich einen Befehl an das I²C-Device schicke parametriere ich die 
DMA entsprechend. Ich weiß ja wieviel Bytes ich als Antwort erwarte.
Allerdings habe ich noch ein Problem beim theoretischen Lösungsansatz,:
Wie bringe ich die DMA dazu automatisch beim letzten Byte die Stop 
Condition zu setzen? Müsste ja theoretisch die DMA nur n-1 Bytes 
(n=Anzahl der zu empfangen Bytes) lang machen und in deren ISR die Stop 
Condition setzen und das letzte Byte über die TX-ISR des I²C empfangen.

Hat jemand schon mal das Problem gelöst? Falls ja: Wie?
Oder hat jemand einen Vorschlag, wie er es lösen würde?
Oder denke ich falsch und es gibt gar kein Problem?

Danke für eure Antworten!

Tim
Gast
Timo schrieb:
> Wie bringe ich die DMA dazu automatisch beim letzten Byte die Stop
> Condition zu setzen?

Das reicht häufig nicht, das letzte Byte sollte zusatzlich mit NACK 
quitiert werden. Manche Slaves hängen sonst.

MfG Klaus
Gast
Timo schrieb:
> Müsste ja theoretisch die DMA nur n-1 Bytes
> (n=Anzahl der zu empfangen Bytes) lang machen und in deren ISR die Stop
> Condition setzen und das letzte Byte über die TX-ISR des I²C empfangen.

So würde ich es versuchen. Die Frage ist eigentlich: lohnt sich DMA bei 
I2C überhaupt?

MfG Klaus

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 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.