Uriah 发表于 2025-11-14 07:21

SPI高速模式下偶尔读到的数据像漂移了一位

SPI 拉到高频后,偶尔会出现数据整体像错了一位,看起来像时钟和数据没踩准。查过时钟相位设置,也尝试调慢一点,但问题还会偶尔冒出来,概率不高但很烦。

Clyde011 发表于 2025-11-14 07:23

换一颗从设备看看能不能排除器件差异。

公羊子丹 发表于 2025-11-14 07:24

我遇到过这是因为线太长,导致采样沿被拖慢。

周半梅 发表于 2025-11-14 07:25

你试试反相 CPHA 或 CPOL,某些器件特别挑边沿。

帛灿灿 发表于 2025-11-14 07:26

高速下布线长度差别很明显,你看下是不是走线不对称。

童雨竹 发表于 2025-11-14 07:27

可以先降到中频段测试,看问题缩小不。

万图 发表于 2025-11-14 07:28

抖动可能来自主时钟,你的 PLL 设置也检查下。

Wordsworth 发表于 2025-11-14 07:29

我曾经因为使用推挽模式导致过冲太大,换成弱驱动就好了。

Bblythe 发表于 2025-11-14 07:30

用示波器量一下数据和时钟的相对位置会很直观。

Pulitzer 发表于 2025-11-14 07:31

有时候从 DMA 读会比轮询稳定,你可以试试。

Uriah 发表于 2025-11-14 07:32

外设的预取缓冲最好关掉一次测试。

dukedz 发表于 2025-11-14 09:15

spi 高速的时候
io 驱动强度有设置高一些吗?要高一些才行
线路有多长?要短一些才行
spi 高速错位的原因:https://blog.d-l.io/spi-delay-compensation-cn

sesefadou 发表于 2025-11-14 20:22

SPI 配置是否完全匹配            

fengm 发表于 2025-11-16 20:39

时序裕量不足            

jackcat 发表于 2025-11-17 13:08

高频下未优化的 PCB 布局会引入信号反射和振铃,破坏数据稳定性

nomomy 发表于 2025-11-17 13:52

对于CPHA=0:通常数据在时钟的第一个边沿稳定,第二个边沿采样;
对于CPHA=1:数据在时钟的第一个边沿开始变化,在第二个边沿采样。

wangdezhi 发表于 2025-11-17 15:03

长走线、未匹配终端电阻或未加缓冲芯片,可能引发时钟信号畸变,造成数据错位。

dspmana 发表于 2025-11-17 15:39

时钟相位和极性配置不匹配            

i1mcu 发表于 2025-11-17 16:56

MISO 信号抖动            

nomomy 发表于 2025-11-17 18:27

SPI的时钟极性和相位决定了数据采样的边沿。
页: [1] 2 3
查看完整版本: SPI高速模式下偶尔读到的数据像漂移了一位