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
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
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
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.