我有一个Digi ConnectCore6 SBC,它使用DA9063 PMIC。我已经成功设置Linux内核和看门狗守护进程使用DA9063看门狗。但是,DA9063会下电而不是复位。
我听从了这个建议
https://support.dialog-semiconductor.com/forums/post/pmic-audio-and-hapt..。
但没有变化。有一次我观察到DA9063看门狗确实按预期重置,但在下一步启动期间PMIC向下通电。
任何建议吗?
附加电源周期后的寄存器值,这可能是从OTP加载的寄存器(假设U-Boot不改变它们)。
通过将寄存器0x11设置为0x02,我遇到了相同的行为。
设备:
你好,
你可以发布你正在使用的完整的。ini文件吗?
我接受它,你正在通过i2c触发看门狗而不是硬件?
您需要将其放入一个文件夹并压缩它。
亲切的问候,
艾略特
嗨艾略特,
我是一个消费者,来自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为下降。我假设有一个或多个未正确配置的寄存器设置。
我认为WATCHDOG_PD应该是0。我试图将RESET_DURATION增加到500ms,以确保在再次通电之前所有调节器都被释放,但没有变化。
你好,
你能执行完整的注册转储吗?
我把它带到了PMIC电源,仍然淘汰?
你能测量VDDCORE吗?
亲切的问候,
艾略特
>你能执行完整的注册转储吗?
注册转储附加到原始帖子
我把它的PMIC断电并保持断电?
是的
你能测量VDDCORE吗?
我会尽快做的。我测量的时候,你能检查一下登记册吗?这可能是困难的,因为PMIC是安装在SOM覆盖一个穿孔金属盒。我可以测量电压从DC-DC降压转换器,我认为是VDDCORE。
你好,
我将审查寄存器,但我不确定它是一个完整的寄存器转储。
我需要从OTP搜索。可能没有设置自动引导,所以PMIC正在等待唤醒事件。
在VDDCORE上,这个电压将告诉我们PMIC处于什么状态:RESET, ACTIVE, RTC…等等。它不是连接到buck,这是内部核心电压的参考。
>我将审查寄存器,但我不确定它是一个完整的注册转储。
我只能获取U-Boot可以读取的寄存器。我在数据表中记录了所有寄存器,以便在0x1a8(pmic_status)中。
>我将需要从OTP搜索。可能没有设置自动引导,所以PMIC正在等待唤醒事件。
>在VDDCORE上,此电压将告诉我们PMIC所在的状态:重置,活动,RTC ...等。它不是连接到buck,这是内部核心电压的参考。
你是对的。我可用的设备现在不足以测量断电,复位或RTC模式中绘制的电流。我认为PMIC向下电以重置和掉电,然后等待唤醒活动。如果断言Auto_boot,它应该继续供电。
我发现断言AUTO_BOOT或断言TICK_ON (RTC会定期生成一个RTC Tick唤醒事件)如果看门狗超时或SHUTDOWN寄存器在重置PMIC后的第一个~15秒内被断言,PMIC上电到ACTIVE模式。如果看门狗超时后~15秒,PMIC不进入ACTIVE模式。我假设它保持在POWER-DOWN模式,等待一个唤醒事件。
进一步的调查得出了有趣的结果。如果断言AUTO_BOOT或TICK_ON,并且通过写回读值来清除EVENT_A寄存器。然后通过在~15秒内断言SHUTDOWN寄存器,PMIC总是从RESET模式上电到ACTIVE模式。在~15秒之后才断言SHUTDOWN,则没有。看门狗也是这样。
我缺少注册设置,还是这是一个错误?
你好,
所以要看设备是否处于哪个状态,我们不需要测量电流,只需要测量电压。VDDCORE: 0V:RTC模式或电源问题,2.2V: RESET, 2.5V:有源或更高状态,2.5V+损坏核心。
我认为这是指向OTP的配置。如果您可以看到设备,请阅读我的标记。
亲切的问候。
艾略特
你好,
我相信我有你正在使用的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寄存器被清除。
通过启用RTC滴答,看门狗工作。但有时系统无法启动。GPIO7用于控制LED,根据Digi文档,当电源正常时LED就会亮起来。LED是不亮的,在这种状态下我测量了一些电压。PMIC V_SYS电源电压为5V, VDDCORE电源电压为2.5V。不可能通过给PMIC一个ONKEY唤醒事件来唤醒系统。
PMIC上的标记为:
56岁的DA9063 1817 ecaa
你好,
我已经设法复制了你所看到的东西。
我启动设备,然后我可以通过nSHUTDOWN寄存器引起关机事件,设备通过重置进入POWERDOWN,并等待唤醒事件。然后我将TICK_WAKE设置为1,并将TICK_TYPE设置为1,这应该会在每分钟触发一个唤醒事件(在断言TICK_ON的那一分钟而不是第二分钟),然后我设置TICK_ON。当该分钟到期时,设备将启动。
设备现在在事件页面中设置了TICK位。因此,当您触发关机时,设备将通过重置并进入下电状态,但是唤醒TICK已经被设置,所以设备将再次启动,因为这是它的唤醒事件。
但是,如果在引起下一个关闭之前清除IRQs,则在启动备份之前,设备将在下一个刻度事件中等待下一个刻度事件。由于Tick_wake设置了一分钟,您必须等待1分钟到期,但此功能在RTC中的分钟工作。因此,当设备到达PoLtown时,RTC可以在30秒上,当设备从此时到达这一点时,它将重新启动。所以你的等待时间在1-59秒之间。
亲切的问候,
艾略特
这是正确的。这是在OTP中没有设置AUTO_BOOT的PMIC中启用看门狗功能的一个变通方法,因为当从RESET模式到POWER-DOWN模式时读取OTP寄存器。TICK_WAKE和TICK_TYPE没有从OTP读取。不幸的是,这并不总是有效的。至少,当看门狗超时时,我的SBC不会。我不清楚是DA9063的问题还是SBC的问题。
注意,如果您将TICK_WAKE设置为0(每秒钟滴答一次),并且在设置SHUTDOWN寄存器之前等待超过16秒,PMIC不会对RTC唤醒事件作出反应。这一定是DA9063的问题。
你好,
好的,我在1分钟模式下测试设置。我已经在1s内重新测试,我可以复制你所看到的,清除IRQ会在它卡在PD后触发启动。
我需要进一步调查。
亲切的问候,
艾略特
你好,
对不起,耽误了。所以我们不认为这是PMIC的问题。16秒后设备不自动启动是设备的正确操作,16秒与VDD_START保护有关。设备会自动启动的原因是,在关机之前,设备没有时间完成某些操作。
我得再深入调查一下看看还有什么信息可以分享。
亲切的问候,
艾略特
谢谢你的帮助!
结论是,如果在OTP中没有设置AUTOBOOT,就不可能使用DA9032看门狗。
但是,可以启用看门狗。当看门狗定时器经过时,DA9063向下推动重置模式,然后向下电以供电模式,因为未设置自动传导以来,因此将永远等待唤醒事件。
你好,
我需要更深入地研究,看看是否有其他方法。
似乎在这种情况下,有限/无权访问非key和其他唤醒功能,然后使用看门狗可能不是最好的方法。
在这个OTP上,GPIO5和GPIO6有一个连接到GPIO状态的唤醒事件。
亲切的问候,
艾略特