JAJZ026B April   2024  – February 2025 TMS320F28P550SG , TMS320F28P550SJ , TMS320F28P559SG-Q1 , TMS320F28P559SJ-Q1

 

  1.   1
  2.   TMS320F28003x Real-Time MCUs Silicon Errata シリコン リビジョン 0
  3. 1使用上の注意およびアドバイザリ マトリックス
    1. 1.1 使用上の注意マトリックス
    2. 1.2 アドバイザリ マトリックス
  4. 2命名法、パッケージのマーキングとリビジョンの識別
    1. 2.1 デバイスおよび開発ツールの命名規則
    2. 2.2 サポート対象デバイス
    3. 2.3 パッケージの記号表記およびリビジョンの識別
  5. 3シリコン リビジョン A の使用上の注意とアドバイザリ
    1. 3.1 シリコン リビジョン A の使用上の注記
      1. 3.1.1 PIE:双方向 PIEACK 書き込みと手動 CPU 割り込みマスク クリア後のスプリアス ネスト割り込み
      2. 3.1.2 ネストされた割り込みを使用する場合は注意
      3. 3.1.3 セキュリティ:プライマリ防御層はチップの境界を保護します。これは、JTAGLOCK およびフラッシュからのゼロ ピン ブート機能を有効化することから始まります
    2. 3.2 シリコン リビジョン A のアドバイザリ
      1.      アドバイザリ
      2.      アドバイザリ
      3.      アドバイザリ
      4.      アドバイザリ
      5.      アドバイザリ
      6. 3.2.1 アドバイザリ
      7.      アドバイザリ
      8. 3.2.2 アドバイザリ
      9.      アドバイザリ
      10. 3.2.3 アドバイザリ
      11.      アドバイザリ
      12.      アドバイザリ
      13. 3.2.4 アドバイザリ
      14.      アドバイザリ
      15.      アドバイザリ
      16.      アドバイザリ
      17.      アドバイザリ
      18.      アドバイザリ
  6. 4シリコン リビジョン 0 の使用上の注意とアドバイザリ
    1. 4.1 シリコン リビジョン 0 の使用上の注記
    2. 4.2 シリコン リビジョン 0 のアドバイザリ
      1.      アドバイザリ
      2.      アドバイザリ
      3.      アドバイザリ
      4.      アドバイザリ
      5. 4.2.1 アドバイザリ
  7. 5ドキュメントのサポート
  8. 6商標
  9. 7改訂履歴

アドバイザリ

GPIO:オープン ドレイン構成による短い High パルスを駆動する可能性

影響を受けるリビジョン

0, A

詳細

各 GPIO は、GPxODR レジスタを使用してオープン ドレイン モードに設定できます。ただし、内部デバイスのタイミングの問題により、GPIO が高インピーダンス状態への遷移中、または高インピーダンス状態からの遷移中に最大 0 ~ 10ns の間、ロジック High を駆動することがあります。

この望ましくない High レベルにより、他のドライバが同時に低レベルを駆動している場合、GPIO がライン上の別のオープンドレイン ドライバと競合する可能性があります。この競合は、両方のデバイスにストレスを加え、信号に短時間の中間電圧レベルが生じるため、望ましくありません。レシーバ ロジックにこの短いパルスをフィルタリングするのに十分なロジック フィルタリングがない場合、この中間電圧レベルは誤って高レベルと解釈される可能性があります。

回避方法

競合が問題となる場合、GPIO のオープンドレイン機能を使用せず、ソフトウェアでオープン ドレイン モードをエミュレートします。オープン ドレイン エミュレーションは、GPIO データ (GPxDAT) を静的 0 に設定し、GPIO 方向ビット (GPxDIR) をトグルして、駆動を Low にして有効 / 無効にすることにより実現できます。実装例については、以下のコードを参照してください。

           
void main(void)
{ ...
  
  // GPIO configuration
     EALLOW;                               // disable pullup
     GpioCtrlRegs.GPxPUD.bit.GPIOx = 1;    // disable open-drain mode
     GpioCtrlRegs.GPxODR.bit.GPIOx = 0;    // set GPIO to drive static 0 before
                                           // enabling output
     GpioDataRegs.GPxCLEAR.bit.GPIOx = 1;
     EDIS;
  ...
  
  // application code
  ...
  
  // To drive 0, set GPIO direction as output
     GpioCtrlRegs.GPxDIR.bit.GPIOx = 1;
  
  // To tri-state the GPIO(logic 1),set GPIO as input
     GpioCtrlRegs.GPxDIR.bit.GPIOx = 0;
}