Dialog
我将使用我的自定义板(如您的Dev Kit)刻录我的设备的OTP。(我的项目),请您提供详细的指南,包括:
1)如何连接定制板和设备之间的引脚。
2)如何使用智能片段(我已经成功完成lly burned the image and header of the otp in custom board).
3) what is the codes/config change I have to make before burning into OTP.
4)如果我已成功刻录OTP,我还可以从闪存或EEPROM或SRAM等启动(通过JTAG下载)吗?
以上SDK5.0.
Peter Fu
设备:
嗨Achao1104,
1)请查看此论坛帖子http://support.dialog-semiconductor.com/can-you-please-provide-guides-bu...
2) You can find info about using Smart Snippets in the Smart Snippets help option User Guide.pdf.
3) It depends on what you want to do (with the OTP mostly) if for example you need to read your NVDS from your OTP or boot you should define that, as mentioned in your previous post, other than that the DEVELOPMENT_DEBUG should be set to 0 and the CFG_BOOT_FROM_OTP if you are going to use OTP. Also if you should #define the CFG_WDOG
4)如果您刻录了OTP应用程序标志(检查AN-B-001.PDF),则串行引导序列不会再执行,并且只有JTAG上的JTAG编程也是可能的。
Thanks MT_dialog
I am trying to use the Dialog Serial Port Service in a Panasonic PAN1740 based design, and whilst it all works perfectly when I download my hex file directly to RAM, it does not work when I program it into the OTP memory. Because the memory is OTP (why on earth was this ever chosen to be so), I now have 2 boards I cannot use and my concern is that I am going to continue scrapping boards until I identify what I am doing wrong.
截至目前,我发现了对话框文档优异且非常彻底,因此缺乏应用程序注意到通过编程OTP应用程序的过程似乎是一个主要的监督,特别是给出了关于类似问题的帖子数量。
我正在使用DSPS SDK的以下项目:
DA1458x_DSPS\v_5.150.2\projects\target_apps\dsps\sps_device\Keil_5
从拼接各种其他帖子,在构建OTP的代码之前,我对项目进行了以下更改:
1 da1458x_config_basic.h: "#define CFG_DEVELOPMENT_DEBUG" replaced by "// #define CFG_DEVELOPMENT_DEBUG"
2 da1458x_config_advanced: "#undef CFG_BOOT_FROM_OTP" replaced by "#define CFG_BOOT_FROM_OTP"
在SmartSnippets工具箱中使用Booter(v4.7.3.1690)我成功将十六进制文件下载到设备的RAM,并能够通过在手机上使用DSP应用程序连接到它来验证它是否正确运行。
然后,我在SmartSnippets工具箱中使用OTP程序员并成功下载了与设备相同的十六进制文件,但是无法在手机上使用DSPS应用程序检测设备。
我没有下载OTP标题或OTP NVDS,因为它不确定是否是强制性的,如果需要,那么我不确定我需要实际设置的内容。
Since the OTP image is simply loaded into RAM and run from there, why can I run the hex file directly from RAM but not when saved in the OTP?
Help!!!
Hi richard.cunliffe,
嗯,最重要的是您无法跟踪DSPS应用程序的原因是因为您没有在OTP标题中刻录应用程序标志。为了使580要意识到应用程序存在于OTP中并且它应该从中启动,您必须刻录OTP标题顶部的两个应用程序标志(只需从智能代码段“工具中选择”是“并且该工具将刻录将指示设备应该从OTP引导的魔术号码 - 请注意,如果您这样做,如果您将不再能够使用串行引导程序启动,您只能通过串行引导JTAG)。此外,您提到的两个#defines他们与OTP引导过程本身不一定。cfg_development_debug是为了删除SDK施加的任何断言,以便帮助开发人员,因此通过拒绝此操作,您可以删除所有断言,并且在深睡眠中,您还应该拒绝它,以便设备切换RAM的设备。关于CFG_BOOT_FROM_OTP只是应用程序要么直接从OTP本身读取OTP标题的配置,或者从SYSRAM读取数据(OTP标题在引导过程中传输到SYSRAM))。
Thanks MT_dialog
Hello,
I can confirm that I had set both the OTP Application flags to Yes but as I had been trying various things I decided to restart the whole process with a new device.
Having proven the firmware in RAM from within the Keil uVision IDE (first with CFG_DEVELOPMENT_DEBUG defined and then with it undefined), I then downloaded it to RAM using the Booter tool in the SmartSnippets Toolbox and again confirmed that the code ran correctly.
然后,我在SmartSnippets工具箱中使用OTP程序员将相同的十六进制文件加入OTP内存。然后我对OTP标题进行了以下更改:
1 - both Application flags set to Yes
2 - DMA length set to match the code size (later set to 0x1FC0 to specify the entire OTP image space).
Having successfully downloaded the OTP Header I then disconnected the Vpp and SWD connections and rebooted my target, but the PAN1740 does nothing (should periodically output some data on the UART and the device is not showing when I scan for Bluetooth devices).
The fact that code is only stored in OTP and is copied to RAM from where it runs, tells me that if the code runs correctly when loaded directly to RAM, then the issue with the OTP code must be to do with the header or the loading of the code from OTP to RAM, as it is EXACTLY the same code.
Are there any other Header settings that I need to set?
What does the Remapping Flag do and what should it be set to?
Is there any documentation that details all the Header fields?
Because I'm actually using a PAN1740 Bluetooth module which contains the DA14580, will some of the Header fields already have been set by the PAN1740 manufacturer? For example, the XTAL16MHz Trim Value on my device has a value of 0x5BD (1469), but the default value defined in the arch_system.h file of the SPS project code is 0x516 (1302).
我假设当直接下载代码到RAM时,使用默认的硬编码值,而不是来自OTP标题的代码,因此代码从RAM运行的事实,而不是从OTP运行,这可能表明了一些其他值的问题OTP标题?
我的大问题是我的项目目前处于原型阶段,因此我只有4个单位。迄今为止,我已经编程了3个单位的OTP内存,所有这些都不运行代码,所以现在我只剩下1个董事会尝试,所以我必须得到一个权利。
您是否可以使用我的十六进制文件测试到至少确认它不是错误的?我已将十六进制文件附加到预期您将能够这样做。
Hi Richard,
The application flags are the only things that you should set in order to boot from the OTP the OTP DMA isn't mandatory since this is mostly related with the deep sleep mode. The remmapping flag should remain in the default value (always be at SRAM and不是OTP). Regarding the OTP fields and the corresponding fields, you will be able to find information at the Smart Snippets help document (open Smart Snippets go to the help menu and open the User Guide) in the user guide under the "OTP Header Actions" paragaph. Yes some of the header fields will be burned from PANASONIC like the Unique ID field and the XTAL settings. Regarding the XTAL values that you mention the SDK will use the default trim value if the CFG_USE_DEFAULT_XTAL16M_TRIM_VALUE_IF_NOT_CALIBRATED is defined if not it will use the value from the OTP header and this is done from the bootloader and not from the SDK in that case. I ve run your example directly from SRAM and i was able to see that the device was advertising when the fw was burned in the OTP as well.
Thanks MT_dialog
Hello!
Why the remmapping flag NOT OTP?
Hi vrabo,
你是什么意思 ?在OTP副本完成后,应将0重新映射到Sysram以便开始运行您刚刚镜像的代码。
Thanks MT_dialog