ZHCUCQ3 December 2024
图 2-5 展示了用于从增量编码器提供 4 通道位置反馈的 PRU EQEP 固件架构。PRU_EQEP 设计包括一个接口,用于连接四个包含 A、B 和 I 信号的增量编码器。这些信号通过 TXB0106RGYR 电平转换器传递,以将编码器信号电平与微控制器的逻辑电平相匹配。GPIO 配置为在信号 A 和 B 的上升沿和下降沿以及在信号 I 的上升沿触发中断。这些中断路由到 ICSSG 中的 IEP。IEP 有一个 64 位计数器,用于捕获计数器值以测量电机 RPM 和角度。PRU 内核配有任务管理器,用于配置在 PRU 中执行的多项任务。这些任务捕获计数器值,并计算电机 RPM 和角度。另外,这些任务会触发 XFR2VBUS 小工具来读取 GPIO 的状态,这些状态基本上表示用作计算基本输入的编码器信号的状态。
表 2-4 显示了 LP-AM243 侧的 4 通道 ABI 信号,这些信号是位置板上电平转换器的输出。
| 子系统 | 信号名称 | 外设 | PRU 内核 | LP-AM243 HEADER | AM243x 焊球引脚 (ALX) |
|---|---|---|---|---|---|
| PRU_EQEP CH0 |
EQEP_A_CH0 | GPIO1_20 | ICSSG0_RTU1 | BP.11 | L5 |
| EQEP_B_CH0 | GPIO1_21 | BP.67 | J2 | ||
| EQEP_I_CH0 | GPIO1_33 | BP.71 | T4 | ||
| PRU_EQEP CH3 |
EQEP_A_CH3 | GPIO1_0 | ICSSG0_PRU0 | BP.33 | J3 |
| EQEP_B_CH3 | GPIO1_1 | BP.32 | J4 | ||
| EQEP_I_CH3 | GPIO1_6 | BP.48 | H2 | ||
| PRU_EQEP CH4 |
EQEP_A_CH3 | GPIO1_2 | ICSSG0_TXPRU0 | BP.31 | G1 |
| EQEP_B_CH3 | GPIO1_3 | BP.19 | H1 | ||
| EQEP_I_CH3 | GPIO1_7 | BP.44 | E2 | ||
| PRU_EQEP CH5 |
EQEP_A_CH3 | GPIO1_4 | ICSSG0_TXPRU1 | BP.17 | K2 |
| EQEP_B_CH3 | GPIO1_5 | BP.13 | F2 | ||
| EQEP_I_CH3 | GPIO1_8 | BP.51 | H5 |
PRU_EQEP 软件包含以下内容:
EQEP_position_feedback_CH0_ICSS_G0_RTU_PRU1.hEQEP_position_feedback_CH3_ICSS_G0_PRU0.hEQEP_position_feedback_CH4_ICSS_G0_TX_PRU0.hEQEP_position_feedback_CH5_ICSS_G0_TX_PRU1.hEQEP_A 和 EQEP_B,通过 GPIO_SET_RIS_TRIG 寄存器启用上升沿触发中断,通过 GPIO_SET_FAL_TRIG 启用下降沿检测。I 信号只需要上升边沿中断,因为此信号代表每转中用作参考的单脉冲。EXT_CAP_EN[5:0] 设置为启用 GPIO 中断路由器输出的 IEP 捕获。sub_task_TS2_S0 处理速度计算。sub_task_TS2_S1 使用 XFR2VBUS 小工具处理电机角度计算。sub_task_TS2_S2 使用编码器 A 转换的精确时间戳处理 EQEP_A 信号检测。sub_task_TS2_S3 使用编码器 B 转换的精确时间戳处理 EQEP_B 信号检测。sub_task_TS2_S4 处理 EQEP_I 信号检测,以标记编码器旋转周期中的基准位置,这样可为角度值到零度提供复位点。