【ADI•世健工业嘉年华】四、对运动控制和模拟反馈部分寄存器进行解读
[复制链接]
本帖最后由 皓月光兮非自明 于 2024-4-2 15:41 编辑
四、对运动控制和模拟反馈部分寄存器进行解读
寄存器
|
绑定功能
|
位
|
描述
|
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是电流比例缩放因子,通过合理的配置,将驱动电流与标定尺达成一定比例关系,可以方便计算填入或更改时相关寄存器所对应的数值。
|