Forum: Mikrocontroller und Digitale Elektronik STM32 8 verschiedene Frequenzen mit 2 Timern?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Knut E. (knulli)


Bewertung
0 lesenswert
nicht lesenswert
Ich will auf nem STM32 8 verschiedene Frequenzen ausgeben.
Die Betonung liegt auf Frequenzen. (nicht PWM-Tastverhältnisse mit alle 
der gleichen Frequenz). Verhältnis H/L soll immer 50/50 sein, 
Periodendauer variabel. Für alle 8 Strippen unabhängig voneinander.

Mein jetziger STM hat insgesamt 4 Timer mit je 4 Channels.

Geht das mit verschiedenen Channels eines Timers verschiedene Frequenzen 
auszugeben, oder muss ich 'nen anderen Chip mit 8 Timern nehmen?

Aus dem hier (CC Einheit) bin ich nicht schlau geworden:
Beitrag "STM32 - zwei Frequenzen mit einem Timer erzeugen?"

Knulli

von Jim M. (turboj)


Bewertung
0 lesenswert
nicht lesenswert
Kennt der STM32 einen Timer Mode wo der Pin nur bei Compare-Match aber 
nicht beim Ender der Timer Periode toggelt?

Wenn ja, könnte man versuchen die Compare-Werte vorberechnen und jeweils 
neu via DMA laden.

von Chris D. (myfairtux) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Oder einfach den Timer durchlaufen lassen und per ISR bei Overload eines 
CCRs die halbe Taktperiode aufaddieren. Dann nur noch toggeln lassen und 
fertig sind die unabhängigen Frequenzen. Dadurch könnte man auch das 
PWM-Verhältnis ändern.

von m.n. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Knut E. schrieb:
> Ich will auf nem STM32 8 verschiedene Frequenzen ausgeben.
> ,,,
> Verhältnis H/L soll immer 50/50 sein,
> Periodendauer variabel.

Das geht, wobei bei höher werdenden Frequenzen die Abstufung immer 
gröber wird und bei niedrigen Frequenzen der Überlauf des Timers 
beachtet werden muß.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Bewertung
0 lesenswert
nicht lesenswert
Ein Beispiel für 2 Töne mit einem Timer ist in AVR314 enthalten, das mit 
einem Timer DTMF Tonpaare erzeugt.
http://www.atmel.com/images/doc1982.pdf

Selbst wenn das für AVR ist, sollte ein Port auf den STM recht einfach 
sein.

von m.n. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Matthias S. schrieb:
> Ein Beispiel für 2 Töne mit einem Timer ist in AVR314 enthalten, das mit
> einem Timer DTMF Tonpaare erzeugt.

Das hilft hier nicht weiter, da wohl acht Frequenzen auf separaten 
Ausgängen gleichzeitig ausgegeben werden sollen.
Hier wäre noch interessant, welcher Frequenzbereich abgedeckt werden 
soll. Da mit ISRs gearbeitet werden muß, dürfte die obere Grenze im 100 
kHz Bereich liegen.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Bewertung
0 lesenswert
nicht lesenswert
m.n. schrieb:
> Das hilft hier nicht weiter, da wohl acht Frequenzen auf separaten
> Ausgängen gleichzeitig ausgegeben werden sollen.

Das ist wahr. Man könnte sich aber die abschliessende Addition der Werte 
sparen und diese dann getrennt rausschieben. Mir gings nur ums Prinzip.

m.n. schrieb:
> Hier wäre noch interessant, welcher Frequenzbereich abgedeckt werden
> soll.

So isses. AVR314 ist nur für NF zu gebrauchen - zumindest auf den AVRs.

: Bearbeitet durch User
von Knut E. (knulli)


Bewertung
0 lesenswert
nicht lesenswert
@TurboJ:
Es gibt nen Toggle-Mode und den hab ich schon ausprobiert. Ergebnis war: 
Es wird die Phasenlage verschoben.
Da hatte ich aber noch nix mit DMA nachgeladen. Müsste ich auch nochmal 
genauer erklärt bekommen.


@myfairtux:
Ja, die Idee hatte mein Chef (Elektroniker) auch schon. Einfach nen 
zähler laufen lassen und dann mit GPIO die Pins Wackeln lassen.
Meine Befürchtung: Die Motoren werden nicht gleichmäßig laufen, wenn 
irgendwas höher Priorisiertes (USB, RS232, ???) stört.

@ m.n. (Gast):
Frequenzen sollen zwischen 0-200 Hz mit max. 0.1 Hz Stufen einstellbar 
sein.
Damit sollen 8 Steppermotorkarten angesteuert werden, die bei jedem 
Impuls den Motor eins weiterschubst:
http://de.rs-online.com/web/p/funkentstorfilter-und-zubehor/2173611/

Da das erstmal nur einmal gebaut werden soll, "weigert" sich mein 
Elektroniker ne neue Platine zu machen.
Also vorhandene STM-Platine verwenden, die bisher nur eine Frequenz 
ausgeben musste! Der hat nen 8MHz Quarz drauf, damit komme ich auf die 
max. möglichen 72 MHz für diesen STM.

Ich werd mal die Zählergeschichte ausprobieren und mal gucken, wie doll 
das rumeiert.

Knulli

: Bearbeitet durch User
von m.n. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Knut E. schrieb:
> Frequenzen sollen zwischen 0-200 Hz mit max. 0.1 Hz Stufen einstellbar
> sein.

Das ist ja langweilig.
Ich habe Beipiele, wie man Compare-Ausgänge zur Impulserzeugung mit 
feiner Auflösung benutzen kann, allerdings für AVR mit 2 Kanälen. Das 
Prinzip ist aber auf den STM32xxx übertragbar.
Dabei wird die 1/2 Periodendauer ins Compare-Register geladen und per 
Hardware der Ausgang gesetzt bzw. gelöscht. Bei tiefen Frequenzen ist 
der Nachladewert zu groß, als daß er direkt ins Compare-Register passen 
würde. Da wird dann der Nachladewert in Häppchen zerlegt und erst dann 
einen Ausgangsänderung freigegeben, wenn das letzte Häppchen geladen 
wurde: http://mino-elektronik.de/Generator/takte_impulse.htm#bsp3a


> Damit sollen 8 Steppermotorkarten angesteuert werden, die bei jedem
> Impuls den Motor eins weiterschubst:
> http://de.rs-online.com/web/p/funkentstorfilter-und-zubehor/2173611/

Du hast gesehen, daß diese Karte für unipolare Stepper ist? Freiwillig 
würde ich die heutzutage nicht mehr verwenden wollen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.