Forum: Mikrocontroller und Digitale Elektronik STM32F103C8 - ADC2 - kein DMA möglich?


von Peter M. (pm4812)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich möchte auf dem STM32F103 jeweils den ADC1 mit einem Kanal und den 
ADC2 mit einem Kanal einen Analog-Wert erfassen lassen.

Beim ADC1 kann ich einstellen, dass die Samples per DMA in einen Puffer 
geschrieben werden. Beim ADC2 fehlt diese Einstellung ...

Frage: gibt es einen Trick, wie man den F103C8 dazu überreden kann auch 
die Daten vom ADC2 in einen DMA-Buffer zu schreiben, oder ist das bei 
diesem Modell generell nicht möglich?

Danke!
P.

von Stefan F. (Gast)


Lesenswert?

"Only ADC1 and ADC3 have this DMA capability. ADC2-converted data can be 
transferred in dual ADC mode using DMA thanks to master ADC1."

http://www.st.com/resource/en/reference_manual/CD00171190.pdf

So schön die HAL ist, man sollte immer auch das Datenblatt und 
Referenzhandbuch lesen.

Wenn da ein Anfänger jetzt sagt "Das ist mir zu viel Lesestoff auf 
einmal", kann ich gut mitempfinden. Dann verzichte halt anfangs auf die 
HAL, bis du mit dem Chip vertraut bist.

von Johannes S. (Gast)


Lesenswert?

CubeMX ist da mittlerweile sehr genau, wenn eine Option nicht angeboten 
wird, dann hat das einen Grund. Wenn man dem mistraut kann man immer 
noch ins Reference Manual gucken.
Auf den Seiten 282/283 ist eine Tabelle wie die DMA Kanäle zugeordnet 
werden können. Da ist es auch ersichtlich, so flexibel ist der DMA bei 
den STM32 nicht.

von Peter M. (pm4812)


Lesenswert?

Stefan ⛄ F. schrieb:
> "Only ADC1 and ADC3 have this DMA capability. ADC2-converted data can be
> transferred in dual ADC mode using DMA thanks to master ADC1."
>
> http://www.st.com/resource/en/reference_manual/CD00171190.pdf
>

Danke für den Hinweis!

Verstehe ich das dann richtig, dass ich den ADC2 als Slave vom ADC1 
konfigurieren kann, und dann den DMA vom ADC1 für die Daten vom ADC2 
"mitbenutzen" kann?

Wenn das geht wäre das für meine Zwecke absolut ausreichend ...

Ja, das Handbuch les ich mir in der Regel nicht komplett durch. Die 1000 
Seiten sind einfach zu viel. Dann würge ich lieber etwas mit Try&Error 
rum, bis ich was zum laufen bekomme, und lese dann im Handbuch nach. 
Durch so Benutzeroberflichen wie CubeMX bekommt man ja auch schon mal 
einiges mit, wie sich die Hersteller das gedacht haben. Wenn ich stumpf 
erstmal nur das  Handbuch lese, dann versteh ich nur Bahnhof ...

Danke!
P.

von Peter M. (pm4812)


Angehängte Dateien:

Lesenswert?

ah! hab's gefunden

der Trick ist beim ADC1 den Mode auf "Dual [irgendwas]" einzustellen, 
dann wird der ADC2 vom CubeMX automatisch entsprechend eingestellt.

Ich hab immer bei den Einstellungen vom ADC2 gesucht. Manchmal kann es 
so einfach sein ...

Im oben verlinkten Handbuch ab Seite 238 sind die Dual Modes 
beschrieben.

Grüße,
P.

von Stefan F. (Gast)


Lesenswert?

Peter M. schrieb:
> Verstehe ich das dann richtig, dass ich den ADC2 als Slave vom ADC1
> konfigurieren kann, und dann den DMA vom ADC1 für die Daten vom ADC2
> "mitbenutzen" kann?

Keine Ahnung, ich habe den DMA noch nie benutzt

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.