2391475_zh-CN

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2391475_zh-CN

2391475_zh-CN

DDR 工具发送 pmic_set 命令失败。

您好,

目前,我正在尝试在 DDR Tool 中调整 PCA9450C 的 BUCK6 输出电压,但我遇到了一个问题。

我将以下命令烧录到 i.MX8M Plus 开发板上,并确认 PCA9450C 确实已连接到 I2C1:

内存集 0x30330200 32 0x00000010 # I2C1_SCL 多路复用器 (SION=1)

内存集 0x30330204 32 0x00000010 # I2C1_SDA 多路复用器 (SION=1)

内存集 0x30330460 32 0x000001C6 # I2C1_SCL 焊盘

内存集 0x30330464 32 0x000001C6 # I2C1_SDA 焊盘

sysparam set pmic_cfg 0x004A

sysparam set pmic_set 0x1E11


下载完 .ds 文件后文件执行后,UART 控制台返回了以下日志:

PMIC 在 DDR 脚本中初始化

I2C_I2SR(0x30a2000c):0x81

总线还没准备好

错误:PMIC 寄存器[0x1e]初始化失败,值为[0x11]


用示波器检查 I2C1 SCL 和 SDA 线时,我发现两条线都被拉低并锁存。只有在断电重启后,它们才会恢复到默认的高电平状态。

此外,我已经验证,如果我注释掉 #sysparam 命令,就可以在 I2C 总线上成功观察到默认的 PMIC 初始化波形,并且 UART 日志正确地表明 PCA9450 已被检测到。



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

我找到了根本原因。IOMUXC_I2C1_SDA_IN_SELECT_INPUT (0x303305A4) 和 IOMUXC_I2C1_SCL_IN_SELECT_INPUT (0x303305A8) 寄存器未配置。我建议将这些细节添加到应用笔记中,以供将来参考。谢谢!”

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

注释掉#sysparam后,我使用示波器捕获了 i.MX8M Plus 写入 PCA9450C 的默认配置。捕获到的序列如下:

  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

基于这些发现,我将这些命令添加到了 .ds 文件中。文件:

# 2. IOMUX 配置。(SION=1,ODE=1,内部上拉)
内存集 0x30330200 32 0x00000010 # I2C1_SCL 多路复用器 (SION=1)
内存集 0x30330204 32 0x00000010 # I2C1_SDA 多路复用器 (SION=1)
内存集 0x30330460 32 0x00000176 # I2C1_SCL 焊盘
内存集 0x30330464 32 0x00000176 # I2C1_SDA PAD

sysparam set pmic_cfg 0x0025 # PMIC 地址
sysparam set pmic_set 0x0C29 # 将 BUCK1 和 BUCK3 设置为 0.85V,将 BUCK2 设置为 0.9V
sysparam set pmic_set 0x111C # BUCK1 DVS0 = 0.95V
系统参数设置 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 线时,其行为与之前相同:两条线都被拉低并锁定,只有在断电重启后才会恢复到默认的高电平状态。


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

如果禁用预配置的 PMIC 初始化,则需要手动完成所有操作。

i.MX 93 EVK板上,默认的 PMIC I2C 总线是 I2C 2。

要将其更改为 I2C 1,您需要设置正确的引脚复用:

pengyong_zhang_2-1712478553952.png

然后你需要发送正确的命令:(例如)

pengyong_zhang_0-1712478914527.png

命令说明:

数量 Command Value 说明
0 pmic_cfg 0x0025

I2C总线1

(0 代表 I2C1,1 代表 I2C2,2 代表 I2C3,3 代表 I2C4……)

PMIC 地址 0x25

1 pmic_set 0x0C29

寄存器=0x0C

BUCKxOUT_DVS0/1
预设降压电压1=0.8V,preset_buck2=0.7V,预设降压3=0.8VPCA9451_BUCK123_DVS
值=0x29

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 中。

希望对您有所帮助。
伯恩哈德。



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

哦,对了,就是著名的DAISY收银机。抓得好!

选择自定义配置时,所有设置都需要手动完成。你说得对,在引脚配置方面,DAISY 寄存器并不是重点。对于 UART 引脚复用设置,除了标准的引脚复用和焊盘设置外,它还出现在 RX 信号的 ds 中。但对于 I2C,固件会在后台进行默认配置,您在 ds 文件中看不到这些设置。

顺便提一下,对于 i.MX 93,I2C1 和 I2C2 没有 DAISY 链寄存器,但 I2C3-8 有。

我会将您的反馈意见反馈给我们的工具组,这个细节应该包含在配置工具的用户手册中。或者,或者此外,I2C 接口设置应该出现在 ds 文件中。

问候,
伯恩哈德。

Tags (1)
No ratings
Version history
Last update:
Thursday
Updated by: