Requesting for Unexpected BOD Reset Hardware solution

⚠️
Hi there.. thanks for coming to the forums. Exciting news! we’re now in the process of moving to our new forum platform that will offer better functionality and is contained within the main Dialog website. All posts and accounts have been migrated. We’re now accepting traffic on the new forum only - please POST any new threads at//www.xmece.com/support. We’ll be fixing bugs / optimising the searching and tagging over the coming days.
10 posts / 0 new
Last post
guxiang
Offline
Last seen:2 weeks 2 days ago
加入:2017-05-12 04:18
Requesting for Unexpected BOD Reset Hardware solution

Hi , dialog
There is an unexpected BOD reset on our designed board . And it's most probably due to a hardware problem. But we can't find any clear deficiency both on PCB layout and SOC assembly . Can you give us some advice . Attachment is our hardware relative files, including pcb file and assembly photo.

Device:
MT_dialog
Offline
Last seen:2 months 3 weeks ago
Staff
加入:2015-06-08 11:34
Hi guixiang,

Hi guixiang,

I suppose that the issue is related with this posthttps://support.dialog-semicondiondiondum/forums/post/dialog-smartbond-bl ...所以它是1V8轨道上的实际BOD,你能确认吗?(如果您可以验证所有电压轨,只能验证所有电压轨,只能排除1V8导轨,当设备正常运行时,您还可以检查BOD_STATUS_REG,以确保当BOD发生时,由于1V8,因此当BOD发生时。我把你的照片发给我们的HW专家。来自HW Expert的报告提到,我们不能从图片中排出大会。在第一个看起来好像好的,左垫上的焊料似乎有点奇怪,但它不是100%证明焊接顺利或坏,因为去除装置可能导致这个,但一般来说它不是看起来太糟糕了。关于设计的一些额外评论,解耦帽相当遥远,地面连接不是通过遥控器完成的。你提到你已经探测了1V8铁路,你没有注意到任何显着差异,你能分享测量吗?示出在复位发生的时刻显示VDD 1V8和V33的示波器图片,探测器靠近芯片。

Thanks MT_dialog

guxiang
Offline
Last seen:2 weeks 2 days ago
加入:2017-05-12 04:18
hi, MT

hi, MT
In that post(https://support.dialog-semicondiondiondum/forums/post/dialog-smartbond-bl ...) ,you said " if you disable the DCDC (dg_configUSE_DCDC, this is enabled by default in the bsp_defaults.h) and leave the BOD enabled are you still able to reproduce the issue ? By default when operating in sleep mode the device switces to DCDC when eventually goes to sleep after the 8 seconds, If not then your issue should be an assembly problem on ground of the DCDC pin GND_BUCK. .." And we have done test by disabling DCDC and found no BOD reset. Can this prove that it is not an actual BOD reset ? And we can't see any obvious voltage drop in relative power rail with oscilloscope .

MT_dialog
Offline
Last seen:2 months 3 weeks ago
Staff
加入:2015-06-08 11:34
Hi guixiang,

Hi guixiang,

Yes, what you ve done most probably proves that, but its always good to examine an issue and check multiple points in order to verify the issue, from the pictures that you have attached the hw team cannot give you any recommendations regarding your assembly procedure, and also by checking the voltages over an osciloscope my give us some more insight to the issue.

Thanks MT_dialog

guxiang
Offline
Last seen:2 weeks 2 days ago
加入:2017-05-12 04:18
Hi MT,

Hi MT,
The Attachment is relative power rail osciloscope picture. thanks!

MT_dialog
Offline
Last seen:2 months 3 weeks ago
Staff
加入:2015-06-08 11:34
Hi guxiang,

Hi guxiang,

I dont see anything wrong with the voltage, but what about the BOD_STATUS_REG, please check that and check if any of the enabled rails is set to 0 in the BOD_STATUS_REG when the device restarts. You should check this before the BOD is re-enabled after the reset, that means that you would have to trap the fw in SystemInit() in a while loop before the device resets the BOD register ( before hw_cpm_configure_bod_protection() runs) in order to be able to attach and read the BOD_STATUS_REG.

Thanks MT_dialog

guxiang
Offline
Last seen:2 weeks 2 days ago
加入:2017-05-12 04:18
嗨,太

嗨,太
I put the test code in SystemInit() function like this:
static void system_init( void *pvParameters )
{
BodStatusRegValue1 = CRG_TOP->BOD_STATUS_REG;

/ *Prepare clocks. Note: cm_cpu_clk_set() and cm_sys_clk_set() can be called only from a
* task since they will suspend the task until the XTAL16M has settled and, maybe, the PLL
* is locked.
*/
cm_sys_clk_init(sysclk_XTAL16M); // def: sysclk_XTAL16M
.....

BodStatusRegValue2 = CRG_TOP->BOD_STATUS_REG;
OS_TASK_DELETE(OS_GET_CURRENT_TASK());
}
Sometimes BodStatusRegValue1 is 0x15 , sometimes is 0x13 . But BodStatusRegValue2 is always 0x17.

MT_dialog
Offline
Last seen:2 months 3 weeks ago
Staff
加入:2015-06-08 11:34
Check the BOD_STATUS_REG in

Check the BOD_STATUS_REG in the SystemInit() function of the system_ARMCM0.c file, as mentioned in my previous post, not in the system_init() function, in the function where you check the BOD status register the BOD has allready been reset by the fw, so you wont be able to see a valid source of what caused you the reset. Check if by reading the status register at that function you get different BOD reasons.

Thanks MT_dialog

guxiang
Offline
Last seen:2 weeks 2 days ago
加入:2017-05-12 04:18
嗨,太

嗨,太
这次我在hw_cpm_configure_bod_protection()运行之前将代码放在systeminit()中:
void SystemInit(void)
{
...
BodStatusRegValue1 = CRG_TOP->BOD_STATUS_REG;
/ *
* Activate BOD protection (only for AD; for AE is already enabled by the bootloader).
*/
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(); // Use BOD
}
...
}
And I got the same result: BodStatusRegValue1 is 0x13 or 0x15 after BOD reset happened.

MT_dialog
Offline
Last seen:2 months 3 weeks ago
Staff
加入:2015-06-08 11:34
Hi guxiang,

Hi guxiang,

似乎您在每一个重置中获得不同的BOD结果,如果是这种情况,那么我唯一可以假设的是我最初说明了关于装配和DCDC接地焊接的情况(线路上没有电压下降,那就是为什么你在示波器上没有看到任何东西,但如果BUCK DCDC接地引脚的接地不好,则BOD将丢失参考,并在DCDC激活后立即采取行动)。如上所述,从您所附的图片中,我们的HW团队不能假设是否存在焊接问题,检查此问题的唯一方法是使用X射线来确定组件是否有任何错误,请确保遵循前一篇文章中提到的大会指南(AN-B-061 DA1468x Application hardware design guidelines).

Thanks MT_dialog