2391475_en-US

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

2391475_en-US

2391475_en-US

Failed to send the pmic_set command in the DDR Tool.

Hi,

Currently, I am trying to adjust the BUCK6 output voltage of the PCA9450C in the DDR Tool, but I have run into an issue.

I flashed the following commands onto the i.MX8M Plus board and confirmed that the PCA9450C is indeed connected to I2C1:

memory set 0x30330200 32 0x00000010 # I2C1_SCL MUX (SION=1)

memory set 0x30330204 32 0x00000010 # I2C1_SDA MUX (SION=1)

memory set 0x30330460 32 0x000001C6 # I2C1_SCL PAD

memory set 0x30330464 32 0x000001C6 # I2C1_SDA PAD

sysparam set pmic_cfg 0x004A

sysparam set pmic_set 0x1E11


After downloading the .ds file, the UART console responded with the following logs:

PMIC is initialized in DDR script

I2C_I2SR(0x30a2000c):0x81

bus is not ready

Error: PMIC reg[0x1e] initilaization failed with value[0x11]


When checking the I2C1 SCL and SDA lines with an oscilloscope, I observed that both lines are pulled low and latched. They only return to their default pulled-high state after a power cycle.

Furthermore, I have verified that if I comment out the #sysparam commands, I can successfully observe the default PMIC initialization waveforms on the I2C bus, and the UART log correctly indicates that the PCA9450 has been detected.



Re: Failed to send the pmic_set command in the DDR Tool.

I have found the root cause. The IOMUXC_I2C1_SDA_IN_SELECT_INPUT (0x303305A4) and IOMUXC_I2C1_SCL_IN_SELECT_INPUT (0x303305A8) registers were not configured. I suggest adding this details to the application note for future reference. Thanks!"

Re: Failed to send the pmic_set command in the DDR Tool.

After commenting out #sysparam I used an oscilloscope to capture the default configurations that the i.MX8M Plus writes to the PCA9450C. The captured sequence is as follows:

  1. 0x25W, 0x00

  2. 0x25R, 0x31

  3. 0x25W, 0x0C, 0x29

  4. 0x25W, 0x11, 0x1C

  5. 0x25W, 0x12, 0x14

  6. 0x25W, 0x10, 0x59

  7. 0x25W, 0x1E, 0x14

Based on these findings, I appended these commands to the .ds file:

# 2. IOMUX config. (SION=1, ODE=1, internal pull up)
memory set 0x30330200 32 0x00000010 # I2C1_SCL MUX (SION=1)
memory set 0x30330204 32 0x00000010 # I2C1_SDA MUX (SION=1)
memory set 0x30330460 32 0x00000176 # I2C1_SCL PAD
memory set 0x30330464 32 0x00000176 # I2C1_SDA PAD

sysparam set pmic_cfg 0x0025 # PMIC address
sysparam set pmic_set 0x0C29 # BUCK1&3 set to 0.85V, BUCK2 set to 0.9V
sysparam set pmic_set 0x111C # BUCK1 DVS0 = 0.95V
sysparam set pmic_set 0x1214 # BUCK1 DVS1 = 0.85V
sysparam set pmic_set 0x1059 # BUCK1CTRL = 0x59 (DVS control through PMIC_STBY_REQ)
sysparam set pmic_set 0x1E11 # BUCK6 set to 1.025V

However, the UART console still gets stuck at this stage. Slightly different from before, it no longer throws any error messages, and just stops here:

Download is complete
Waiting for the target board boot...

When checking the I2C1 SCL and SDA lines with an oscilloscope, the behavior remains the same as before: both lines are pulled low and latched, and they only return to their default pulled-high state after a power cycle.


Re: Failed to send the pmic_set command in the DDR Tool.

If you disable the pre-configured PMIC initialisation, you need to do everything by hand.

On the i.MX 93 EVK board, the default PMIC I2C Bus is I2C2.

To change it to I2C1, you need to set the right pinmux:

pengyong_zhang_2-1712478553952.png

Then you need to send the right commands: (example)

pengyong_zhang_0-1712478914527.png

Explanation of the commands:

# Command Value Description
0 pmic_cfg 0x0025

I2C bus 1

(0 for I2C1, 1 for I2C2, 2 for I2C3, 3 for I2c4 …)

PMIC address 0x25

1 pmic_set 0x0C29

register=0x0C

BUCKxOUT_DVS0/1
preset_buck1=0.8V, preset_buck2=0.7V, preset_buck3=0.8V PCA9451_BUCK123_DVS
value=0x29

2 pmic_set 0x1118

register=0x11

BUCK1OUT_DVS0=0.9V PCA9451_BUCK1OUT_DVS0 value=0x18

3 pmic_set 0x1718

register=0x17

BUCK3OUT_DVS0=0.9V PCA9451_BUCK3OUT_DVS0 value=0x18

4 pmic_set 0x1428

register=0x14

Set VDDQ to 1.1V PCA9451_BUCK2OUT_DVS0 value=0x28


BUCK6 settings would be in registers 0x1D and 0x1E.

Hope it helps,
Bernhard.



Re: Failed to send the pmic_set command in the DDR Tool.

Oh yes, the famous DAISY register. Good catch! 

When a custom configuration is selected, EVERYTHING needs to be set by hand. And you're right, the DAISY registers are not really in the focus when it comes to pin configurations. For the UART pin mux settings it appears in the ds for the RX signal, besides the  standard pin mux and pad settings. But for I2C the firmware is doing it as a default configuration in the background, you don't see the settings in the ds file.

As a side note, for the i.MX 93, the DAISY chain register does not exist for I2C1 and I2C2, but it does for I2C3-8.

I feed you input back into our tool group, this detail should be part of the User's Manual for the Config Tool. Alternatively, or in addition, the I2C interface settings should appear in the ds file.

Regards,
Bernhard.

タグ(1)
評価なし
バージョン履歴
最終更新日:
木曜日
更新者: