FAQ - Memories

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.
内部有多少内存可用DA14580 ?

DA14580 has following on-chip memory:

- 84KB ROM
- 32KB One Time Programmable (OTP) ROM
- 50KB on-chip RAM of which:

42KB System RAM
8KB Retention RAM

84KB ROM is dedicated for Bluetooth Low Energy Stack. 50KB on-chip RAM is available for GATT based profiles, application code and runtime memory consumption (e.g. heap, stack).

Final software code can be stored in OTP

How much memory is available for the application software ?

For a typical Bluetooth low energy solution, e.g. Heart rate monitor, 22KB out of 50KB RAM is required for application code, heart rate monitor profile and runtime memory consumption. 4.6KB out of 32KB OTP space is required to burn the application code and heart rate monitor profile.

For a large Bluetooth low energy solution, e.g. Keyboard, 37KB out of 50KB RAM is required for keyboard application code, HOGP profile and runtime memory consumption. 18.3KB out of 32KB OTP space is required to burn the application code and HOGP profile.

How to program the OTP memory on the 580 ?

Dialog provides a tool, in order for the users to burn the OTP memory of the 580. 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).

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:

  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.

As soon as the last step is complete you will have burned your custom's board OTP. Some additional configurations are requied 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.

The above steps are sufficient in order for the user to program the OTP

If i burn the OTP will i be able to download code to the sysram and use the 580 ?

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 sysram though via JTAG as long as the OTP header field called JTAG enable flag stays Enabled.

NOTE: If the application flags are burned and the JTAG enable flag is Disabled then the device becomes inaccessible.

Can the OTP be written multiple times? OTP stands for One Time Programmable, thus you cant 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.
What are the customer specific fields of the OTP ? In the customer specific fields the user can place custom data that his application will use. The datasheet mentions that those fields in the OTP Header are the following addresses 0x47F54 to 0x47F60. This is updated and the user is know able to use the range from 0x47F10 up to 0x47F60.