⚠️
Hi there.. thanks for coming to the forums. Exciting news! we’re now in the process of moving to our new forum platform that will offer better functionality and is contained within the main Dialog website. All posts and accounts have been migrated. We’re now accepting traffic on the new forum only - please POST any new threads at//www.wsdof.com/support. We’ll be fixing bugs / optimising the searching and tagging over the coming days.
4 posts / 0 new
Last post
MarkDsylva_2277
Offline
Last seen:1 week 6 days ago
加入:2019-06-19 04:20
OTP programming failure

Dear Sir,

I followed the below step mentioned even then i am getting memory write error.

"

Please refer Table 258: Recommended Operating Conditions in the DA14580 datasheet. The supply voltage on VPP pin during the OTP programming should be 6.6V – 6.8V. Can you please double check that you have the correct voltage supply on VPP pin? You need to ensure that the supply voltage on VPP pin during the OTP programming is within 6.6V – 6.8V. The supply voltage during programming should be clean and must not exceed 6.8V. Moreover, 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 addition, keep in mind that jumper should be placed into header J3 for enabling the VPP in the Pro-DK.

Regarding the connections, I can clarify that you are using the correct:

  1. J4 - Pin 1 (VBAT_580) - > Vcc of the custom board.
  2. J4 - Pin 25 (TMS) - > SWDIO pin of custom board.
  3. J4 - Pin 27 (TCK) - > SW_CLK pin of custom board.
  4. TP2 -> to the Vpp of the custom board (if OTP needs to be programmed).
  5. J4 - Pin 2 (GND) - > to the ground of the custom board.

Let me kindly remind you the procedure you should follow in order to burn the OTP through SmartSnippets Toolbox. As far as I remember, you had posted a similar ticket before:

  1. 的OTP wh有3个区域ere the user can burn data:
  2. The OTP image area, where the user code is placed and mirrors to the sysram at boot.
  3. The OTP NVDS area, where the NVDS structure is populated with the OTP at boot.

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).

为了燃烧的OTP最常见的配置iguration please follow the below instructions:

  1. Open Smart Snippets either via JTAG or UART and hit open.
  2. From the tool bar button choose the OTP programmer in order to open 3 different tabs, one for each OTP area.
  3. Choose the OTP image tab and on the left tab browse to the .hex file you would like to burn and hit Burn.
  4. As soon as the last step is complete you will have burned your custom's board OTP. Some additional configurations are required in order for your device to boot from it.

  1. Go to the OTP Header tab.
  2. Change both of the application flags to YES (this is required in order to start the booting from OTP, when one does that the primary bootloader is disabled - scan of the peripherals for valid image, the user can reprogram his board using JTAG only).
  3. Hit the burn Button in order to burn the configuration to the OTP Header.
  4. The above steps are enough in order for the user to program the OTP

OTP stands for One Time Programmable, thus you can’t erase and re-write the OTP multiple times, but you can only flip the bits that are still set to 0 and turn them to 1. So you can change the JTAG enable flag as you described in you thread, but since you configure it as 1, you will NOT be able to change it again. When the OTP is burned and the application flags on the OTP header are also burned, the primary bootloader is disabled so the scanning procedure doesn't take place, thus you will not be able to boot from the SPI or UART or I2C. You will be able to directly burn your SystemRAM though JTAG as long as the OTP header field called JTAG enable flag stays Enabled. If the application flags are burned and the JTAG enable flag is Disabled then the device becomes inaccessible.

On the firmware side, you should ensure that the CFG_DEVELOPMENT_DEBUG macro in da1458x_config_basic.h is undefined. The specific flag just adds some breakpoints in order for the developer to identify any problems, if you downloaded the image as is this shouldn't occur. You can also define CFG_BOOT_FROM_OTP macro in da1458x_stack_config,h, but it is not mandatory. If this macro is defined, the OTP header data are read from SysRAM and they copied by bootrom code. Otherwise the OTP Header data are read from OTP memory.

In conclusion, before burning the OTP, you should make sure that your firmware is fully functional."

Kindly provide me proper solution.

Best Regards,

Mark

Attachment:
Device:
PM_Dialog
Offline
Last seen:4 hours 38 min ago
Staff
加入:2018-02-08 11:03
嗨MarkDsylva_2277,

嗨MarkDsylva_2277,

We have discussed in previous forum threads regarding how to burn the OTP and you are following the correct steps. If you open the OTP programmer thought the SmartSnippets toolbox, are you able to connect and read the contents of the OTP and OTP header? Those errors occur only when trying to burn the OTP? Also, are you using JTAG or UART to connect with the tool. In the meanwhile, I would suggest you to download the latest version of the SmartSnippets toolbox from our support website. Have you tried to download FW directly to System-RAM thought Keil IDE? If yes, is the device advertising correctly?

Thanks, PM_Dialog

MarkDsylva_2277
Offline
Last seen:1 week 6 days ago
加入:2019-06-19 04:20
Hi PM_Dialog,

Hi PM_Dialog,

My issuse got solved after I used the latest smart snippets and latest Segger drivers. Thanks.

Mark

PM_Dialog
Offline
Last seen:4 hours 38 min ago
Staff
加入:2018-02-08 11:03
Hi Mark,

Hi Mark,

Glad that you figured your issue out with the latest version of SmartSnippets toolbox.

Thanks, PM_Dialog