当前位置:网站首页>TLE5012b+STM32F103C8T6(bluepill)读取角度数据
TLE5012b+STM32F103C8T6(bluepill)读取角度数据
2022-07-29 05:23:00 【BobBobBao】
1. 背景
在调试simpleFOC程序时,需要用到磁编码器,TLE5012B磁编码器价格较低,满足项目要求。TLE5012B有两种通信方式:SPI和ABI接口模式。总结一下使用TLE5012B过程中的一些问题
2. 硬件连接
MCU采用:STM32F103C8T6(bluepill)最小系统板。
传感器是网上购买的TLE5012B模块+径向磁铁。
BLDC电机:X2212-13 KV:980
USB转串口:CH340模块
2.1 SPI接线方式
由于TLE5012B采用的是SSC三线通信方式,可以兼容SPI的四线通信方式,所以使用时需要做一点调整,即MISO、MOSI同时接到DATA(4)引脚。需要在程序中控制MOSI读写使能来控制读写,而不是SPI的全双工模式。

具体连线方式:
PIN1(VDD)—> 3.3V
PIN2(GND)—> GND
PIN3(IFA)—> ×
PIN4(IFB)—> ×
PIN5(IFC)—> ×
PIN6(R2-CSQ)—> PA4
PIN7(R1-SCK)—> PA5
PIN8(R3-DATA)—> PA6
芯片pin4或者电阻R3另外一段引出线 —> PA7
另外一种可行接线方式
PIN1(VDD)—> 3.3V
PIN2(GND)—> GND
PIN3(IFA)—> ×
PIN4(IFB)—> ×
PIN5(IFC)—> ×
PIN6(R2-CSQ)—> PA4
PIN7(R1-SCK)—> PA5
芯片pin4或者电阻R3另外一段引出线 —> PA6/PA7短接
(测试过PIN8(R3-DATA)—> PA6/PA7短接,数据不对)
2.1.2 嵌入式程序
直接用SimpleFOC移植STM32(三)—— 角度读取里面提供的程序:STM32ReadTLE5012B_spi1。也可以直接到这个博主提供的网盘下载:
链接:https://pan.baidu.com/s/1ueR9a9_uL-Zce_CKTwhawQ
提取码:9qls
2.1.3 测试结果
用串口调试助手查看数据,转动电机,可以看到数据在不断变化,转一周数据变化360°,绝对位置方式,0°过了直接是360°
示波器测量PA4,5,6,7,可以看到间隔一段时间采集一次数据,由于示波器最小只能调到2ns,无法直接捕捉到SPI波形。
2.2 ABI接线方式
STM32F103系列MCU的定时器提供了独立的Encoder模式,除了两个基础定时器(TIM6/7)没有这个功能,其它的高级定时器(TIM1/8),基础定时器(TIM2/3/4/5)都有这个功能,这里用TIM4的Encoder功能,引脚使用:PB6(TIM4_1),PB7(TIM4_2)
可以在STM32的数据手册中看到定时器框图中:1-时钟源;2-控制器;3-时基单元;4-输入捕获。其中2-控制器部分包括触发控制器、从模式控制器以及我们这里用到的编码器接口。编码器接口是把输入通道TIMx-CH1/TIMx-CH2输入的信号,经过“输入滤波器和边沿检测器”后(TI1FP1/TI2FP2),把脉冲信号传递给控制器的“编码器接口”。具体可以参考:STM32之通用定时器编码器模式
具体连线方式:
PIN1(VDD)—> 3.3V
PIN2(GND)—> GND
PIN3(IFA)—> PB6/TIM4_1
PIN4(IFB)—> PB7/TIM4_2
PIN5(IFC)—> PB5/中断模式
PIN6(R2-CSQ)—> ×
PIN7(R1-SCK)—> ×
PIN8(R3-DATA)—> ×
2.2.2 ABI嵌入式程序
直接用SimpleFOC移植STM32(三)—— 角度读取里面提供的程序:STM32ReadTLE5012B_ABZ。也可以直接到这个博主提供的网盘下载:
链接:https://pan.baidu.com/s/1ueR9a9_uL-Zce_CKTwhawQ
提取码:9qls
2.2.3 ABI测试结果
电机旋转一圈,I发出一个脉冲,MCU捕获I信号后进入中断,把当前的脉冲计数发送出来。这只是最简程序。读取了脉冲计数值,就可以知道转过的角度值了。再配合其它TIM计时,计算固定时间内的角度值,或者固定角度内的时间,就可以计算速度了。
嵌入式程序
- SimpleFOC移植STM32(三)—— 角度读取中的程序是最简代码程序,对于理解硬件和程序,测试硬件问题很有帮助
- STM32F103RCTx-TLE5012B-Magnetic-Angle-Sensor
,这个github仓库是把官方提供的Arduino库移植到了STM32下,写的比较规范,函数也很多,可以直接调用。 - ODrive踩坑(二)3508电机和TLE5012B磁编码器参数配置、校准、位置闭环模式转动电机(TLE5012B-E1000)
- ODrive实例 #1 电机配置实例(4250-520KV + TLE5012B-E1000)
边栏推荐
- 智慧能源管理系统解决方案
- 华为云14天鸿蒙设备开发-Day1环境搭建
- Reading papers on false news detection (I): fake news detection using semi supervised graph revolutionary network
- 迁移学习—Geodesic Flow Kernel for Unsupervised Domain Adaptation
- Jianzhi core taocloud full flash SDS helps build high-performance cloud services
- Design and implementation of QT learning notes data management system
- QT学习笔记-Qt Model/View
- tensorflow中tf.get_variable()函数详解
- 京微齐力:基于HMEP060的心率血氧模块开发(1:FPGA发送多位指令)
- ML15-神经网络(1)
猜你喜欢
随机推荐
迁移学习—Geodesic Flow Kernel for Unsupervised Domain Adaptation
低成本2.4GHz 无线收发芯片--Ci24R1
tensorflow中tf.get_variable()函数详解
ML6自学笔记
Change! Change! Change!
智能货架安全监测系统
Hal library learning notes - 8 use of serial communication
基于AD9850的多功能信号发生器
基于FPGA:多目标运动检测(手把手教学①)
Hal library learning notes-13 application of I2C and SPI
Dust and noise monitoring system
Transformer review + understanding
HR面必问问题——如何与HR斗志斗勇(收集于FPGA探索者)
2、 Multi concurrent interface pressure test
QT学习笔记-QtSQL
STM32FF030 替代国产单片机——DP32G030
Wechat applet source code acquisition (download with tools)
零基础学FPGA(五):时序逻辑电路设计之计数器(附有呼吸灯实验、简单组合逻辑设计介绍)
新能源充电桩后台管理系统平台
迁移学习笔记——Adapting Component Analysis








