你好,
我无法执行OTP程序。也许是由发送到OTP的标题数据和实际写入的数据之间的差异引起的。正如您在附加的划幕表中看到的那样,发送数据与书面数据之间存在差异。似乎数据刻录的数据与指定的数据不同。
现在设备被烤。
任何了解错误吗?谢谢。
埃德
嗨edlofau,
我不认为我已经听到任何问题关于OTP燃烧,从我所能看到的图片你看了OTP nvd在不同的偏移量,一个是40000,另一个是44000,还在nvd部分有一个国旗,允许将数据插入到nvd区域,CFG_INITIALIZE_NVDS_STRUCT国旗。如果你用这个标志设置烧录图像,那么你也用那个数据烧录NVDS区域,而不仅仅是用你用OTP NVDS燃烧器设置的数据。
谢谢mt_dialog.
感谢您的回复。
我找不到这面旗帜,正如你在图片中看到的,它不存在。
无论如何,我理解问题可能是由偏移量引起的。
这将是非常有帮助的有一个简短的总结如何编程的OTP。我使用的是您为DA14580提供的原始示例DSPS,没有任何更改。该映像是用调试标志= 0构建的。我附上了我想编程的数据,也许如果你能快速看一下,找出一些问题…
我的主要怀疑是可用的两个偏移量(对于图像和NVDS),哪个值避开我?
是否有任何其他参数,我应该小心,以便执行成功的程序吗?
非常感谢,埃德
我正在谈论的标志位于SDK中,而不是在OTP NVDS或标题中。如果您刻录的图像具有在SDK中启用此标志,则NVDS结构区域已填充SDK具有的值。当您在OTP中刻录NVDS数据时,您可以使用您希望在OTP NVDS中刻录的数据,在OTP中全部刻放到OTP中的数据。NVDS不是OTP图像的单独部分。当您刻录未在没有先前提到的标志的情况下创建的SDK的图像时,NVDS区域应该有零,以便您将该区域的空白空间刻录为从OTP NVDS工具的NVDS区域。NVDS的偏移量是0x4000的0x340,即OTP的起始地址。
我在DSDP例子中找不到这个标志,在SDK中也找不到DSDP。
我在SDK中找到了SDK中的标志,用于写入的示例,在文件DA1458x_config_Advanced.h中,但此文件不存在于DSDP中。
谢谢,
在SDK 5 DSP中,据我所知,它位于DA1458x_config_Advanced.h中,在第36行中,这将初始化或不是位于NVDS.C文件中的NVDS结构,第41行。
我从这里加载了SDK5https://support.dialog-semicondiondiondum/download/file/fid/2759我无法找到一个名为DSDP的项目。它放在哪里?这是keil5项目还是…??谢谢,对不起,埃德
该项目称为DSPS及其位于支持站点的参考设计部分。
我发现我用的是旧版本的DSDP。我下载了最后一个,最后找到da1458x_config_advanced.h文件和标志…非常感谢您的耐心等待。问候,埃德
你好,我们又见面了,
我让DSPS代码在RAM中正常运行(通过智能片段引导程序),它使BLE串行桥如所愿。现在,为了放入OTP,我想有一种清单,以便正确地烧OTP,就我所知:
1)在Keil5中编译以下标志:#定义CFG_BOOT_FROM_OTP#define cfg_initialize_nvds_struct.
2)在SmartSnippet中,在OTP部分中,我将OTP图像与上一个.hex(offset = 0)刻录3)对NVDS OTP不做任何事情(因为由于CFG_INITIALIZE_NVDS_STRUCT, OTP映像会处理它)4)OTP头——>许多疑问:我想我需要把两个第一个标志(OTP中的应用程序)是。但是其他参数呢?对于DSPS,我需要在这里加载更多的东西吗?
谢谢!
你提到的步骤是正确的,关于最后一步,通过燃烧国旗你的应用程序都将迫使580年从OTP,不会扫描启动外围设备寻找一个图像,通过这样做,DMA长度1 fc0 (OTP的长度形象的话,您应该设置它,以便将完整的OTP复制到您的系统ram中,以防万一),您应该能够从OTP运行应用程序。关于其他参数,您可以检查Smart Snippets User Guide.pdf,以便检查OTP头部的其他字段做什么。论坛上也有不少关于焚烧OTP头的帖子,请随意搜索论坛。
嗨对话框,
我希望在头文件中写入以下值:
o在0x47F00和0x47F04的应用标志1和2 = YESo 32KHz源段(4字节)在0x47F74。外部晶体o DMA长度(4字节)在0x47FF8 = 1FC0
我不会对剩余的价值观进行编程。这有意义吗?
最后一个问题。我观察到在深度睡眠模式下,我没有通信主机<->设备。但是对于扩展模式,我有了通信,但是在传输过程中丢失了很多字符。为了配置他们,例如在deep i使用:#undef cfg_mem_map_ext_sleep.#定义CFG_MEM_MAP_DEEP_SLEEPconst static sleep_state_t app_default_sleep_mode = arch_deep_sleep_on;(user.config.h)
我是不是漏掉了什么?在OTP编程中,我应该注意任何其他配置吗?
非常感谢 !埃德
是的,它可以,确保重新映射标志有SRAM为0(这是默认的,但只是以防万一),并保持JTAG使能标志启用(这也是默认的),以便能够通过JTAG重新连接到设备。
当用户手册指示而不是深度睡眠时,DSP只支持扩展睡眠模式。我没有看到任何丢失的东西,用DSPS FW燃烧您的设备,以扩展睡眠模式。关于您已启用HW流量控制的字符损耗检查,并确保在PC终端上启用它,请使用电路板与RTS / CTS连接连接。
非常感谢您的回复。
我会把它延长。顺便问一下,当设备没有配对时,你知道当前的消耗是多少吗?顺便问一下,如果睡眠模式是OFF,并且设备没有配对,电流是多少?
我的MCU没有RTS / CTS线条,所以我不使用流量控制。这可能是一个问题吗?
谢谢,埃德
您可以在功耗常见问题解答(睡眠功耗,转换,接收)中找到有关580的功耗的信息。DSP的消耗不是任何不同的,是什么让整个系统的差异是广告间隔和连接间隔(它们越短,您消耗的功率越短)。同样在DSP中,功耗取决于您发送的数据的AMMount,当设备发送睡眠模式时,取消睡眠模式,并且设备保持醒着,直到在缓冲区中没有数据。当设备未睡眠时,它会消耗约0.6mA而不是1.4UA时睡着。此外,由于并非所有中央设备行为相同(接受不同的广告间隔,因此每个连接间隔中的不同数量等),因此功耗也取决于您使用的中心。
关于RTS / CTS,是的流控制是设备的要求来操作,因为它睡它必须有办法通知外部单片机是醒着还是已经睡觉,所以外部单片机将知道什么时候和什么时候停止发送数据。没有它,你将无法在睡眠模式下操作。
嗨edlofau,
我不认为我已经听到任何问题关于OTP燃烧,从我所能看到的图片你看了OTP nvd在不同的偏移量,一个是40000,另一个是44000,还在nvd部分有一个国旗,允许将数据插入到nvd区域,CFG_INITIALIZE_NVDS_STRUCT国旗。如果你用这个标志设置烧录图像,那么你也用那个数据烧录NVDS区域,而不仅仅是用你用OTP NVDS燃烧器设置的数据。
谢谢mt_dialog.
你好,
感谢您的回复。
我找不到这面旗帜,正如你在图片中看到的,它不存在。
无论如何,我理解问题可能是由偏移量引起的。
这将是非常有帮助的有一个简短的总结如何编程的OTP。我使用的是您为DA14580提供的原始示例DSPS,没有任何更改。该映像是用调试标志= 0构建的。我附上了我想编程的数据,也许如果你能快速看一下,找出一些问题…
我的主要怀疑是可用的两个偏移量(对于图像和NVDS),哪个值避开我?
是否有任何其他参数,我应该小心,以便执行成功的程序吗?
非常感谢,
埃德
嗨edlofau,
我正在谈论的标志位于SDK中,而不是在OTP NVDS或标题中。如果您刻录的图像具有在SDK中启用此标志,则NVDS结构区域已填充SDK具有的值。当您在OTP中刻录NVDS数据时,您可以使用您希望在OTP NVDS中刻录的数据,在OTP中全部刻放到OTP中的数据。NVDS不是OTP图像的单独部分。当您刻录未在没有先前提到的标志的情况下创建的SDK的图像时,NVDS区域应该有零,以便您将该区域的空白空间刻录为从OTP NVDS工具的NVDS区域。NVDS的偏移量是0x4000的0x340,即OTP的起始地址。
谢谢mt_dialog.
你好,
感谢您的回复。
我在DSDP例子中找不到这个标志,在SDK中也找不到DSDP。
我在SDK中找到了SDK中的标志,用于写入的示例,在文件DA1458x_config_Advanced.h中,但此文件不存在于DSDP中。
谢谢,
埃德
嗨edlofau,
在SDK 5 DSP中,据我所知,它位于DA1458x_config_Advanced.h中,在第36行中,这将初始化或不是位于NVDS.C文件中的NVDS结构,第41行。
谢谢mt_dialog.
我从这里加载了SDK5https://support.dialog-semicondiondiondum/download/file/fid/2759我无法找到一个名为DSDP的项目。
它放在哪里?这是keil5项目还是…??
谢谢,对不起,
埃德
嗨edlofau,
该项目称为DSPS及其位于支持站点的参考设计部分。
谢谢mt_dialog.
我发现我用的是旧版本的DSDP。
我下载了最后一个,最后找到da1458x_config_advanced.h文件和标志…
非常感谢您的耐心等待。
问候,
埃德
你好,我们又见面了,
我让DSPS代码在RAM中正常运行(通过智能片段引导程序),它使BLE串行桥如所愿。现在,为了放入OTP,我想有一种清单,以便正确地烧OTP,就我所知:
1)在Keil5中编译以下标志:
#定义CFG_BOOT_FROM_OTP
#define cfg_initialize_nvds_struct.
2)在SmartSnippet中,在OTP部分中,我将OTP图像与上一个.hex(offset = 0)刻录
3)对NVDS OTP不做任何事情(因为由于CFG_INITIALIZE_NVDS_STRUCT, OTP映像会处理它)
4)OTP头——>许多疑问:我想我需要把两个第一个标志(OTP中的应用程序)是。但是其他参数呢?对于DSPS,我需要在这里加载更多的东西吗?
谢谢!
嗨edlofau,
你提到的步骤是正确的,关于最后一步,通过燃烧国旗你的应用程序都将迫使580年从OTP,不会扫描启动外围设备寻找一个图像,通过这样做,DMA长度1 fc0 (OTP的长度形象的话,您应该设置它,以便将完整的OTP复制到您的系统ram中,以防万一),您应该能够从OTP运行应用程序。关于其他参数,您可以检查Smart Snippets User Guide.pdf,以便检查OTP头部的其他字段做什么。论坛上也有不少关于焚烧OTP头的帖子,请随意搜索论坛。
谢谢mt_dialog.
嗨对话框,
我希望在头文件中写入以下值:
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编程中,我应该注意任何其他配置吗?
非常感谢 !
埃德
嗨edlofau,
是的,它可以,确保重新映射标志有SRAM为0(这是默认的,但只是以防万一),并保持JTAG使能标志启用(这也是默认的),以便能够通过JTAG重新连接到设备。
当用户手册指示而不是深度睡眠时,DSP只支持扩展睡眠模式。我没有看到任何丢失的东西,用DSPS FW燃烧您的设备,以扩展睡眠模式。关于您已启用HW流量控制的字符损耗检查,并确保在PC终端上启用它,请使用电路板与RTS / CTS连接连接。
谢谢mt_dialog.
你好,
非常感谢您的回复。
我会把它延长。顺便问一下,当设备没有配对时,你知道当前的消耗是多少吗?顺便问一下,如果睡眠模式是OFF,并且设备没有配对,电流是多少?
我的MCU没有RTS / CTS线条,所以我不使用流量控制。这可能是一个问题吗?
谢谢,
埃德
嗨edlofau,
您可以在功耗常见问题解答(睡眠功耗,转换,接收)中找到有关580的功耗的信息。DSP的消耗不是任何不同的,是什么让整个系统的差异是广告间隔和连接间隔(它们越短,您消耗的功率越短)。同样在DSP中,功耗取决于您发送的数据的AMMount,当设备发送睡眠模式时,取消睡眠模式,并且设备保持醒着,直到在缓冲区中没有数据。当设备未睡眠时,它会消耗约0.6mA而不是1.4UA时睡着。此外,由于并非所有中央设备行为相同(接受不同的广告间隔,因此每个连接间隔中的不同数量等),因此功耗也取决于您使用的中心。
关于RTS / CTS,是的流控制是设备的要求来操作,因为它睡它必须有办法通知外部单片机是醒着还是已经睡觉,所以外部单片机将知道什么时候和什么时候停止发送数据。没有它,你将无法在睡眠模式下操作。
谢谢mt_dialog.