Ist es möglich, 16 gleichzeitige PWM-Ausgänge an einem 64-poligen STM32F4-Gerät zu haben?

Aus dem Datenblatt STM32F405xx/STM32F407xx habe ich gelesen, dass (mindestens) TIM2, TIM3, TIM4 und TIM5 Ausgangsvergleichseinheiten haben, die so konfiguriert werden können, dass sie PWM-Signale auf jeweils 4 Kanälen erzeugen. Wenn man die Timer so konfiguriert:

  • TIM2: PA15/PB3/PB10/PB11
  • TIM3: PC6/PC7/PC8/PC9
  • TIM4: PB6/PB7/PB8/PB9
  • TIM5: PA0/PA1/PA2/PA3

Man würde sechzehn gleichzeitige PWM-Ausgänge erreichen, ist das richtig? Gibt es etwas, das ich übersehen habe? Gibt es einen Grund, warum dies nicht möglich oder nicht ratsam ist?

Gibt es nicht noch mehr, da Timer 1 und Timer 8 auch zur Erzeugung von PWM-Signalen verwendet werden können?

Antworten (2)

Suchen Sie nach fehlenden Stiften

Das sieht so aus, als sollte es genau so funktionieren, wie es im Datenblatt beschrieben ist. Die Hauptsache, auf die Sie achten sollten, sind fehlende Stifte bei Paketen mit niedrigerer Stiftzahl. in diesem Fall legte ST eine volle Anzahl von 16 Pins auf die Ports AC und fügte einfach neue Ports (D und E) für die 100-Pin-Version hinzu. Glücklicherweise befindet sich keiner Ihrer erforderlichen Pins auf den Ports D oder E.

Suchen Sie nach überbewerteten Ressourcen

Die andere Sache, auf die Sie achten sollten, sind Designs, die Muxes verwenden, um Hardware gemeinsam zu nutzen. Bei einigen Mikros mit gleichwertigen Marketingspezifikationen werden möglicherweise nur vier Ausgangsvergleichseinheiten zwischen jedem Timer gemuxt. Dies würde Sie daran hindern, alle Funktionen auf einmal zu verwenden, aber es sieht so aus, als ob dieser Controller eine erstaunlich große Menge an Silizium für Timer hat, und es scheint, dass Sie bereit sind, loszulegen.

Überprüfen Sie, ob dies wirklich notwendig ist

Braucht man wirklich 84 MHz PWM Takte?

Allerdings klingen 16 PWM-Ausgänge für die meisten Hochgeschwindigkeitsanwendungen, die mir einfallen, wie Motorsteuerung, Schaltnetzteile und Leistungsfaktorkorrektur, nach einer Menge. Wenn Sie eines dieser Dinge tatsächlich auf 16 Kanälen ausführen, besteht der Hauptzweck Ihres Produkts wahrscheinlich darin, diese PWM auszuführen, und es ist vollkommen akzeptabel und normal, diese Hardware für diesen Zweck zu verwenden.

Oder können Sie es mit weniger Hardware und etwas Software tun?

16 Kanäle klingen jedoch eher so, als würden Sie eine Reihe von LEDs dimmen. Wenn Sie nur LEDs dimmen, können Sie Ihre PWM mit Frequenzen von bis zu 100 Hz oder so betreiben, und es gibt wenig Grund, all diese Hardware für eine so einfache Aufgabe zu verwenden. Verwenden Sie einen Timer und einige einfache (schnelle) Arithmetik in seiner ISR, um die PWM für so viele Kanäle zu steuern, wie Sie möchten, auf gewöhnlichen GPIO-Pins.

ST hat viel Geld in die Hand genommen, um diesen Chip mit beeindruckendem Hardware-Taktungs-Silizium auszustatten. Wenn Ihr Design wahrscheinlich zukünftige Iterationen durchlaufen wird, sollten Sie überlegen, ob Sie diese Hardware wirklich für etwas so Einfaches wie das Leuchten einer LED verwenden möchten. Sie würden Ihre einzigen 32-Bit-Timer verwenden, 4 von 6 Timern mit Abwärts- und Aufwärts-/Abwärtszählfunktion, 4 von 8 Timern mit DMA-Anforderungsgenerierungsfunktion und 8 von 18 Erfassungs-/Vergleichskanälen. Wenn Sie wahrscheinlich Änderungen vornehmen oder Funktionen hinzufügen, die diese Hardware später benötigen, macht es keinen Sinn, sie für die LED-Modulation zu verwenden.

Wie ich bereits sagte, wenn PWM das ist, was Sie tun, dann verwenden Sie die Hardware!

Es ist reine Neugier meinerseits, da mir dieses Teil mit "8 PWM" beschrieben wurde. Ich fand das nicht richtig...

Seite 30: Der STM32F40x enthält 4 Allzweck-Timer mit vollem Funktionsumfang: TIM2, TIM5, TIM3 und TIM4. Die TIM2- und TIM5-Timer basieren auf einem 32-Bit-Aufwärts-/Abwärtszähler mit automatischem Neuladen und einem 16-Bit-Prescaler. Die TIM3- und TIM4-Timer basieren auf einem 16-Bit-Auto-Reload-Up/Downcounter und einem 16-Bit-Prescaler. Sie verfügen alle über 4 unabhängige Kanäle für Eingangserfassung/Ausgangsvergleich, PWM- oder Ein-Puls-Modus-Ausgang. Dies ergibt bis zu 16 Eingangserfassung/Ausgangsvergleich/PWMs bei den größten Paketen

Es sagt nicht aus, um welche Pakete es sich handelt, aber wahrscheinlich sind es 144- und 176-Pin-Geräte, vielleicht 100. Sie müssten diese Pin-Ports überprüfen und sehen, ob sie vorhanden sind, einschließlich der Ausgangsvergleichs-E / A-Funktion.

Gemäß diesem Absatz kann jeder Timer mit 4 Ausgangsvergleichen verbunden werden. Der Ausgangsvergleich stellt grundsätzlich das Tastverhältnis und der Timer die Frequenz ein. Am Ende können Sie also 4 Gruppen mit einer festgelegten Frequenz haben, aber jede mit einem individuellen Arbeitszyklus.

Ich weiß nicht, wie kritisch die PWM-Genauigkeit ist, oder Sie versuchen, eine Art kontinuierliche Kontrolle zu erhalten, Sie könnten auch Folgendes versuchen: * Software-PWM, manuelle Einstellung der Ausgangsports. Benötigt einen Timer und mehr Prozessorzeit. * PWM-Treiber, im Grunde als PWM-Treiber missbrauchte LED-Treiber. PCA9634 zum Beispiel hat eine feste Frequenz (97 kHz), aber mit einem individuellen Arbeitszyklus. Es gibt auch 16-Kanal-Versionen. TI stellt auch eine Menge LED-Treiber her, aber die meisten davon haben Konstantstromausgänge, mit denen ich es irgendwie vermeide, mit ihnen zu kommunizieren.

Ich würde nicht einsehen, warum dies nicht ratsam ist. Wenn der Chip es kann, mach weiter. Was ich in Betracht ziehen würde, ist, ob Sie die gewünschte Arbeitszyklusgenauigkeit bei der eingestellten Frequenz erzielen können. Wenn Sie beispielsweise eine 10-Bit-Tastverhältnisgenauigkeit (wie 0-100 % in 0-1023 eingestellt) und eine 100-kHz-Ausgabe benötigen, benötigen Sie im Grunde einen Referenztakt von 2 ^ 10 * 100 k = 102,4 MHz.

PWM ist also nicht gleich PWM, um genauer zu sein, ob der Chip Ihren Anforderungen entspricht. Vielleicht können Sie uns mehr über die erforderliche Geschwindigkeit und Genauigkeit erzählen?

Ich habe denselben Satz im Datenblatt gelesen, und es scheint, als ob einige der Ausgangsvergleichskanäle in dem kleinen Paket fehlen, es sollte irgendwo so stehen, und soweit ich sehen kann, tut es das nicht ...
Siehe Tabelle 6 auf Seite 44ff.