ZHCUBQ4 January   2024

 

  1.   1
  2.   说明
  3.   资源
  4.   特性
  5.   应用
  6.   6
  7. 1系统说明
    1. 1.1 术语
    2. 1.2 主要系统规格
  8. 2系统概述
    1. 2.1 方框图
    2. 2.2 设计注意事项
    3. 2.3 主要产品
      1. 2.3.1 EnDAT 2.2 接口
      2. 2.3.2 SDFM 接口
      3. 2.3.3 EPWM 接口
      4. 2.3.4 ICSS-PRU IEP
      5. 2.3.5 EtherCAT CiA402 速度控制
  9. 3系统设计
  10. 4硬件、软件、测试要求和测试结果
    1. 4.1 硬件要求
    2. 4.2 软件要求
    3. 4.3 测试设置
    4. 4.4 测试结果
  11. 5设计和文档支持
    1. 5.1 设计文件
      1. 5.1.1 原理图
      2. 5.1.2 BOM
    2. 5.2 工具与软件
    3. 5.3 文档支持
    4. 5.4 支持资源
    5. 5.5 商标
  12. 6作者简介

EPWM 接口

表 2-3表 2-4 分别显示了 EPWM0-2 信号电机 1EPWM3-5 信号电机 2 数据。

表 2-3 EPWM0-2 信号电机 1
AM243x LP(引脚编号) BP 连接器 BLDC BP 信号名称
GPIO1_64(B16) J5.49 nPWM_EN_M1 DRV1 使能
GPMC0_AD8(U18) J4.36 DRV1 EPWM 高电平 C DRV1 PWM 高电平 C
GPMC0_AD9(U20) J4.35 DRV1 EPWM 低电平 C DRV1 PWM 低电平 C
GPMC0_AD5(T20) J4.38 DRV1 EPWM 高电平 B DRV1 PWM 高电平 B
GPMC0_AD6(T18) J4.37 DRV1 EPWM 低电平 B DRV1 PWM 低电平 B
GPMC0_AD3(V21) J4.40 DRV1 EPWM 高电平 A DRV1 PWM 高电平 A
GPMC0_AD4(U21) J4.39 DRV1 EPWM 低电平 A DRV1 PWM 低电平 A
表 2-4 EPWM3-5 信号电机 2
AM243x LP(引脚编号) BP 连接器 BLDC BP 信号名称
GPIO1_65(B15) J5.50 nPWM_EN_M2 DRV2 使能
FSI_TX0_CLK (P21) J8.79 DRV2 EPWM 高电平 C DRV2 PWM 高电平 C
FSI_TX0_D0(Y18) J8.80 DRV2 EPWM 低电平 C DRV2 PWM 低电平 C
TEST_LED3_RED(D1) J8.75 DRV2 EPWM 高电平 B DRV2 PWM 高电平 B
TEST_LED4_GREEN(F3) J8.76 DRV2 EPWM 低电平 B DRV2 PWM 低电平 B
TEST_LED1_GREEN(U19) J8.77 DRV2 EPWM 高电平 A DRV2 PWM 高电平 A
FSI_RX0_D1(V20) J8.78 DRV2 EPWM 低电平 A DRV2 PWM 低电平 A

EPWM 设置 (init_pwms):

  • 配置 SYNCI、SYNCO 映射以将三个 PWM 组绑定在一起
  • 由时间同步路由器 38 提供 PWM0 SYNC 信号
    • CSL_REG32_WR(CSL_TIMESYNC_EVENT_INTROUTER0_CFG_BASE + ((38 × 4) + 4), (0x10000 | 29));
  • 时间同步路由器输入 29 (ICSSG1 IEP0 SYNC0) → 时间同步路由器输出 38
  • 由时间同步路由器 39 提供 PWM3 SYNC 信号
    • CSL_REG32_WR(CSL_CTRL_MMR0_CFG0_BASE + CSL_MAIN_CTRL_MMR_CFG0_EPWM3_CTRL, (2 << CSL_MAIN_CTRL_MMR_CFG0_EPWM3_CTRL_SYNCIN_SEL_SHIFT));
  • 时间同步路由器输入 29 (ICSSG1 IEP0 SYNC0) → 时间同步路由器输出 39
    • CSL_REG32_WR(CSL_TIMESYNC_EVENT_INTROUTER0_CFG_BASE + ((39 × 4) + 4), (0x10000 | 29));
    • TIMESYNC_INTRTR0_IN_29:PRU_ICSSG1_PR1_EDC0_SYNC0_OUT_0(IEP0 同步事件 0)
    • timesync_event_introuter_out_39: epwm3_sync.input2
  • 由时间同步路由器 40 提供 PWM6 SYNC 信号
    • CSL_REG32_WR(CSL_CTRL_MMR0_CFG0_BASE + CSL_MAIN_CTRL_MMR_CFG0_EPWM6_CTRL, (2 << CSL_MAIN_CTRL_MMR_CFG0_EPWM6_CTRL_SYNCIN_SEL_SHIFT));
  • 时间同步路由器输入 29 (ICSSG1 IEP0 SYNC0) → 时间同步路由器输出 40
    • CSL_REG32_WR(CSL_TIMESYNC_EVENT_INTROUTER0_CFG_BASE + ((40 * 4) + 4), (0x10000 | 29));
    • TIMESYNC_INTRTR0_IN_29:PRU_ICSSG1_PR1_EDC0_SYNC0_OUT_0(IEP0 同步事件 0)
    • timesync_event_introuter_out_40: epwm6_sync.input2
    • 为 EPWM0 强制 SW 同步。其他 PWM 通过硬件同步菊花链进行同步
      • Epwm_tbTriggerSwSync(gEpwm0BaseAddr);
        • HW_WR_FIELD16(((gEpwm0BaseAddr + PWMSS_EPWM_OFFSET) + PWMSS_EPWM_TBCTL), PWMSS_EPWM_TBCTL_SWFSYNC, (uint16_t)PWMSS_EPWM_TBCTL_SWFSYNC_FORCE_SYNC);
  • 将 EPWM 设置为 50kHz:
    • appEpwmCfg.epwmOutFreq = gEpwmOutFreq;
    • App_epwmConfig(&appEpwmCfg, &epwm2PrdVal, &epwm2CmpAVal);

EPWM0 中断:

  • hwiPrms.intNum = EPWM0_INTR;
  • hwiPrms.callback = &App_epwmIntrISR;

EPWM0 输出数据:

  • gEpwmPrdVal