Hallo zusammen, ich habe das folgende Problem, dass der stm32 µc nur ein PWM Signal von 3.3 V erzeugen kann. Jedoch brauche ich ein PWM Signal von 5 V? haben die Experten hier vllt Vorschläge ? Grüße
Pegelwandler oder: Viele Ausgänge des STM32 sind 5V tolerant. Du musst nachschauen, welche das für Deinen Prozessor sind. Wenn Du Pullup Widerstände gegen 5 Volt an die Ausgänge schaltest und die Ausgänge des PWM auf open drain schaltest kannst Du damit 5 Volt PWM Signale erzeugen. Das habe ich mit STM32f411 mal gemacht und das funktioniert.
Martin B. schrieb im Beitrag #5797340 > Wenn Du Pullup Widerstände gegen 5 Volt an die Ausgänge schaltest und > die Ausgänge des PWM auf open drain schaltest kannst Du damit 5 Volt PWM > Signale erzeugen. Das habe ich mit STM32f411 mal gemacht und das > funktioniert. kann ich bestätigen
Schüler schrieb: > kann ich bestätigen Ich ebenfalls. Brauchte es zur Ansteuerung von SK6812mini LED's.
Holm T. schrieb: > Martin was willst Du eigentlich mit dem PWM Signal machen? Sorry für die späte Antwort. die Duty Cycle von Signal soll vom anderen Steuergerät gemessen. Aber vllt kann das Steuergerät die Duty Cycle von 3.3 V PWM signal problemlos messen. Gruß
Johnny B. schrieb: > SK6812mini Martin B. schrieb: > Viele Ausgänge des STM32 sind 5V tolerant. Du musst nachschauen, welche das für Deinen Prozessor sind. in Stmcubemx konnte ich es leider nicht finden, wo man die Pins Einstellung von 3.3V auf 5 V konfigurieren kann. > Wenn Du Pullup Widerstände gegen 5 Volt an die Ausgänge schaltest und > die Ausgänge des PWM auf open drain schaltest kannst Du damit 5 Volt PWM > Signale erzeugen. Das habe ich mit STM32f411 mal gemacht und das > funktioniert meinst wie im Bild aber mit Transistor statt push button
Martin schrieb: > in Stmcubemx konnte ich es leider nicht finden, wo man die Pins > Einstellung von 3.3V auf 5 V konfigurieren kann. Ob die GPIOs 5V tolerant ist steht im Datenblatt des Prozessor (pintout) CubeMX sagt Dir das nicht. > meinst wie im Bild aber mit Transistor statt push button Im Prinzip ja. Der Transistor ist in dem chip. Den Pullup musst Du extern anschalten. Nachdem Du die PWM mit CubeMX konfigurierst musst Du noch 2 Dinge tun: 1) output auf open Drain schalten und interne Pullups abschalten. Das geht am besten mit direkter Programmierung des Port Registers oder via LL. zB Port A1 LL_GPIO_SetPinOutputType(GPIOA,LL_GPIO_PIN_1,LL_GPIO_OUTPUT_OPENDRAIN); LL_GPIO_SetPinPull(GPIOA, LL_GPIO_PIN_1, LL_GPIO_PULL_NO); 2) die PWM starten, (aber das musst Du ohnehin ja selber tun.)
Martin B. schrieb: > Das > geht am besten mit direkter Programmierung des Port Registers oder via > LL. zB Port A1 > LL_GPIO_SetPinOutputType(GPIOA,LL_GPIO_PIN_1,LL_GPIO_OUTPUT_OPENDRAIN); > LL_GPIO_SetPinPull(GPIOA, LL_GPIO_PIN_1, LL_GPIO_PULL_NO); Unnötig! Das kann man via CubeMX in der Timer-Konfiguration unter GPIO-Settings einstellen.
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.