你好,
I am trying to program (upload firmware onto) my DA14580 chip using OTP via SmartSnippets, and I am getting this error:
Additional error info at address 0x81FEC (MSB first): FF FF FF FE
内存刻录失败。
I have read in the other forums the same issue, but I have addressed the possible solutions provided and I'm still getting the error (and I have the latest version of SmartSnippets).
一些可能有助于排除故障的更多信息:我正在使用基本开发工具包JTAG connection。我试过用Keil测试固件。检测到ARM CORTEX-M软件,我可以运行该程序,但我无法用手机检测到BLE设备。我知道代码工作,我的连接是正确的,因为我尝试过这个前几个月,它工作,但它只是不会再检测。
I have checked the voltage at TP2, where I have soldered a wire to interface with a connector, and it measures 6.6V (not 6.8V). Could this be the issue? Should it be 6.8V exactly? If not, any ideas what it could be?
另外,是否有一个头引脚连接,使我可以校准晶体?我已将它连接到我的MCU中的P0.5,但我无法将它连接到dev.kit板上的这个引脚,因为它被我的Tx线占用。有别的选择吗?
事先谢谢你的帮助。
嗨,哈桑,
谢谢你的在线提问
你提到“我试过用Keil测试固件。检测到ARM CORTEX-M软件,我可以运行程序,但我无法用手机检测到BLE设备。”
Can you please run your code in debug mode? It’s little bit weird that you are not able to detect your device. I would advise you to ensure that the code is running correctly, and the chips is advertising. Regarding the advertising, you could use the Power profiler of SmartSnippets toolbox.
In general, you should follow the procedure below in order to burn the OPT.
您应该从SmartSnippets工具箱(建议使用最新版本)中选择OTP程序员。
The OTP Header area, where flags and specific values that define the operation of the device are placed (more information regarding the values of the OTP Header can be found in the Smart Snippets User guide).
When the user tries to burn the OTP he have to make sure that the programming voltage is clean and must not exceed 6.8V. Also the 6.8V can only be applied to VPP after the VBAT3V is supplied and must be removed from VPP before the VBAT3V is removed, otherwise the chip could be damaged.
In order to burn the OTP with the most common configuration please follow the below instructions:
注意:如果应用程序标志被烧录并且JTAG enable标志被禁用,那么设备将变得不可访问。
请记住,OTP代表一次性可编程,因此不能多次擦除和重新写入OTP,但只能翻转仍设置为0的位并将其转换为1。
谢谢,下午好
嗨,管理员,
Thanks for your prompt, detailed, and instructive feedback. It's great support and much appreciated.
我想谈谈你的观点:
I am running my code in debug mode. I start a debug session, it starts fine, then I select Run and it runs, without encountering an error and stopping, until I stop it myself. So the actual software runs without issues, but I just can't detect it for some reason.
至于解决方案中关于使用SmartSnippets工具箱上载OTP的第二部分,我按顺序完成了以下步骤,但这就是我收到的上面提到的错误的原因:
Additional error info at address 0x81FEC (MSB first): FF FF FF FE
内存刻录失败。
所以在你的脚下。3,我不能烧录图像,因为我得到这个错误。
您认为这与TP2提供的电压(目前为6.6伏)有关吗?如果是这样,这是否也会导致设备在尝试使用Keil进行调试时不显示?
当我用Keil调试的时候,我需要给Vpp加上这个电压吗?或者我只需要在实际上传固件到OTP时才需要这个连接?
Thanks.
嗨,哈桑,
“我正在调试模式下运行代码。我启动一个调试会话,它启动正常,然后我选择Run,它运行,不会遇到错误并停止,直到我自己停止它。因此,实际的软件运行没有问题,但我只是因为某种原因无法检测到它。”
Can you please use the Power Profiler of SmartSnippets toolbox in order to ensure that the device start advertising correctly? Are you trying to run any of the SDK example, or you have developed a custom application? Then, I would suggest you to run the ble_app_barebone example of the SDK (as it is provided, without any modifications). Is the DA14580 advertising correctly? Are you able to detect it in the NLE mobile application?
关于如何编程OTP的问题,我建议您首先确保固件功能齐全,然后再编程OTP,您不能多次擦除和重新写入OTP,但只能翻转仍设置为0的位并将其转换为1。
正如我之前的回答中提到的,您应该确保编程电压是干净的,并且不得超过6.8V。此外,6.8V只能在提供VBAT3V之后应用于VPP,并且必须在卸下VBAT3V之前从VPP中卸下,否则可能会损坏芯片。根据数据表,对于OTP编程,VPP=6.7 V± 应使用0.1 V。
当我用Keil调试的时候,我需要给Vpp加上这个电压吗?
When downloading the firmware through Keil, the System-RAM is burnt and the device boots from there.To do so, there is no need for supplying Vpp.
我只需要在实际上传固件到OTP时才需要这个连接吗?
当固件完全正常工作时,您需要此设置,并且您希望烧录OTP。
谢谢,下午好