真实面经题目 · 原创解析
SPI 的 CPOL 和 CPHA 怎么理解,配置错了会出现什么现象?
这题考同步时钟采样时序,回答要解释空闲电平和采样边沿,并能说出配置错误的具体波形和现象。
真实面经题目 · 原创解析
这题考同步时钟采样时序,回答要解释空闲电平和采样边沿,并能说出配置错误的具体波形和现象。
CPOL 表示时钟空闲时的电平,CPHA 表示数据在一个时钟周期里的哪个边沿被采样。两者组合成四种模式。可以这样讲:先看器件手册要求空闲时钟是低还是高,再看数据是在第一个有效边沿采样还是第二个有效边沿采样,主机和从机必须一致。配置错后,常见现象不是完全没波形,而是读到的 ID 不对、数据整体左移或右移一位、第一位丢失、偶发错误,低速时可能侥幸能读,高速或温度变化后失败。用逻辑分析仪时要同时看片选、时钟、输出数据稳定窗口和采样边沿,确认采样点落在数据稳定区中间。调试时不要只换模式碰运气,应该从数据手册的 timing diagram 推出模式。
时钟没有传输时停在低电平或高电平。这个空闲状态影响片选有效后第一个边沿是上升沿还是下降沿,也影响从设备状态机对传输开始的理解。
一个时钟周期通常有两个边沿,一个用来改变数据,一个用来采样数据。CPHA 选择第一个还是第二个有效边沿采样,必须保证采样时数据已经稳定。
如果采样边沿太早,可能读到上一位或未稳定数据;如果相位错一拍,整帧会左移或右移。很多时候命令能发出去但返回值异常,表现为 ID 错、CRC 错或偶发通信失败。
手册通常画出片选、时钟、输入输出数据相对边沿的建立和保持时间。根据图确定模式,再用逻辑分析仪验证,不要只在四种模式里随机试。
低速时数据稳定时间长,错误边沿可能仍落在稳定区附近;高速后建立保持裕量变小,错误更明显。
可以,但每次访问不同从设备前驱动要配置对应模式、频率和片选时序,不能假设总线全局只有一种模式。
先用示波器或逻辑分析仪确认电平、时序、速率和帧格式,再对照驱动日志、错误码、重试次数和协议状态机,区分硬件连接、配置参数、总线仲裁和软件缓冲问题。