Hi Dialog,
我们为DA14680开发了一块定制板,并每8秒体验BOD重置。
The BOR only occurs with DCDC on.
在BOR事件之后,CRG_TOP-> BOD_STATUS_REG寄存器读取十进制值19,有时21.它表示1V8或1V8P轨道的问题,但我找不到原因。
The DA14680 is in a aQFN-60 package.
Additionally we use a slightly modified version of the ble_peripheral example and the lates SDK (SDK_1.0.14.1081)
请附上一系列BOR活动。
The HIGH-Signal of the GPIO output is as follows:
1.峰值:在进入main()函数时,GPIO端口设置为高(端口配置为输入+上拉),然后将后方设置为低电平(配置为输入+下拉的端口)。
2. Peak: The GPIO Port is set HIGH (port configured as input + pull-up) on entering the vLPTimerCallback() function. It is set to LOW as part of the BOR I guess, because i did not set it to low manually.
3.峰值:BOR事件后再次调用Main()函数。
As stated in other forum posts and in the hardware guide a proper connection of the DCDC ground pad is important and a bad ground connection could be the cause. On the other hand you can see at the bottom side of the QFN package that all ground pads are interconnected.
Also the same code runs without issue on the DA14681 Development Kit - Basic.
Could you please give me additional help?
Hi martinfehre,
BOD问题的最可能原因是因为糟糕的接地。8秒后,芯片第一次睡觉,然后将开始使用DCDC。因此,当接地坏(BOD REF被提升)时,POR是引起的。请注意,680 QFN60封装需要实木的地板。强烈建议在接地垫中施加约9个通孔,并通过靠近DCDC降压接地销。该引脚是VBAT1,VBUS,VBAT2之间的地面。
Thanks, PM_Dialog
Hi PM_Dialog,
please have a look at the pdf attached. It is a section of our top layer gerber file.
There are 16 vias in the ground pad with one near the DCDC ground stub. Do you have any recommendations?
您能否确认GND PAD在芯片上连接在一起?
Hi martinfehre,
According to the layout, the 680 seems to be well soldered to the center pad. The 16 vias to ground should be enough. We have dedicated ground pad for the blocks to reduce the noise, so not all ground pads should be connected on chip. It is strongly recommended to provide a solid ground on your PCB.
Thanks, PM_Dialog
Hi PM_Dialog,
I’m still searching for the BOR issue and the support in this forum has not been helpful thus far. You are basically repeating what’s written in the hardware design guide.
To double check if it is a layout problem of my PCB, a colleague of mine designed a second PCB - the results are the same.
We also experimented with different stencil thicknesses and pad cutouts to make sure the GND pads are properly connected. The soldering process is noticeably better, but it did not solve the BOR problem.
Eventually I began to doubt that the BOR is due to poor grounding. So I dived in the source code. After hours of reading the data sheet, debugging and testing I found this code in hw_cpm_dcdc_config(void):
#if dg_configBLACK_ORCA_IC_REV == BLACK_ORCA_IC_REV_A
DCDC->DCDC_V14_0_REG &= ~(REG_MSK(DCDC, DCDC_V14_0_REG, DCDC_V14_CUR_LIM_MIN) |
REG_MSK (DCDC,以便决定C_V14_0_REG, DCDC_V14_FAST_RAMPING));
dcdc-> dcdc_v18_0_reg&=〜(reg_msk(dcdc,dcdc_v18_0_reg,dcdc_v18_cur_lim_min)|
REG_MSK (DCDC,以便决定C_V18_0_REG, DCDC_V18_FAST_RAMPING));
dcdc-> dcdc_v18p_0_reg&=〜(reg_msk(dcdc,dcdc_v18p_0_reg,dcdc_v18p_cur_lim_min)|
REG_MSK (DCDC,以便决定C_V18P_0_REG, DCDC_V18P_FAST_RAMPING));
dcdc-> dcdc_vdd_0_reg&=〜(reg_msk(dcdc,dcdc_vdd_0_reg,dcdc_vdd_cur_lim_min)|
REG_MSK (DCDC,以便决定C_VDD_0_REG, DCDC_VDD_FAST_RAMPING));
#其他
dcdc-> dcdc_v14_0_reg&=〜reg_msk(dcdc,dcdc_v14_0_reg,dcdc_v14_fast_ramping);
dcdc-> dcdc_v18_0_reg&=〜reg_msk(dcdc,dcdc_v18_0_reg,dcdc_v18_fast_ramping);
dcdc-> dcdc_v18p_0_reg&= reg_msk(dcdc,dcdc_v18p_0_reg,dcdc_v18p_fast_ramping);
DCDC->DCDC_VDD_0_REG &= ~REG_MSK(DCDC, DCDC_VDD_0_REG, DCDC_VDD_FAST_RAMPING);
reg = dcdc-> dcdc_ctrl_2_reg;
REG_SET_FIELD(DCDC,DCDC_CTRL_2_REG,DCDC_LSSUP_TRIM,REG,0);
REG_SET_FIELD(DCDC, DCDC_CTRL_2_REG, DCDC_HSGND_TRIM, reg, 0);
dcdc-> dcdc_ctrl_2_reg = reg;
#endif
如果我编译在#else中写入的代码并将固件闪烁到DA14680,则不再发生BOR。
So I looked closer and narrowed the whole thing to 4 lines:
reg = dcdc-> dcdc_ctrl_2_reg;
REG_SET_FIELD(DCDC,DCDC_CTRL_2_REG,DCDC_LSSUP_TRIM,REG,0);
REG_SET_FIELD(DCDC, DCDC_CTRL_2_REG, DCDC_HSGND_TRIM, reg, 0);
dcdc-> dcdc_ctrl_2_reg = reg;
These 4 lines prevent the microcontroller from restarting. What are these registry settings supposed do?
Hi martinfehre,
The code that you have posted is not related with the BOD issue. As I have already mentioned in my previous post reason for the BOD issue is because of bad grounding, so it is an issue on your custom PCB. Did you try to improve the bad grounding on your PCB?
Thanks, PM_Dialog
I too have exactly the same problem.
We have now made two boards and are still getting BOR after 8 seconds.
Hi point85,
Could you please check the grounding of your custom board? As I mentioned in a previous post, the most possible reason for the BOD issue is because of bad grounding.
Thanks, PM_Dialog
Yes I see that after the first board, so we made a second. Still receiving the same problem.
我刚发现了470nh电感器不符合规格。这可能会造成同样的问题吗?
Hi point85,
在切换到4层设计后,我们摆脱了BOR。地层现在在顶层下面0.15毫米。在它是1.5毫米之前。
Thanks Martinfehre. Not quite sure what difference that would make on the design though.
Thanks Martinfehre. Not quite sure what difference that would make on the design though.
I have tried the new inductor on both boards and still have the same problem. Really stuck with this one.
Hi point85,
the answer is given by martinfehre. The 4 layer board fixed my BOR problem.