cancel
Showing results for 
Search instead for 
Did you mean: 

PWM Output on PB0 and PA8 does not Reach 0V or 3.3V (STM32F429I-Discovery)

chachamaru
Associate III

Hello,

I am currently wor

king on connecting an MT9M001 camera module to the STM32F429I-Discovery board and displaying the captured image on a PC.
During this process, I am testing PWM output on the board, but I am experiencing an issue where the output voltage does not swing between 0 V and 3.3 V as expected.

Environment

  • Board: STM32F429I-Discovery

  • IDE / Firmware: STM32CubeIDE + HAL (STM32CubeF4 package)

  • Pin used: PB0 / TIM3_CH3 (Alternate Function, Push-Pull, no pull-up/down)

  • PWM: Generated with TIM3 (frequency and duty cycle shown in attached code/images)

  • Measurement: Oscilloscope (×10 probe, GND connected to board GND)

Issue

The PWM waveform output from PB0 shows the following problems:

  • The low level does not go down to 0 V

  • The high level does not reach 3.3 V

Before switching to PB0, I was using PA8 (TIM1_CH1), but I observed the same issue—
the voltage could not drop to 0 V.
I received advice that PA8 might be loaded by other on-board circuitry,
so I moved the PWM output to PB0 (TIM3_CH3).
However, the same reduced voltage swing occurs on PB0 as well.

If anyone knows possible causes or has experienced a similar issue,
I would appreciate any guidance.

TEK00016.PNG

22 REPLIES 22

@chachamaru wrote:

How can I get a clean 20–24 MHz PWM (XCLK) on this board?


You said in this post that you understood why not:


@chachamaru wrote:

 I now see that with a 100 MHz scope, only the 3rd harmonic of a 22 MHz square wave is fully visible and the higher harmonics are suppressed.
Therefore, the waveform I am seeing is consistent with the scope and probe limitations.


 

A complex system that works is invariably found to have evolved from a simple system that worked.
A complex system designed from scratch never works and cannot be patched up to make it work.

I'm sorry, I didn’t explain it well.

What I meant is this:

If the PWM (XCLK) were being generated correctly, then VSYNC and HSYNC should also be generated correctly by the MT9M001.
So my goal is not to see a perfect waveform on the oscilloscope, but to provide a clean and reliable clock signal into the camera.

Therefore, I want to know how to output a “clear enough” PWM for the microcontroller-to-camera connection, not necessarily a perfect oscilloscope waveform.

I suspect that VSYNC and HSYNC are not being generated because the PWM clock signal is not sufficient for the camera.