IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 调试又踩了个坑,SPI从机没反应 -> 正文阅读

[嵌入式]调试又踩了个坑,SPI从机没反应

摘要

本篇笔记主要记录在调试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的操作,更改参数,例如零点的校准角度,等等,这里就不在赘述。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-08-21 15:38:02  更:2021-08-21 15:39:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 23:31:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码