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

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

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

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

桂翔,

我想这个问题与这篇文章有关https://support.dialog semiconductor.com/forums/post/dialog-smartbond-bl。。。所以这是一个实际的生化需氧量复位在1V8的轨道,你能确认吗?(您是否也可以确认所有电压轨都已测量,并且设备正常运行时仅排除1V8轨,您还可以检查BOD\U状态\U REG,以确保发生BOD时是由于1V8?)。我已经把你的照片发给我们的硬件专家了。硬件专家的报告提到,我们不能从图片上确定装配情况。乍一看似乎还可以,左焊盘上的焊料似乎有点奇怪,但这并不是100%证明焊接进行得好或坏,因为删除设备可能会导致这一点,但总的来说,它看起来不是太糟糕。关于设计的一些补充意见,去耦帽相当远,接地连接不是通过近距离过孔完成的。你提到你已经探测了1V8的轨道,但是你没有注意到任何显著的差异,你能分享一下测量结果吗?示波器图片显示复位发生时在芯片附近探测的VDD1V8和V33。

谢谢mt_dialog.

古祥
离线
最后一次露面:6天前1周
加入: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.
离线
最后一次露面:1个月2周前
职员
加入:2015-06-08 11:34
桂翔,

桂翔,

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

谢谢mt_dialog.

古祥
离线
最后一次露面:6天前1周
加入:2017-05-12 04:18
嗨MT,

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

mt_dialog.
离线
最后一次露面:1个月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.

古祥
离线
最后一次露面:6天前1周
加入: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.
离线
最后一次露面:1个月2周前
职员
加入:2015-06-08 11:34
检查bod_status_reg中

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

谢谢mt_dialog.

古祥
离线
最后一次露面:6天前1周
加入:2017-05-12 04:18
嗨,山

嗨,山
这次我在运行hw\u cpm\u configure\u bod\u protection()之前将代码放在SystemInit()中:
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.
离线
最后一次露面:1个月2周前
职员
加入:2015-06-08 11:34
古兴,

古兴,

似乎每次复位都会得到不同的BOD结果,如果是这种情况,那么我唯一能假设的就是我最初所说的关于组件和DCDC接地焊接的内容(线路上没有电压降,这就是为什么示波器上看不到任何东西,但是,如果降压型DCDC接地引脚接地不良,则BOD将失去参考,并在DCDC激活后立即行动)。如前所述,从您所附的图片来看,我们的硬件团队无法假设是否存在焊接问题,唯一的检查方法是使用X射线来确定装配是否有任何问题,也请确保您遵循上一篇文章中提到的装配指南(AN-B-061 DA1468X应用硬件设计指南)。

谢谢mt_dialog.