ClarkLLOTP 发表于 2025-4-20 16:09

SPI与I2S共用引脚引发噪声

STM32H743配置SPI3与I2S2共用GPIO,音频播放时伴随高频嘶嘶声。单独使用任一外设正常,是否因IO复用器未彻底隔离信号路径?

回复就哭哭 发表于 2025-4-30 23:40

某些共用引脚默认具有上拉/下拉,而SPI/I2S在不同状态下对这些引脚的驱动电平不同;

公羊子丹 发表于 2025-5-26 07:23

是不是SPI和I2S切换的时候有残留配置没清掉?GPIO可能还保留上一次的模式。

周半梅 发表于 2025-5-26 07:25

我之前也遇到类似问题,最后是在切换外设前手动用GPIO_InitTypeDef重置了一遍管脚才解决的。

帛灿灿 发表于 2025-5-26 07:26

STM32 的复用引脚确实可能在切换时产生干扰,特别是高速IO,建议彻底禁用未用的外设。

童雨竹 发表于 2025-5-26 07:27

嘶嘶声听着像是时钟干扰,试试把SPI或I2S的引脚换一组专用的,不共用看还会不会出问题。

万图 发表于 2025-5-26 07:28

看起来像是复用冲突了,I2S 尤其对干扰敏感,可以先关 SPI 只测 I2S 看是不是纯净的。

Wordsworth 发表于 2025-5-26 07:29

共用引脚时,建议不要动态切换模式,特别是频率差距大的两个外设,很容易出毛病。

Bblythe 发表于 2025-5-26 07:30

会不会是DMA也没配置对?I2S播音频时,如果SPI还偶尔触发DMA会把FIFO扰乱。

Pulitzer 发表于 2025-5-26 07:31

音频出现嘶声,有可能是MCLK或WS脚也被别的外设干扰了,查查系统的全局时钟配置也有帮助。

Uriah 发表于 2025-5-26 07:32

我用H750也遇过类似的音频噪声,最后是关掉I-cache才正常,可能跟指令或数据干扰有关。

Clyde011 发表于 2025-5-26 07:32

建议你用逻辑分析仪抓一下共用IO的波形,能看到有没有残余波形或竞争条件。

zhouyong77 发表于 2025-5-26 07:52

应该是在发生引脚切换过程中导致的

daichaodai 发表于 2025-5-26 08:06

感觉像是切换噪声,按楼上的说法试试看。

onlycook 发表于 2025-5-26 11:21

可能存在GPIO复用冲突吧。

elephant00 发表于 2025-5-26 11:28

在切换外设时,通过__HAL_RCC_GPIOx_CLK_DISABLE()临时关闭未使用外设的GPIO时钟,减少信号泄漏。

flycamelaaa 发表于 2025-5-26 14:00

STM32H743的GPIO复用器在切换外设时可能未完全隔离信号路径,导致SPI3与I2S2的信号在共享引脚上产生冲突。

powerantone 发表于 2025-5-26 15:20

SPI3和I2S2可能用的不同时钟源,若时钟树配置不当,可能导致采样时钟抖动或相位偏移,引发音频噪声。

jcky001 发表于 2025-5-26 15:30

为音频Codec和数字部分使用独立LDO供电,并在PCB上将模拟地与数字地通过磁珠单点连接,减少数字噪声耦合。

stormwind123 发表于 2025-5-26 18:00

高速SPI通信可能通过电源或地线将噪声耦合至音频模拟电路,尤其当两者共享LDO或PCB布局未隔离时。
页: [1]
查看完整版本: SPI与I2S共用引脚引发噪声