SimpleFOC移植STM32(三)—— 角度读取 (AS5600、AS5047P、TLE5012B、MA730、MT6701、ABZ)

SimpleFOC(六)—— PowerShield和AS5047P_as5047p测多极电机角度 ⑷、设置PID参数,不同电机不同电压的PID参数都可能不一样,根据实际情况设置。限制电压设置为2,值越小工作电流越小最大转速越小,设置过大容易烧坏芯片或者电机。代码中的传感器型号为AS5147,因为AS5147和AS5047P都是AMS公司的产品,SPI接口与内部寄存器设置完全相同,所以可以共用代码。板载三个BTN8982功率MOS管,最大电流55A,最大耐压40V,芯片自带电流检测和故障诊断功能IS,分别接在A2和A3引脚。AS5047P的工作电压和AS5600一样为3.3V-5V,本例中需接5V, 阅读详情
AI摘要

本文介绍了在STM32平台上通过I2C和SPI接口读取多种编码器(如AS5600、TLE5012B等)角度的方法,包含硬件连接、代码解析与下载验证步骤。代码支持多编码器同时读取,并提供不同接口的配置方式及速度对比。


 

SimpleFOC的教程比较多,做了一个总链接,欢迎点击阅读:SimpleFOC教程链接汇总
 

说明

本节比较简单,主要是演示I2C接口和SPI接口读取编码器角度。
为增加大家对编码器的理解,后面介绍常用编码器并提供原理图和源代码。
 
 

一、硬件介绍

  本节实验适合运行在SimpleMotor和STM32最小系统板上(Bluepill)。
在这里插入图片描述
20230323更新,增加了MT6701编码器说明

1.1、硬件准备

1.1.1、SimpleMotor方案

序号名称数量
1SimpleMotor1
2带编码器云台电机2
3USB转串口1
412V电源1

两个编码器可以是两个AS5600,也可以是两个TLE5012B,或者一个是AS5600,一个是TLE5012B。

在这里插入图片描述

1.1.2、STM32方案

序号名称数量
1STM32核心板1
2带编码器云台电机2
3USB转串口1
45V电源1
5杜邦线若干

两个编码器可以是两个AS5600,也可以是两个TLE5012B,或者一个是AS5600,一个是TLE5012B。

在这里插入图片描述

 

1.2、硬件连接

1.2.1、原理图

在这里插入图片描述
在这里插入图片描述

1.2.2、接线

在这里插入图片描述
或者
在这里插入图片描述
 

二、代码编译下载

  本节代码只演示AS5600和TLE5012B两种编码器,其它编码器请自行移植代码。

2.1、代码解析

  1、主循环读角度值,每隔1秒打印一次。可以同时读两个编码器,只需读一个的屏蔽另一个。
  如果需要打印速度,可以把屏蔽打开。在这里插入图片描述
  2、“MyProject.h”文件中选择编码器型号,1表示使用,0表示不用。只用一个编码器的,可以把不用的都设置为0。
在这里插入图片描述
  3、上电初始化,根据“MyProject.h”中的宏定义编译。
在这里插入图片描述
  4、需要说明的是I2C读编码器的代码,本节代码采用硬件I2C,支持I2C1和I2C2。STM32的硬件I2C代码网上有很多参考,但是写的比较乱,移植了几个都不能用,在ST官网上找了一个例程,因年代久远,与现在常用的库函数风格不同,都是直接操作寄存器,不过做为底层代码,不会影响大家的体验。

在这里插入图片描述
  5、ST官网I2C例程,我放在网盘了,有需要的可以下载看看。
在这里插入图片描述
  6、I2C的波特率是400KHz,SPI波特率是9MHz。
在这里插入图片描述
在这里插入图片描述
 

2.2、下载验证

  1、根据实际连接的编码器类型,设置“MyProject.h”中的参数,
  2、编译下载。串口或者SWD,
  3、转动电机,观察角度变化。(角度的单位是rad,速度单位是rad/s)
在这里插入图片描述
 

2.3、其它说明

  1、I2C和SPI速度对比:

- 两个编码器都使用AS5600,主循环3420Hz,
- 两个编码器都使用TLE5012B,主程序15200Hz,
- M1是AS5600,M2是TLE5012B,主程序5530Hz,
- M1是TLE5012B,M2是AS5600,同上

  以上数据来自实际测试,会有误差。
 
  2、不同编码器工作电压电流对比:

- AS5600:3.3-5V,6.5mA @max
- TLE5012B:3-5.5V,14mA @Type,
- AS5047/AS5048:3.3-5V,15mA @max
- MA730:3.3V,11.7mA @Type,

  以上数据来自各芯片的数据手册。
 


三、百度网盘代码说明

3.1、AS5600

在这里插入图片描述
①、原理图
在这里插入图片描述
②、SimpleMotor的I2C2连接
在这里插入图片描述

③、也可以用STM32最小系统板连接
在这里插入图片描述
④、串口打印角度0—360°
在这里插入图片描述

 

3.2、AS5047P

在这里插入图片描述
 

在这里插入图片描述

 
在这里插入图片描述

 
在这里插入图片描述

 

3.3、TLE5012B

3.3.1、STM32ReadTLE5012B_spi2_m2
①、原理图
在这里插入图片描述
②、SimpleMotor的M2接口连接

在这里插入图片描述

③、也可以用STM32最小系统板连接

在这里插入图片描述
④、串口打印角度0—360°

在这里插入图片描述

3.3.2、STM32ReadTLE5012B_spi2_m1
①、原理图在这里插入图片描述

②、SimpleMotor的M1接口连接
在这里插入图片描述

③、也可以用STM32最小系统板连接
 
3.3.3、STM32ReadTLE5012B_spi1
①、原理图
在这里插入图片描述

 
②、不支持SimpleMotor,用STM32最小系统板连接
在这里插入图片描述

 

3.4、MA730

在这里插入图片描述

 

3.5、MT6701

在这里插入图片描述

每个代码的压缩包解压后有接线图片,可以参考,
每个main.c文件,最上面有单片机的引脚使用说明。
在这里插入图片描述

3.6、ABZ

main.c文件,最上面有单片机的引脚使用说明。
在这里插入图片描述

 
 
(完)
 
 
 
 
 
请继续阅读相关文章:
SimpleFOC移植STM32(一)—— 简介
SimpleFOC移植STM32(二)—— 开环控制
SimpleFOC移植STM32(三)—— 角度读取
SimpleFOC移植STM32(四)—— 闭环控制
SimpleFOC移植STM32(五)—— 电流采样及其变换

HAL STM32 SSI/SPI方式读取MT6701磁编码器获取角度例程 阅读详情

相关推荐

深入解析AS5047P磁编码器的使用方法与STM32集成

AS5047P是一款具有14位分辨率的旋转磁编码器,能够提供精确的位置和速度测量。它采用非接触式磁性测量技术,具有高可靠性和长寿命的特点。AS5047P广泛应用于电机控制、机器人、工业自动化和消费电子等领域。public:private:// 初始化SPI接口= HAL_OK)// 初始化错误处理// 初始化CS引脚// 发送的数据,读取命令// 接收的数据// 选择AS5047P// 发送读取命令并接收数据。

qq_38334677的博客 3165

SimpleFOC移植STM32(一)—— 简介

目录一、代码移植说明二、程序原理2.1、有感FOC控制原理2.2、有感FOC(不带电流采样)控制原理2.3、SVPWM(heart function)三、适配硬件3.1、Bluepill3.2、SimpleMotor四、程序架构五、演示功能   一、代码移植说明   多年前第一次听说“开源”这个事儿的时候非常不理解,自己辛苦写的代码让别人随意下载研究多吃亏呀,后来见的多了,发现开源也有它自身的一套商业逻辑。但是无论如何开源促进了技术的进步,避免大家重复造轮子,所以这是一件好事!   网上很多文章讲FOC都是

loop222的博客 7万+

AS5047P_stm32f103test.rar_as5047p程序_stm32 AS5047P_stm32 AS513

stm32通过SPI读取磁编码AS5047P,获取电机角度信息

AS5047P磁编码器ESP32驱动程序、硬件电路设计、SPI通信时序、逻辑波形分析、注意事项

硬件设计 性能参数。 巴拉巴拉,外部3.3V供电,内部LDO供电,但要注意两种方式的通信电平不同。建议用外部3.3V,供3.3V单片机使用,也能兼容5V的MCU通信电平。 使用外部5V供电,需要启用AS5047P自带的3.3V LDO。5V由VDD输入,VDD3V3对GND接1uF电容。 使用外部3.3V供电时,将VDD和VDD3V3短接。 AS5047P的两种供电方式。 注意: 如果启用AS5047P内部的3.3V LDO,则外部的供电电压必须保持在 4.5~5.5V 这个范围。 另外,还需考虑通信

Mark_md的博客 2万+

国产化软件设计:遵循信创要求,助力信息技术自主创新

支持国产操作系统、CPU、数据库和中间件。确保网络通信的身份鉴别、数据传输机密性和完整性。实现应用和数据层的身份鉴别、数据传输机密性完整性、数据存储机密性完整性。依托法院密码服务平台提供的商用密码能力。

qq_41186565的博客 3371

零基础搭建本地AI绘画环境:Stable Diffusion 3.5保姆级安装教程(含中文优化方案)

本文提供零基础搭建本地AI绘画环境的详细教程,重点介绍Stable Diffusion 3.5的安装与中文优化方案。从硬件配置检查到软件依赖安装,再到核心组件配置与中文语义增强,教程涵盖全流程操作指南,帮助用户快速掌握AI文生图模型的本地部署技巧,提升创作效率。

weixin_30752699的博客 312

SimpleFOC移植STM32(二)—— 开环控制

目录说明一、硬件介绍1.1、硬件准备1.1.1、SimpleMotor方案1.1.2、SimpleFOCShield V2.0.3方案1.2、硬件连接1.2.1、原理图1.2.2、接线二、控制原理2.1、SVPWM2.2、极对数2.3、开环控制三、软件操作和程序下载3.1、Keil编译生成hex文件3.2、FlyMcu下载3.3、SimpleMotor准备3.4、串口发送指令四、程序演示4.1、开环速度控制4.2、开环位置控制   说明   学习本节之前,建议先看《SimpleFOC(二)—— 快速入门 (

loop222的博客 4万+

用Verilog在FPGA上做个电子琴:从矩阵键盘到蜂鸣器的完整实现(附代码)

本文详细介绍了如何使用Verilog在FPGA上实现一个完整的电子琴系统,涵盖矩阵键盘扫描、音调生成和蜂鸣器驱动等核心模块。通过模块化设计和PWM调制技术,开发者可以构建一个可交互的音乐播放器,项目代码完整且易于扩展,适合FPGA初学者和数字逻辑设计爱好者实践。

weixin_29191669的博客 401

AS5047P磁性编码器的SPI读取

AS5047P磁性编码器的SPI读取

m0_67387402的博客 7330

YOLO11实战 第056期-基于yolo11的无人机航拍铁路障碍物检测实战-数据集&源码&系统

召回率曲线帮助评估模型在目标检测任务中,检测到真正目标的能力。通过这条曲线,可以评估模型在目标检测任务中的整体性能,并找到合适的置信度阈值,以在精确率和召回率之间做出最佳平衡。PR曲线越接近右上角,模型性能越好,曲线下方的面积越大,说明模型在不同置信度下的。这条曲线显示了随着置信度的增加,每个类别的召回率先变化较小,然后在某个点之后迅速下降。通过这条曲线,可以选择合适的置信度阈值,以优化模型的检测结果,平衡精确率和召回率。曲线都显示了随着召回率的增加,精确度略有下降的趋势,但整体上精确度保持在很高的水平。

深度学习算法工程师,专注于前沿算法研究与实战应用。在这里,我将分享深度学习领域的实战经验、优质数据集资源以及最新论文解读与精度分析,旨在与广大技术爱好者共同探索人工智能的奥秘,助力技术成长与创新。 157

【机器学习概率统计】11 贝叶斯统计推断:最大后验

这一节,我们来介绍另外一种统计推断方法:贝叶斯统计推断方法。 1.回顾贝叶斯定理 首先,我们先来复习一下贝叶斯定理: p(Θ∣X)=p(X∣Θ)p(Θ)p(X)p(\Theta|X)=\frac{p(X|\Theta)p(\Theta)}{p(X)}p(Θ∣X)=p(X)p(X∣Θ)p(Θ)​ 在这个简简单单的式子当中,蕴含了我们要掌握的很多重要内容: 贝叶斯定理当中的四个概率表达式,他们都非常重要,在这一节的内容中将反复出现,我们来一一解析一下: p(Θ)p(\Theta)p(Θ):先验分布。 反映的是在

机器学习数学基础系列专栏 3270

SimpleFOC(七)——STM32(Bluepill)的应用

目录说明一、Bluepill说明1.1、最小系统板1.2、下载模式说明二、软件安装2.1、安装库文件和示例2.2、放入安装文件夹2.3、重新打开IDE2.4、选择上传方式为串口2.5、安装编译器2.6、安装SAM三、点亮LED3.1、硬件准备3.2、示例演示四、I2C读取编码器4.1、硬件准备4.2、示例演示五、双I2C读取编码器5.1、硬件准备5.2、示例演示六、SPI读取编码器6.1、硬件准备6.2、示例演示七、PWM输出7.1、硬件准备7.2、示例演示八、Bluepill+simpleFOCShiel

loop222的博客 2万+

华为OD机试 - 商品推荐多属性排序 - 数组(Python/JS/C/C++ 双机位A卷 100分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。双十一来临,小王准备买某个购物平台买坚果。在输入坚果时,页面默认按照综合推荐列表。小王想知道这个综合排序时如何完成的,于是便开始思考算法题。经过一番操作后,完成它的多个关键词排序算法。希望你给小王提供一份正确的排序结果,验证其实现算法结果的准确性

学Java,找哪吒 622

SimpleFOC移植STM32(七)—— 移植STM32F405RGT6

SimpleFOC移植STM32

loop222的博客 1万+

SAP Fiori Elements 扩展实战:UI 层扩展、OData 服务扩展、CDS 视图增强及全流程案例

UI 层扩展主要关注在不修改标准生成界面的基础上,自定义用户界面元素和交互逻辑。典型需求包括:在现有 Fiori Elements 界面上添加新的字段(如表格列或表单项)、增加自定义按钮并绑定操作、以及通过控制器扩展加入事件处理等。无论在 RAP 还是传统 BOPF 架构下,前端 UI 扩展通常采用 SAPUI5 提供的**扩展点(Extension Points)和控制器扩展(Controller Extension)**机制来安全地插入自定义代码。下面分别说明两种后端架构下 UI 扩展的实现方式。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 900

按照CANoe模板制作seed&&key.dll

在canoe进行诊断测试的时候,在0x27服务中需要制作一个dll文件。可在canoe的诊断中进行加载,也可用于diva的自动化测试。 本文按照canoe提供的KeyGenDll_GenerateKeyEx模板制作。 KEYGENALGO_API VKeyGenResultEx GenerateKeyEx( const unsigned char* iSeedArray, /* Array for the seed [in] */ unsigned int

天赐好车的博客 6520

AS5047p STM32CubeMX SPI HAL库 程序开发

如果只读取角度,AS5047p不需要做任何初始化,GPIO、SPI初始化函数都是cubemx生成的,不用管,要使用printf()函数需要另外设置,有兴趣可以搜索了解,我们看上面的读取寄存器通信顺序可知,每次发送指令后接收的数据是上一次发送的指令的返回数据。比如寄存器SETTINGS1 的地址是0x0018,二进制表示 0B 0000 0000 0001 1000。偶检验位就是要保证指令中二进制数据1的个数为偶数,奇校验则是数据1的个数为奇数。此时 指令中有2个1,为奇数,则Bit15=0。

weixin_42416680的博客 5366

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

手把手移植 simpleFOC (一)

由于之前用的是自画的odrive板子,移植的 simplefoc,驱动用的drv8301。逢上嘉立创免费打样,闲暇之余,重新学习了FOC整个过程。准备再次深入了解simpleFoc和odrive,比较他们的细节差异。就画了两版simpleFoc:一版为SimpleFOCShield(单路):stm32f103cb+L6234D另一版为SimpleFOC-PowerShield(双路):stm32f405G+btn8982。上图:SimpleFOCShield版嘉立创贴片中仿真图还未出。

brotherwyz的专栏 3515

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

MT6701磁编码器使用指南,14Bit单圈绝对值,I2C stm32 HAL库读角度,兼容AS5600

MT6701是麦歌恩(MagnTek)公司的磁性角度传感器芯片,提供14Bit 0~360°单圈绝对角度检测,拥有等多种信息输出方式,还可根据磁场强度的瞬时变化提供非接触式按压检测功能。能够以较低的成本来替代传统光电编码器,可应用于绝对值角度输出、闭环步进电机BLDC电机旋转角度检测、机器人关节、非接触按键、非接触电位器等场合。MT6701提供等多种信息输出方式,建议优先选择 I2C/SSI 数字接口使用。I2C除了获取角度外,还可用于对其内部 EEPROM编程,来更改的配置参数和校准参数。

Mark_md的博客 3万+

【电机控制】MT6701磁编码器--绝对值位置读取

14位磁编码器MT6701---驱动程序

CYFYFUG的博客 1万+

SimpleFOC STM32教程01|基于STM32F103+HAI库,移植核心的common代码

项目源码:https://github.com/q164129345/MCU_Develop/tree/main/simplefoc01_stm32f103。

wallace89的博客 7220

STM32F103C8T6,使用HAL库模拟IIC读取MT6701磁编码器

使用HAL库通过GPIO模拟IIC接口实现F103C8T6读取MT6701磁编码器的代码

m0_73001789的博客 3921

ODrive踩坑(三)AS5047P磁编码器的ABI接口

dfdgfd

Mark_md的博客 1万+

Makerbase VESC 75200 AS5047P编码器测试

VESC75系列与VESC6、VESC4相比电压、电流都更大,与VESC6一样,都具有三相分流器和可调电流电压滤波器,可以更精确、更可靠地检测任何连接的电机。MKSESC75200 V2电调极限转速高达150000ERPM。

gjy_skyblue的博客 3975

FOC系列(三)----AS5600磁编码器

AS5600数据手册,在这里只是对一下重要的地方进行说明。系统框图如下:电源设计选项,我在设计时选择的是第二种电源方案,但是采用此方案,一定要将VDD5V和VDD3V3接在一起。下图是引脚的说明,AS5600可以将测得的角度信息通过IIC或者OUT口读取:后续会有对PGO口和OUT口的介绍。

我的博客 1万+
上一篇: SimpleFOC移植STM32(二)—— 开环控制
下一篇: SimpleFOC移植STM32(四)—— 闭环控制
loop222
博客等级 码龄8年 4091粉丝 61原创
评论 27
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值