DSDP智能snipnitions之间的数据发送到OTP头和数据烧伤

15个员额/ 0个新员额
最后发表
edlofau
离线
最后看到:3年7个月前
加入:2015-11-06 16:00时
DSDP智能snipnitions之间的数据发送到OTP头和数据烧伤

你好,

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

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

有人知道这里面有窃听器吗?谢谢。

艾德

附件:
设备:
MT_dialog
离线
最后看到:5个月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年7个月前
加入:2015-11-06 16:00时
你好,

你好,

谢谢你的回复。

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

无论如何,我理解这个问题可能是由补偿引起的。

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

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

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

非常感谢,
艾德

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

嗨edlofau,

我正在谈论的标志是位于SDK,而不是在OTP NVDS或头部。如果您刻制的映像在SDK中启用了这个标志,则NVDS结构区域已经由SDK的值填充。当您在OTP中刻录NVDS数据时,您将OTP中已经存在的数据与您想在OTP NVDS中刻录的数据进行了关联。NVDS不是OTP映像的一个独立部分。当你刻录SDK创建的图像时,如果没有我之前提到的标志,NVDS区域应该是0,以便你从OTP NVDS工具刻录该区域的空白区域作为NVDS区域。NVDS从OTP起始地址0x4000的偏移量是0x340。

由于MT_dialog

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

你好,

谢谢你的回复。

我在DSDP例子中找不到这个标志,在SDK中也找不到DSDP。

我在SDK中找到了在DA1458x_config_advanced.h文件中编写的示例的标志,但这个文件在DSDP中不存在。

谢谢,

艾德

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

嗨edlofau,

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

由于MT_dialog

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

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

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

嗨edlofau,

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

由于MT_dialog

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

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

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

你好再次,

我让DSPS代码在RAM中正常运行(通过智能片段引导程序),它使BLE串行桥如所愿。现在,为了放入OTP,我想有一种清单,以便正确地烧OTP,就我所知:

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

2)在SmartSnippets中,在OTP部分,我用前面的。hex(offset = 0)刻录OTP图像
3)对NVDS OTP不做任何事情(因为由于CFG_INITIALIZE_NVDS_STRUCT, OTP映像会处理它)
4)OTP头——>许多疑问:我想我需要把两个第一个标志(OTP中的应用程序)是。但是其他参数呢?对于DSPS,我需要在这里加载更多的东西吗?

谢谢!

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

嗨edlofau,

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

由于MT_dialog

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

嗨,对话框中,

我希望在头文件中写入以下值:

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

我不会对剩余的价值观进行编程。这有意义吗?

最后一个问题。我观察到在深度睡眠模式下,我没有通信主机<->设备。但是对于扩展模式,我有了通信,但是在传输过程中丢失了很多字符。为了配置他们,例如在deep i使用:
# 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
离线
最后看到:5个月2个星期前
工作人员
加入:2015-06-08 34
嗨edlofau,

嗨edlofau,

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

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

由于MT_dialog

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

你好,

非常感谢您的回复。

我会把它延长。顺便问一下,当设备没有配对时,你知道当前的消耗是多少吗?顺便问一下,如果睡眠模式是OFF,并且设备没有配对,电流是多少?

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

谢谢,
艾德

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

嗨edlofau,

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

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

由于MT_dialog