MSP430: DMA bei I²C und Stop Condition

Gast #2769849
Lesenswert?

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 #2769887
Lesenswert?

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren