55. QEOv2

55.1. 概述

QEOv2 (Quadrature Encoder Output Version 2) 是新一代正交编码器输出外设。QEOv2可以根据输入的位置信息生成多种类型的输出信号:

  • ABZ正交编码器信号

  • 波形信号(余弦波、三角波、马鞍波等)

  • PWM换相控制信号

55.2. 特性

  • 位置输入支持:
    • 从系统位置管理器获取位置

    • 软件位置注入

    • 支持位置补偿和线数转换

  • 波形输出功能:
    • 支持4种波形:余弦波、馒头波、马鞍波、锯齿波

    • 3个独立输出通道,可配置相位偏移

    • 支持VD/VQ控制(支持从CLC获取VD/VQ)

    • 支持波形缩放、限幅和死区补偿

    • 支持输出调节PWM占空比

  • ABZ输出功能:
    • 支持4种输出模式:

      • 带自有位置的A/B两相正交输出

      • 高速脉冲(Pulse&Revise)输出

      • 上下(Up&Down)输出

      • 不带自有位置的A/B两相正交输出

    • 内置位置管理器,支持位置同步

    • 可配置最小脉冲宽度

    • 支持看门狗功能

  • PWM输出功能:
    • 支持8组PWM强制输出控制信号

    • 可配置最多12相换相表

    • 支持安全模式配置

    • 支持三相直流无刷和两相步进电机控制

55.3. API说明

55.3.1. 位置控制相关API

/* 配置SEI接口采样 */
void qeov2_sei_config(QEOV2_Type *ptr, qeov2_sei_config_t *config);

/* 软件写入位置值 */
void qeov2_set_position(QEOV2_Type *ptr, uint32_t position);

/* 获取当前位置值 */
uint32_t qeov2_get_position(QEOV2_Type *ptr);

55.3.2. ABZ输出相关API

/* 配置ABZ输出参数 */
void qeov2_abz_config(QEOV2_Type *ptr, qeov2_abz_config_t *config);

/* 设置编码器分辨率 */
void qeov2_set_resolution(QEOV2_Type *ptr, uint32_t lines);

/* 配置位置同步 */
void qeov2_position_sync(QEOV2_Type *ptr, uint32_t position);

55.3.3. PWM和波形输出相关API

/* 配置PWM输出模式 */
void qeov2_pwm_config(QEOV2_Type *ptr, qeov2_pwm_config_t *config);

/* 配置波形输出 */
void qeov2_wave_config(QEOV2_Type *ptr, qeov2_wave_config_t *config);

/* 设置相位偏移 */
void qeov2_set_phase_shift(QEOV2_Type *ptr, uint32_t phase);

55.4. 示例