STM32 SPI读取MLX90363

MLX90363是一款三轴磁编码器,采用SPI总线与主控CPU通讯传输数据,通讯协议规定每条报文的最后一个字节为CRC校验字节。

参考melex官方的教程用STM32通过SPI方式完成MLX90363的驱动,采用全双工方式通讯,发现发送完读取角度报文后,返回得到的数据总是为Error Message, 并且通过对报文内容分析得到 具体错误内容为 Incorrect CRC,也就是说MLX90363收到的数据CRC校验不通过。

仔细检查了以下几项:

1.确保发送报文最后一个字节的CRC计算正确

2.确保设置的SPI参数正确

3.确保操作时序正确

确定了以上3点后,问题依然没有解决,后来通过用示波器观察发现板子的MOSI一直处于高电平,由于MLX90363外部有5V的上拉,因此怀疑是CPU主控的芯片引脚跟MLX90363没有接好,经过测试确实是这样。因此得出以下总结:

1.调SPI,I2C等通讯接口的时候,一定要配合示波器或者逻辑分析仪看物理波形,确保硬件正常。

2.以后对于SPI接口的芯片,如果芯片支持CRC的,当主控CPU收到错误CRC,首先应该怀疑硬件MOSI是否能发出正常电平,因为发出的电平都不正确,肯定会收到错误CRC的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值