DSDP智能截取发送到OTP报头的数据和已烧数据之间的差异

15个岗位/ 0个新岗位
最后发表
edlofau
离线
最后看到:4年8个月前
加入:2015-11-06 16:00时
DSDP智能截取发送到OTP报头的数据和已烧数据之间的差异

你好,

我无法执行OTP程序。可能是由于发送到OTP的报头数据与实际写入的数据之间存在差异造成的。正如您可以在所附的截屏中看到的,发送的数据和写入的数据之间存在差异。似乎烧录的数据与我指定的数据不同。

现在这个装置正在烘烤。

有什么问题吗?谢谢。

艾德

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

嗨edlofau,

我不认为我听说过关于OTP燃烧的任何问题,从我可以从图像中看到你在不同的偏移量中读取OTP NVDS,一个是40000,另一个是44000,也在NVDS部分有一个标志,允许数据插入到NVDS区域,标志是CFG_INITIALIZE_NVDS_STRUCT。如果你用这个标志设置烧录图像,那么你也已经用该数据烧录了NVDS区域,而不仅仅是你用OTP NVDS刻录器设置的数据。

由于MT_dialog

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

你好,

谢谢你的回复。

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

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

这将是非常有帮助的简要总结如何编程OTP。我使用的是你为DA14580提供的原始示例DSPS,没有任何变化。映像是用debug标志= 0构建的。我附上了我想要编程的数据,也许你可以快速查看一下以确定一些问题……

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

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

非常感谢,
艾德

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

嗨edlofau,

我所说的标志位于SDK中,而不是在OTP NVDS或标头中。如果您刻录的映像在SDK中启用了此标志,则NVDS结构区域已经由SDK所具有的值填充。当您在OTP中刻录NVDS数据时,您可以将OTP中已准备好的数据与您想在OTP NVDS中刻录的数据进行or。NVDS不是OTP映像的一个独立部分。当你刻录没有我前面提到的标志的SDK创建的映像时,NVDS区域应该有零,以便你从OTP NVDS工具刻录该区域的空白空间作为NVDS区域。NVDS与OTP起始地址0x4000的偏移量为0x340。

由于MT_dialog

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

你好,

谢谢你的回复。

我无法在DSDP示例中找到此标志,也无法在SDK中找到DSDP。

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

谢谢,

艾德

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

嗨edlofau,

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

由于MT_dialog

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

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

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

嗨edlofau,

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

由于MT_dialog

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

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

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

你好再次,

我有DSPS代码在RAM中运行正常(通过智能snippet -booter),它使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
离线
最后看到:1年6个月前
工作人员
加入:2015-06-08 34
嗨edlofau,

嗨edlofau,

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

由于MT_dialog

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

嗨,对话框中,

我期望燃烧头与以下值:

o应用程序标志1和2在0x47F00和0x47F04 = 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
离线
最后看到:1年6个月前
工作人员
加入:2015-06-08 34
嗨edlofau,

嗨edlofau,

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

DSPS仅支持用户手册中说明的扩展睡眠模式,不支持深度睡眠模式。我没有看到任何东西丢失,在延长睡眠模式下用DSPS fw刻录你的设备。关于字符丢失检查,您已经启用了HW流控制,并确保在您的PC终端上也启用了它,还要检查您与RTS/CTS的连接。

由于MT_dialog

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

你好,

非常感谢您的回复。

我把它写成extended。顺便问一下,当设备没有配对时,当前的消耗是多少?顺便问一下,如果睡眠模式是关闭的,并且设备没有配对,当前是什么?

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

谢谢,
艾德

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

嗨edlofau,

您可以在功耗常见问题解答(睡眠功耗,传输,接收)中找到有关580的功耗的信息。DSPS的消耗并没有什么不同,整个系统的区别在于广告间隔和连接间隔(它们越短,消耗的电量就越多)。此外,在dsp中,功耗取决于传输的数据量,当设备传输时,睡眠模式被取消,设备保持清醒,直到缓冲区中没有数据。当设备未休眠时,它消耗约0.6mA,而不是休眠时的1.4uA。此外,由于不是所有的中心设备都是一样的(接受不同的广告间隔,在每个连接间隔中接收不同数量的数据包,等等),功耗也取决于您所使用的中心。

关于RTS/CTS,是的,流控制是设备为了操作而需要的东西,因为它睡着了,它必须有一种方法通知外部MCU它是清醒的或已经进入睡眠状态,这样外部MCU就会知道什么时候发送数据,什么时候停止。没有它,你将无法在睡眠模式下工作。

由于MT_dialog