DSDP智能snnipets数据发送到OTP头和数据烧毁之间的差异

15个职位/ 0个新职位
最后发表
edlofau
离线
最后看到:3年5个月前
加入:2015-11-06 16:00时
DSDP智能snnipets数据发送到OTP头和数据烧毁之间的差异

你好,

我无法执行OTP程序。可能是由于发送到OTP的头数据与实际写入的数据之间存在差异。正如你可以在附件的截图中看到的,发送的数据和写入的数据之间有差异。看来被烧毁的数据和我指定的不一样。

现在这个设备已经被烤焦了。

有什么漏洞吗?谢谢。

艾德

附件:
设备:
MT_dialog
离线
最后看到:3个月2天前
工作人员
加入:2015-06-08 34
嗨edlofau,

嗨edlofau,

我不认为我已经听到任何问题关于OTP燃烧,从我所能看到的图片你看了OTP nvd在不同的偏移量,一个是40000,另一个是44000,还在nvd部分有一个国旗,允许将数据插入到nvd区域,CFG_INITIALIZE_NVDS_STRUCT国旗。如果你烧这个标志设置的图像,那么你已经烧的NVDS区域与该数据以及不只是数据,你已经设置与OTP NVDS燃烧器。

由于MT_dialog

edlofau
离线
最后看到:3年5个月前
加入:2015-11-06 16:00时
你好,

你好,

谢谢你的回复。

我找不到这面旗帜,正如你在图片中看到的,它不存在。

无论如何,我知道这个问题可能是由抵消引起的。

这将是非常有帮助有一个简短的总结如何编程的OTP。我使用的是您为DA14580提供的原始示例dsp,没有任何更改。映像是用调试标志= 0构建的。我附上了我想要编程的数据,也许你可以快速看一下找出一些问题…

我的主要疑问是有两个可用的偏移量(图像和nvds),我应该放哪个值?

为了执行一个成功的程序,还有其他的参数需要我注意吗?

非常感谢,
艾德

附件:
MT_dialog
离线
最后看到:3个月2天前
工作人员
加入:2015-06-08 34
嗨edlofau,

嗨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

edlofau
离线
最后看到:3年5个月前
加入:2015-11-06 16:00时
你好,

你好,

谢谢你的回复。

我不能在DSDP示例中找到这个标志,我不能在SDK中找到DSDP。

我发现SDK中的标志那里写的例子,在文件DA1458x_config_advanced.h,但这个文件在DSDP中不存在。

谢谢,

艾德

MT_dialog
离线
最后看到:3个月2天前
工作人员
加入:2015-06-08 34
嗨edlofau,

嗨edlofau,

在SDK 5 DSPS这个标志,据我所知,位于da1458x_config_advanced.h中的第36行,这将初始化或不NVDS结构位于NVDS .c文件中的第41行。

由于MT_dialog

edlofau
离线
最后看到:3年5个月前
加入:2015-11-06 16:00时
我下载了SDK5

我在这里下载了SDK5https://support.dialog-semiconductor.com/download/file/fid/2759我不能找到一个项目叫DSDP。
它被放在哪里?是keil5项目还是…??
感谢和抱歉,
艾德

MT_dialog
离线
最后看到:3个月2天前
工作人员
加入:2015-06-08 34
嗨edlofau,

嗨edlofau,

该项目被称为DSPS,它位于支持站点的参考设计部分之下。

由于MT_dialog

edlofau
离线
最后看到:3年5个月前
加入:2015-11-06 16:00时
我看我用的是旧的

我发现我使用的是DSDP的旧版本。
我下载了最后一个,最终找到da1458x_config_advanced.h文件和标志…
非常感谢您的耐心等待。
问候,
艾德

edlofau
离线
最后看到:3年5个月前
加入:2015-11-06 16:00时
你好再次,

你好再次,

我有dsp代码在RAM中运行OK(通过智能片段引导),它使BLE串行桥如所期望的。现在,为了放入OTP,我想有一种检查表,以正确地燃烧OTP,据我所知:

1)在Keil5中编译下列标志:
#定义CFG_BOOT_FROM_OTP
#定义CFG_INITIALIZE_NVDS_STRUCT

2)在SmartSnippets,在OTP部分,我烧OTP图像与前。hex(偏移= 0)
3)对NVDS OTP没有做什么(因为由于CFG_INITIALIZE_NVDS_STRUCT, OTP映像会照顾它)
4)OTP头标——>但是其他参数呢?对于DSPS,我需要在这里加载更多的东西吗?

谢谢!

MT_dialog
离线
最后看到:3个月2天前
工作人员
加入:2015-06-08 34
嗨edlofau,

嗨edlofau,

你提到的步骤是正确的,关于最后一步,通过燃烧国旗你的应用程序都将迫使580年从OTP,不会扫描启动外围设备寻找一个图像,通过这样做,DMA长度1 fc0 (OTP的长度形象的话,你应该设置,以便完整的OTP复制到你的syram,只是以防万一),你应该能够从OTP运行应用程序。关于其他参数,你可以检查Smart Snippets用户指南。pdf,以检查OTP头的其余字段做什么。也有相当多的论坛帖子关于OTP头燃烧程序,请随时搜索论坛。

由于MT_dialog

edlofau
离线
最后看到:3年5个月前
加入:2015-11-06 16:00时
嗨,对话框中,

嗨,对话框中,

我期望烧头与以下值:

o在0x47F00和0x47F04 = YES处的应用标记1和2
o 32KHz源段(4字节)在0x47F74。外部晶体
o DMA长度(4字节)在0x47FF8 = 1FC0

我不会编写其余的值。这说得通吗?

最后一个问题。我观察到,对于深度睡眠模式,我没有通信主机<->设备。但是对于扩展模式,我有了通信,但是在传输中丢失了很多字符。为了配置它们,例如在deep中我使用:
# undef CFG_MEM_MAP_EXT_SLEEP
#定义CFG_MEM_MAP_DEEP_SLEEP
const static sleep_state_t app_default_sleep_mode = ARCH_DEEP_SLEEP_ON;(user.config.h)

我是不是漏掉了什么?我应该注意OTP编程的其他配置吗?

非常感谢!
艾德

MT_dialog
离线
最后看到:3个月2天前
工作人员
加入:2015-06-08 34
嗨edlofau,

嗨edlofau,

是的,它确实,确保Remapping标志有SRAM为0(这是默认的,但只是以防万一),并保持JTAG启用标志启用(这也是默认的),以便能够通过JTAG重新连接到设备。

DSPS只支持用户手册所指示的延长睡眠模式,而不支持深度睡眠。我没看到丢失任何东西,用DSPS fw在延长睡眠模式下烧你的设备。关于角色丢失检查,你已经启用了HW流量控制,确保它也在你的PC终端上启用,也检查你与RTS/CTS的连接与你的板。

由于MT_dialog

edlofau
离线
最后看到:3年5个月前
加入:2015-11-06 16:00时
你好,

你好,

非常感谢您的回复。

我把“然后”写在“延伸”里。你知道BTW是什么时候的当前消耗设备没有配对?顺便问一下,如果休眠模式是关闭的,设备没有配对,电流是多少?

我没有RTS/CTS线从我的MCU,所以我没有使用流量控制。这有问题吗?

谢谢,
艾德

MT_dialog
离线
最后看到:3个月2天前
工作人员
加入:2015-06-08 34
嗨edlofau,

嗨edlofau,

您可以在功耗FAQ中找到关于580的功耗的信息(休眠功耗、传输功耗、接收功耗)。DSPS的消耗没有任何不同,在整个系统中造成差异的是广告间隔和连接间隔(它们越短,消耗的能量就越多)。在DSPS中,功耗取决于传输的数据量,当设备正在传输睡眠模式被取消,设备保持清醒,直到缓冲区中没有数据。当设备不休眠时,它消耗约0.6mA而不是1.4uA。此外,由于不是所有的中心设备行为相同(接受不同的广告间隔,在每个连接间隔中接受不同数量的数据包,等等),功耗也取决于你使用的中心。

关于RTS / CTS,是的流控制是设备的要求来操作,因为它睡它必须有办法通知外部单片机是醒着还是已经睡觉,所以外部单片机将知道什么时候和什么时候停止发送数据。没有它,你将无法在睡眠模式下操作。

由于MT_dialog