こんにちは、
現在、DDR ToolでPCA9450CのBUCK6出力電圧を調整しようとしていますが、問題が発生しました。
以下のコマンドをi.MX8M Plusボードに書き込み、PCA9450Cが確かにI2C1に接続されていることを確認しました:
メモリ設定 0x30330200 32 0x00000010 # I2C1_SCL MUX (SION=1)
メモリセット 0x30330204 32 0x00000010 # I2C1_SDA MUX (SION=1)
メモリセット 0x30330460 32 0x000001C6 # I2C1_SCL PAD
メモリセット 0x30330464 32 0x000001C6 # I2C1_SDA PAD
sysparam set pmic_cfg 0x004A
sysparam set pmic_set 0x1E11
.dsファイルをダウンロードした後ファイルに対して、UARTコンソールは以下のログを出力しました。
PMICはDDRスクリプトで初期化されます
I2C_I2SR(0x30a2000c):0x81
バスはまだ準備ができていません
エラー: PMIC reg[0x1e] の初期化が値[0x11]で失敗しました
オシロスコープでI2C1のSCLとSDAラインをチェックしたところ、両方のラインがプルダウンされてラッチされていることが確認できました。それらは電源を再投入した後にのみ、デフォルトのプルアップ状態に戻ります。
さらに、#sysparam コマンドをコメントアウトすると、I2Cバス上のデフォルトのPMIC初期化波形を正常に観察でき、UARTログもPCA9450が検出されたことを正しく示しています。
根本原因を突き止めました。IOMUXC_I2C1_SDA_IN_SELECT_INPUT (0x303305A4) および IOMUXC_I2C1_SCL_IN_SELECT_INPUT (0x303305A8) レジスタが設定されていません。この詳細は将来の参考のためにアプリケーションノートに添付することをお勧めします。ありがとう!"
#sysparamをコメントアウトした後、オシロスコープを使用して、i.MX8M Plus が PCA9450C に書き込むデフォルト設定をキャプチャしました。キャプチャされたシーケンスは以下のとおりです。
0x25W、0x00
0x25R、0x31
0x25W、0x0C、0x29
0x25W、0x11、0x1C
0x25W、0x12、0x14
0x25W、0x10、0x59
0x25W、0x1E、0x14
これらの調査結果に基づき、私は.dsファイルに以下のコマンドを追加しました。ファイル:
# 2. IOMUX 設定。(SION=1、ODE=1、内部プルアップ)
メモリ設定 0x30330200 32 0x00000010 # I2C1_SCL MUX (SION=1)
メモリセット 0x30330204 32 0x00000010 # I2C1_SDA MUX (SION=1)
メモリセット 0x30330460 32 0x00000176 # I2C1_SCL PAD
メモリセット 0x30330464 32 0x00000176 # I2C1_SDA PAD
sysparam set pmic_cfg 0x0025 # PMICアドレス
sysparam set pmic_set 0x0C29 # BUCK1&3を0.85Vに設定、BUCK2を0.9Vに設定
sysparam set pmic_set 0x111C # BUCK1 DVS0 = 0.95V
sysparam セット pmic_set 0x1214 # BUCK1 DVS1 = 0.85V
sysparam set pmic_set 0x1059 # BUCK1CTRL = 0x59 (PMIC_STBY_REQ を介した DVS 制御)
sysparam set pmic_set 0x1E11 # BUCK6 を 1.025V に設定
しかし、UARTコンソールはこの段階で依然として停止してしまう。以前とは少し異なり、エラーメッセージは表示されなくなり、ここで停止します。
ダウンロードが完了しました
ターゲットボードの起動を待っています...
オシロスコープでI2C1のSCL線とSDA線をチェックしたところ、動作は以前と同じで、両方の線ともプルダウンされてラッチされており、電源を入れ直した後にのみデフォルトのプルアップ状態に戻ります。
事前設定されたPMIC初期化を無効にすると、すべて手動で行う必要があります。
i.MX 93 EVKボードでは、デフォルトのPMIC I2CバスはI2C2です。
I2C 1に変更するには、適切なピンマルチプレクサを設定する必要があります。
次に、適切なコマンドを送信する必要があります。(例)
コマンドの説明:
| 件 | コマンド | バリュー | 説明 |
| 0 | pmic_cfg | 0x0025 |
I2Cバス1 (0はI2C1、1はI2C2、2はI2C3、3はI2C4…) PMICアドレス0x25 |
| 1 | pmic_set | 0x0C29 |
レジスタ=0x0C BUCKxOUT_DVS0/1 |
| 2 | pmic_set | 0x1118 |
レジスタ=0x11 BUCK1OUT_DVS0=0.9V PCA9451_BUCK1OUT_DVS0 値=0x18 |
| 3 | pmic_set | 0x1718 |
レジスタ=0x17 BUCK3OUT_DVS0=0.9V PCA9451_BUCK3OUT_DVS0 値=0x18 |
| 4 | pmic_set | 0x1428 |
レジスタ=0x14 VDDQを1.1Vに設定 PCA9451_BUCK2OUT_DVS0値=0x28 |
BUCK6の設定は、レジスタ0x1Dと0x1Eに格納されます。
お役に立てば幸いです。
ベルンハルト。
ああ、そうそう、あの有名なDAISYレジスターですね。よく気づいたね!
カスタム設定を選択した場合、すべてを手動で設定する必要があります。おっしゃる通り、ピン構成に関しては、DAISYレジスタはあまり重要視されません。UARTピン多重化設定については、標準のピン多重化設定とパッド設定に加えて、RX信号のdsに表示されます。しかし、I2Cに関してはファームウェアがバックグラウンドでデフォルト設定として処理するため、dsファイルに設定内容は表示されません。
補足として、i.MX 93の場合、I2C1とI2C2にはDAISYチェーンレジスタは存在しませんが、I2C3~8には存在します。
この詳細はツールグループにフィードバックします。この詳細は設定ツールのユーザーマニュアルの一部になるべきです。あるいは、または追加して、I2Cインターフェースの設定がdsファイルに表示されるはずです。
よろしくお願いいたします。
ベルンハルト。