DA1458X大规模生产

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
22帖子/ 0新
最后一篇
Rajapurerohit.
离线
最后一次露面:9个月2周前
加入:2017-04-20 09:17
DA1458X大规模生产

大家好,

任何人都可以帮助我如何编程DA1458X群众设备?我在我少数设备的生产状态。

我对用于设备的分配大众BDA有一个疑问,

在我的项目中,我使用BDA作为一个参数之一,使用我正在执行一些控制操作。所以在批量生产时间内会影响我的项目。

表示,例如param_data[23] == nvds_data_ptr->NVDS_TAG_BD_ADDRESS[2]在这里,我使用了BDA的一个字节进行操作。所以在量产的时候,DA14580和DA14583对于BDA都需要考虑什么。

感谢和问候

罗希特R

设备:
PM_DIALOG.
离线
最后一次露面:3小时5分钟前
职员
加入:2018-02-08 11:03
嗨罗希特,

嗨罗希特,

对于大规模生产,请检查生产线工具(PLT)。最多16个设备可以连接..

https://www.dialog-seminile.com/produ雷电竞官网登录cts/production-line-tool.

你在生产中使用这个工具吗?

谢谢,PM_DIALOG.

Rajapurerohit.
离线
最后一次露面:9个月2周前
加入:2017-04-20 09:17
嗨PM_Dialog,

嗨PM_Dialog,

好的,谢谢你的回复。

是的,我将使用此工具进行生产。

关于BDA的怀疑呢。代码是否有任何影响?如果代码的任何更改,它会工作吗?

感谢和问候

罗希特R

PM_DIALOG.
离线
最后一次露面:3小时5分钟前
职员
加入:2018-02-08 11:03
嗨罗希特,

嗨罗希特,

请从以下文档中查看7.2.4 BD地址。

https://www.dialog-seminile.com/sites/default/files/um-b-041_da1458x_da1468x_production_line_tool_4v2.pdf.

您能否澄清您想要与BD地址完成的内容?您在生产中的要求是什么?

谢谢,PM_DIALOG.

Rajapurerohit.
离线
最后一次露面:9个月2周前
加入:2017-04-20 09:17
嗨PM_Dialog,

嗨PM_Dialog,

谢谢你的反馈,

好的,所以我设计了2个产品。产品A和B使用产品B我们正在控制产品A.因此,用于使用NVDS_DATA_PTR-> NVDS_TAG_BD_ADDRESS [2]结构来控制和识别哪些设备使用设备的BDA。我使用了6个字节的BDA,我保持前三个字节常见,另外3个字节作为设备的数量保持不变。

所以我的问题是,如果在将BDA分配给设备后的生产过程中会影响我的代码?如果是,那么在BDA分配期间要照顾的所有事情,以便使用最小的更改,我的代码应该像它一样工作。

我也想知道使用OTP方法以及flash编程设备的效果如何?

感谢和问候

罗希特R

PM_DIALOG.
离线
最后一次露面:3小时5分钟前
职员
加入:2018-02-08 11:03
嗨罗希特,

嗨罗希特,

当PLT被使用时,BD地址将被编程到OTP报头。之后,设备将获得OTP头的BD地址,因此NVDS或应用程序代码中的任何其他BD地址将被忽略。在生产过程中,代码不会受到影响,但正如前面提到的,PLT将用适当的BD地址写入OTP头。关于你的最后一个问题,你能解释一下吗?请注意,OTP代表One-Time-Programmable(一次性可编程),不能多次写入。

谢谢,PM_DIALOG.

Rajapurerohit.
离线
最后一次露面:9个月2周前
加入:2017-04-20 09:17
嗨PM_Dialog,

嗨PM_Dialog,

“当使用PLT时,将编程到OTP标题中的BD地址。之后,
设备将获取OTP标题的BD地址,因此NVDS中的任何其他BD地址
或者在应用程序代码中将被忽略“ -因此,如果我正在使用OTP进行生产,那么BDA的NVDS结构将被忽略
如果我想使用BDA,因为我的操作需要,那么我必须映射OTP BDA到我的逻辑,对吗?

如果是,那么你能分享如何映射OTP BDA?意味着存在有人使用此方法的示例。

如果我使用Flash制作,会有什么效果?请解释一下你是如何澄清关于OTP的问题的。
因为对于一些生产,我可能会使用DA14580 MCU,因此根据我的知识,可以使用OTP
而对于一些产品,我正在使用DA14583,所以我将使用闪光灯。所以请让我知道使用闪光灯的BDA效果是什么。

“在生产过程中,代码不会受到影响,
但正如前面提到的,PLT会写带有适当BD地址的OTP头文件"
-好的,但如果OTP标题用于BDA,那么我的NVDS结构不会影响我需要在BDA访问和操作情况下更改我的代码。

感谢和问候

罗希特R

PM_DIALOG.
离线
最后一次露面:3小时5分钟前
职员
加入:2018-02-08 11:03
嗨罗希特,

嗨罗希特,

如果您计划将PLT用于生产,并且希望通过PLT刻录BD地址,则BD地址将存储在OTP头的适当字段中。如果没有PLT,这个领域也可以燃烧,所以如果你有足够的板,你可以做一些测试。您可以使用使用SmartSnippets工具箱来读取和写入OTP头。

>>>如果我使用Flash制作,会有什么效果?

如果BD地址被编程到OTP报头?所以,如果我理解正确,你在你的设计中使用DA14580和DA14583,你想通过PLT编程(假设使用不同的fw)吗?BD地址呢?

谢谢,PM_DIALOG.

Rajapurerohit.
离线
最后一次露面:9个月2周前
加入:2017-04-20 09:17
嗨PM_Dialog,

嗨PM_Dialog,

谢谢你的反馈,

>>>如果我使用Flash制作,会有什么效果?-意味着,对于一些产品,我使用DA14583 MCU,那里我有flash选项,所以使用PLT和通过它写BDA,然后将BDA写入OTP头仅或它将写入NVDS结构(NVDS_TAG_BD_ADDRESS)。

因为,我们在开发阶段使用DA14583,这里我通过NVDS访问了BDA,并使用SmartSnippet我刚刚将.hex文件刻录到设备上并测试。

所以当我使用PLT对DA1583有什么影响?

>>>如果BD地址被编程到OTP标题?所以,如果我理解正确,你在你的设计中使用DA14580和DA14583,你想通过PLT编程(假设使用不同的fw)吗?BD地址呢?-是的,我同时使用DA14580和DA14583,因为很少有产品是为DA14580设计的,也很少有产品是为DA14583单片机设计的。是的,不同的固件。

所以,我想知道如何从OTP标题访问BDA,以及我需要在我的代码中更改哪些代码以访问相同的代替NVDS_TAG_BD_ADDRESS?。(例如 - param_data [23] == nvds_data_ptr-> nvds_tag_bd_address [2])

而且,如果我使用DA14583和燃烧代码使用PLT和写BDA,将BDA更新到NVDS_TAG_BD_ADDRESS或OTP头?

感谢和问候

罗希特R

PM_DIALOG.
离线
最后一次露面:3小时5分钟前
职员
加入:2018-02-08 11:03
嗨罗希特,

嗨罗希特,

在所有情况下,如果您使用PLT刻录BDA,那么它将存储在OTP标题中。然后DA1458X将从OTH标头与BDA开始广告。请检查nvds_read_bdaddr_from_otp()。你的意思是燃烧OTP Hader中的BDA,然后从你身上读出来吗?

谢谢,PM_DIALOG.

Rajapurerohit.
离线
最后一次露面:9个月2周前
加入:2017-04-20 09:17
嗨PM_Dialog,

嗨PM_Dialog,

好的,谢谢你的反馈。

检查nvds_read_bdaddr_from_otp ()好的,我来检查一下函数。

你的意思是燃烧OTP Hader中的BDA,然后从你身上读出来吗?-是的,我想访问固件和编写相同的逻辑,因为我已经使用NVDS结构。

请让我知道一步一步的程序或任何例子做同样的。

感谢和问候

罗希特R

PM_DIALOG.
离线
最后一次露面:3小时5分钟前
职员
加入:2018-02-08 11:03
嗨罗希特,

嗨罗希特,

如果设备BD Address写入到OTP头中,则忽略CFG_NVDS_TAG_BD_ADDRESS值。如果您检查system_init()函数,那么您将看到SDK检查并读取BD地址- nvds_read_bdaddr()。如果你检查前面提到的函数,你会看到:

如果DA14583, SDK首先检查并从DA14583的内部SPI flash中读取BD地址- nvds_read_bdaddr_from_da14583_flash()..如果在flash中没有找到BD地址,则尝试从OTP - nvds_read_bdaddr_from_otp()中读取BD地址。

在DA14580的情况下,由于它不包含嵌入式SPI Flash,因此SDK仅检查OTP标题 - NVDS_READ_BDADDR_FROM_OTP()。

如果读取NVDS_READ_BDADDR_FROM_OTP()的源代码,您将看到如何读取从0x7fd4地址(bdaddr_offset)启动的OTP标题的BD地址。

谢谢,PM_DIALOG.

Rajapurerohit.
离线
最后一次露面:9个月2周前
加入:2017-04-20 09:17
嗨PM_Dialog,

嗨PM_Dialog,

非常感谢您的回复,

好的,我刚刚通过nvds_read_bdaddr_from_otp()的源代码,如果我没有错,我只需要在我的自定义代码中所需的地方调用这个函数并映射这个“otp_bdaddr”结构而不是“nvds”结构。

如果我说错了请指正,我们使用PLT生产的所有DA1458x MCU(无论是DA14580还是DA14583)的流程都是一样的。

感谢和问候

罗希特R

PM_DIALOG.
离线
最后一次露面:3小时5分钟前
职员
加入:2018-02-08 11:03
嗨罗希特,

嗨罗希特,

在dev_bdaddr中会复制OTP_BDADDR。

Memcpy(&dev_bdaddr,otp_bdaddr,sizeof(dev_bdaddr));

如果你在SDK中稍微搜索一下,你会发现以下内容:

///设备BD地址

Struct bd_addr dev_bdaddr __attribute__(((section(“retention_mem_area0”),zero_init));

otp_bdaddr已经被SDK检索到。因此,这取决于您—您可以使用这个函数或基于nvds_read_bdaddr_from_otp()实现自己的函数,您需要做的只是从OTP读取正确的地址。

谢谢,PM_DIALOG.

Rajapurerohit.
离线
最后一次露面:9个月2周前
加入:2017-04-20 09:17
嗨PM_Dialog,

嗨PM_Dialog,

好的,非常感谢你的回复。

我会把所有要点都讲一遍,然后再给你答复。

感谢和问候

罗希特R

Rajapurerohit.
离线
最后一次露面:9个月2周前
加入:2017-04-20 09:17
嗨PM_Dialog

嗨PM_Dialog

我按照以下步骤构建了OTP固件

1)在da1458x_config_advanced.h文件中定义 - #define cfg_boot_from_otp

2)在user_peripheral文件externed - extern struct bd_addr *dev_bdaddr;(/// nvds.c文件struct bd_addr dev_bdaddr __attribute__((section("retention_mem_area0"), zero_init))))
3)在user_peripheral文件-使用dev_bdaddr->addr[5];访问地址并分配给广告变量
4)没有错误建立代码

通过以上4个步骤,我尝试从OTP访问BDA,但我不确定是否正确,我已经按照我的理解尝试了。
你能告诉我这个是否正确?因为我想在定制板上尝试这个,除非我100%正确。

如果还有任何其他步骤或任何其他需要在固件中的生产视角启用的任何其他事情,那么请告诉我关于DA14580和DA14583 MCU。

感谢和问候

罗希特R

PM_DIALOG.
离线
最后一次露面:3小时5分钟前
职员
加入:2018-02-08 11:03
嗨罗希特,

嗨罗希特,

对不起,我有点困惑,所以请你说明你想要完成的东西吗?您是否使用固件刻录OTP,或者您是否使用特定的BDA刻录OTP标题?只需尝试从SmartSnippets Toolbox连接到OTP标题并刻录BDA。

我仍然没有完全确定我是否理解你的要求。如果我理解正确,你有2种不同的产品。雷电竞官网登录基于DA14580的第一个和DA14583上的第二个。

您希望使用PLT并使用特定的BDA刻录OTP标头。出于测试目的,您可以使用SST才能刻录BD地址。你燃烧了OTP标题吗?

谢谢,PM_DIALOG.

Rajapurerohit.
离线
最后一次露面:9个月2周前
加入:2017-04-20 09:17
嗨PM_Dialog,

嗨PM_Dialog,

不,我还没有尝试过任何尝试。我现在有有限的设备,所以我没有任何设备刻录固件。我只是准备最终固件。

手段,我的问题是从OTP访问BDA的这些步骤是正确的还是不正确?如果步骤正确,那么,我还需要在DA14583固件中更改,还是仅适用于DA14580?

“仍然,我并不完全确定我是否已经理解了你的要求。如果我正确地理解,你有2个不同的产品。第一个基于DA14580和DA14583上的第二个。雷电竞官网登录-是的,我有2个产品使用不同的雷电竞官网登录MCU,一个是DA14580,另一个是DA14583。我将在大规模生产中使用PLT。所以我问什么所有的事情我需要启用或禁用有关固件生产?这意味着DA14580和DA14583在生产过程中需要什么。

感谢和问候

罗希特R

PM_DIALOG.
离线
最后一次露面:3小时5分钟前
职员
加入:2018-02-08 11:03
嗨罗希特,

嗨罗希特,

为延迟道歉。外部DEV_BDADDR可能是一种可能的方法。设备在启动期间获得BD地址,在NVDS_READ_BDADDR()函数中(设备检查来自BD地址的NVDS结构或OTP的位置),并将获得的VED_BDDDR变量中的所获得的值放置在保存的地址中设备。

你能澄清#3步吗?

>>>在User_Peripheral文件中 - 使用dev_bdaddr-> addr [5];访问地址并分配给广告变量

你的意思是要在广告字符串中添加bd地址吗?

正如我已经提到的,您应该烧毁OTP头中的BD地址。请使用智能代码片段工具箱来读取和烧毁OTP报头。您不需要将整个应用程序映像刻入OTP并从那里启动

谢谢,PM_DIALOG.

Rajapurerohit.
离线
最后一次露面:9个月2周前
加入:2017-04-20 09:17
嗨PM_Dialog,

嗨PM_Dialog,

好的,谢谢你的反馈。

">>>in user_peripheral file - using dev_bdaddr->addr[5];访问地址并分配给广告变量

你的意思是要在广告字符串中添加bd地址吗?”-是的,正确。我在广告字符串中使用了一个bd地址。

“正如我已经提到的那样,您应该在OTP标题中刻录BD地址。请使用智能代码段工具箱才能读取和刻录OTP标头。您不需要将整个应用程序图像刻录到OTP并从那里启动“ -好的,意味着我只需刻录OTP标题并检查设备广告,那么我将能够读取地址仪式?您能否分享这样的步骤,它会帮助我理解,这样我不应该犯错误,因为我现在的设备很少,其他在生产过程中。

感谢和问候

罗希特R

Rajapurerohit.
离线
最后一次露面:9个月2周前
加入:2017-04-20 09:17
嗨PM_Dialog,

嗨PM_Dialog,

关于上一篇文章的任何更新?

感谢和问候

罗希特R

PM_DIALOG.
离线
最后一次露面:3小时5分钟前
职员
加入:2018-02-08 11:03
嗨罗希特,

嗨罗希特,

对不起,可能我错过了你最后的评论。您是否意味着您应该遵循的步骤,以便通过Smart Scippets Toolbox刻录OTP标头中的BDA?

如果是,您可以使用CLI来刻录OTP头中的BD地址。命令行可以在\5.0.4\ binary \host\windows\prod_test_cmds SDK路径下找到。下面的命令将BD地址写入OTP:

protest -p otp wr_bdaddr

示例:Prodtest -P 14 OTP WR_BDADDR 44:49:41:4C:4F:47

另一个选项可能是使用SmartSnippets Toolbox才能在OTP标题中刻录BD地址。通常,对于通过SST刻录OTP,您应该是OTP程序员。请记住,建议使用最新版本的工具。

OTP包含3个用户可以燃烧数据的区域:

  • OTP图像区域,其中将用户代码放置并在引导时镜像到SYSRAM。
  • OTP NVDS区域,其中NVDS结构在启动时填充了OTP。
  • OTP标题区域,其中放置了定义设备操作的标志和特定值(关于OTP报头的值的更多信息,可以在智能代码片段用户指南中找到)。

刻录OTP时,应确保编程电压干净,不得超过6.8V。请参阅数据表以查找编程电压的更多详细信息。请记住,OTP持续一次可编程,因此您无法多次擦除并重新编写OTP,但您只能将仍设置为0的位,然后将其转换为1。

在您的情况下,打开SST并连接到OTP标题。只要您已连接,您将看到OTP标题中的所有可用字段。PLT将在“设备唯一ID”字段中的以下地址中存储BD地址。

因此,如果您想测试它,您应该刻录“设备唯一ID”字段中的BD地址。请注意,一个字的最高位(最左)字节存储在最小地址(大端)中。例如,如果用户在“设备唯一标识”字段中输入0A0B0C0D,则0x0A写入0x47FD4, 0x0D写入0x47FD7。

谢谢,PM_DIALOG.