一次SPI调试记录

本文为记录开发过程中一次SPI调试经历,如果你也恰好遇到类似的波形或log报错,可能需要考虑是不是这个原因。

为保证项目进度需对MCU及SOC SPI通信在无A板条件下提前调试。对MCU与8155 SPI飞线连接后无法通信。其中MCU设置为主模式,8155设置为从模式。对8155单独做主模式测试波形和通讯均正常。

1.现象:断开MCU与8155 SPI连接飞线,MCU端CLK/CS/MOSI 波形均正常;初步排除MCU端功能异常;

2.飞线连接8155 SPI 后,MCU 端CLK/CS 波形正常,MOSI波形异常,表现为在一个时钟周期内数据出现多次变化,波形如下。怀疑可能是由于MCU数据输出与8155数据输出接到一起引起通信电平异常。核对MCU MOSI其连接8155管脚描述,8155对应管脚从模式是为MISO,确定应交换DI/O管脚。(事后诸葛亮,开发时你去看高通的管脚描述,这种主从都可以做的IC,几乎很难确认数据线在特定主从模式下到底是IN/OUT,最保险的是找FAE确认或者有条件实际飞线调起来试试)这个波形后续在调试国产MCU时又出现了一次,有了这次经验,很快就确定了是IO配置导致。

3.当将SPI的DIO交换以后,示波器抓取波形正常。但从设备8155依然读不到数据,读取log显示报over range中断错误,且8155发送数据波形与模式设置有差异,延后半个周期。MCU(主)输出波形,模式为00,上升沿采样,下降沿输出。其模式设置与波形显示一致。

MCU输入(8155输出)波形,8155软件配置模式与主机MCU保持一致为00,但其波形却表现为上升沿输出,下降沿采样。怀疑8155存在SPI设置模式与实际波形不匹配的问题。

4.经与高通FAE电话沟通:其表示上述两个现象其他客户此前均有类似咨询案例。

1)关于无法读取数据:SPI主从通信前需要中断握手,或定义好字节长度,查询软件MCU发字节长度64bit,8155读取字节长度16bit。经验证,重新软件读取字节长度参数后,可以正常读取SPI数据;

2)关于8155发送数据时钟周期延后半个周期,高通反馈8155做从模式进行数据输出时内部会有移位机制,可通过配置相应寄存器关闭移位功能。

小结:针对通信类的问题,波形分析是硬件分析最简单、最有说服力的依据,只有波形正常了,才有可能通信正常。软硬件相互信任和理解很重要,不要相互推诿甩锅。没有问题是解不掉的。哈哈。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值