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

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

你好,

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

现在这个装置已经被烤焦了。

有什么发现吗?谢谢。

艾德

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

嗨edlofau,

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

由于MT_dialog

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

你好,

谢谢你的回复。

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

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

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

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

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

非常感谢,
艾德

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

嗨edlofau,

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

由于MT_dialog

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

你好,

谢谢你的回复。

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

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

谢谢,

艾德

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

嗨edlofau,

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

由于MT_dialog

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

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

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

嗨edlofau,

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

由于MT_dialog

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

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

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

你好再次,

我有DSPS代码运行OK在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做什么(因为OTP映像照顾它由于CFG_INITIALIZE_NVDS_STRUCT)
4)OTP头—>许多疑问:我想我需要把第一个标志(应用在OTP)都设置为yes。但是其他参数呢?对于DSPS,我需要在这里加载更多的东西吗?

谢谢!

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

嗨edlofau,

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

由于MT_dialog

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

嗨,对话框中,

我期望燃烧头与以下值:

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

我不会对剩下的值进行编程。有道理吗?

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

我错过什么了吗?我是否应该在OTP编程中负责任何其他配置?

非常感谢!
艾德

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

嗨edlofau,

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

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

由于MT_dialog

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

你好,

非常感谢您的回复。

我把它代入扩展。你知道当设备没有配对时,当前的消耗是多少吗?顺便说一下,如果睡眠模式是关闭的,且设备没有配对,那么当前是多少?

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

谢谢,
艾德

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

嗨edlofau,

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

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

由于MT_dialog