JAJU921 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 信号モーター 1 および EPWM3-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 High C DRV1 PWM High C
GPMC0_AD9(U20) J4.35 DRV1 EPWM Low C DRV1 PWM Low C
GPMC0_AD5(T20) J4.38 DRV1 EPWM High B DRV1 PWM High B
GPMC0_AD6(T18) J4.37 DRV1 EPWM Low B DRV1 PWM Low B
GPMC0_AD3(V21) J4.40 DRV1 EPWM High A DRV1 PWM High A
GPMC0_AD4(U21) J4.39 DRV1 EPWM Low A DRV1 PWM Low 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 High C DRV2 PWM High C
FSI_TX0_D0(Y18) J8.80 DRV2 EPWM Low C DRV2 PWM Low C
TEST_LED3_RED(D1) J8.75 DRV2 EPWM High B DRV2 PWM High B
TEST_LED4_GREEN(F3) J8.76 DRV2 EPWM Low B DRV2 PWM Low B
TEST_LED1_GREEN(U19) J8.77 DRV2 EPWM High A DRV2 PWM High A
FSI_RX0_D1(V20) J8.78 DRV2 EPWM Low A DRV2 PWM Low A

EPWM 設定 (init_pwms):

  • 3 つの PWM グループを結合するように SYNCI、SYNCO のマッピングを構成します。
  • 時間同期ルータ 38 から PWM0 を同期
    • CSL_REG32_WR(CSL_TIMESYNC_EVENT_INTROUTER0_CFG_BASE + ((38 × 4) + 4), (0x10000 | 29));
  • 時間同期ルータ入力 29 (ICSSG1 IEP0 SYNC0) → 時間同期ルータ出力 38
  • 時間同期ルータ 39 から PWM3 を同期
    • 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 を同期
    • 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
    • SW を強制的に EPWM0 に同期します。ハードウェア同期のデイジー チェーンにより他の 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