13个帖子/ 0新
Last post
auzzz
Offline
Last seen:3个月3周前
Joined:2016-06-20 10:43
Program halted unexpectedly for DA14681

Hi Dialog,
We developed a dev board of minimum DA14681 system, based on BASIC DevKit.
我们在基本开发套件上正确运行的代码,只需定期打印“Hello World”到COM端口。
但是当我将图像下载到自己的设计板时,代码只运行短时间,10秒后,程序停止。我们建立了5个Dev板,所有这些都会显示相同的错误。

Development environment:
1.SmartSnippets Studio v1.2.3.588.
2. SDK DA1468x_sdk_btle_v_1.0.6.968
3. External flash Winbond W25Q16DWSSIG QSPI 16Mbit
4.演示项目:PXP_Reporter

My question is what might cause this issue? Thanks

设备:
MT_dialog
Offline
Last seen:2 months 4 weeks ago
Staff
Joined:2015-06-08 11:34
嗨Auzzz,

嗨Auzzz,

probelm的描述非常通用,我看不到问题是通过提供的信息,您必须附加调试器才能检查代码停止的位置,这可能会给我们一个发生的事情你的定制hw。

Thanks MT_dialog

auzzz
Offline
Last seen:3个月3周前
Joined:2016-06-20 10:43
嗨mt_dialog,

嗨mt_dialog,
We found that the issue is caused by serial port. Default voltage level of DA14681 Devkit USART1 Tx is low level. USB to TTL chip which we are using is CH340, its default Tx is high level.
不同的电压电平可能导致系统崩溃,通过拆下调试器的TX,系统可以正常运行。
我的问题是为什么DA14681的RX会导致崩溃?我们是否必须找到一个具有与DA14681相同的默认电压电平的调试器?

auzzz
Offline
Last seen:3个月3周前
Joined:2016-06-20 10:43
我们使用硬币电池作为主要

我们使用硬币电池作为主要power while debugger gives a 3.3v voltage level. Different ref. voltage may cause the problem.

特克克
Offline
Last seen:1 year 1 week ago
Joined:2016-12-08 09:21
hi,

hi,
It seems that we meeting the same problem, we also designe our own board , and i download the pxp reporter of SDK 1.0.6.After about 8 seconds ,it reset ,and then reset again in the next 8 sceond over and over again...

MT_dialog
Offline
Last seen:2 months 4 weeks ago
Staff
Joined:2015-06-08 11:34
嗨Auzzz,金麦,

嗨Auzzz,金麦,

I dont think that the UART has something to do with what you experience, i trust that something else is wrong and what you are mentioning are just side effects caused by another issue. Some information, which package you are using, what is your soldering profile, and what is the thickness of your stencil on your custom hw ?

Thanks MT_dialog

特克克
Offline
Last seen:1 year 1 week ago
Joined:2016-12-08 09:21
嗨mt_dialog.

嗨mt_dialog.
I think there is something wrong with my board, when I use the demo project pxp reporter which I don't do any change to it .it works well in the development kit. when i download to my own board ,and use the +Vbat and -Vbat for supply,it reset again and again every 8s. But it works well when i offer the 5V to the Vbus or just keep the system's power in pm_mode_active.

SDK:da1468x_sdk_btle_v_1.0.6.968
SmartSnippets Studio Version: 1.2.3.588
Test project :DA1468x_SDK_BTLE_v_1.0.6.968\DA1468x_SDK_BTLE_v_1.0.6.968\projects\dk_apps\demos\pxp_reporter

auzzz
Offline
Last seen:3个月3周前
Joined:2016-06-20 10:43
嗨金麦,

嗨金麦,
Did you use UART to debug?

嗨mt_dialog,
We use AQFN package, follow the dev kit circuit diagram. This issue can be reproduced on DA14681-01A9DEVKT-B only when CR2032 is power source.

特克克
Offline
Last seen:1 year 1 week ago
Joined:2016-12-08 09:21
hi auzzz,

hi auzzz,
我使用UART调试,我只在任务中打印。如果打印在中断的回调中,可能会导致我认为的一些问题。

auzzz
Offline
Last seen:3个月3周前
Joined:2016-06-20 10:43
尝试在调试器中分离TX和

尝试在调试器中分离TX和check if resetting disappears.

MT_dialog
Offline
Last seen:2 months 4 weeks ago
Staff
Joined:2015-06-08 11:34
Hi Kingwheat,Auzzz,

Hi Kingwheat,Auzzz,

As far as i can tell what you are expericing has to do with the soldering of the grounding on your custom PCB's. Since after 8 to 10 seconds both of the boards are stalling most probably that is because the BOD kicks in and resets your boards as soon as the DCDC is activated. After 8 seconds the system changes from the LDO's to the DCDC supply, when the system runs on the LDO's the only reason to get a BOD reset is by having an actual voltage drop, when the system runs on the DCDC a BOD event might be triggered especially if the DCDC GND pin or the central GND pad has soldering issues. In order to check this you can disable the BOD by #define dg_configUSE_BOD (0), this will disable the reset (the issue still remains just in order to test if this is the actual problem). Also, you can try to press the SoC on the PCB or reheat the solder in case this improves what you are experiencing that will also verify that you have soldering issues.

另外要检查这是您的问题,您可以执行以下操作以检查BOD_VREF。在任何情况下,这应该准确到515mV,方差小于50mV。

因此,在开始任何新任务之前,在system_init()中添加以下代码将BoD_VREF导出为P1_7

//Export BOF_REF to P1_7
REG_SETF(GPIO, TEST_CTRL5_REG, TEST_BOD_VREF_OUT, 1); // Map BOD reference buffer output to testbus
REG_SETF(ANAMISC, ANA_TEST_REG, ACORE_TESTBUS_EN, 1); // Enable analog-testbus in ACORE
REG_SETF(GPIO,TEST_CTRL2_REG,ANA_TESTMUX_CTRL,0x3);//选择焊盘中的模拟测试空间
hw_gpio_set_pin_function(HW_GPIO_PORT_1, HW_GPIO_PIN_7, HW_GPIO_MODE_OUTPUT, HW_GPIO_FUNC_ADC); // Set to P1.7 to ADC/open mode

Keep the BOD disabled, so it wont kick in by adding the #define db_configUSE_BOD (0) in the custom_config_qspi.h file and disable the sleep mode.

为了在示波器上看到这一点,您将不得不隔离电源以避免噪音,并在电池上运行笔记本电脑以将其与可通过地注入噪声的设备隔离,因此非常小心。

关于你可以复制它basic kit, i am not able to see something like this on my setup, i ve downloaded run and used the UART with the proximity reporter and the multilink demo running on a cr2032 battery with the 1.0.6 SDK.

Thanks MT_dialog

特克克
Offline
Last seen:1 year 1 week ago
Joined:2016-12-08 09:21
hi, MT_dialog

hi, MT_dialog
Thank you very much for answer our question.
在测试之前,项目的配置是#define dg_configuse_bod(1),然后打开睡眠模式,它将重置
I have the test for that,
firstly, #define dg_configUSE_BOD (0), and turn off the sleep mode, it runs well.
其次,#define dg_configuse_bod(0),然后打开睡眠模式,它将重置。
正如它所示,我发现复位相对于电力模式分布得多。

There is another problem i meet when i use the hardwear IIC.
我操作如下所示的IIC写函数:AD_I2C_WRITE();阅读:AD_I2C_TRANSACT(DEV,REG_ADDR,1,REG_DATA,CNT);
如果我关闭BLE堆栈,它会很好。如果没有,则某些事件可能会打扰IIC接口。
我很困惑,因为我用了硬件IIC,在我操作读取或写作功能后,我可以让我的CPU在完成迁移后做另一件事,因为他们会给我一个回调......在这种情况下,如何使用漏洞事件效果硬件IIC?有时iic会错过回调,让我的任务留在块中..

MT_dialog
Offline
Last seen:2 months 4 weeks ago
Staff
Joined:2015-06-08 11:34
嗨金麦,

嗨金麦,

如果您发现以前的响应帮助,请将答案标记为已接受,请不要回复答案与线程的主题无关的额外问题,如果您想问一个新的问题,您可以始终创建一个新的线程。

Regarding your question, i am not sure i get it right, all i understand is that you are missing interrupts. In general the BLE interrupt has a higher priority from any other interrupts but that doesn't mean that you will miss the I2C interrupts. What could be happening is that your I2C interrupts occur the same time with the ble critical section, when the BLE is going to sleep, that has a Critical section that disables the interrupts for about 600us and perhaps this is where your program stalls.

还要对您所指的回调何时完成操作完成,您将提及使用同步函数AD_I2C_TRANSACT()和AD_I2C_WRITE()而不是异步相应的函数AD_I2C_ASYNC_TRANACT()这些功能将回调作为参数和不会等待完成操作,并且在操作结束时将调用相应的回调。

Thansk MT_dialog