Forum: Mikrocontroller und Digitale Elektronik Arduino Due (ATSAM3x) pdc benutzen


von Sven (Gast)


Lesenswert?

Hallo!

ich bin durch einen Arduino Due in die Arduino Welt geschlittert und 
muss sagen ich bin begeistert. Wenn es primär um eine Bastelei geht und 
nicht das coden im Vordergrund steht ist die Integration der ganzen 
libraries der Hammer. Ich habe mit meinen Kindern etwas gebastelt und 
war wirklich begeistert wie schnell man einfach 'etwas' wofür an sich 
Tage oder Wochen nötig wären 'benutzen' kann.... das hätte ich nicht 
gedacht und glaube ich hätte mich nicht so lange wehren sollen.

Aber geht's janicht drum. Meine Frage ist: wenn ich für eine Hardware 
einen DMA / PDC Kanal benutzen möchte wie gehe ich da vor?

Ich habe Datenpakete fester Länge die über Uart rein kommen und da würde 
ich die mit dem PDC in einen Ping Pong Buffer schreiben. Dafür müsste 
der uart ja zumindest etwas anders konfiguriert werden und ggf. wären 
Resourcen verschwendet für den normalen Input Buffer.


Kann ich ein Serial.begin() machen um die Hardware generell zu 
konfigurieren und dann die RX/TX Interrupts ausschalten und lokal die 
Uart Service Routine mit der Verwaltung des PDC und der Buffer anlegen?

Oder muss/sollte ich den Uart der über PDC laufen soll komplett an 
Arduino vorbei implementieren?

Oder gibt es dafür tatsächlich auch schon eine Library? :-)

Oder ist er richtige Weg einer, den ich nicht auf dem Schirm habe?


schönes Wochenende und genießt die Sonne!

von weiter weg (Gast)


Lesenswert?

Sven schrieb:
> Oder ist er richtige Weg einer, den ich nicht auf dem Schirm habe?

Eher das.

DMA für Serial I/O ist wie mit Kanonen auf Spatzen geschossen.

Unter Arduino Framework wird es mit DMA sowieso nicht
funktionieren bzw. implementierbar sein. D.h. man müsste alles
ohne Arduino Framework schreiben und das wäre eine ganze Menge
"learning curve".

Meiner Erfahrung nach klappt serial I/O per Interrupt mit bis zu
921600 bit/s wunderbar (das ist das was die meisten PCs maximal
können). Das reicht dicke für alles Mögliche.

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.