Failed downloading firmware file to the board

⚠️
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.xmece.com/support. We’ll be fixing bugs / optimising the searching and tagging over the coming days.
4 posts / 0 new
Last post
Alex-Elektron
Offline
Last seen:10 months 3 weeks ago
Joined:2019-09-14 10:09
Failed downloading firmware file to the board

Hello! I tried programming da14580 with the codeless_580_v5.380.5.4.0.hex file. I set the jumpers on the board, like here:

http://lpccs-docs.dialog-semiconductor.com/da1458x_codeless/howToUse.htm...(Basic).

When I click Download, I see the following data in the logger:

[INFO Booter @19-12-17 14:36:58] Read 31964 bytes from file C:\Users\User\Downloads\codeless_580_v5.380.5.4.0.hex_ (1)\codeless_580_v5.380.5.4.0.hex.
[INFO Booter @19-12-17 14:36:58] Connection to COM10 port has successfully opened.
[INFO Booter @19-12-17 14:36:58] Started download procedure...
[ACTION Booter @19-12-17 14:36:59] Please press the hardware reset button on the board to start the download process.
[ERROR Booter @19-12-17 14:37:14] Timeout: Reset signal not detected for more than 16000 msecs.
[INFO Booter @19-12-17 14:37:14] Successfully disconnected from port COM10.
[ERROR Booter @19-12-17 14:37:14] Failed downloading firmware file to the board.

当我按下复位按钮,什么也不会发生。What's wrong? If it possible, can we solve it by my registred e-mail? I need decision ASAP. We can public results of our conversation later.

P.S. Thisi is data from J-Link commander:

DLL version V6.40, compiled Oct 26 2018 15:06:02

Connecting to J-Link via USB...O.K.
Firmware: J-Link OB-SAM3U128 V1 compiled Aug 27 2013 15:22:27
Hardware version: V1.00
S/N: 480063755
VTref=3.300V

Type "connect" to establish a target connection, '?' for help
J-Link>rconf
Total size of config area: 0x100 bytes

00000000 = 00 01 FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000010 = FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000020 = FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000030 = FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000040 = FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000050 = 00 FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF
00000060 = FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000070 = FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000080 = FF FF FF FF FF FF FF FF 01 01 FF FF FF FF FF FF
00000090 = FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
000000A0 = FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
000000B0 = FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
000000C0 = FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
000000D0 = FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
000000E0 = FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
000000F0 = FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
J-Link>

Device:
PM_Dialog
Offline
Last seen:1 week 20 hours ago
Staff
Joined:2018-02-08 11:03
Hi Alex-Elektron,

Hi Alex-Elektron,

Is it the replacement Basic DK that we recently sent you? I would suggest you to use Keil IDE in order to download the CodeLess firmware directly to the System-RAM. Have you tried it with CodeLess or any with our SDK examples?

As a first step, I would recommend you to open wit Keil any of our SDK examples, for instance please open the ble_app_barebone example and build it. Then, try to download FW into the System-RAM through Keil and check if the device is advertising. If this succeeds, then you can open the CodeLess project with Keil IDE, build it and download FW.

Thanks, PM_Dialog

Alex-Elektron
Offline
Last seen:10 months 3 weeks ago
Joined:2019-09-14 10:09
Yes, this is the replacement

Yes, this is the replacement board. Thanks vor advice! I successfully programmed DA14580 through Keil.

I have few questions:

1. For OTP programming do I need only to connect 6.8V to VPP and make the same actions as ror SRAM-programming?

2. How can I remap USART from P0_4, P0_5 to P0_4, P0_7? May be have you got any manual for codeless SDK?

3. There is any internal RTC clock in DA14580? Or may be I can exclude external RTC from codeless project for normal work?

PM_Dialog
Offline
Last seen:1 week 20 hours ago
Staff
Joined:2018-02-08 11:03
Hi Alex,

Hi Alex,

Apologies for the delay and happy new year.

Question 1:

Let me share some extra clarifications and steps regarding the OTP. 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. 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.

The OTP has 3 areas where the user can burn data:

  1. The OTP image area, where the user code is placed and mirrors to the sysram at boot.
  2. The OTP NVDS area, where the NVDS structure is populated with the OTP at boot.
  3. 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).

In order to burn the OTP with the most common configuration 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.
  5. Go to the OTP Header tab.
  6. 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).
  7. Hit the burn Button in order to burn the configuration to the OTP Header.

Keep in mind that 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. 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.

Question 2:

If I understood correctly what you are asking, you should change the UART GPIO in the user_periph_setup.h header file.

Question 3:

DA14580 does not contain a Real-Time-Clock, so you should use an external RTC. Our newest Smartbond device named DA14531 includes a Real-Time-Clock.

Generally, if you are starting a new design, we would strongly recommend to move into DA14531 or DA14585/586 products and SDK6.0.12, as it is much more improved. We have a lot of code examples and improved documentation, and there is also software roadmap support. There is not any software roadmap support for DA14580 product family and SDK5.

//www.xmece.com/products/connectivity/bluetooth-low-energy/products/da14531

If you have any follow up questions and you need extra clarifications, please create a new forum thread.

Thanks, PM_Dialog