I have a Digi ConnectCore6 SBC, which uses the DA9063 PMIC. I have successfully set up Linux kernel and watchdog daemon to use the DA9063 watchdog. However, the DA9063 powers off instead of resetting the DA9063.
我的建议
https://support.dialog-semiconductor.com/forums/post/pmic-audio-and-hapt...
但没有变化。有一次我观察到DA9063看门狗确实按预期重置了,但是在下一次引导期间PMIC掉电了。
有什么建议吗?
一个电源周期后的寄存器值被附加,这可能是从OTP加载的寄存器(假设u-boot没有改变任何一个)。
通过将寄存器0x11设置为0x02从启用看门狗时,我也经历了相同的行为。
设备:
Hello,
Could you post the full .ini file you are using?
我想,你是通过I2C而不是硬件触发看门狗?
You will need to put it in a folder and zip it.
谨致问候,
艾略特
你好,艾略特,
我是一名消费者,拥有Digi现成的SBC,https://www.digi.com/雷电竞官网登录products/embedded-systems/single-board-computers/connectcore-6-sbc.
linuxda9063看门狗驱动程序正在通过i2c触发看门狗,我观察到PMIC已经关机。为了调试,我在uboot中直接设置TWDSCALE,将0x2写入0x11寄存器(CONTROL\ud),从而启用了看门狗。4秒后,看门狗超时,应断言TWD\ U错误。现在,我预计PMIC将关闭到重置模式并再次通电,但我观察到PMIC关闭。我假设有一个或多个寄存器设置没有正确配置。
我觉得看门狗应该是0。我试着将重置时间增加到500毫秒,以确保所有调节器在再次通电前都已放电,但没有改变。
Hello,
你能执行一个完整的寄存器转储吗?
我想是PMIC掉电了吗?
你能测量一下VDDCORE吗?
kind regards,
艾略特
>你能执行一个完整的寄存器转储吗?
附加到原始邮件的寄存器转储
>我想是PMIC掉电了吗?
是的
> Could you measure VDDCORE?
我会尽快做的。我测量时你能检查一下寄存器吗?这可能很困难,因为PMIC安装在由穿孔金属盒覆盖的SOM上。我可以测量DC-DC降压转换器的电压,我相信这是VDDCORE。
Hello,
我会检查寄存器,但我不确定这是一个完整的寄存器转储。
我需要从检察官办公室搜索。可能没有设置Autoboot,因此PMIC正在等待唤醒事件。
On the VDDCORE, this voltage will tell us what state the PMIC is in: RESET, ACTIVE, RTC...etc. it is not connect to the bucks, this is the referance for the internal core voltage.
>我会检查寄存器,但我不确定这是一个完整的寄存器转储。
我只能得到u-boot可以读取的寄存器。我在数据表中记录了除0x1A8(PMIC\u状态)之外的所有寄存器。
>我需要从检察官办公室搜索。可能没有设置Autoboot,因此PMIC正在等待唤醒事件。
>在VDDCORE上,这个电压将告诉我们PMIC处于什么状态:复位、激活、RTC…等等。它没有连接到buck,这是内部核心电压的参考。
你是对的。我现在可用的设备不够灵敏,无法测量掉电、复位或RTC模式下的电流。我认为PMIC会断电复位,然后再断电,然后等待唤醒事件。如果自动启动被断言,它应该继续通电。
I found that asserting AUTO_BOOT or asserting TICK_ON (RTC will periodically generate a RTC Tick wakeup event) the PMIC is powered up to ACTIVE mode if watchdog times out or the SHUTDOWN register is asserted within the first ~15 seconds after resetting the PMIC. If watchdog times out after ~15 seconds, the PMIC doesn't enter ACTIVE mode. I assume it stays in POWER-DOWN mode waiting for a wakeup event.
Further investigation gave interesting results. If AUTO_BOOT or TICK_ON is asserted and the EVENT_A registers are cleared by writing back the read value. Then by asserting SHUTDOWN register within ~15 seconds the PMIC always powers up from RESET mode to ACTIVE mode. Asserting SHUTDOWN later than ~15 seconds, it does not. Same behavior for the watchdog.
我是缺少一个寄存器设置,还是这是一个错误?
Hello,
So to see if which state the device is in, we do not need to meaure the current, just the volatge. VDDCORE: 0V:RTC Mode or power supply issue, 2.2V: RESET, 2.5V:Active or higher state, 2.5V+ damage core.
我认为这取决于OTP的配置。如果你能看到这个装置,请把标记读给我听。
谨致问候。
艾略特
Hello,
我相信我有你正在使用的OTP,而且看起来Autoboot没有设置。因此,当看门狗超时时,如果没有唤醒,设备将无法启动备份。
我不太明白你所说的15秒后停止是什么意思。所以,如果你通过I2C进行切换,然后在15秒内按下nSHUTDOWN,它会重新启动,15秒后是等待唤醒?
谨致问候,
艾略特
抱歉说不清楚。在u-boot中,我断言关闭寄存器(0x13位1)关闭PMIC以复位,因为看门狗也关闭PMIC以复位。当PMIC达到复位模式时,它读取OTP寄存器并进入掉电模式。正如您所说,由于没有设置自动启动,PMIC需要一个唤醒事件来继续通电。通过启用RTC tick,PMIC在设置关闭寄存器后将通电到活动域。如果自上次清除事件寄存器后的16秒之后设置关机,并且RTC勾选间隔为1秒,则PMIC不会通电。
By enabling the RTC tick, the watchdog works. But sometimes the system doesn't boot. The GPIO7 is used to control a LED, which is lit when power is OK according to Digi documentation. The LED is not lit, and I have measured some voltages when in this state. The PMIC V_SYS supply voltage is 5V, and VDDCORE is 2.5V. It is not possible to wake up the system by giving the PMIC a ONKEY wakeup event.
The markings on the PMIC is:
DA9063, 56, 1817ECAA
Hello,
我成功地复制了你所看到的。
I start up the device, i can then cause a shutdown event via the nSHUTDOWN register, the device goes through a reset and into POWERDOWN and waits for a wake-up event. I then have TICK_WAKE set to 1 and TICK_TYPE set to 1, this should cause a wake-up event on a minute tick(on the minute not on the second in which the TICK_ON is asserted), i then set TICK_ON. When the minute expires, the device boots.
The device now has the TICK bit set in the events page. So, when you trigger a shutdown, the device goes through the reset and reaches powerdown, however the wake-up TICK has already been set, so the device boots again as this is its wake-up event.
但是,如果在导致下一次关机之前清除IRQ,设备将在关机时等待下一个勾号事件,然后再重新启动。由于设置了一分钟的TICK\u WAKE,您必须等待1分钟才能过期,但是此函数在RTC中当前的一分钟内工作。因此,当设备断电时,RTC可能会开启30秒,当设备达到从这一点开始的分钟数时,它将重新启动。所以你有1-59秒的等待时间。
谨致问候,
艾略特
这是正确的。这是一个workaround for enabling the watchdog functionality for a PMIC where AUTO_BOOT is not set in OTP, since OTP registers are read when going from RESET mode to POWER-DOWN. TICK_WAKE and TICK_TYPE are not read from OTP. Unfortunately, this doesn't always work. At least, not for my SBC when the watchdog times out. Not clear for me whether it is an issue with DA9063 or the SBC.
Note that, if you set TICK_WAKE to 0 (tick every second) and wait more than 16 seconds before setting SHUTDOWN register, the PMIC doesn't react to the RTC wake-up event. This must be a DA9063 issue.
Hello,
Ok, i was testing the set-up in 1 minute mode. I have retested in 1s and i can replicate what you are seeing, clearing the IRQ triggers the start-up after it gets stuck in PD.
I need to investigate this further.
谨致问候,
艾略特
Hello,
Sorry for the delay. So we do not think this is an issue with the PMIC. The device not autobooting after 16s is the correct operation of the device, the 16s is related to the VDD_START protection. The reason why the device would appear to autoboot initnally is that the device has not had time to complete it certain opertions before the shutdown has been toggled.
我需要更深入地研究,看看我还能分享什么信息。
谨致问候,
艾略特
谢谢你的帮助!
结论是,如果OTP中没有设置AUTOBOOT,就不可能使用DA9032看门狗。
但是,可以启用看门狗。当看门狗定时器消失时,DA9063断电至复位模式,然后通电至断电模式,由于未设置自动启动,因此它将永远等待唤醒事件。
Hello,
I will need to look deeper to see if there is another method.
在这种情况下,如果无法访问非键和其他唤醒功能,那么使用看门狗可能不是最好的方法。
在这个OTP上,GPIO5和GPIO6有一个与GPIO状态相关联的唤醒事件。
谨致问候,
艾略特