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 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> TLE5012B 硬件电路设计、4线SPI通信,驱动完美兼容4线SPI不用改MOSI开漏推挽输出 -> 正文阅读

[嵌入式]TLE5012B 硬件电路设计、4线SPI通信,驱动完美兼容4线SPI不用改MOSI开漏推挽输出


一、TLE5012B 简介


TLE5012B 是一种款高分辨率旋转位置传感器,用于在整个 360 度范围内进行角度测量。

它通过使用单片集成 巨磁阻 (iGMR) 元件,来测量正弦和余弦角分量,这些原始信号(正弦和余弦)在内部进行数字处理,以计算磁场(磁铁)的角度方向。

数据通信是通过与 SPI 兼容的 双向同步串行通信 (SSC) 完成的。传感器配置存储在寄存器中,可通过 SSC 接口访问。此外,TLE5012B 还提供其他四个接口:脉宽调制 (PWM) 、短 PWM (SPC) 、霍尔开关模式 (HSM) 和增量接口 (IIF)。这些接口可以与 SSC 并行或单独使用。
在这里插入图片描述


二、硬件参数


  • 15 位绝对角度位置传感器。
  • 适用于最高 10K RPM 转速的测量。
  • 在整个使用寿命和温度范围内,启用自动校准,最大1.0° 角度误差。
  • 高达 8 Mbit/s 的双向 SSC 接口。(实测跑到18MHz也能正常通信)
  • 接口:SSC、PWM、增量接口 (IIF)、霍尔开关模式 (HSM)、短 PWM 代码(SPC,基于 SAE J2716 中定义的 SENT 协议)
  • ESD > 4 kV (HBM)
  • 最常用的型号为 TLE5012B E1000,接口为 ABISSC。其他型号的区别只是输出接口不一样,但都支持SSC通信。
  • 基于 巨磁阻 原理,有别于AS5047使用的霍尔。

三、硬件设计、参考电路、SPI兼容思路


TLE5012B 支持的供电范围为 3.3~5.5V

个人建议使用使用 3.3V供电,通信引脚串电阻还可以用来兼容5V的MCU电平。

SPI兼容思路:

TLE5012B 接口使用 SSC,兼容 SPI,其实相当于一个半双工的SPI
看过他人的电路。一般是直接将 MCUMOSIMISO 并联一起,直接接 TLE5012的 DATA 引脚。
通过更改驱动,控制MOSI的输出类型为开漏或推挽。发送命令时设置MOSI为推挽输出,接收数据时设置MOSI为开漏,以实现正常通信。

存在问题:

上面的方法听着巧妙,但并不算完美。因为有的MCU或者模组,其不一定提供寄存器手册,其开发方式可能是由原厂团队维护的SDK,通过库的方式来调用接口,从而进行二次开发。而SDK的库中会不会预留设置GPIO输出类型的接口,要看开发团队的心情。如果没有,就基本宣布拜拜。

并且直接并联的方式,也容易在调试过程中,因代码不稳定造成GPIO损毁。

再者不方便移植,换个主机设备,很可能因为要改SPI驱动底层,而用不了。

让SSC完美兼容4线SPI的参考电路:

我摸索出个方式是,像下图那样串联电阻。通信方式与标准4线SPI完全一致,波形也基本一致,用不着额外更改SPI驱动,可以直接用原有的SPI驱动去读TLE5012B的数据。串两个电阻就能让TLE5012B有更多的设备兼容性,何乐而不为呢。

只不过MOSI发数据时,也能在MISO上看到波形。但因为SSC是个半双工的SPI,不需要同时发送和接收,对TLE5012B的读数据不会造成影响。
(使用下面的电路,配置SPI时要将MOSI的空闲电平配置为0,配置为1可能会对返回数据有影响。)
(实际波形 见 下面的逻辑分析仪读角度测试波形)

完全兼容4线SPI通信的参考电路:

在这里插入图片描述


四、SPI通信时序、读寄存器流程


TLE5012B 的 SPI 使用 模式1(CPOL=0,CPHA=1)来交换数据。

数据传输从 CSn 的下降沿开始,TLE5012B 在 SCL 的下降沿采样 MOSI 数据。 SPI 命令在帧结束(CSn 的上升沿)时执行。
在这里插入图片描述

读寄存器流程

磁极旋转角度 的流程在另一篇用户手册中。

读磁极旋转角度:SPI 先发送 0x8021,等待 t_{wr_delay} (最小130ns)后,读 4个字节。

读到的 4个字节中,前2个字节是磁极的角度,后2个自己是安全验证位,用来承载传感器错误信息和数据帧的校验。
(上述过程只读2个字节也可以,只不过因为缺少了安全字,可能会因SPI线路传输导致数据有误)

读磁极角速度 也是一样的:SPI 发送 0x8031,等待 t_{wr_delay} 后,读 6个字节。
在这里插入图片描述


五、逻辑分析仪波形、数据波动测试


测试的 MCU 使用 ESP32,以 4MHz-SPI 的速率通信。

(实测信号线串联220R电阻,SPI以18MHz的速率也能正常通信,远高于手册推荐的8MHz。)

源码暂未放出,待后续完善个人ESP32驱动库后一同开源。获取预览版可先评论区留下邮箱。

4线SPI 读磁极转子角度。(0x8021)

仅读了2个字节的寄存器值,没有读后面的安全字,可能会因SPI线路传输导致数据有误。
在这里插入图片描述

仅读了2个字节的寄存器值,没有读后面的安全字,可能会因SPI线路传输导致数据有误。
在这里插入图片描述

由上面两图可以看到,MOSIMISO串联电阻的电路,可以完美用标准4线SPI 驱动。

虽然在 MOSI发数据时,影响到了 MISO 的波形。但因为SSC是个半双工的SPI,不需要同时发送和接收,所以对TLE5012B的读数据不会造成影响。

(使用上面的电路,需配置SPI MOSI的空闲电平 为 0,配置为1可能会对返回的数据有影响。)

数据波动测试

磁极转子静止时的数据输出。波动不大,很稳定,波动基本在 ±2内。

输出的角度为旋转角度的绝对值,15Bit,0 ~ 32768,对应着 0~360°。用于运动控制的场合,不用像ABI每次上电都要归零点,使用很方便。
在这里插入图片描述


相关推荐链接


AS5047P磁编码器应用设计大全解:硬件电路设计、SPI通信时序、逻辑波形分析、注意事项

TLE5012B磁编码器原理,巨磁阻(GMR)磁编码器原理及优点,径向充磁磁铁的安装

各厂商磁编码器对比,AS5047、AS5048、AS5600、TLE5012、MA730

AMS磁编码器:AS5048与AS5047区别,伺服电机闭环系统位置反馈

ODrive踩坑(四)ODrive配置AS5047P-SPI绝对值磁编码器

ODrive踩坑(二)电机和编码器参数配置、校准、位置闭环模式转动电机(TLE5012B - ABI)


↓ 欢迎点赞收藏。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-08-21 15:38:02  更:2021-08-21 15:40:06 
 
开发: 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:40:19-

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