STM32 viele PWM Ausgänge

OP #6536612
Lesenswert?

Hallo zusammen!

Ich suche nach einem STM32 MCU welcher mir auf mindestens 7 pins eine 
PWM-Frequenz (25kHz 0-100%) generieren kann. Ebenfalls muss ich auf 7 
pins eine Frequenz von 0-200Hz Messen können.

So wie ich bis jetzt gesehen habe, gibt es meist nur relativ wenig PWM 
Ausgänge (timer)

Kennt jemand ein Modell welches viel PWM Ausgänge bietet? Wichtig ist 
auch, das die Ausgänge indivuell angepasst werden können 
(Tastverhältniss)
#6536659
Lesenswert?

Johnny S. schrieb:
> Ich suche nach einem STM32 MCU welcher mir auf mindestens 7 pins eine
> PWM-Frequenz (25kHz 0-100%) generieren kann.

So ziemlich jeder STM kann das. Hier bieten sich Timer 1 und 8 an. Die 
können dir das PWM jeweils auf 4 Pins ausgeben, wobei pro Timer nur eine 
Frequenz jedoch unterschiedliche Tastverhältnisse möglich sind.

Johnny S. schrieb:
> Ebenfalls muss ich auf 7
> pins eine Frequenz von 0-200Hz Messen können.

Eingänge sind schwieriger, hier brauchst du pro Eingang einen Timer, 
sofern du dort Frequenz und Tastverhältnis messen möchtest brauchst du 2 
Kanäle an dem jeweiligen Timer. Nur die Frequenz sollte man auch mit 
einem Kanal Messen können, damit kann man ebenfalls die Timer mit nur 
einem Kanal nutzen und sollte die 7 Eingänge abbilden können.

Das ganze macht so ziemlich fast jeder STM der genug Timer hat, was jede 
Serie außer der F0 und der neuen G Reihe sein sollte. Und auch die gehen 
vermutlich, sofern man sich auf das reine Messen der Frequenz beschränkt
Gast #6536702
Lesenswert?

Die Auswahl ist eigentlich "riesengroß". Timer1, 2, 3, 4, 5 und 8 bieten 
sich gut an. Wenn PWM und Frequenzmessung mit separaten Timern gemacht 
werden sollen, braucht man ein Gehäuse >= LQFP64. Mein Favorit wäre da 
der STM32G431.
Wenn die Frequenz nicht so hoch aufgelöst werden muß, kann man auch 
einen Timer mit 100-500 kHz laufen lassen und die gewünschten Eingänge 
pollen.
Vielleicht beschreibst Du, was Du vor hast.
OP #6536706
Lesenswert?

Kevin M. schrieb:
> Eingänge sind schwieriger, hier brauchst du pro Eingang einen Timer,
> sofern du dort Frequenz und Tastverhältnis messen möchtest brauchst du 2
> Kanäle an dem jeweiligen Timer. Nur die Frequenz sollte man auch mit
> einem Kanal Messen können, damit kann man ebenfalls die Timer mit nur
> einem Kanal nutzen und sollte die 7 Eingänge abbilden können.

Hier habe ich mich auch schon gefragt ob man allenfalls mit normalen 
funktionen von GPIO arbeiten könnte. Es geht grundsätzlich um die 
Messung einer Drehzahl von 0-4000U/m, bei einer Frequenz von z.b. 86Hz 
wären dies dann 2580rpm. Bei 160Hz vermutlich so um die 5000 Rpm. Da 
sich dieser Wert nicht ständig ändert, und dessen Angabe auch nicht 
sonderlich genau sein muss, kann man das ja allenfalls mit normalen GPIO 
und interrupts bearbeiten.

Ob da bei 86Hz nun 2580, 2550 oder 2600 RPM rauskommen ist kein Problem 
Ebenfalls genügt es wenn nur jede halbe Sekunde der Wert neu "ermittelt" 
wird.
#6536724
Lesenswert?

Wenn deine Anforderungen an die Genauigkeit nicht so hoch sind, sollte 
das mit Interrupts problemlos funktionieren. Da reicht dann ein Timer 
als Zeitbasis. Diese Lösung generiert mehr CPU-Last und ist eben nicht 
so präzise. In deinem Fall könnte es sich lohnen einen Timer zum Messen 
zu nutzen und die 7 Signale per Multiplexer extern um zu schalten. Dann 
kannst du ggf. auch einen DMA nutzen und nur bei Bedarf muss die CPU was 
tun. Der STM hat natürlich eine Haufen Rechenpower, aber man weiß ja 
auch nicht was du sonst noch so vor hast ;)
Gast #6536768
Lesenswert?

Für die 8 x PWM-Ausgänge benutzt man am besten 2 x Timer mit jeweils 4 x 
Ausgängen. Das ist soweit klar.
Für die Frequenzmessung ist es elegant, jeweils Capture-Eingänge von 
Timern zu verwenden. Für 7 Kanäle reichen 2 x Timer mit je 4 Eingängen. 
Da kannst Du dann jede Periode messen - nur bei 0 Hz wird es schwierig!

Für ein Einzelstück/Muster eignet sich ein Nucleo-Board.
Beitrag #6537088 wurde von einem Moderator gelöscht.
Beitrag #6537123 wurde von einem Moderator gelöscht.
Beitrag #6537290 wurde von einem Moderator gelöscht.
OP #6537445
Lesenswert?

Kevin M. schrieb:
> Der STM hat natürlich eine Haufen Rechenpower, aber man weiß ja
> auch nicht was du sonst noch so vor hast ;)

Ich möchte mir für meinen PC eine Lüftersteuerung bauen. Das können die 
meisten Mainboards heute zwar auch, jedoch hat man da zum einten das 
Problem das man mit "Y" Kabeln die Lüfteranschlüsse splitten muss da es 
viel zu wenige hat, was zu problemem mit dem Tachosignalen der einzelnen 
Lüfter führt. Ein weiterer Kritikpunkt ist das die Regelung viel zu 
sprunghaft ist, da irgendwelche interenen Sensoren auf dem Board 
ausgewertet werden (z.b. CPU Core temp). Arbeitet der CPU mal 2-3 
Minuten mehr, drehen sofort die Lüfter hoch, obwohl die Wassertemparatur 
überhaupt nicht gestiegen ist. Und wenn das Gerät dann mal ein paar 
Stunden unter Volllast läuft und man dann in den den normalen Betrieb 
wechselt, gehen die Lüfter sofort runter, was dafür sorgt dass das 
Wasser nur extrem langsam abkühlt, anstatt die Lüfter noch ein paar 
Minuten voll drehen zu lassen.

Fertige System gibt es zwar, war aber irgendwie nicht wirklich was für 
mich dabei, braucht alles wieder komische Software oder oder ist riesen 
gross. Daher will ich ein kleines Board bauen mit einem MCU drauf, einem 
Sata-Stromanschluss und dann dort bis zu 7 Lüfter anschliessen können, 
sowie allenfalls 2-3 "10K" Temperatursensoren sowie allenfalls ein 
kleines Oled oder so. Der MCU soll zum einen die Lüfter regeln und die 
Tachosignale auswerten.
#6537503
Lesenswert?

Schau Dir mal das hier an:

https://www.microchip.com/wwwproducts/en/EMC2305
https://ww1.microchip.com/downloads/en/DeviceDoc/2305.pdf

Ist genau das, was Du brauchst. Für 7 Lüfter brauchst Du das eben 
zweimal.
Das klemmst Du dann per I2C über einen MCP2221A an einen internen 
USB-Header, und das wars dann.

Hier gibts auch ein Demoboard mit Schaltplänen etc., was noch 
Temperatursensoren ansteuern kann.

https://www.microchip.com/DevelopmentTools/ProductDetails/PartNO/ADM00879

fchk
Gast #6537834
Lesenswert?

Johnny S. schrieb:
> Daher will ich ein kleines Board bauen mit einem MCU drauf, einem
> Sata-Stromanschluss und dann dort bis zu 7 Lüfter anschliessen können,
> sowie allenfalls 2-3 "10K" Temperatursensoren sowie allenfalls ein
> kleines Oled oder so. Der MCU soll zum einen die Lüfter regeln und die
> Tachosignale auswerten.

Wenn ich Deine Eingangsfrage richtig deute, hast Du noch nicht mit STM32 
gearbeitet. Dieser µC ist zwar völlig unterfordert aber für Deine 
Anforderungen von der Hardware-Seite gut gerüstet.
Stelle Dich darauf ein, daß es ein Stück Arbeit sein wird, Hard- und 
Software fertigzustellen. Als Basis würde ich - wie gesagt - ein 
Nucleo-Board empfehlen, wenn es Deinen esthetischen Ansprüchen genügt 
;-)
https://de.farnell.com/stmicroelectronics/nucleo-g431kb/entwicklungsboard-32bit-arm-cortex/dp/3132398?st=nucleo
https://de.farnell.com/stmicroelectronics/nucleo-g431rb/entwicklungsboard-32bit-arm-cortex/dp/3132423?st=nucleo

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