STM32自学笔记14-步进电机驱动项目-TB67H450驱动

news2024/10/6 16:28:28

目前的项目是一种2相4线步进电机的闭环驱动电路,使用的电机驱动芯片是TB67H450,再使用磁编码器MT6816,使用FOC算法,基于STM32F1单片机。
这一节是步进电机的驱动芯片驱动研究

  1. 首先研究驱动芯片TB67H450的datasheet
    这是一个PWM斩波电机驱动芯片,内部框图可以看出来内含一个H桥全桥驱动电路,而芯片的输出Out1Out2即H桥的两个输出口
    在这里插入图片描述
    H桥电路驱动单相步进电机是很基础的知识,芯片通过IN1IN2的输入来控制输出的高低电平,但是下面的这个逻辑表是针对直流电机的,不需要看Mode这一列,只要看Out1和Out2的电平。
    在这里插入图片描述
    我们使用的是2相4线电机,所以需要2个TB67H450,即4个Out端口来直接连接电机的A+,A-,B+和B-,同样输入也需要4个(即芯片的2个输入 x2),简单画了个图,就是通过OutA+~OutB-四个端口的脉冲组合来驱动电机的各种动作。最简单的让电机转动1周的电平变化是1000,0100,0001,0001,即顺次高电平。根据上面的逻辑表就可以推导出需要的输入信号的电平,例如Out1为高,其他为低,则IN1为H,IN2为L,IN3为H,IN4为H。
    在这里插入图片描述
  2. 控制方法
    这个芯片和常用的步进电机驱动器不太相同,并没有DIR、ENA这些引脚。它共8个引脚,我们来看下pin定义:
    在这里插入图片描述
    其中4pinVREF引脚和7pinRS引脚共同设置电机的最大电流,RS引脚连一个电阻接地,流入电机线圈的电流峰值由datasheet page10里这个公式来计算:
    在这里插入图片描述
    RRS为RS引脚连的电阻阻值,例如RRS选0.1欧,Vref(gain)按datasheet是1/10,则可算出Iout = VrefVref引脚可以接单片机的PWM输出,通过调节PWM占空比来调Vref电压,从而调节驱动电机的输出电流,继而控制步进电机的力矩,这就是这个芯片最重要的功能之一。
    芯片的接线图比较简单,但主要单片机的定时器过来的PWM信号要搭一个滤波器滤波,其他就是直连即可:IN1-IN4接GPIO输出,OUT1-OUT4接步进电机线4根线,VM接电机的驱动电压,例如24V。
    芯片的接线图:(另外一个也是同样这么接)
    在这里插入图片描述
    PA4和PA5为GPIO输出,通过高低电平来控制电机线的输出,可以用一个函数来表明输入的高低关系
void SetInputA(bool _statusAp, bool _statusAm)
{
    _statusAp ? (GPIOA->BSRR = GPIO_PIN_5) : (GPIOA->BRR = GPIO_PIN_5);  //IN_AP为高或低
    _statusAm ? (GPIOA->BSRR = GPIO_PIN_4) : (GPIOA->BRR = GPIO_PIN_4);  //IN_AM为高或低
}

如果需要IN1高,IN2低,则使用SetInputA(true, false)即可。

  1. 整个系统其实最关键的部分是磁编码器的驱动、FOC算法的实现、电流采样等接下去的实现,接下去继续学习和实践。
    未完待续

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/751809.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

11_SPI_Flash 读数据实验

11_SPI_Flash 读数据实验 1. 实验目标2. 操作时序2.1 数据读操作指令2.2 数据读操作时序 3. 流程框图3.1 顶层模块3.2 数据读模块 4. 波形图绘制5. RTL5.1 flash_read_ctrl5.2 spi_flash_read 6. testbench 1. 实验目标 使用页写或连续写操作向 Flash 芯片写入数据&#xff0c…

火山引擎 DataLeap 构建Data Catalog系统的实践(三):关键技术与总结

更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 关键技术 构建一个好的Data Catalog系统,需要考虑的核心产品设计和技术设计有很多。篇幅所限,本文只概要介绍技术设计中最核心重要的部分&a…

工作日志2 input 的事件优先级 字符串.trim() this.$set()的应用 获取jq的自定义属性

input 的事件优先级 1.input输入框的事件 字符串.trim() 除去前后空格的方法 undefind不可以使用 this.$set()的应用

苹果Mac动态壁纸软件Dynamic Wallpaper

Dynamic Wallpaper 是一款桌面壁纸管理软件,它提供了动态壁纸的功能。动态壁纸是指可以在一段时间内自动更改外观的壁纸,比如根据时间或其他条件进行变化。这种壁纸可以为用户提供更加生动有趣的桌面体验。 Dynamic Wallpaper 软件具有以下特点和功能&am…

基于Java+SpringBoot+Vue的中小企业财务管理系统设计与实现

博主介绍:✌擅长Java、微信小程序、Python、Android等,专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟 Java项目精品实战案…

Word之解决中文和英文混写导致字间距增大的问题(六)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

【2023裸辞失业后之初学Docker1】

目录 Docker简介docker下载安装常用命令帮助启动类命令镜像命令容器命令 镜像分层概念commit命令本地镜像发布到腾讯云 docker容器数据卷宿主机和容器内添加容器卷案例读写规则容器卷的继承 学习视频来自 https://www.bilibili.com/video/BV1gr4y1U7CY Docker简介 Docker出现…

DNS协议解析原理

0. 前言 为了保证网址的正常访问,域名解析协议(DNS)其实在背后做出了很多努力,本文将透彻讲解 DNS 协议的原理,了解我们每天都在接触的网址到底是怎么工作的。 1. 什么是 DNS 协议 在学习 DNS 协议之前,我…

你真的不想知道ai绘画工具有哪些吗?

近期我发现了一个超酷的玩意儿,叫做ai绘画工具。没错,它就是那个能让你在不懂任何绘画技巧的情况下,也能创作出令人惊叹的艺术作品的神奇东西!简直就像是给你一支魔法画笔,让你成为真正的艺术大师。但是,市…

Java设计模式之行为型-备忘录模式(UML类图+案例分析)

目录 一、基础概念 二、UML类图 三、角色设计 四、案例分析 五、总结 一、基础概念 备忘录模式是一种行为型设计模式,它允许保存一个对象的内部状态到一个备忘录对象中,这样就可以在需要的时候恢复这个对象的状态了,同时又不违反封装…

1.5 纹理

这次笔记时间有点久,主要是这节课讲的东西需要很多基础来铺垫,看完了后感觉缺失信息很多,又去补了GAMES 101 3~10节内容。 强烈建议看不懂的先去学习GMAES101 网址Lecture 08 Shading 2 (Shading, Pipeline and Texture Mapping)_哔哩哔哩_bi…

你知道哪些Linux 发行版采用 了KDE Plasma 吗

Linux操作系统以其高度的灵活性和可定制性而闻名,有许多不同的发行版适用于各种场合和需求。其中一种备受欢迎的桌面环境是KDE Plasma,它提供了现代化的外观、丰富的功能和高度自定义的选项。那么,你知道哪些Linux发行版采用了KDE Plasma呢&a…

python遍历整个网站寻找所有输入框并提交表单

文章目录 一、遍历查找网站所有输入框二、对找到的输入框实现自动表单提交三、实现留言板和其他输入框的表单提交 一、遍历查找网站所有输入框 # 查找所有表单 import requests from bs4 import BeautifulSoup import sys# 定义起始页面 url sys.argv[1]# 通过requests库获取…

Linux下如何部署Nuxt项目(二)

Linux下如何部署Nuxt项目(一)_小鸟哗啦啦的博客-CSDN博客,书接上回,以实际场景开始。 请认真看完这篇文章,还不会部署Nuxt,我直接拿弹弓打你们家玻璃! 一、nuxt的配置检查 服务端渲染的应用,应该是先编译构…

智能手表学习笔记

一、相关知识模块 1、RTOS & FreeRTOS (1) RTOS 实时操作系统(Real Time Operating System) 是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制…

信号完整性分析基础知识之有损传输线、上升时间衰减和材料特性(二):损耗的来源

导体电阻和趋肤深度 信号沿信号路径和返回路径传播的串联电阻与导体的体电阻率和电流传播的横截面有关。直流时,信号导体中的电流分布均匀,电阻为: ρ表示电阻的体电阻率,w表示线宽,t表示导体厚度,Len表示走…

7.10蓝桥杯刷题

public class _求阶乘和 {public static void main(String[] args) {// 根据已有的知识 可以知道的是,现在要求s的末尾九位数字,已知的是39之后的阶乘他的后九位都是0;//所以不需要计算到2023的阶乘//一个数求出来的阶乘想要末尾有0//数中必须要有2和5&a…

C语言每日一练(3)

C 练习实例6 题目:用*号输出字母C的图案。 程序分析:可先用*号在纸上写出字母C,再分行输出。 程序源代码: #include "stdio.h" int main() {printf("用 * 号输出字母 C!\n");printf(" ****\n")…

小红书数据分析工具|年轻人入玄门?小红书热门笔记大赏

当代年轻人血脉觉醒,逐渐出现寺庙打卡、电子木鱼、发疯语录“在上进和上班之间,选择上香”,小编观察近期彩票成为年轻人信仰的新玄学,兴起了“送礼就送刮刮乐”的小风潮。卷不动躺不平的年轻人,严重精神内耗下&#xf…

Pycharm中设置动态模板(自定义自动补齐)

Settings——Editor——Live Template——点击号新增动态模板 Abbreviation缩略词:输入的简写内容 Template text: 简写词对应的模板内容 默认输入简写内容按Tab键,生成模板内容 Define: 选择在哪个语言环境下生效