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