Forum: Mikrocontroller und Digitale Elektronik LPC1778 UART Rx über DMA


von Heiko N. (heikon)


Lesenswert?

Hallo,
hat schon jemand mal bei dem Controller den UART1 Rx Empfang über den 
DMA ins Mem geschoben?
Ich habe das Problem, dass die Daten im UART RBR Register ankommen, aber 
anscheinend kein DMA Transfer angestossen wird. Das erkenne ich daran, 
dass weder ein DMA Interrupt ausgelöst wird noch die Daten im 
entsprechenden Speicherbereich zu finden sind.
Der DMA Tx Kanal funktioniert einwandfrei.

Gibt es irgendeinen Trick (FlowController, o.ä.), was ich noch 
berücksichtigen muss?

Vielleicht hatte ja schon jemand mal ähnliches Problem.
Vielen Dank im voraus
Heiko

von Thomas W. (diddl)


Lesenswert?

Bei USART finde ich DMA überzogen.

Die Übertragungsgeschwindigkeit ist klein. Und wenn ich normale 
Interrupts verwende, dann kann auch gleich das protokoll mit abfackeln.

von Heiko N. (heikon)


Lesenswert?

Is ja nicht schlimm, dass du das überzogen findest,
ich hätte aber trotzdem gerne nen Hinweis, wie ich das lösen kann...

von magicman (Gast)


Lesenswert?

Thomas Winkler schrieb:
> Bei USART finde ich DMA überzogen.
>
> Die Übertragungsgeschwindigkeit ist klein. Und wenn ich normale
> Interrupts verwende, dann kann auch gleich das protokoll mit abfackeln.

Für niedrige Baudraten schon, aber für > 1 Mbit/s wohl kaum, vor allen 
dingen soll die CPU evtl. noch andere dinge erledigen.

von Heiko N. (heikon)


Lesenswert?

Darf ich noch einmal den Focus darauf legen, dass es nicht Grundlage der 
Diskussion ist, OB, sondern WIE das zu lösen ist.

von Heiko N. (heikon)


Lesenswert?

habe ein paar neue erkenntnisse:

1. UART als FlowController, dann werden die Daten schön in den Speicher 
geschrieben, allerdings kann man keine Länge übergeben und auch die UART 
steuert das nicht. Ebenso erhält man dadurch keinen DMA IRQ und muss 
manuell überprüfen, wann der letzte Eintrag im Speicher geschrieben 
wurde.

2. DMA als FlowController, dann kann man eine Size festlegen, aber dann 
setzt die UART wohl nur das SOftBReq Bit für die entsprechende Quelle, 
aber der DMA überträgt die Daten nicht.

Weiß dazu vll einer was...??
Danke schon mal

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
Noch kein Account? Hier anmelden.