打印
[应用相关]

STM32 SPI读取MLX90363

[复制链接]
527|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
drer|  楼主 | 2021-9-4 11:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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的。


使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

61

主题

3316

帖子

4

粉丝