|
四、对运动控制和模拟反馈部分寄存器进行解读
寄存器 |
绑定功能 |
位 |
描述 |
0x1B |
N_POLE_PAIRS |
u16(15:0) |
电机极对数 |
MOTOR_TYPE |
u8(23:16) |
电机类型 0: (空) 1: 单相直流电机 2: 两相步进电机 3: 三相BLDC/PMSM |
|
0x18 |
PWM_MAXCNT |
u12(11:0) |
PWM输出频率: PWM[Hz]=100兆赫/(PWM_MAXCNT+1) |
0x19 |
PWM_BBM_L |
u8(7:0) |
用于控制低边MOS-FET栅极的死区时间tBBM_L[10ns] |
PWM_BBM_H |
u8(15:8) |
用于控制高边MOS-FET栅极的死区时间tBBM_H[10ns] |
|
0x1A |
PWM_CHOP |
u8(7:0) |
PWM斩波模式 0: 斩波模式off, 自由运行 1: 斩波模式off, 低边持续导通 2: 斩波模式off, 高边持续导通 3: 斩波模式off, 自由运行 4: 斩波模式off, 自由运行 5: 低边斩波,高边关闭 6: 高边斩波,低边关闭 7: FOC中心对称PWM模式 |
PWM_SV |
Bit(8) |
SVPWM功能配置 0: SVPWM失能 1: SVPWM使能 |
表1 Wizard Pool-->Settings项
0x1B的电机类型:
TMC4671支持直流电机、步进电机、无刷电机、永磁同步电机。
0x18的输出频率:
输出频率范围25k~100kHz 可配置的PWM发生器作为FOC控制器。
0x1A的SVPWM功能配置:
PWM中心对称模式可以很好的利用中心点去触发ADC采样,在这种模式下,PWM信号的高电平和低电平持续时间相等,并且中间有一个等时的低电平间隔,实现了输出与反馈的同步。
且在SVPWM调制下,中心点刚好在电流最稳定的阶段,有利于远离开关的耦合噪声。在电机控制中,将PWM配置为中心对齐模式的主要原因是为了:
由于中心对齐模式提供了等时的低电平间隔,因此可以更准确地控制电机的转速和位置。
中心对齐模式可以在每个PWM周期的中间产生一个低电平间隔,这样在每次切换电机相位时,都会有一个平滑的过渡。这减少了电机瞬态过渡期间的振动和噪音,使电机运行更加平稳。
在一些应用中,如驱动大功率电机,PWM控制可能会导致电流尖峰。中心对齐模式可以减少这些电流尖峰,从而降低对电机和电源的负荷。
寄存器 |
绑定功能 |
位 |
描述 |
0x52 |
PHI_E_SELECTION |
u8(7:0) |
电角度来源 0:(保留) 1: 外部给定电角度 2: 开环电角度 3: 外部ABN提供电角度 4:(保留) 5: 外部霍尔提供电角度 6: 模拟编码器提供电角度 7: 模拟编码器补偿后提供电角度 |
0x63 |
MODE_MOTION |
u8(7:0) |
运动模式设置 0: 停止模式 1: 力矩模式 2: 电压模式 3: 位置模式 4: PRBS值作目标磁通的标志值 5: PRBS值作目标力矩的标志值 6: PRBS值作目标电压的标志值 7: PRBS值作目标位置的标志值 8: 外部给定uq、ud模式 9: (保留) 10: A组单端模拟输入作力矩模式 11: A组单端模拟输入作速度模式 12: A组单端模拟输入作位置模式 13: PWM输入作力矩模式 14: PWM输入作速度模式 |
MODE_PID_SMPL |
u8(7:0) |
PID采样因子 |
|
MODE_PID_TYPE |
Bit(31) |
PID迭代模式 0: 并行/经典PI 1: 顺序/高阶PI |
|
0x24 |
UD_EXT |
s16(15:0) |
外部给定开环电压控制模式的Ud |
UQ_EXT |
s16(31:16) |
外部给定开环电压控制模式的Uq |
|
0x1F |
OPENLOOP_PHI_DIRECTION |
Bit(12) |
开环模式运行方向 0:取正 1:取反 |
0x20 |
OPENLOOP_ACCELERATION |
u32(31:0) |
开环模式下的加速度 |
0x21 |
OPENLOOP_VELOCITY_TARGET |
s32(31:0) |
开环模式下的目标速度 |
0x1B |
N_POLE_PAIRS |
u16(15:0) |
电机极对数 |
MOTOR_TYPE |
u8(23:16) |
电机类型 0: (空) 1: 单相直流电机 2: 两项步进电机 3: 三相BLDC/PMSM |
|
0x1C |
PHI_E_EXT |
s16(15:0) |
由外部给定电角度 |
表2 Wizard Pool-->Open loop项
0x63的PID采样因子:
PID采样因子决定着反馈采样频率
寄存器 |
绑定功能 |
位 |
描述 |
0x0A |
ADC_I0_SELECT |
u8(7:0) |
电流检测通道0数据源 0: ΔΣADC通道0输入 1: ΔΣADC通道1输入 2: 外部通道0寄存器输入 3: 外部通道1寄存器输入 |
ADC_I1_SELECT |
u8(15:8) |
电流检测通道0数据源 0: ΔΣADC通道0输入 1: ΔΣADC通道1输入 2: 外部通道0寄存器输入 3: 外部通道1寄存器输入 |
|
ADC_I_UX_SELECT |
u2(25:24) |
U相电流监测输入源 0: UX = ADC_I0 (default) 1: UX = ADC_I1 2: UX = ADC_I2 |
|
ADC_I_V_SELECT |
u2(27:26) |
V相电流监测输入源 0: UX = ADC_I0 1: UX = ADC_I1(default) 2: UX = ADC_I2 |
|
ADC_I_WY_SELECT |
u2(29:28) |
W相电流监测输入源 0: UX = ADC_I0 1: UX = ADC_I1 2: UX = ADC_I2(default) |
|
0x04 |
cfg_dsmodulator_a |
u2(1:0) |
A组ΔΣADC调制器配置 0:关闭 1:开启 |
mclk_polarity_a |
bit(2) |
A组ΔΣADC调制器采样时钟极性 0:取正 1:取反 |
|
mdat_polarity_a |
bit(3) |
A组ΔΣADC调制器数据流极性 0:取正 1:取反 |
|
sel_nclk_mclk_i_a |
bit(4) |
|
|
blanking_a |
|
(弃用) |
|
cfg_dsmodulator_b |
u2(17:16) |
B组ΔΣADC调制器配置 0:关闭 1:开启 |
|
mclk_polarity_b |
bit(18) |
B组ΔΣADC调制器采样时钟极性 0:取正 1:取反 |
|
mdat_polarity_b |
bit(19) |
B组ΔΣADC调制器数据流极性 0:取正 1:取反 |
|
sel_nclk_mclk_i_b |
bit(20) |
|
|
blanking_b |
|
(弃用) |
|
0x05 |
dsADC_MCLK_A |
u32(31:0) |
A组ΔΣADC调制器采样时钟 |
0x06 |
dsADC_MCLK_B |
u32(31:0) |
B组ΔΣADC调制器采样时钟 |
0x07 |
dsADC_MDEC_A |
u16(15:0) |
A组ΔΣADC调制器采样滤波 |
dsADC_MDEC_B |
u16(31:16) |
B组ΔΣADC调制器采样滤波 |
表3 Wizard Pool-->ADC Registers项
0x0A,blanking_a、blanking_b:
blanking在2022年6月26日V2.08版更新后移除。
0x05、0x06、0x07共同决定着SINC3滤波器的解调率:
寄存器 |
绑定功能 |
位 |
描述 |
0x09 |
ADC_I0_OFFSET |
u16(15:0) |
设置电流检测ADC通道0的偏移量 |
ADC_I0_SCALE |
s16(31:16) |
设置电流检测ADC通道0的缩放因子 |
|
0x08 |
ADC_I1_OFFSET |
u16(15:0) |
设置电流检测ADC通道1的偏移量 |
ADC_I1_SCALE |
s16(31:16) |
设置电流检测ADC通道1的缩放因子 |
|
0x0A |
ADC_I0_SELECT |
u8(7:0) |
电流检测通道0数据源 0: ΔΣADC通道0输入 1: ΔΣADC通道1输入 2: 外部通道0寄存器输入 3: 外部通道1寄存器输入 |
ADC_I1_SELECT |
u8(15:8) |
电流检测通道0数据源 0: ΔΣADC通道0输入 1: ΔΣADC通道1输入 2: 外部通道0寄存器输入 3: 外部通道1寄存器输入 |
|
ADC_I_UX_SELECT |
u2(25:24) |
U相电流监测输入源 0: UX = ADC_I0 (default) 1: UX = ADC_I1 2: UX = ADC_I2 |
|
ADC_I_V_SELECT |
u2(27:26) |
V相电流监测输入源 0: UX = ADC_I0 1: UX = ADC_I1(default) 2: UX = ADC_I2 |
|
ADC_I_WY_SELECT |
u2(29:28) |
W相电流监测输入源 0: UX = ADC_I0 1: UX = ADC_I1 2: UX = ADC_I2(default) |
|
ADC_I0_SELECT |
u8(7:0) |
电流检测通道0数据源 0: ΔΣADC通道0输入 1: ΔΣADC通道1输入 2: 外部通道0寄存器输入 3: 外部通道1寄存器输入 |
|
0x24 |
UD_EXT |
s16(15:0) |
开环电压控制模式下外部给定Ud |
UQ_EXT |
s16(31:16) |
开环电压控制模式下外部给定Uq |
|
0x07 |
dsADC_MDEC_A |
u16(15:0) |
A组ΔΣADC调制器采样滤波 |
dsADC_MDEC_B |
u16(31:16) |
B组ΔΣADC调制器采样滤波 |
表4 Wizard Pool-->ADC scale & offset项
经过16bit的ΔΣADC,拟合成出电流波形,可以通过双电阻采样Ia+Ib+Ic=0的方式计算出第三相的电流。
0x08、0x09的偏移量和缩放因子:
ADC_Ix_OFFSET是中点电位校正偏移(ADC校正偏移),由于ADC采集回来的数据均是正压,Set一下中点偏移量,即可获得正负数据的相对显示。
ADC_Ix_SCALE是电流比例缩放因子,通过合理的配置,将驱动电流与标定尺达成一定比例关系,可以方便计算填入或更改时相关寄存器所对应的数值。