Forum: Mikrocontroller und Digitale Elektronik Frage zu STM21F0 Timer und ADC


von Matthias H. (streno)


Lesenswert?

Hallo zusammen,

ich habe eine sehr allgemeine Frage zum STM32F0

In meinem Programm steuert Timer2 mit PWM einen Ausgang

Und Timer 3 triggert den ADC.

Wichtig ware mir es, beide Timer gleichzeitig zu starten.
Gibt es einen Befehl um dies zu realisieren?

Weiter habe ich nach meinem Befehl
TIM_CMD(TIM3, ENABLE);
ADC_StartofConversion(ADC1)

Beginnt Timer 3 nun zu zählen ab dem ersten oder ab dem zweiten Befehl?

Wie kann ich im Zeitverlauf messen, wann Timer 3 triggert? Sprich wie 
kann ich Timer 3 ausgeben um ihn  mit dem Oszi zu messen?

Ja sehr einfache Fragen aber eventuell weiß jemand die Lösung

Danke und viele Grüße

von fft (Gast)


Lesenswert?

Matthias H. schrieb:
> Wichtig ware mir es, beide Timer gleichzeitig zu starten.

Man kann einige der Timer synchronisieren, siehe Datenblatt. Wie du das 
mit dieser komischen ST-Library erreichst, das kann ich dir nicht sagen.

Alternativ kann man beide "in etwa" gleichzeitig starten und hinterher 
anhand des CNT-Registers kompensieren.

von Mike R. (thesealion)


Lesenswert?

Wenn Timer 3 nur dafür da ist, den ADC zu triggern, dann könntest du die 
Aufgabe doch gleich von Timer 2 mit erledigen lassen. Dann brauchst du 
nicht synchronisieren (Vorausgesetzt der ADC soll immer zum gleichen 
Zeitpunkt der PWM messen).

von Matthias H. (streno)


Lesenswert?

Mike R. schrieb:
> Wenn Timer 3 nur dafür da ist, den ADC zu triggern, dann könntest du die
> Aufgabe doch gleich von Timer 2 mit erledigen lassen. Dann brauchst du
> nicht synchronisieren (Vorausgesetzt der ADC soll immer zum gleichen
> Zeitpunkt der PWM messen).

Sehr gute Idee toller Tipp!

Jetzt habe ich noch eine Frage zur Triggerung:

Mein Timer läuft mit 48MHz und die Periode ist auf 479. Meiner Meinung 
nach müsste er mit 10µs abtasten. Allerdings tastet er mit 20µs ab. Hat 
jemand eine Idee an was es liegen könnte?

Gibt es eine Möglichkeit zu jedem Counterwert zu überprüfen, was das 
Programm gerade macht?

von Felix F. (wiesel8)


Angehängte Dateien:

Lesenswert?

Matthias H. schrieb:
> Jetzt habe ich noch eine Frage zur Triggerung:
>
> Mein Timer läuft mit 48MHz und die Periode ist auf 479. Meiner Meinung
> nach müsste er mit 10µs abtasten. Allerdings tastet er mit 20µs ab. Hat
> jemand eine Idee an was es liegen könnte?

Der Timer Prescaler wird je nach Wert nochmal multipliziert (s. Bild). 
Zumindest beim F1...

mfg

von Matthias H. (streno)


Lesenswert?

Felix F. schrieb:
> Der Timer Prescaler wird je nach Wert nochmal multipliziert (s. Bild).
> Zumindest beim F1...

Genau beim F0 auch. Habe jetzt gesehen, dass der Prescaler bei /2 lag.

Allerdings wird der ADC doch von Timer 3 getriggert. Sprich Timer 
3=48MHz zählt bis 479 und somit 10µs...

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.