Electronic – STM32 SDIO works only while probing clock signal

sdiostm32

I have a custom board with an STM32F407VGT6 and an SD card slot. I noticed that I can only access the SD card if I have a scope probe attached to the clock signal. Holding a scalpel blade between my fingers and touching the tip to the clock pad works as well.

The data signals have 33k pullups, while the clock signal is connected straight to the CPU. I did not design the board (and cannot show schematics/layout, unfortunately, but I'm happy to answer questions for further details). But I looked around and other SDIO examples don't have anything on the clock line either.

What would be the best way to fix this issue? Do I have to add capacitance?

Scope shot of the clock signal

Best Answer

Reducing the clock signal pin's drive strength to GPIO_SPEED_FREQ_LOW as per the suggestion from @mkeith dramatically improved the signal:

Scope shot of reduced drive strength

(nevermind the probe compensation being a little off, tweaked it after the fact)

This allowed me to change the clock divider for the SDIO peripheral to 8, improving the performance of the card. Before changing the drive strength, I had it at 24 to get anything working. And most importantly: I can now access the SD card without probing the clock signal ;)