学到更多常见问题解答教程

14个帖子/ 0个新
最后一篇
Martinfehre.
离线
最后一次露面:1周3天前
加入:2018-04-17 13:41
每8秒一次

嗨对话框,

我们为DA14680开发了一个定制板,每8秒经历一次BOD重置。
BOR仅在DCDC上发生。
在一个BOR事件之后,CRG_TOP->BOD_STATUS_REG寄存器读取十进制值19,有时是21。这表明1V8或1V8P导轨有问题,但我找不到原因。

DA14680处于AQFN-60封装。
此外,我们使用BLE_Peripheral示例和Lates SDK的略微修改版本(SDK_1.0.14.1081)

请在附件中找到BOR事件的跟踪。
GPIO输出的高信号如下:
1.Peak: GPIO端口在进入main()函数时设置为HIGH(端口配置为input + pull-up),之后立即设置为LOW(端口配置为input + pull-down)。
2.峰值:进入VLPTIMARCLACKBORCHING时,GPIO端口设置为高(配置为输入+上拉的端口)。它被设置为低于我猜的Bor的一部分,因为我没有手动将其设置为低电平。
3.Peak:在BOR事件之后再次调用main()函数。

如其他论坛帖子和硬件指南中所述,DCDC接地垫的正确连接很重要,并且良好的地面连接可能是原因。另一方面,您可以在QFN封装的底部看到所有接地焊盘互连。

在DA14681开发套件上没有问题,同一代码运行 - 基本。

你能给我额外的帮助吗?

关键词:
设备:
PM_DIALOG.
离线
最后一次露面:20分30秒前
职员
加入:2018-02-08 11:03
嗨Martinfehre,

嗨Martinfehre,

BOD问题最可能的原因是由于不良的接地。8秒后,芯片第一次进入休眠状态,然后开始使用DCDC。因此,接地不良(BOD ref被解除)会导致POR。请注意,680 qfn60包装需要坚实的接地垫。强烈建议在接地垫上加9个孔到接地层,一个孔靠近DCDC接地针。这个引脚是VBAT1, VBUS, VBAT2之间的接地。

谢谢,PM_DIALOG.

Martinfehre.
离线
最后一次露面:1周3天前
加入:2018-04-17 13:41
嗨pm_dialog,

嗨pm_dialog,

请看看附带的PDF。它是我们顶层格柏文件的一部分。
接地垫中有16个通孔,其中一个靠近DCDC接地存根。你有什么建议?

你能确认一下GND pads是连接在芯片上的吗?

附件:
PM_DIALOG.
离线
最后一次露面:20分30秒前
职员
加入:2018-02-08 11:03
嗨Martinfehre,

嗨Martinfehre,

根据布局,680似乎焊接到中心垫。16个通孔到地面应该足够了。我们有专用地板为块减少噪音,因此并非所有接地焊盘都应该连接在芯片上。强烈建议在PCB上提供实心地面。

谢谢,PM_DIALOG.

Martinfehre.
离线
最后一次露面:1周3天前
加入:2018-04-17 13:41
嗨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));
其他#
Dcdc -> dcdc_v14_0_reg &= ~ reg_msk (Dcdc, dcdc_v14_0_reg, dcdc_v14_fast_ramp);

Dcdc -> dcdc_v18_0_reg &= ~ reg_msk (Dcdc, dcdc_v18_0_reg, dcdc_v18_fast_ramp);

Dcdc -> dcdc_v18p_0_reg &= ~ reg_msk (Dcdc, dcdc_v18p_0_reg, dcdc_v18p_fast_ramp);

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 =注册;
#万一

如果我编译用#else编写的代码并将固件闪到DA14680,则不再发生BOR。
所以我看起来更接近并将整个东西缩小到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 =注册;

这4行防止微控制器重新启动。这些注册表设置应该是什么?

PM_DIALOG.
离线
最后一次露面:20分30秒前
职员
加入:2018-02-08 11:03
嗨Martinfehre,

嗨Martinfehre,

您发布的代码与BOD问题无关。正如我在我以前的帖子原因中提到的,因为BOD问题是因为接地不好,所以它是您的自定义PCB上的问题。您是否尝试改善PCB的糟糕接地?

谢谢,PM_DIALOG.

POINT85.
离线
最后一次露面:8个月5天前
加入:2018-06-29 15:31
我也完全相同

我也有完全相同的问题。

我们现在已经制作了两个板,8秒后仍然仍然获得BOR。

PM_DIALOG.
离线
最后一次露面:20分30秒前
职员
加入:2018-02-08 11:03
嗨point85,

嗨point85,

您可以查看您的定制董事会的接地吗?正如我在上一篇文章中提到的那样,BOD问题的最可能原因是因为接地差。

谢谢,PM_DIALOG.

POINT85.
离线
最后一次露面:8个月5天前
加入:2018-06-29 15:31
是的,我明白了

是的,我看到第一板之后,所以我们做了一秒钟。仍然收到同样的问题。
我刚刚发现使用的470nH电感不符合规格。这可能会导致同样的问题吗?

Martinfehre.
离线
最后一次露面:1周3天前
加入:2018-04-17 13:41
嗨point85,

嗨point85,

在切换到4层设计后,我们去掉了BOR。地面层现在比顶层低0.15毫米。之前是1.5毫米。

POINT85.
离线
最后一次露面:8个月5天前
加入:2018-06-29 15:31
谢谢Martinfehre。不完全的

谢谢Martinfehre。不太确定在设计上的差异。

POINT85.
离线
最后一次露面:8个月5天前
加入:2018-06-29 15:31
谢谢Martinfehre。不完全的

谢谢Martinfehre。不太确定在设计上的差异。

POINT85.
离线
最后一次露面:8个月5天前
加入:2018-06-29 15:31
我尝试了新的电感

我已经尝试过两个板上的新电感,仍然存在相同的问题。真的坚持这个。

JTL.
离线
最后一次露面:1周3小时前
加入:2018-06-15 13:14
嗨point85,

嗨point85,

答案由Martinfehre提供。4层板固定了我的BOR问题。