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: 启用空间矢量PWMtmc4671_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_aenctmc4671_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: 顺序/高级PItmc4671_writeInt(0, TMC4671_MODE_RAMP_MODE_MOTION, 0x009AD108);wait(2000);//等待2秒tmc4671_writeInt(0, TMC4671_UQ_UD_EXT, 0x00000000);//关闭力矩输出 }