前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >调试又踩了个坑,SPI从机没反应

调试又踩了个坑,SPI从机没反应

作者头像
用户1605515
发布2021-08-25 11:07:27
1.5K0
发布2021-08-25 11:07:27
举报
文章被收录于专栏:嵌入式程序猿嵌入式程序猿

摘要

本篇笔记主要记录在调试Allegro microsystem 公司生产的A1333 高速,低延迟,带有诊断和ASIL D 认证的无接触式的0~360°的角度位置传感器IC时遇到的一些问题。

A1333简介

A1333可以无接触测量0~360°角度,符合ISO262的功能安全认证ASIL D等级。带有自诊断功能,是一种霍尔效应的SoC,包含三部分,CVH(Circular Vertical Hall) 前端,数字信号处理部分,和电机换向和编码器输出,而且片上还有EEPROM,可以用来存储参数,因为符合ASIL D等级认证,所以是汽车应用的理想选择,广泛用于,电动转向,油门控制等系统,有24脚eTSSOP 封装的和14脚封装的,24脚的是双轨的,14脚封装的是单轨的。

系统框图

从系统框图也可以看出,总体包含我们前面说的由三部分组成,CVH前端,数字信号处理和电机换向输出UVW,/编码器输出。

典型应用框图

一般我们都是用一个单片机来配合控制A1333, A1333有SPI 接口和ABI接口,这次我们以SPI接口为例子。

理论上任何一款带SPI的单片机都可以完成和A1333的通信,但如果是汽车应用,要选用带有ASIL 认证的单片机。我们以MPC5744p 这款带有ASIL D认证的单片机为例子。采用4线SPI 接口和 A1333通信,使用SPI 的模式3 CPHA, CPOL 为1,1 配置。

引脚介绍

因为我们这次是以SPI通信来和A1333交换数据,所以SPI 通信的一些参数要注意下

输入输出时序图

SPI通信帧格式

A1333有三种SPI通信格式,有三种分别是16位,17位,和20位,

其实我们的驱动软件就是要支持几种格式,完成通信,而读写逻辑也在书册中给出了。

写逻辑

总结起来就是,写的时候包含一位低,一位读写控制位,写为高,读 为低,6位寄存器地址位,8位数据,如果是16位帧格式就完了, 如果是20位帧格式,末尾还需加上4位CRC校验。要实现一个16位数据的写操作,需要发送两次写逻辑来完成。

至于代码的实现,可以采用SPI查询模式,也可以采用中断或者DMA方式,这个都可以,一定要注意写一个16位的数据要通过两次写操作才能完成,

读逻辑

读操作总结起来就是一句话,按照格式同样的内容发两遍这样第二遍才能获取结果。

代码实现上也是这样操作,包含一位低,一位读写控制位,写为高,读 为低,6位寄存器地址位,8位数据。按照书册要求,结合SDK可以很容易的完成驱动的开发和使用,重点在调试。

驱动开发

本次我们使用SDK,结合上位机初始化配置工具完成驱动的生成。其中SPI的配置如下

在根据自己的实际应用硬件配置相应管脚就可以生成代码了,生成的工程是空的,我们需要调用生成的驱动函数来完成对A1333的驱动,其实就是完成读写函数,然后在主程序中通过状态机去调用实现不同地址,不同寄存器的操作,包含角度的读取,零点的校准,等操作。

测试

按照手册要求完成了驱动开发,可是通讯的时候,A1333没有反应,用示波器测到的波形如下

发送的数据和时钟波形都是正确的,可是A1333从机没有反应,读取到的值全是0, 是有问题的,应检查软件代码和硬件排查问题。

软件上首先排查驱动有没有问题,经过多次手册阅读和软件排查发现配置和驱动都没有问题,最后就排查硬件,因为是从硬件工程师手里拿到的板子,一开始没有排查硬件,后来和硬件工程师一块排查,发现TEST脚没有接地,而是被拉到了电源柜VCC上,这样导致A1333工作不正常,TEST脚是厂家测试用的,一般正式用要拉地。后将TEST脚拉地,A1333有了数据回应。

经过排查是因为Test 管脚没有接地,直接接到了Vcc上, Test 应该接地按照手册要求,经硬件工程师更改电路,将Test飞线接地,工作正常

EEPROM解锁

A1333含有EEPROM可以用来存储参数,但是在操作前需要解锁,而解锁是需要特殊密码指令的,

就是连续发送这5条写指令,然后读取0x3C寄存器,按照解锁指令和时序发送完指令后,可以读取0x3C地址,如果 寄存器的最低位 bit0 如果返回为1,表明解锁成功。 驱动测试波形如下

解锁成功后,就可以进行EEPROM的操作,更改参数,例如零点的校准角度,等等,这里就不在赘述。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-08-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 嵌入式程序猿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • A1333简介
    • 系统框图
    • 典型应用框图
    • 引脚介绍
      • 输入输出时序图
      • SPI通信帧格式
        • 写逻辑
          • 读逻辑
          • 驱动开发
          • 测试
          • EEPROM解锁
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档