54. QEO
54.1. 概述
QEO (Quadrature Encoder Output) 是一个正交编码器输出外设。QEO可以根据输入的位置信息生成多种类型的输出信号:
ABZ正交编码器信号
波形信号(余弦波、三角波、马鞍波等)
PWM换相控制信号
54.2. 特性
- 位置输入支持:
从系统位置管理器获取位置
软件位置注入
支持位置补偿和线数转换
- 波形输出功能:
支持4种波形:余弦波、馒头波、马鞍波、锯齿波
3个独立输出通道,可配置相位偏移
支持VD/VQ控制
支持波形缩放、限幅和死区补偿
通过DAC输出模拟信号
- ABZ输出功能:
支持4种输出模式:
带自有位置的A/B两相正交输出
高速脉冲(Pulse&Revise)输出
上下(Up&Down)输出
不带自有位置的A/B两相正交输出
内置位置管理器,支持位置同步
可配置最小脉冲宽度
支持看门狗功能
- PWM输出功能:
支持8组PWM强制输出控制信号
可配置最多12相换相表
支持安全模式配置
支持三相直流无刷和两相步进电机控制
54.3. API说明
54.3.1. 波形输出相关API
/* 获取波形模式默认配置 */
void qeo_wave_get_default_mode_config(QEO_Type *ptr, qeo_wave_mode_t *config);
/* 配置波形模式 */
void qeo_wave_config_mode(QEO_Type *ptr, qeo_wave_mode_t *config);
/* 设置波形分辨率线数 */
void qeo_wave_set_resolution_lines(QEO_Type *ptr, uint32_t lines);
/* 设置波形相位偏移 */
void qeo_wave_set_phase_shift(QEO_Type *ptr, uint8_t wave_index, uint32_t phase_shift);
/* 获取波形输出值 */
uint16_t qeo_get_wave_output_val(QEO_Type *ptr, uint8_t wave_index);
54.3.2. ABZ输出相关API
/* 获取ABZ模式默认配置 */
void qeo_abz_get_default_mode_config(QEO_Type *ptr, qeo_abz_mode_t *config);
/* 配置ABZ模式 */
void qeo_abz_config_mode(QEO_Type *ptr, qeo_abz_mode_t *config);
/* 设置ABZ分辨率线数 */
void qeo_abz_set_resolution_lines(QEO_Type *ptr, uint32_t lines);
/* 设置ABZ最大输出频率 */
hpm_stat_t qeo_abz_set_max_frequency(QEO_Type *ptr, uint32_t src_freq_hz, uint32_t max_freq_hz);
/* 配置ABZ位置同步 */
void qeo_abz_position_sync(QEO_Type *ptr, uint32_t position);
54.3.3. PWM输出相关API
/* 获取PWM模式默认配置 */
void qeo_pwm_get_default_mode_config(QEO_Type *ptr, qeo_pwm_mode_t *config);
/* 配置PWM模式 */
void qeo_pwm_config_mode(QEO_Type *ptr, qeo_pwm_mode_t *config);
/* 设置PWM分辨率线数 */
void qeo_pwm_set_resolution_lines(QEO_Type *ptr, uint32_t lines);
/* 配置PWM换相表 */
void qeo_pwm_config_phase_table(QEO_Type *ptr, uint8_t phase_num, uint8_t *phase_table);
54.3.4. 位置控制相关API
/* 使能软件位置注入 */
void qeo_enable_software_position_inject(QEO_Type *ptr);
/* 禁用软件位置注入 */
void qeo_disable_software_position_inject(QEO_Type *ptr);
/* 软件注入位置值 */
void qeo_software_position_inject(QEO_Type *ptr, uint32_t position);