Arduino Due (ATSAM3x) pdc benutzen

Gast #6725567
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!
Gast #6725591
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.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.