002_SPI通信调试页面中看到的返回值与逻辑分析仪解析出的不一致

002_SPI通信调试页面中看到的返回值与逻辑分析仪解析出的不一致

一、问题描述

  1. MCU与复杂驱动之间采用SPI通信,且由于驱动芯片的内部逻辑电路设计的原因通信为半双工的形式。
  2. SPI一个通信周期内传输九字节数据。在一个SPI的通信周期内,MCU通过SPI向复杂驱动芯片发送读命令(一字节) + 寄存器地址(三字节) + 五个空字节(0x00U)
  3. 复杂驱动芯片在接受到第一个空字节之后开始向MCU发送寄存器的值(四字节)
  4. SPI通信频率为700K,逻辑分析仪采样频率为20M
  5. 调试时,调试界面看到的SPI返回值(最后四个字节)和逻辑分析仪解析出的值不一样

二、原因分析

  1. 查阅该驱动芯片的手册发现,当该芯片收到第一个空字节20n后就会向MCU发送寄存器的值,不会等待到时钟跳变沿。
  2. 逻辑分析仪采样频率20M远大于SPI通信频率700K,正常情况下数据在时钟跳变沿变化,完全不会采集到错误值。
  3. 20M的采样频率对应50ns的采样周期,大于驱动芯片20ns的等待期,故导致逻辑分析仪采样不准确。

三、解决方法

增大逻辑分析仪的采样频率即可解决此问题。

  • 14
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值