首页 > 其他分享 >TMC4671使用笔记

TMC4671使用笔记

时间:2024-11-08 16:10:59浏览次数:1  
标签:开环 笔记 TMC4671 模式 使用 writeInt PWM tmc4671

1、单向DC电机开环测试

void TMC4671SinglePhaseDC_Test(){
    // 电机类型和PWM配置

    // TMC4671_MOTOR_TYPE_N_POLE_PAIRS 寄存器用于设置电机类型和极对数。
    // 高16位 (0x0001):电机类型。0: 无电机 1: 单相直流电机 2: 两相步进电机 3: 三相无刷电机
    // 低16位 (0x0002):电机的极对数,表示电机有2个极对。
    tmc4671_writeInt(0, TMC4671_MOTOR_TYPE_N_POLE_PAIRS, 0x00010002);

    // PWM_POLARITIES 寄存器设置PWM输出信号的极性以匹配门驱动器。
    // bit(0) 低侧栅极控制 0: 关闭 1: 打开  bit(1) 高侧栅极控制 0: 关闭 1: 打开
    tmc4671_writeInt(0, TMC4671_PWM_POLARITIES, 0x00000000);

    // PWM_MAXCNT 寄存器用于配置PWM输出频率。
    // u12(11:0) PWM最大计数(count-1),PWM频率公式为 fPWM[Hz]= 100MHz/(PWM_MAXCNT+1)
    tmc4671_writeInt(0, TMC4671_PWM_MAXCNT, 0x00000F9F);

    // PWM_BBM_H_BBM_L 寄存器设置PWM输出信号的BBM时间。BBM时间必须与功率级匹配,以避免半桥中的交叉导通。
    // PWM_BBM_L u8(7:0) 低侧MOSFET栅极控制的BBM时间 tBBM_L[10ns]
    // PWM_BBM_H u8(15:8) 高侧MOSFET栅极控制的BBM时间 tBBM_H[10ns]
    tmc4671_writeInt(0, TMC4671_PWM_BBM_H_BBM_L, 0x00001919);

    // PWM_SV_CHOP 寄存器用于启用PWM,设置不同的PWM测试模式,并启用SVPWM功能(仅适用于BLDC/PMSM)。
    // PWM_CHOP u8(7:0) PWM斩波模式,定义如何进行斩波 0: 关闭,自由运行 1: 关闭,低侧永远=ON 2: 关闭,高侧永远=ON 3: 关闭,自由运行 4: 关闭,自由运行 5: 低侧斩波,高侧关闭 6: 高侧斩波,低侧关闭 7: FOC的中心PWM
    // PWM_SV bit(8) 使用空间矢量PWM 0: 禁用空间矢量PWM 1: 启用空间矢量PWM
    tmc4671_writeInt(0, TMC4671_PWM_SV_CHOP, 0x00000007);

    // 开环设置

    // OPENLOOP_MODE 寄存器用于改变开环角度的方向。
    // OPENLOOP_PHI_DIRECTION bit(12) 开环phi方向。
    // 0: 正向
    // 1: 反向
    tmc4671_writeInt(0, TMC4671_OPENLOOP_MODE, 0x00000000);

    // OPENLOOP_ACCELERATION 寄存器用于在开环角度速度变化时调整加速度。
    // OPENLOOP_ACCELERATION u32(31:0) 开环phi加速度。
    tmc4671_writeInt(0, TMC4671_OPENLOOP_ACCELERATION, 0x0000003C);

    // OPENLOOP_VELOCITY_TARGET 寄存器用于为开环角度生成器设置目标速度。速度根据OPENLOOP_ACCELERATION和PID_VELOCITY_LIMIT进行上升和下降。
    // OPENLOOP_VELOCITY_TARGET s32(31:0) 开环phi的目标速度。
    tmc4671_writeInt(0, TMC4671_OPENLOOP_VELOCITY_TARGET, 0xFFFFFFF6);

    // 反馈选择
    // PHI_E_SELECTION 寄存器用于选择FOC变换的角度信号作为电机的电角度。
    // PHI_E_SELECTION u8(7:0) 0: 保留 1: phi_e_ext 2: phi_e_openloop 3: phi_e_abn 4: 保留 5: phi_e_hal 6: phi_e_aenc 7: phi_a_aenc
    tmc4671_writeInt(0, TMC4671_PHI_E_SELECTION, 0x00000002);

    // UQ_UD_EXT 寄存器用于设置开环电流控制模式的电压值(UQ_UD_EXT_MODE)。
    // UD_EXT s16(15:0) 开环电压控制模式下可写的外部参数,设置U_D分量。
    // UQ_EXT s16(31:16) 开环电压控制模式下可写的外部参数,设置U_Q分量。
    tmc4671_writeInt(0, TMC4671_UQ_UD_EXT, 0x19E50000);

    // ===== 开环测试驱动 =====

    // 切换到开环速度模式
    // MODE_RAMP_MODE_MOTION 寄存器用于设置运动模式、速度和位置控制环的下采样因子,以及PI控制器结构类型。
    // MODE_MOTION u8(7:0) 0: 停止模式 1: 力矩模式 2: 速度模式 3: 位置模式 4: PRBS磁通模式 5: PRBS力矩模式 6: PRBS速度模式 7: PRBS位置模式 8: UQ_UD_EXT模式 9: 保留 10: AGPI_A力矩模式 11: AGPI_A速度模式 12: AGPI_A位置模式 13: PWM_I力矩模式 14: PWM_I速度模式 15: PWM_I位置模式
    // MODE_PID_SMPL u7(30:24)
    // MODE_PID_TYPE bit(31) 0: 并行/经典PI 1: 顺序/高级PI
    tmc4671_writeInt(0, TMC4671_MODE_RAMP_MODE_MOTION, 0x009AD108);

    wait(2000);//等待2秒
    tmc4671_writeInt(0, TMC4671_UQ_UD_EXT, 0x00000000);//关闭力矩输出
}
View Code

 

标签:开环,笔记,TMC4671,模式,使用,writeInt,PWM,tmc4671
From: https://www.cnblogs.com/lizhiqiang0204/p/18535274

相关文章

  • ES 布尔查询中 minimum_should_match 参数使用避坑
    简介: ES布尔查询中minimum_should_match参数使用避坑在Elasticsearch(ES)中,布尔查询(BooleanQuery)是一种查询类型,它允许你组合多个查询子句以控制搜索结果的匹配逻辑。minimum_should_match是布尔查询中一个重要的参数,用于指定至少应该匹配的子句数量。 mini......
  • 数学建模_BP神经网络预测新数据模型(多输入单输出)回归预测模型+Matlab代码包教会使用
    基于BP神经网络新数据预测的多输入单输出回归预测模型简介这段代码实现了一个BP神经网络BackpropagationNeuralNetwork用于回归预测任务,并包含新数据的预测功能。该模型通过多层前馈神经网络学习输入特征与目标变量之间的非线性映射关系,并使用反向传播算法优化权重和偏置......
  • 数学建模_BP神经网络模型(多输入单输出)回归预测模型+Matlab代码包教会使用,直接替换
    基于BP神经网络的多输入单输出回归预测模型简介该模型使用了BP神经网络BackpropagationNeuralNetwork进行多输入单输出的回归预测。BP神经网络是一种常见的多层前馈神经网络,通过反向传播算法来优化权重和偏置,从而最小化预测误差。具体模型原理就不再细说了,需要可以翻看......
  • 《DNK210使用指南 -CanMV版 V1.0》第三十六章 image图像色块追踪实验
    第三十六章image图像色块追踪实验1)实验平台:正点原子DNK210开发板2)章节摘自【正点原子】DNK210使用指南-CanMV版V1.03)购买链接:https://detail.tmall.com/item.htm?&id=7828013987504)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/k210/ATK-DNK210.htm......
  • 《程序员的修炼之道从小工到专家》阅读笔记2
    书中中间几个章节提到了编程相关的技术经验方法,有几点学习并找机会实践的。一是注重shell环境。,“所见即所得”同时可以理解为“所见即全部所得”,shell环境可以通过构建命令序列,让很多事情自动化,可以大大提高生产率。而我很少使用shell命令,所以不太熟悉它的好处,接下来的时间想认......
  • 配置docker和containerd,使用ca证书访问harbor
    配置docker和containerd,使用ca证书访问harbor目录配置docker和containerd,使用ca证书访问harbordocker配置ca证书访问harborcontainerd配置ca证书访问harbor验证证书有效性docker配置方法containerd配置方法验证证书有效性描述harbor链接汇总harbor部署harbor部署httpsdo......
  • Android Audio中 AudioTrack、 AudioFlinger和 HAL 使用dump的区别
    Audiodump在定位音频的各种问题非常重要,我们主要在AudioTrack、AudioFlinger和HAL层中会用到,这里我们先明确一下在不同层使用dump的区别。以下是关于AudioTrack、AudioFlinger和HAL(HardwareAbstractionLayer,硬件抽象层)中dump的区别和使用场景:一、区别Audi......
  • rsync文件同步使用说明
    常用参数-a归档模式(最常用,替代-r参数,递归传输并保持文件属性,等同于-rlptgoD)-v显示执行过程明细-z压缩模式-n模拟执行-i显示传输文件的路径-P显示文件传输进度--exclude指定排除不进行同步的文件/目录,rsync在使用排除路径的时候对于路径的解析比较特殊,它使用......
  • 什么是虚短和虚断?——模电学习笔记(二)
    1.前提我们需要明确以下几点(下文描述中运算放大器简称“运放”)①“为了实现输出电压与输入电压的某种运算关系,运算电路中的集成运放应当工作在线性区,因而必须引入负反馈;且为了稳定输出电压,故均引入电压负反馈”。——见华成英主编《模拟电子技术基础》(第五版)②在运算电路中,......
  • C++之OpenCV入门到提高004:Mat 对象的使用
    一、介绍今天是这个系列《C++之Opencv入门到提高》得第四篇文章。这篇文章很简单,介绍如何使用Mat对象来实例化图像实例,了解它的构造函数和常用的方法,这是基础,为以后的学习做好铺垫。虽然操作很简单,但是背后有很多东西需要我们深究,才能做到知其然知其所以然。OpenCV具......