Verhindert einen potenzialfreien Ausgang zum PWM-Eingang beim MCU-Reset

Ich habe einen DC-Motortreiber mit einer MCU verdrahtet, genau wie in der folgenden vereinfachten Abbildung. Einfach.

Geben Sie hier die Bildbeschreibung ein

Die PWM-Ausgangsfrequenz beträgt 2 kHz und hat eine 3,3-V-Logik. Es funktioniert sehr gut, wie ich erwartet hatte. Ich habe jedoch ein kleines Problem damit: Die MCU hat beim Zurücksetzen einen schwebenden Ausgang, sodass sich der Gleichstrommotor so schnell dreht, bis die MCU den PWM-Ausgangsstift initialisiert. Ich habe ein paar Fragen zu diesem Problem.

  1. Eine Lösung, die ich mir vorstellen kann, besteht darin, einen Pulldown-Widerstand zwischen der PWM-Leitung und GND hinzuzufügen. Ist das eine richtige Lösung, oder gibt es andere Möglichkeiten, den schwebenden Ausgang beim Zurücksetzen zu verhindern?

  2. Wenn ja, was ist der bevorzugte Widerstand für den Pulldown-Widerstand?

Vielen Dank im Voraus.

BEARBEITEN: Die Host-MCU ist STM32F446RET und der Motortreiber-IC ist MAX14871 . Der fragliche PWM-Ausgang ist PA8.

Können Sie Ihre Frage bearbeiten, um die Komponenten anzugeben, und ich kann meine Antwort in etwas Sinnvolleres bearbeiten. Danke :-)
@TonyM Sicher. Ich habe es hinzugefügt. Danke für die Beantwortung der Frage :)
@immibis, das stimmt oft wie du sagst. Der akzeptable Wertebereich wird jedoch immer für die Anwendung berechnet (siehe meine Antwort unten). Sie geben niemals einfach einen "wahrscheinlichen" Wert ein, ohne dass eine Überprüfung / Berechnung des Datenblatts zur Überprüfung erforderlich ist. Rechts?

Antworten (2)

Wie Sie richtig erkannt haben, befindet sich Ihr I/O-Pin während des Einschaltens, MCU-Resets und Ausführens und Beendens Ihrer Konfigurationssoftware in seinem Anfangszustand.

Der tatsächliche Anfangszustand hängt von Ihrer speziellen MCU ab. Einige konfigurieren ihre Pins als hochohmige Eingänge, andere (MCS-51) setzen sie als Eingänge mit Pull-up-Widerständen.

Ihr STM32F446RET hat einen Eingangsleckstrom von +/-3 uA. Wenn es als Ausgang konfiguriert ist, kann es +/-25 mA liefern, obwohl es einige Bedingungen dafür gibt.

Der PWM-Pin des Motortreibers MAX14871 hat einen Eingangsleckstrom von +/-1 uA und erkennt 0,8 V oder weniger als logisch niedrig.

Ein Pulldown-Widerstand wird die Arbeit gut machen. Der Wert muss niedrig genug sein, um die Eingangsleckströme der MCU und des Treibers zu leiten, während ein Spannungsabfall über sich selbst entsteht, der klein genug ist, um vom Treiber als „Aus“ angesehen zu werden. Der Wert muss hoch genug sein, um die MCU nicht so stark zu belasten, dass sie die „Ein“-Spannung nicht an den Treiber liefern kann.

Aus R = V / I können Sie sehen, dass ein 25-K-Pulldown-Widerstand PWM bei 0,1 V belassen würde, wenn 4 uA durch ihn fließen. Sie können also 10 K verwenden und immer noch weniger als 330 uA aus dem MCU-Ausgang ziehen, wenn er hoch fährt.

Ja, ein Pulldown wäre sinnvoll. Ich würde mit 10k beginnen, aber Sie sollten in der Lage sein, den Datenblättern zu entnehmen, mit welchem ​​​​Eingangsstrom Sie rechnen müssen.