我有一个Digi ConnectCore6 SBC,它使用DA9063 PMIC。我已成功设置Linux内核和看门狗守护程序以使用DA9063看门狗。但是,DA9063关闭而不是重置DA9063。
我遵循了建议
https://support.dialog-semicondiondiondum/forums/post/pmic-audio-and-hapt ...
但是没有改变。有一次,我观察到DA9063看门狗按预期复位,但在下一次启动时,PMIC关机。
任何建议吗?
一个电源周期后的寄存器值被附加,这可能是从OTP加载的寄存器(假设u-boot没有改变它们)。
通过将寄存器0x11设置为0x02,我在启用看门狗时也经历了同样的行为。
设备:
你好,
你能发布你使用的完整.ini文件吗?
我猜,你是通过I2C而不是硬件触发看门狗的?
您需要将它放在文件夹中并zip zip。
亲切的问候,
艾略特
嗨,艾略特,
我是一个消费者,有一台从Digi现成的SBC,https://www.digi.com/亚博电竞菠菜products/embedded-systems/single-board-computers/connectcore-6-sbc。
linux da9063-watchdog驱动程序通过i2c触发看门狗,我观察到PMIC掉电了。因此,为了调试,我通过在uboot中直接设置TWDSCALE来启用看门狗,通过写入0x2到0x11寄存器(CONTROL_D)。4秒后看门狗超时,应该断言TWD_ERROR。现在,我预期PMIC会断电到RESET模式,然后再次上电,但我观察到PMIC断电了。我假设有一个或多个寄存器设置没有正确配置。
我认为看门狗应该是0.我试图将reset_duration增加到500ms,以确保在再次上电之前放电,但没有变化。
你好,
你能执行完整的寄存器转储吗?
我猜是PMIC断电了,而且一直断电?
你能测量VDDCORE吗?
亲切的问候,
艾略特
>你能执行一个完整的寄存器转储吗?
注册转储附加到原帖
>我把它带到了PMIC电源,仍然是powerdown?
是的
>你能衡量VDDCORE吗?
我会尽快完成。在我进行测量的同时,您可以查看寄存器吗?由于PMIC安装在由穿孔金属盒盖上的SOM上,因此可能很困难。我可以测量我认为是VDDCORE的DC-DC降压转换器的电压。
你好,
我将审查寄存器,但我不确定它是一个完整的寄存器转储。
我需要从OTP搜索。可能没有设置Autoboot,所以PMIC正在等待唤醒事件。
在VDDCORE上,此电压将告诉我们PMIC所在的状态:重置,活动,RTC ...等。它没有连接到降压,这是对内部核心电压的引用。
我将检查寄存器,但我不确定它是一个完整的寄存器转储。
我只能拿到u-boot能读取的寄存器。除了0x1A8 (PMIC_STATUS),我在数据表中记录了所有寄存器。
>我需要从OTP搜索。可能没有设置Autoboot,所以PMIC正在等待唤醒事件。
在VDDCORE上,这个电压将告诉我们PMIC处于什么状态:RESET, ACTIVE, RTC…等等。它没有连接到降压,这是对内部核心电压的引用。
你是对的。我现在可用的设备不够灵敏,不足以测量在POWER-DOWN, RESET,或RTC模式下的电流。我认为PMIC下电到RESET,上电到POWER-DOWN,然后等待一个唤醒事件。如果断言AUTO_BOOT,它应该继续启动。
我发现断言Auto_Boot或断言Tick_on(RTC将定期生成RTC勾唤醒事件)如果在重置PMIC后的第一个〜15秒内被置位或关闭寄存器在第一个〜15秒内被断言,则PMIC将上电至活动模式。如果在〜15秒后的看门狗超时,则PMIC不会进入活动模式。我假设它保持在等待唤醒事件的掉电模式。
进一步调查发出了有趣的结果。如果断言Auto_Boot或Tick_On并且通过写回读取值清除Event_A寄存器。然后通过在〜15秒内断言关闭寄存器PMIC始终从复位模式向上源于活动模式。断言迟于〜15秒,它没有。看门狗的行为相同。
是我错过了一个寄存器设置,还是这是一个bug?
你好,
因此,要查看设备是否存在哪些状态,我们不需要对当前进行系统,只是volatge。VDDCORE:0V:RTC模式或电源问题,2.2V:复位,2.5V:有效或更高的状态,2.5V +损坏核心。
我认为这取决于OTP的配置。如果你能看到装置,请把标记念给我听。
亲切的问候。
艾略特
你好,
我相信我有你正在使用的OTP,它看起来像Autoboot没有设置。因此,当看门狗超时时,设备不会在没有唤醒的情况下启动备份。
我不太明白你在15秒后断言nSHUTDOWN是什么意思。所以,如果你通过I2C进行更改,然后在15秒内按nSHUTDOWN,它的启动返回,15秒后等待唤醒?
亲切的问候,
艾略特
对不起,我不清楚。在u-boot中,我断言SHUTDOWN寄存器(0x13位1)将PMIC下电复位,因为看门狗也将PMIC下电复位。当PMIC进入RESET模式时,读取OTP寄存器并进入POWER-DOWN模式。正如您所说的,由于没有设置AUTO_BOOT, PMIC需要一个唤醒事件来继续启动。通过启用RTC标记,PMIC在设置SHUTDOWN寄存器后启动ACTIVE DOMAIN。如果从上次清除EVENT_A寄存器开始,将SHUTDOWN设置为16秒之后,如果RTC的滴答间隔是1秒,则PMIC不会启动。
通过启用RTC勾选,看门狗有效。但有时系统无法启动。GPIO7用于控制LED,根据DIGI文档电源可以点亮。LED不会点亮,在这种状态下,我已经测量了一些电压。PMIC V_SYS电源电压为5V,VDDCORE为2.5V。通过给出PMIC唤醒事件,无法唤醒系统。
PMIC上的标记是:
DA9063,56,1817ECAA
你好,
我成功复制了你看到的。
我启动了设备,然后我可以通过NSHutdown寄存器导致关闭事件,该设备通过重置并进入Poctwod并等待唤醒事件。然后我将stick_wake设置为1,tick_type设置为1,这应该导致唤醒事件在一分钟勾号上(在返回rick_on被置位的第二个)上,我然后设置tick_on。当一分钟到期时,设备靴子。
该设备现在在事件页面中设置了滴答位置。因此,当您触发关闭时,设备会通过重置并达到POLTDOW,但是已设置唤醒刻度,因此设备再次启动,因为这是其唤醒事件。
但是,如果在导致下一次关机之前清除IRQs,设备将在powerdown中等待下一次TICK事件,然后启动备份。由于TICK_WAKE被设置为一分钟,您必须等待1分钟才能过期,但是这个函数目前在RTC中以分钟工作。所以当设备断电时,RTC可能是30秒,当设备从这一点到达分钟时,它将重新启动。所以等待时间在1- 59秒之间。
亲切的问候,
艾略特
这是正确的。这是一个解决方法,用于启用PMIC的看门狗功能,其中Auto_boot未在OTP中设置,因为从重置模式到掉电时读取OTP寄存器。Tick_wake和tick_type不会从OTP读取。不幸的是,这并不总是有效。至少,当看门狗超时时,不是我的SBC。对我来说不清楚是否是DA9063或SBC的问题。
请注意,如果将Tick_Wake设置为0(每秒勾选)并在设置关闭寄存器之前等待16秒钟,则PMIC不会对RTC唤醒事件作出反应。这必须是DA9063问题。
你好,
好的,我在1分钟模式下测试设置。我在1s中重新测试了,我可以复制你所看到的东西,清除IRQ触发器在PD中陷入困境后启动。
我需要进一步调查这一点。
亲切的问候,
艾略特
你好,
抱歉耽搁了。所以我们认为这不是PMIC的问题。在16S之后的设备未自动启动是设备的正确操作,16S与VDD_Start保护有关。概述设备将出现自动启动的原因是设备在关闭后,设备还没有时间完成某些方法。
我需要更多地挖掘更多,看看我可以分享哪些其他信息。
亲切的问候,
艾略特
谢谢您的帮助!
结论如果在OTP中未设置Autoboot,则无法使用DA9032看门狗。
但是,可以启用看门狗。当看门狗计时器结束时,DA9063将下电到RESET模式,然后上电到POWER-DOWN模式,由于AUTOBOOT没有设置,它将永远等待唤醒事件。
你好,
我需要更深入看看是否有另一种方法。
在nONKEY和其他唤醒功能的访问受限/无法访问的情况下,使用看门狗可能不是最好的方法。
在此OTP GPIO5和GPIO6上有一个与GPIO状态相关的唤醒事件。
亲切的问候,
艾略特