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)
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
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.
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.
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 ;)
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.
m.n. schrieb: > Für 7 Kanäle reichen 2 x Timer mit je 4 Eingängen. Ohne genauer drüber nachgedacht zu haben muss man aber ein Überlauf des Timers abfangen, funktioniert aber natürlich auch.
Beitrag #6537088 wurde von einem Moderator gelöscht.
Beitrag #6537123 wurde von einem Moderator gelöscht.
Beitrag #6537290 wurde von einem Moderator gelöscht.
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.
Lüftersteuerung hab ich mir auch mal gebaut, ich hatte damals unter anderem einen MAX31790 verwendet.
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.