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..
Linux DA9063-WatchDog驱动程序通过I2C触发看门狗,我观察到PMIC断电。因此,通过将0x2写入0x2至0x11寄存器(Control_D),通过将TWDSCale直接设置TWDScale来启用WatchDog。4秒后看门狗超时,应该断言TWD_ERROR。现在我预期,PMIC会掉下来重置模式并再次上电,但我观察到PMIC为下降。我假设有一个或多个未正确配置的寄存器设置。
I think WATCHDOG_PD should be 0. I tried to increase the RESET_DURATION to 500ms to ensure that all regulators are discharged before powering up again, but no change.
Hello,
你能执行完整的注册转储吗?
我把它带到了PMIC电源,仍然淘汰?
你能测量VDDCORE吗?
kind regards,
艾略特
>你能执行完整的注册转储吗?
注册转储附加到原始帖子
> I take it the PMIC power downs and remains powerdown?
是的
> Could you measure VDDCORE?
I'll do it as soon as possible. Can you review the registers while I do the measurement? It may be difficult, since the PMIC is mounted on a SOM covered by a perforated metal box. I can measure the voltage from the DC-DC step-down converter which I believe is VDDCORE.
Hello,
我将审查寄存器,但我不确定它是一个完整的寄存器转储。
I will need to search from the OTP. Potentially, Autoboot is not set, so the PMIC is waiting for a wake-up event.
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_status)中。
>我需要从OTP搜索。潜在的,未设置autoboot,因此PMIC正在等待唤醒事件。
>在VDDCORE上,此电压将告诉我们PMIC所在的状态:重置,活动,RTC ...等。它没有连接到降压,这是对内部核心电压的引用。
你是对的。我可用的设备现在不足以测量断电,复位或RTC模式中绘制的电流。我认为PMIC向下电以重置和掉电,然后等待唤醒活动。如果断言Auto_boot,它应该继续供电。
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秒后被断言的NSHutdown意味着什么。因此,如果您通过I2C制作芯片,那么在15秒内击中NSHutdown,它在15秒后开始等待唤醒?
亲切的问候,
艾略特
对不起,不清楚。在U-Boot中,我断言关闭寄存器(0x13位1),以关闭PMIC重置PMIC,因为看门狗还关闭PMIC以重置。当PMIC到达重置模式时,它会读取OTP寄存器并进入掉电模式。由于您没有设置Auto_boot,因此PMIC需要一个唤醒事件以继续供电。通过启用RTC勾选,在设置关断寄存器后,PMIC向上电向活动域。如果Shutdown在上次时间延迟后,PMIC不会启动,因为上次时间rtc刻度计间隔为1秒,所清除event_A寄存器被清除。
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.
但是,如果在引起下一个关闭之前清除IRQs,则在启动备份之前,设备将在下一个刻度事件中等待下一个刻度事件。由于Tick_wake设置了一分钟,您必须等待1分钟到期,但此功能在RTC中的分钟工作。因此,当设备到达PoLtown时,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.
I need to dig into slighly more to see if what other information i can share.
亲切的问候,
艾略特
Thanks for the help!
Conclusion is that it is not possible to use the DA9032 watchdog if AUTOBOOT is not set in OTP.
但是,可以启用看门狗。当看门狗定时器经过时,DA9063向下推动重置模式,然后向下电以供电模式,因为未设置自动传导以来,因此将永远等待唤醒事件。
Hello,
I will need to look deeper to see if there is another method.
似乎在这种情况下,有限/无权访问非key和其他唤醒功能,然后使用看门狗可能不是最好的方法。
在这个OTP GPIO5和GPIO6唤醒事件linked to the GPIO status.
亲切的问候,
艾略特