请求意外BOD重置硬件解决方案

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
10个帖子/ 0新
最后一篇
古祥
离线
最后一次露面:14小时前5天
加入:2017-05-12 04:18
请求意外BOD重置硬件解决方案

嗨,对话
我们设计的板上有一个意外的BOD重置。它可能是由于硬件问题。但我们无法在PCB布局和SoC组装上找到任何明显的缺陷。你能给我们一些建议吗?附件是我们的硬件相对文件,包括PCB文件和装配照片。

设备:
mt_dialog.
离线
最后一次露面:5个月2周前
职员
加入:2015-06-08 11:34
桂翔,

桂翔,

我想这个问题与这篇文章有关https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bl..。所以这是1V8轨道上实际的BOD复位,请确认。(设备正常运行时,是否可以确认所有电压轨都测量好了,只排除了1V8轨,也可以检查BOD_STATUS_REG,以确定发生BOD的时候是由于1V8?)我已经把你的照片发给我们的专家了。hw专家的报告提到,我们不能从图片上确定装配情况。在第一次看它似乎还好,焊料在左垫似乎有点奇怪,但它不是100%证明焊接是好或坏,因为移除设备可能造成了这一点,但总的来说,它看起来不太坏。一些附加的评论设计,去耦帽是相当远的,并没有通过近地通过通道接地。你说你已经探测了1V8轨,没有发现明显的差异,能分享一下测量结果吗?一个示波器图片显示VDD 1V8和V33探头接近芯片在复位发生的那一刻。

谢谢mt_dialog.

古祥
离线
最后一次露面:14小时前5天
加入:2017-05-12 04:18
嗨,山

嗨,山
在那篇文章(https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bl..。),您说:“如果禁用DCDC(DG_CONFIGUSE_DCDC,则默认在BSP_DEFAULTS.H中启用此)并将BOD启用,您仍然能够重现该问题吗?默认情况下,在休眠模式下运行设备向DCDC运行当最终在8秒后睡觉时,如果不是那么你的问题应该是DCDC引脚GND_BUCK的地面上的装配问题。..“我们通过禁用DCDC来完成测试,发现没有BOD重置。这可以证明它不是实际的BOD重置吗?并且我们无法看到具有示波器的相对电源导轨中的任何明显的电压下降。

mt_dialog.
离线
最后一次露面:5个月2周前
职员
加入:2015-06-08 11:34
桂翔,

桂翔,

是的,你做了什么大多数可能证明了这一点,但它总是很好地检查一个问题并检查多个点才能验证问题,从你附加的图片中,HW团队无法对您的大会程序提供任何建议,并且还通过检查角镜上的电压,我向我们提供更多对问题的洞察力。

谢谢mt_dialog.

古祥
离线
最后一次露面:14小时前5天
加入:2017-05-12 04:18
嗨MT,

嗨MT,
附件是相对电源轨道式示波器图片。谢谢!

mt_dialog.
离线
最后一次露面:5个月2周前
职员
加入:2015-06-08 11:34
古兴,

古兴,

我没有看到任何错误的电压,但是呢?如果在设备重新启动时,请检查其中的任何已启用的栏杆是否在Bod_status_reg中设置为0。您应该在重置后重新启用BOD之前选中此功能,这意味着在设备重置BOD寄存器(在HW_CPM_CONFIGURE_BOD_PROTECTION()运行)之前,您必须必须在SystemInit()中的FW中的FW陷入困境能够附加并读取bod_status_reg。

谢谢mt_dialog.

古祥
离线
最后一次露面:14小时前5天
加入:2017-05-12 04:18
嗨,山

嗨,山
我将测试代码放在systeminit()函数中:
静态void system_init(void * pvparameters)
{
bodstatusregvalue1 = crg_top-> bod_status_reg;

/ *准备时钟。注意:CM_CPU_CLK_SET()和cm_sys_clk_set()只能从a调用
*任务以来,他们将暂停任务,直到XTAL16M已经解决,也许是PLL
* 被锁住了。
* /
cm_sys_clk_init(sysclk_xtal16m);// def:sysclk_xtal16m
.....

bodstatusregvalue2 = crg_top-> bod_status_reg;
OS_TASK_DELETE(OS_GET_CURRENT_TASK());
}
有时bodstatusregvalue1是0x15,有时是0x13。但BodstatusRegValue2始终为0x17。

mt_dialog.
离线
最后一次露面:5个月2周前
职员
加入:2015-06-08 11:34
检查bod_status_reg中

检查system_armcm0.c文件的systemInit()函数中的bod_status_reg,如前一篇文章中所提到的,不在system_init()函数中,在检查Bod状态寄存器的功能中,BOD已通过FW重置,因此您不会能够看到导致您重置的有效来源。检查是否通过读取该函数的状态寄存器来获得不同的BOD原因。

谢谢mt_dialog.

古祥
离线
最后一次露面:14小时前5天
加入:2017-05-12 04:18
嗨,山

嗨,山
这一次,我将代码放在SystemInit()中,然后运行hw_cpm_configure_bod_protection():
void systeminit(空白)
{
......
bodstatusregvalue1 = crg_top-> bod_status_reg;
/*
*激活BOD保护(仅适用于广告;对于Bootloader已经启用了AE)。
* /
if((dg_configuse_bod == 1)
&&(((dg_configblack_orca_ic_rev == black_orca_ic_rev_a)
&&(dg_configblack_orca_ic_step == black_orca_ic_step_d))))
||((dg_configuse_auto_chip_detection == 1)&& chip_is_ad))){
hw_cpm_activate_bod_protection_at_init();//使用BOD.
}
......
}
并且我得到了相同的结果:BodstatusRegValue1是0x13或0x15发生在BOD复位发生后。

mt_dialog.
离线
最后一次露面:5个月2周前
职员
加入:2015-06-08 11:34
古兴,

古兴,

看来你得到不同的BOD结果在每一个重置,如果是这样,那么我唯一可以假设我则表示关于组装和DCDC地面焊接(没有电压降,这就是为什么你不看到任何在示波器上,但如果降压DCDC接地管脚接地不良,则BOD将失去参考,一旦DCDC激活,BOD将立即起作用)。如前所述,从这些照片中你连接我们的hw团队不能假设如果有焊接问题,唯一的方法来检查这是使用x射线,以确定是否有任何错误的装配,也请确保你遵循组装指南中提到的以前的文章(AN-B-061 DA1468X应用硬件设计指南)。

谢谢mt_dialog.