I dont think that i ve heard any issues regarding the OTP burning, from what i can see from the image you read the OTP NVDS in different offsets, the one is 40000 and the other is 44000, also in the NVDS section there is a flag that allows data to be inserted to the NVDS area, the flag is CFG_INITIALIZE_NVDS_STRUCT. If you burned that image with this flag set then you 've burned the NVDS area with that data as well and not only with the data that you ve set with the OTP NVDS burner.
I am not able to find this flag, as you can see in the picture it is not present.
在任何情况下,我都知道这个问题可能是由偏移量引起的。
It´d be very helpfull having a brief summary of how to program the OTP. I am using the original example DSPS you provide for the DA14580 with no changes. The image was built with the debug flag = 0. I attached the data i want to program, maybe if you could take a quick look to identify some problems...
I see I was using an old verision of DSDP. I downloaded the last one and finally find the da1458x_config_advanced.h file and the flag... 非常感谢您的耐心等待。 问候, 埃德
I have the DSPS code running OK in RAM (via smart snippets-booter), it makes the BLE serial bridge as desired. Now, in order to put in OTP I would like to have kind of checklist in order to burn correctly the OTP, as far I could learn:
1) Compile the with following flags in Keil5: #define CFG_BOOT_FROM_OTP #define cfg_initialize_nvds_struct.
2)在SmartSnippet中,在OTP部分中,我将OTP图像与上一个.hex(offset = 0)刻录 3)Nothing to do for NVDS OTP (since the OTP image take care of it due to the CFG_INITIALIZE_NVDS_STRUCT) 4) OTP头——>许多窦bts: I guess I need to put to yes both first flags (app in OTP). But what about the other params? for the DSPS, do i need to load more things here??
The steps that you mention are proper, regarding the last step, by burning the application both of the flags you will force the 580 to boot from the OTP and will not scan the peripherals for finding an image, by doing this and setting the DMA Length to 1FC0 (the length of the OTP image in words, you should set that in order for the full OTP to be copied to your sysram, just in case) you should be able to run the application from OTP. Regarding the other parameters you can check the Smart Snippets User Guide.pdf in order to check what the rest fields of the OTP header do. Also there are are quite a few forum posts regarding the OTP header burning procedure, please feel free to search the forum.
I am expecting to burn the header with the following values:
o Application flag 1 and 2 at 0x47F00 and 0x47F04 = YES o 32KHz source section (4 bytes) at 0x47F74. External Xtal o DMA length (4 bytes) at 0x47FF8 = 1FC0
I won´t programm the rest of values. Does it make sense?
And the last question. I observed that for deep sleep mode, i had no communication host<->device. However, for the extended mode, I had communication but lossing lot of characters in transmission. In order to configure them for instance in deep i used: #undef cfg_mem_map_ext_sleep. #define CFG_MEM_MAP_DEEP_SLEEP const static sleep_state_t app_default_sleep_mode = arch_deep_sleep_on;(user.config.h)
Am I missing something? Should I take care of any other configuration at OTP programming?
Yes it does, make sure that the Remapping Flag has the SRAM at 0 (its the default, but just in case) and keep the JTAG enable flag enabled (this is also default) in order to be able to reconnect to the device via JTAG.
I will put then in extended. Do you know BTW what is the current comsumption when the device is not paired? And by the way, what is the current if sleep mode is OFF, and with the device not paired?
Regarding the RTS/CTS, yes flow control is something that the device demands in order to operate, since it sleeps it has to have a way to notify the external MCU that it is awake or it has fallen to sleep, so that the external MCU will know when to send data and when to stop. Without it you are not going to be able to operate under sleep mode.
嗨edlofau,
I dont think that i ve heard any issues regarding the OTP burning, from what i can see from the image you read the OTP NVDS in different offsets, the one is 40000 and the other is 44000, also in the NVDS section there is a flag that allows data to be inserted to the NVDS area, the flag is CFG_INITIALIZE_NVDS_STRUCT. If you burned that image with this flag set then you 've burned the NVDS area with that data as well and not only with the data that you ve set with the OTP NVDS burner.
谢谢mt_dialog.
Hi,
感谢您的回复。
I am not able to find this flag, as you can see in the picture it is not present.
在任何情况下,我都知道这个问题可能是由偏移量引起的。
It´d be very helpfull having a brief summary of how to program the OTP. I am using the original example DSPS you provide for the DA14580 with no changes. The image was built with the debug flag = 0. I attached the data i want to program, maybe if you could take a quick look to identify some problems...
我的主要怀疑是可用的两个偏移量(用于图像和NVDS),这是一个值班的价值?
是否有任何其他参数,我应该注意才能执行成功的程序吗?
非常感谢,
埃德
嗨edlofau,
我正在谈论的标志位于SDK中,而不是在OTP NVDS或标题中。如果您在SDK中启用了此标志,则刻录的图像已启用此标志,则SDK具有的值填充了NVDS结构区域。当您在OTP中刻录NVDS数据时,您将在OTP中的数据中的数据与您想要在OTP NVDS中刻录的数据刻录。NVDS不是OTP图像的单独部分。当您刻录没有先前提到的ITP NVDS工具时ZERO在NVDS区域中创建的SDK创建的图像时,请刻录未提及的SDK,以便您将该区域的空白空间刻录为来自OTP NVDS工具的NVDS区域。NVDS的偏移量是0x4000的0x340,即OTP的起始地址。
谢谢mt_dialog.
Hi,
感谢您的回复。
I cannot find this flag in the DSDP example and I cannot find the DSDP in the SDK.
我在文件DA1458x_config_advanced.h中找到了SDK中的标志,用于编写的示例,但此文件不存在于DSDP中。
谢谢,
埃德
嗨edlofau,
在SDK 5 DSP中,据我所知,该标志位于DA1458x_config_Advanced.h中,在第36行中,这将初始化或不是位于NVDS.C文件中的NVDS结构线41。
谢谢mt_dialog.
我从这里驾驶了SDK5https://support.dialog-semicondiondiondiondum/download/file/fid/2759.我无法找到一个名为DSDP的项目。
Where is it placed? is it a keil5 project or ...???
谢谢,抱歉,
埃德
嗨edlofau,
该项目称为DSPS及其位于支持站点的参考设计部分。
谢谢mt_dialog.
I see I was using an old verision of DSDP.
I downloaded the last one and finally find the da1458x_config_advanced.h file and the flag...
非常感谢您的耐心等待。
问候,
埃德
你好,我们又见面了,
I have the DSPS code running OK in RAM (via smart snippets-booter), it makes the BLE serial bridge as desired. Now, in order to put in OTP I would like to have kind of checklist in order to burn correctly the OTP, as far I could learn:
1) Compile the with following flags in Keil5:
#define CFG_BOOT_FROM_OTP
#define cfg_initialize_nvds_struct.
2)在SmartSnippet中,在OTP部分中,我将OTP图像与上一个.hex(offset = 0)刻录
3)Nothing to do for NVDS OTP (since the OTP image take care of it due to the CFG_INITIALIZE_NVDS_STRUCT)
4) OTP头——>许多窦bts: I guess I need to put to yes both first flags (app in OTP). But what about the other params? for the DSPS, do i need to load more things here??
谢谢!
嗨edlofau,
The steps that you mention are proper, regarding the last step, by burning the application both of the flags you will force the 580 to boot from the OTP and will not scan the peripherals for finding an image, by doing this and setting the DMA Length to 1FC0 (the length of the OTP image in words, you should set that in order for the full OTP to be copied to your sysram, just in case) you should be able to run the application from OTP. Regarding the other parameters you can check the Smart Snippets User Guide.pdf in order to check what the rest fields of the OTP header do. Also there are are quite a few forum posts regarding the OTP header burning procedure, please feel free to search the forum.
谢谢mt_dialog.
嗨对话框,
I am expecting to burn the header with the following values:
o Application flag 1 and 2 at 0x47F00 and 0x47F04 = YES
o 32KHz source section (4 bytes) at 0x47F74. External Xtal
o DMA length (4 bytes) at 0x47FF8 = 1FC0
I won´t programm the rest of values. Does it make sense?
And the last question. I observed that for deep sleep mode, i had no communication host<->device. However, for the extended mode, I had communication but lossing lot of characters in transmission. In order to configure them for instance in deep i used:
#undef cfg_mem_map_ext_sleep.
#define CFG_MEM_MAP_DEEP_SLEEP
const static sleep_state_t app_default_sleep_mode = arch_deep_sleep_on;(user.config.h)
Am I missing something? Should I take care of any other configuration at OTP programming?
非常感谢 !
埃德
嗨edlofau,
Yes it does, make sure that the Remapping Flag has the SRAM at 0 (its the default, but just in case) and keep the JTAG enable flag enabled (this is also default) in order to be able to reconnect to the device via JTAG.
当用户手册指示而不是深睡眠时,DSP只支持扩展睡眠模式。我没有看到任何丢失的东西,用DSPS FW刻录到扩展睡眠模式。关于您已启用HW流量控制的字符损耗检查,并确保在PC终端上启用它,请使用电路板查看与RTS / CTS的连接。
谢谢mt_dialog.
Hi,
非常感谢您的回复。
I will put then in extended. Do you know BTW what is the current comsumption when the device is not paired? And by the way, what is the current if sleep mode is OFF, and with the device not paired?
我的MCU没有RTS / CTS线条,所以我不使用流量控制。这可能是一个问题吗?
谢谢,
埃德
嗨edlofau,
您可以在功耗常见问题解答中找到有关580的功耗的信息(睡眠功耗,转变,接收)。DSP的消耗不是任何不同的,是什么让整个系统的差异是广告间隔和连接间隔(它们越短,您消耗的功率越短)。同样在DSP中,功耗取决于您发送的数据的Ammount,当设备发送睡眠模式时,取消睡眠模式,并且设备保持醒着,直到缓冲区中没有数据。当设备未睡眠时,它会消耗大约0.6mA而不是1.4ua何时入睡。此外,由于并非所有中央设备行为相同(接受不同的广告间隔,因此每个连接间隔中的不同数量的数据包),因此功耗也取决于您使用的中心。
Regarding the RTS/CTS, yes flow control is something that the device demands in order to operate, since it sleeps it has to have a way to notify the external MCU that it is awake or it has fallen to sleep, so that the external MCU will know when to send data and when to stop. Without it you are not going to be able to operate under sleep mode.
谢谢mt_dialog.