嗨对话框,
we developed a custom board for the DA14680 and experience a BOD reset every 8 seconds.
BOR仅在DCDC上发生。
After a BOR event the CRG_TOP->BOD_STATUS_REG Register reads the Decimal value 19, sometimes 21. It indicates a problem with the 1V8 or 1V8P rail, but I can not find the cause.
DA14680处于AQFN-60封装。
此外,我们使用BLE_Peripheral示例和Lates SDK的略微修改版本(SDK_1.0.14.1081)
Please find attached a trace of the BOR event.
GPIO输出的高信号如下:
1. Peak: The GPIO Port is set HIGH (port configured as input + pull-up) on entering the main() function and set immediately afterward to LOW (port configured as input + pull-down).
2.峰值:进入VLPTIMARCLACKBORCHING时,GPIO端口设置为高(配置为输入+上拉的端口)。它被设置为低于我猜的Bor的一部分,因为我没有手动将其设置为低电平。
3. Peak: The main() function got called again after the BOR event.
如其他论坛帖子和硬件指南中所述,DCDC接地垫的正确连接很重要,并且良好的地面连接可能是原因。另一方面,您可以在QFN封装的底部看到所有接地焊盘互连。
在DA14681开发套件上没有问题,同一代码运行 - 基本。
你能给我额外的帮助吗?
嗨Martinfehre,
BOD的问题是贝科最可能的原因use of bad grounding. After 8 sec, the chip goes to sleep the first time, and will then start to use the DCDC. So, POR is caused when grounding is bad (BOD ref is lifted). Be aware that the 680 qfn60 package needs solid ground of ground pad. It is strongly recommended to apply about 9 vias in ground pad to ground layer and one via close to the DCDC buck ground pin. This pin is the ground between VBAT1, VBUS, VBAT2.
谢谢,PM_DIALOG.
嗨pm_dialog,
请看看附带的PDF。它是我们顶层格柏文件的一部分。
接地垫中有16个通孔,其中一个靠近DCDC接地存根。你有什么建议?
Can you confirm that the GND pads are connected together on the chip?
嗨Martinfehre,
根据布局,680似乎焊接到中心垫。16个通孔到地面应该足够了。我们有专用地板为块减少噪音,因此并非所有接地焊盘都应该连接在芯片上。强烈建议在PCB上提供实心地面。
谢谢,PM_DIALOG.
嗨pm_dialog,
我仍在寻找BOR问题,迄今为止,该论坛的支持并不是有用。您基本上重复了在硬件设计指南中写的内容。
要仔细检查是否是我的PCB的布局问题,我的一位同事设计了第二个PCB - 结果是相同的。
我们还尝试使用不同的模板厚度和垫切口,以确保GND焊盘正确连接。焊接过程明显更好,但它没有解决鲍尔问题。
最终我开始怀疑鲍尔是由于差的接地。所以我潜入源代码。在阅读数据表之后,调试和测试我在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,DCDC_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,DCDC_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,DCDC_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,DCDC_VDD_0_REG,DCDC_VDD_FAST_RAMPING));
#else
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;
#万一
If I compiled the code written in #else and flashed the firmware to the DA14680, the BOR no longer occurred.
所以我看起来更接近并将整个东西缩小到4行:
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;
这4行防止微控制器重新启动。这些注册表设置应该是什么?
嗨Martinfehre,
您发布的代码与BOD问题无关。正如我在我以前的帖子原因中提到的,因为BOD问题是因为接地不好,所以它是您的自定义PCB上的问题。您是否尝试改善PCB的糟糕接地?
谢谢,PM_DIALOG.
我也有完全相同的问题。
我们现在已经制作了两个板,8秒后仍然仍然获得BOR。
嗨point85,
您可以查看您的定制董事会的接地吗?正如我在上一篇文章中提到的那样,BOD问题的最可能原因是因为接地差。
谢谢,PM_DIALOG.
是的,我看到第一板之后,所以我们做了一秒钟。仍然收到同样的问题。
I have just discovered the 470nH inductor used does not meet the specification. Would this be likely to cause the same problem?
嗨point85,
we got rid of the BOR after switching to a 4 layer design. The ground layer is now 0.15 mm under the top layer. Before it was 1.5mm.
谢谢Martinfehre。不太确定在设计上的差异。
谢谢Martinfehre。不太确定在设计上的差异。
我已经尝试过两个板上的新电感,仍然存在相同的问题。真的坚持这个。
嗨point85,
答案由Martinfehre提供。4层板固定了我的BOR问题。