JAJA940A July 2024 – July 2025 TPS25751
コールドブート(パワーサイクルまたは GAID )時に、PD コントローラはPTCHモードに移行し、パッチ準備完了[81]割り込みのみが自動的に有効になります。割り込みレジスタは、PTCHモード中に更新できます。この PBM の実装では、「パッチ準備完了」および「CMD1完了割り込み」を使用します。レジスタをポーリングする代わりに割り込みを利用する主な理由は、PD コントローラの CPU ロードをコマンドに関連するアクティビティだけに減らためすです。
パッチ準備完了割り込みは、PBMプロセスの開始時に使用され、PDコントローラの準備完了を示します。CMD1 完了割り込みは、PBMs および PBMc コマンドが完了したことを EC に通知するために使用されます。この例では、パッチがロードされた後、PDコントローラがアプリケーションモードへ遷移するまでの時間を考慮し、MODEレジスタ(0x03)のポーリング処理を引き続き含めています:APP。
PTCHおよびAPPモードは、PD コントローラの TRM に記載されています。PD コントローラ評価基板の EEPROM は無効になっている( SDA が切断されている)ため、PDコントローラはPTCHモードに遷移し、その状態を維持します。プロセス開始時のPTCHモードのチェックは必要ありませんが、完全性のために含まれています。以下は、コマンドの例で、ロジック アナライザ キャプチャの例はPTCHモードの読み取りに示しています。
[0x21]+ ACK(固有のアドレス/ Wr/A)
0x03 + ACK(レジスタ番号/A)
[0x21]+ ACK(固有のアドレス/ R/A)
0x04(バイト数)
0x50 0x54 0x43 0x48(PTCHは4ASCII文字)
CMD1 完了割り込みは、PBMsコマンドが完了したことを EC に通知するために使用されます。割り込みマスクの設定と割り込みのクリアは、それぞれレジスタ 0x16 および 0x18 で行います。1と2を参照
[0x21]+ ACK(固有のアドレス/ Wr/A)
0x16 + ACK(レジスタ番号/A)
0x0B(バイト数)
0x00 0x00 0x00 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x01 (MSB)
[0x21]+ ACK(固有のアドレス/ Wr/A)
0x18 + ACK(レジスタ番号/A)
0x0B(バイト数)
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF (MSB)
PBMs コマンドは TRM リファレンスで定義されています。この例では、PBMs のパラメータを表 4-1に記載しています。
| 説明 | 値 | コメント |
|---|---|---|
| バンドルサイズ | 0x00002C80 | セクション 5 を参照 |
| I2C バーストデータターゲットアドレス | 0x30 | 0x30、参考資料 1 を参照。 |
| タイムアウト | 0x31 | 3.1秒;参考資料1を参照 |
[0x21]+ ACK(固有のアドレス/ Wr/A)
0x09 + ACK(レジスタ番号/A)
0x06(バイト数)
0x80 0x2C 0x00 0x00 0x30 0x32(バンドルサイズ、I2Cターゲットアドレス、タイムアウト値)
PBMs コマンドを送信するには、データレジスタへの書き込みを複数回行う必要があります。この例では、レジスタ 0x08 で PBMs コマンドを書き込む前に、0x09 の値を確認します。レジスタ 0x09 の書き込みと読み取りみの間には、500us の遅延があります。
[0x21]+ ACK(固有のアドレス/ Wr/A)
0x09 + ACK(レジスタ番号/A)
[0x21]+ ACK(固有のアドレス/ R/A)
0x40(バイト数)
0x00 0x00 0x00 0x00 0x00 0x00 (誤り, DATA1 のリライト)
0x80 0x2C 0x00 0x00 0x30 0x32(正しい、CMD1の書き込みに進む)
DATA1 を確認した後、CMD1=PBMs を書き込みます。I2Ct_IRQ は、図 4-6に示すように low にアサートされます。
[0x20]+ ACK(固有のアドレス/ Wr/A)
0x08 + ACK(レジスタ番号/A)
0x04(バイト数)
0x50 0x42 0x4D 0x73(PBMsは4ASCII文字)
IRQ 信号は CMD1 完了イベントの発生を示し、CMD1 および DATA レジスタを読み取ることで PBMs コマンドの結果を確認できます。期待される結果をステップ 8 と 9 に示します。
コマンドレジスタ(0x08)は、内容がクリアされることでコマンドの正常完了を示します。単純化すると、この例では最初のビットをチェックし、PBMsコマンドの破損、またはCMD1のIRQが未完了であれば、データレジスタに不正な値がロードされたことを示します。(1)。
[0x21]+ ACK(固有のアドレス/ Wr/A)
0x08 + ACK(レジスタ番号/A)
[0x21]+ ACK(固有のアドレス/ R/A)
0x04(バイト数)
0x00 0x00 0x00 0x00
データレジスタ(0x09)は、先頭バイト PatchStartStatus がクリアされることで、パッチの成功を示します。PatchStartStatue、0x04、0x05、0x06 といったゼロ以外の値は、それぞれ無効なバンドルサイズ、ターゲットアドレス、またはタイムアウト値を示します。1 を参照してください。
[0x21]+ ACK(固有のアドレス/ Wr/A)
0x09 + ACK(レジスタ番号/A)
[0x21]+ ACK(固有のアドレス/ R/A)
0x40(バイト数)
0x00 0x00 0x00 0x00 0x30 0x31
このステップでは PMBUS 形式は使用せず、バイナリイメージの内容を PBMs コマンドの表で指定された I2C バーストデータターゲットアドレスに直接書き込みます。バースト形式は、マイコンのアーキテクチャによって影響を受けます。この場合、バーストサイズは 4KB に制限されているため、3 回の連続バースト(4095 バイト、4095 バイト、3202 バイト)が、各バースト間に 500us の遅延を挟んで PD に送信されます。最終バーストの終了時点を基準としてPBMcコマンドが送信されると、さらに 500us の遅延が追加されます。
[0x30]+ ACK(固有のアドレス/ Wr/A)
lowRegion_i2c_array[0], lowRegion_i2c_array[1]..., lowRegion_i2c_array[4094]
[0x30]+ ACK(固有のアドレス/ Wr/A)
lowRegion_i2c_array[4095], lowRegion_i2c_array[4096]..., lowRegion_i2c_array[8189]
[0x30]+ ACK(固有のアドレス/ Wr/A)
lowRegion_i2c_array[8190], lowRegion_i2c_array[8191]..., lowRegion_i2c_array[11391]
CMD1 完了割り込みは、PBMc コマンドの完了を EC に通知するために使用されます。割り込みマスクの設定と割り込みのクリアは、それぞれレジスタ 0x16 および 0x18 で行います。割り込みマスクは、ステップ 3 ですでに設定されています。図 4-4および図 4-7に示すように、割り込みを繰り返しクリアします。
PBMcコマンドには入力データは含まれないため、コマンドのみが送信されます。
[0x21]+ ACK(固有のアドレス/ Wr/A)
0x08 + ACK(レジスタ番号/A)
[0x21]+ ACK(固有のアドレス/ R/A)
0x04(バイト数)
0x50 0x42 0x4D 0x63(「PBMc」は 4ASCII 文字)
IRQ 信号は CMD1 完了イベントの発生を示し、CMD1 レジスタを読み取ることで PBMc コマンドの結果を確認できます。
PBMs CMD1と同様に、CMD1レジスタを読み取って元のコマンドがクリアされており、!CMDでないことを確認します。
20ms の遅延により、PD コントローラはイメージを読み込み、適用できます。遅延が経過すると、DATA1 およびMode レジスタが読み取られ、成功が確認されます。
この例では、DATA1 レジスタから 40 バイトが読み取ります。
最後のステップは、PD がAPP モードに移行したことを確認することです。APP モードに移行すると、PD コントローラはカスタム設定が適用された状態で動作可能になります。
[0x21]+ ACK(固有のアドレス/ Wr/A)
0x03 + ACK(レジスタ番号/A)
[0x21]+ ACK(固有のアドレス/ R/A)
0x04(バイト数)
0x41 0x50 0x50 0x20(「アプリケーション」は 4 ASCII 文字)