STM32 CubeMX ADC Konfiguration

OP #8003805
Lesenswert?

Hey, Bin jetzt im letzten Schuljahr angelangt und habe noch ein letztes Projekt. Muss dafür nen STM32F103RB programmieren. Dafür soll ich unter anderem STM32CubeMX mit der HAL Library verwenden. Mein Problem ist das ich von einem Poti den Wert über einen ADC auslesen soll und damit dann einen Piezo steuern soll. Der STM32F103RB hat zwei davon. Ich muss den ADC2 mit DMA im Scan Mode verwenden. Da sich die beiden irgendwie den DMA teilen muss ich den ADC1 auch aktivieren. Mein Konkretes Problem ist ich weiß nicht genau wie ich die beiden konfigurieren muss das auch die Daten von ADC2 ankommen. Bis jetzt schaffe ich es nur das ein konstanter Ton am Piezo ankommt aber nicht das sich entweder die Tonlage oder die Lautstärke ändert. Mit dem ADC1 und Polling habe ich es schon geschafft aber das ist leider zu weit weg von der Anforderung. Hat da vielleicht jemand noch ne Datei rumliegen wo das konfiguriert ist bzw irgendwelche guten Videos? Finde leider selber nichts was mir weiterhilft. LG saibot007

#8003815
Lesenswert?

Tobias schrieb:

Mein Problem ist das ich von einem Poti den Wert über einen ADC auslesen soll und damit dann einen Piezo steuern soll. Der STM32F103RB hat zwei davon. Ich muss den ADC2 mit DMA im Scan Mode verwenden. Da sich die beiden irgendwie den DMA teilen muss ich den ADC1 auch aktivieren.

Wenn ich CUbeMX richtig interpretiere dann kann nur ADC1 mit DMA betrieben werden, ADC2 eben nicht.

Ansonsten stimme ich Harry L. zu dass viel Prosa daherkommt aber die Situation nicht ausreichend erklärt wird.

Persönliche Seite #8003819
Lesenswert?

Tobias schrieb:

Da sich die beiden irgendwie den DMA teilen muss ich den ADC1 auch aktivieren

Ähh nein musst du nicht. Man kann beide ADCs kombinieren um die Geschwindigkeit zu erhöhen aber das ist hier wohl nicht nötig. Du musst nur einen ADC mit einem DMA verwenden.

Wastl schrieb:

Wenn ich CUbeMX richtig interpretiere dann kann nur ADC1 mit DMA betrieben werden, ADC2 eben nicht.

Nein, DMA geht mit beiden ADCs. Aber jeder ADC bräuchte einen eigenen DMA-Channel, wenn man beide ADCs nutzen würde, was hier nicht der Fall ist.

Allerdings würde es auch ohne DMA wunderbar funktionieren, besonders weil du ja nur einen ADC-Kanal nutzt und dessen Wert ja direkt verwendest - da hat DMA keinerlei Vorteil.

: Bearbeitet durch User
Persönliche Seite #8003824
Lesenswert?

Ups, du hast tatsächlich Recht, der ADC2 kann keinen DMA verwenden. Das ist anscheinend nur bei den uralten STM32F103 so, bei allen anderen STM32's ist mir das noch nicht begegnet... Im RefMan steht's im Kapitel 11.8: "Only ADC1 and ADC3 have this DMA capability. ADC2-converted data can be transferred in dual ADC mode using DMA thanks to master ADC1."

Dual-Mode macht hier gar keinen Sinn. DMA macht für den einzelnen Poti-Kanal auch keinen Sinn.

Tobias schrieb:

Ich muss den ADC2 mit DMA im Scan Mode verwenden.

Warum musst du ADC2 verwenden? Warum musst du DMA nutzen? ADC1 kann die selben Pins nutzen.

Beitrag #8003825 wurde vom Autor gelöscht.
Persönliche Seite #8003828
Lesenswert?

Tobias schrieb:

Das is so vorgegeben daran kann ich leider Nix verändern.

Dann ist die Vorgabe nicht umsetzbar. Man kann zwar ADC1+ADC2 koppeln und dann DMA nutzen aber dann muss ADC1 auch einen Kanal konvertieren.

Sicher dass du nicht Kanal 2 statt ADC 2 konvertieren sollst? ADC1_IN2 ließe sich wunderbar per DMA auslesen (auch wenn's unnötig ist).

: Bearbeitet durch User
Beitrag #8003849 wurde von einem Moderator gelöscht.
OP #8003908
Lesenswert?

Naja gibt’s zwar schon aber sind ne etwas größere Schule mit fast 1300 Schülern. Den Direktor sieht man nur einmal am Anfang des Jahres und dann wieder am Ende. Und die Lehrer halten sich natürlich auch den Rücken frei. Die letzten zwei drei Jahre schon viel versucht aber hilft leider nichts.

(Firma: Schweigstill IT) Persönliche Seite #8003928
Lesenswert?

Tobias schrieb:

Naja gibt’s zwar schon aber sind ne etwas größere Schule mit fast 1300 Schülern. Den Direktor sieht man nur einmal am Anfang des Jahres und dann wieder am Ende. Und die Lehrer halten sich natürlich auch den Rücken frei. Die letzten zwei drei Jahre schon viel versucht aber hilft leider nichts.

Um so etwas zu klären benötigt man das Parteibuch der Eltern. Falls nicht vorhanden, einen Anwalt mit der Klärung der Angelegenheit beauftragen.

Persönliche Seite #8003938
Lesenswert?

Tobias schrieb:

Nein ist es leider nicht. Der Lehrer ist sehr alt und sehr stur. Und auch wenn er einmal einen Fehler gemacht beharrt er darauf dass das so passt.

Ah die Sorte, kennt man zu genüge. Erfahrungsgemäß achten die dann nicht extrem pingelig auf die Details der Abgabe, weil ihnen die eigenen Details auch nicht so wichtig sind.

Die Strategie ist "deal with it", die Aufgabe so lösen dass es funktioniert und dazu ggf. Anforderungen anpassen (z.B. ADC1 statt ADC2). Wichtig ist dass es am Ende im Großen und Ganzen gut aussieht - soll also grundsätzlich die gewünschte Funktion haben. Falls ein Bericht dazu gefordert ist, muss der auch hübsch und im traditionellen Stil sein (z.B. LaTeX).

Wastl schrieb:

Dann mal mit seinem Vorgesetzten "sprechen"

Kann man da eher vergessen.

Aber nochmal... Ist das wirklich die gesamte Aufgabenstellung? Es wird nirgendwo ADC1 noch für was anderes verwendet? Es steht nirgendwo welcher Pin genutzt werden soll und was genau mit dem Ergebnis passieren soll? Ich würde ja einfach ADC1 nehmen und fertig, aber falls irgendwo ADC1 doch noch für was anderes belegt ist...

: Bearbeitet durch User
OP #8003953
Lesenswert?

Nein gibt leider keine weitere Aufgabenstellung. Wir haben so ein schul internes System aus mehreren Platinen die von Lehrern früher designed wurde. Auf dem Bild von gestern sieht man was man verwenden soll mehr gibt’s nicht. Der meist gehörte Satz egal von wem in dieser Schule war ,,Das Leben ist nunmal unfair stellt euch nicht so an“. Mehr kann ich da auch nicht mehr sagen

Persönliche Seite #8003955
Lesenswert?

Dr. T. schrieb:

An jeder Schule gibt es Vertrauenslehrer, genauso wie es Schülervertreter gibt...

Weiß nicht wie das in den Alpenländern ist, aber in Deutschland sind Lehrer und Professoren größtenteils Beamte und haben damit Narrenfreiheit. Da kann man selbst "von oben" kaum was erwirken. Die müssten sich schon fast eine Straftat leisten bevor da was möglich ist. Man könnte Schüler der vorherigen Jahre fragen, wie sie die Aufgabe gelöst haben - diese Sorte Lehrer hat typischerweise keine Lust, sich jedes Jahr neue Aufgaben auszudenken.

Wesentlich nervenschonender ist der Modus "Ergebnisse liefern", auch wenn man dafür die Aufgabe umbauen muss. Erfahrungsgemäß sind diese Lehrer der "alten Schule" zufrieden wenn sie sehen, dass man brav den Anweisungen gefolgt ist und Arbeit reingesteckt hat ohne aufmüpfig zu sein, auch wenn es sinnlose Arbeit ist. Das sehen sie aber nur, wenn das Ergebnis schön aussieht - Details prüfen ist anstrengend.

Könnte man auch als Soldatenmodus sehen - nicht fragen sondern machen...

Tobias schrieb:

,,Das Leben ist nunmal unfair stellt euch nicht so an“. Mehr kann ich da auch nicht mehr sagen

Alles klar, das bestätigt meine Einschätzung!

Nimm ADC1_IN2 (Pin PA2) und den ADC1-DMA, fertig. Wenn er tatsächlich nachbohrt sag dass du davon ausgegangen bist dass ADC2 ein Tippfehler war und IN2 gemeint war.

: Bearbeitet durch User
OP #8003957
Lesenswert?

Schüler der vorherigen Jahre haben wir probiert zu fragen. Diese hatten aber die Art von Aufgaben nie. Hab jetzt das ganze einfach mit dem ADC1 gemacht da geht’s ja ohne Probleme. Falls ihm das auffällt bzw. nicht genügt sein Problem. Kann mit reinem Gewissen sagen das ich’s wirklich probiert habe.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren