你好,
我无法执行OTP程序。可能是由于发送到OTP的头数据与实际写入的数据之间存在差异。正如你可以在附件的截图中看到的,发送的数据和写入的数据之间有差异。看来被烧毁的数据和我指定的不一样。
现在这个设备已经被烤焦了。
有什么漏洞吗?谢谢。
艾德
嗨edlofau,
我不认为我听到了关于OTP燃烧的任何问题,从我可以从图像中看到的东西,你在不同的偏移中读取OTP NVDS,那个是40000,另一个是44000,也在NVDS部分有一个标志这允许将数据插入到NVDS区域,标志是CFG_INITIALIZE_NVDS_STRUCT。如果您使用此标志设置刻录该图像,那么您的数据也会烧毁NVDS区域,不仅与您使用OTP NVDS刻录机设置的数据。
由于MT_dialog
谢谢你的回复。
我无法找到这个旗帜,就像你在图片中看到它不存在。
无论如何,我知道这个问题可能是由抵消引起的。
它非常有帮助,简要摘要如何编程OTP。我正在使用您为DA14580提供的原始示例DSP,没有更改。图像是用调试标志构建的,我附上了我想要编程的数据,如果你可以快速寻找一些问题......
我的主要疑问是有两个可用的偏移量(图像和nvds),我应该放哪个值?
为了执行一个成功的程序,还有其他的参数需要我注意吗?
非常感谢,艾德
我所说的标志位于SDK中,而不是在OTP NVDS或Header中。如果您所烧毁的映像在SDK中启用了这个标志,那么NVDS结构区域已经由SDK所拥有的值填充了。当您在OTP中刻录NVDS数据时,您使用希望在OTP NVDS中刻录的数据来刻录OTP中已经存在的数据。NVDS不是OTP映像的单独部分。当您在没有我前面提到的标志的情况下刻印SDK创建的映像时,NVDS区域中应该有0,以便您从OTP NVDS工具刻印该区域的空白空间作为NVDS区域。NVDS从OTP起始地址0x4000的偏移量为0x340。
在DSDP示例中找不到此标志,我无法在SDK中找到DSDP。
我发现SDK中的标志那里写的例子,在文件DA1458x_config_advanced.h,但这个文件在DSDP中不存在。
谢谢,
在SDK 5 DSPS这个标志,据我所知,位于da1458x_config_advanced.h中的第36行,这将初始化或不NVDS结构位于NVDS .c文件中的第41行。
我在这里下载了SDK5https://support.dialog-semiconductor.com/download/file/fid/2759我不能找到一个项目叫DSDP。它放在哪里?是一个keil5项目或... ???感谢和抱歉,艾德
该项目被称为DSPS,它位于支持站点的参考设计部分之下。
我看到我正在使用DSDP的旧浏览。我下载了最后一个,最后找到da1458x_config_advanced.h文件和标志......非常感谢您的耐心等待。问候,艾德
你好再次,
我有DSPS代码在RAM中运行OK(通过Smart Scippets-Booter),它根据需要制作BLE串行桥。现在,为了放入OTP,我想有点清单,以便正确燃烧OTP,我可以学到:
1)在Keil5中编译以下标志:#define cfg_boot_from_otp.#定义CFG_INITIALIZE_NVDS_STRUCT
2)在SmartSnippets,在OTP部分,我烧OTP图像与前。hex(偏移= 0)3)对于NVDS OTP没有任何事情(由于OTP图像由于CFG_INITIALIZE_NVDS_STRUCT而照顾它)4)OTP标题 - >许多疑问:我想我需要把它的第一个标志(在OTP中的应用程序)。但其他参数呢?对于DSP,我需要在这里加载更多东西吗?
谢谢!
您提到的步骤是适当的,关于最后一步,通过刻录应用程序两个标志,您将强制580从OTP启动,并且不会通过执行此操作并设置DMA长度来扫描外围设备来查找图像。到1FC0(OTP图像的长度以单词为单词,您应该将其设置为使完整的OTP要复制到Sysram,以防万一)您应该能够从OTP运行应用程序。关于其他参数,您可以检查智能片段用户指南.pdf才能检查OTP标题的其他REST字段。还有很多论坛帖子有关OTP头刻录程序,请随时搜索论坛。
嗨,对话框中,
我期待用以下值刻录标题:
o应用标志1和2在0x47F00和0x47F04 = YESO 32kHz源部分(4字节)0x47F74。外部xtal.O DMA长度(4个字节)在0x47FF8 = 1FC0
我不会编程其余的值。是否有意义?
和最后一个问题。我观察到,对于深度睡眠模式,我没有通信主机< - >设备。但是,对于扩展模式,我的交流但在传输中损失了很多字符。为了在Deep我使用中配置它们:# 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)
我错过了什么?我应该在OTP编程中处理任何其他配置吗?
非常感谢!艾德
是的,确保重新映射标志具有0(其默认值但只是在情况下)的SRAM并保持启用JTAG使能标志(这也默认),以便能够通过JTAG重新连接到设备。
DSPS只支持用户手册所指示的延长睡眠模式,而不支持深度睡眠。我没看到丢失任何东西,用DSPS fw在延长睡眠模式下烧你的设备。关于角色丢失检查,你已经启用了HW流量控制,确保它也在你的PC终端上启用,也检查你与RTS/CTS的连接与你的板。
非常感谢您的回复。
我会延长。您是否知道BTW设备未配对的当前累计?顺便说一句,如果睡眠模式关闭,并且设备不配对,则是什么?
我没有RTS/CTS线从我的MCU,所以我没有使用流量控制。这有问题吗?
谢谢,艾德
您可以在功耗FAQ中找到关于580的功耗的信息(休眠功耗、传输功耗、接收功耗)。DSPS的消耗没有任何不同,在整个系统中造成差异的是广告间隔和连接间隔(它们越短,消耗的能量就越多)。在DSPS中,功耗取决于传输的数据量,当设备正在传输睡眠模式被取消,设备保持清醒,直到缓冲区中没有数据。当设备不休眠时,它消耗约0.6mA而不是1.4uA。此外,由于不是所有的中心设备行为相同(接受不同的广告间隔,在每个连接间隔中接受不同数量的数据包,等等),功耗也取决于你使用的中心。
关于RTS / CTS,是流量控制是设备需求才能运行的东西,因为它睡眠必须有一种方法来通知外部MCU它是醒目的或者它已经睡眠,因此外部MCU将知道何时发送数据和何时停止。没有它,您将无法在睡眠模式下运行。
嗨edlofau,
我不认为我听到了关于OTP燃烧的任何问题,从我可以从图像中看到的东西,你在不同的偏移中读取OTP NVDS,那个是40000,另一个是44000,也在NVDS部分有一个标志这允许将数据插入到NVDS区域,标志是CFG_INITIALIZE_NVDS_STRUCT。如果您使用此标志设置刻录该图像,那么您的数据也会烧毁NVDS区域,不仅与您使用OTP NVDS刻录机设置的数据。
由于MT_dialog
你好,
谢谢你的回复。
我无法找到这个旗帜,就像你在图片中看到它不存在。
无论如何,我知道这个问题可能是由抵消引起的。
它非常有帮助,简要摘要如何编程OTP。我正在使用您为DA14580提供的原始示例DSP,没有更改。图像是用调试标志构建的,我附上了我想要编程的数据,如果你可以快速寻找一些问题......
我的主要疑问是有两个可用的偏移量(图像和nvds),我应该放哪个值?
为了执行一个成功的程序,还有其他的参数需要我注意吗?
非常感谢,
艾德
嗨edlofau,
我所说的标志位于SDK中,而不是在OTP NVDS或Header中。如果您所烧毁的映像在SDK中启用了这个标志,那么NVDS结构区域已经由SDK所拥有的值填充了。当您在OTP中刻录NVDS数据时,您使用希望在OTP NVDS中刻录的数据来刻录OTP中已经存在的数据。NVDS不是OTP映像的单独部分。当您在没有我前面提到的标志的情况下刻印SDK创建的映像时,NVDS区域中应该有0,以便您从OTP NVDS工具刻印该区域的空白空间作为NVDS区域。NVDS从OTP起始地址0x4000的偏移量为0x340。
由于MT_dialog
你好,
谢谢你的回复。
在DSDP示例中找不到此标志,我无法在SDK中找到DSDP。
我发现SDK中的标志那里写的例子,在文件DA1458x_config_advanced.h,但这个文件在DSDP中不存在。
谢谢,
艾德
嗨edlofau,
在SDK 5 DSPS这个标志,据我所知,位于da1458x_config_advanced.h中的第36行,这将初始化或不NVDS结构位于NVDS .c文件中的第41行。
由于MT_dialog
我在这里下载了SDK5https://support.dialog-semiconductor.com/download/file/fid/2759我不能找到一个项目叫DSDP。
它放在哪里?是一个keil5项目或... ???
感谢和抱歉,
艾德
嗨edlofau,
该项目被称为DSPS,它位于支持站点的参考设计部分之下。
由于MT_dialog
我看到我正在使用DSDP的旧浏览。
我下载了最后一个,最后找到da1458x_config_advanced.h文件和标志......
非常感谢您的耐心等待。
问候,
艾德
你好再次,
我有DSPS代码在RAM中运行OK(通过Smart Scippets-Booter),它根据需要制作BLE串行桥。现在,为了放入OTP,我想有点清单,以便正确燃烧OTP,我可以学到:
1)在Keil5中编译以下标志:
#define cfg_boot_from_otp.
#定义CFG_INITIALIZE_NVDS_STRUCT
2)在SmartSnippets,在OTP部分,我烧OTP图像与前。hex(偏移= 0)
3)对于NVDS OTP没有任何事情(由于OTP图像由于CFG_INITIALIZE_NVDS_STRUCT而照顾它)
4)OTP标题 - >许多疑问:我想我需要把它的第一个标志(在OTP中的应用程序)。但其他参数呢?对于DSP,我需要在这里加载更多东西吗?
谢谢!
嗨edlofau,
您提到的步骤是适当的,关于最后一步,通过刻录应用程序两个标志,您将强制580从OTP启动,并且不会通过执行此操作并设置DMA长度来扫描外围设备来查找图像。到1FC0(OTP图像的长度以单词为单词,您应该将其设置为使完整的OTP要复制到Sysram,以防万一)您应该能够从OTP运行应用程序。关于其他参数,您可以检查智能片段用户指南.pdf才能检查OTP标题的其他REST字段。还有很多论坛帖子有关OTP头刻录程序,请随时搜索论坛。
由于MT_dialog
嗨,对话框中,
我期待用以下值刻录标题:
o应用标志1和2在0x47F00和0x47F04 = YES
O 32kHz源部分(4字节)0x47F74。外部xtal.
O DMA长度(4个字节)在0x47FF8 = 1FC0
我不会编程其余的值。是否有意义?
和最后一个问题。我观察到,对于深度睡眠模式,我没有通信主机< - >设备。但是,对于扩展模式,我的交流但在传输中损失了很多字符。为了在Deep我使用中配置它们:
# 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)
我错过了什么?我应该在OTP编程中处理任何其他配置吗?
非常感谢!
艾德
嗨edlofau,
是的,确保重新映射标志具有0(其默认值但只是在情况下)的SRAM并保持启用JTAG使能标志(这也默认),以便能够通过JTAG重新连接到设备。
DSPS只支持用户手册所指示的延长睡眠模式,而不支持深度睡眠。我没看到丢失任何东西,用DSPS fw在延长睡眠模式下烧你的设备。关于角色丢失检查,你已经启用了HW流量控制,确保它也在你的PC终端上启用,也检查你与RTS/CTS的连接与你的板。
由于MT_dialog
你好,
非常感谢您的回复。
我会延长。您是否知道BTW设备未配对的当前累计?顺便说一句,如果睡眠模式关闭,并且设备不配对,则是什么?
我没有RTS/CTS线从我的MCU,所以我没有使用流量控制。这有问题吗?
谢谢,
艾德
嗨edlofau,
您可以在功耗FAQ中找到关于580的功耗的信息(休眠功耗、传输功耗、接收功耗)。DSPS的消耗没有任何不同,在整个系统中造成差异的是广告间隔和连接间隔(它们越短,消耗的能量就越多)。在DSPS中,功耗取决于传输的数据量,当设备正在传输睡眠模式被取消,设备保持清醒,直到缓冲区中没有数据。当设备不休眠时,它消耗约0.6mA而不是1.4uA。此外,由于不是所有的中心设备行为相同(接受不同的广告间隔,在每个连接间隔中接受不同数量的数据包,等等),功耗也取决于你使用的中心。
关于RTS / CTS,是流量控制是设备需求才能运行的东西,因为它睡眠必须有一种方法来通知外部MCU它是醒目的或者它已经睡眠,因此外部MCU将知道何时发送数据和何时停止。没有它,您将无法在睡眠模式下运行。
由于MT_dialog