SPI高速采样问题Debug:识别不到设备,不能正常读写

综述:SPI在跑高速时,由于走线和slave数据回传准备阶段存在delay,会导致controller read时序不达标。 可通过在SPI Controller端增加RXD Sample Delay的方式消除时序误差影响。

问题还原

现象:GPU SOC以48M读写Nor时无法probe到device;24M正常。

Debug

1.看device反馈ID值:

用逻辑分析仪查看probe指令发送后MISO的数值:

ID能正常反馈,但软件读到的ID值是错的。且后续CS不拉低,不能读写数据。

说明SPI Controller发送到device反馈没问题,Conroller回读时出现问题。

2.查看AC Timing(只能在device端测信号) (频率24M是因为CLK电平下不到0V,48M频率没被正确识别到)。红框中看出CLK上升沿采样时MISO 未完全进入hold time,时序不通过。

3.定位:SPI Controller 回读时,由于走线和slave数据回传准备阶段存在delay,导致controller read时序不达标。

4.解决方案:

翻看新思DesignWare DW_apb_ssi Databook手册,高速SPI运行时可通过调节RXD寄存器来实现延迟采样:

网上查看Intel文档也有相同方案:

调整RXD寄存器,增加1个时钟周期的delay,问题解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值