DA1458X大规模生产

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程//www.wsdof.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
22帖/ 0新
最后发表
Rajapurerohit
离线
最后看到:1年3个星期前
加入:2017-04-20 09:17
DA1458X大规模生产

大家好,

谁能帮助我如何将DA1458x质量器件编程?我在我的几台设备的生产状态。

我对把大量BDA分配给设备有一个疑问,

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

在这里,我使用了BDA的一个字节来进行我的操作。所以在批量生产的时候,都需要考虑关于DA14580和DA14583的BDA。

感谢致敬

Rohit R.

设备:
PM_Dialog
离线
最后看到:2天13小时前
工作人员
加入:2018-02-08 11:03
嗨罗希特,

嗨罗希特,

批量生产请检查生产线工具(PLT)。最多可连接16个设备。

//www.wsdof.com/雷电竞官网登录products/production-line-tool

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

谢谢,PM_Dialog

Rajapurerohit
离线
最后看到:1年3个星期前
加入:2017-04-20 09:17
嗨PM_Dialog,

嗨PM_Dialog,

好的,谢谢你的回复。

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

那我对汇业银行的怀疑呢。对代码有影响吗?它能在不改变代码的情况下工作吗?

感谢致敬

Rohit R.

PM_Dialog
离线
最后看到:2天13小时前
工作人员
加入:2018-02-08 11:03
嗨罗希特,

嗨罗希特,

请检查以下文件中的7.2.4 BD地址。

//www.wsdof.com/sites/default/files/um-b-041_da1458x_da1468x_production_line_tool_4v2.pdf

能否请你澄清你想与BD地址来完成呢?什么是您生产的要求?

谢谢,PM_Dialog

Rajapurerohit
离线
最后看到:1年3个星期前
加入:2017-04-20 09:17
嗨PM_Dialog,

嗨PM_Dialog,

谢谢你的反馈,

我设计了两个产品。产品A和B,使用产品B我们控制产品A。因此,为了控制和识别我使用的设备BDA的设备使用nvds_data_ptr->NVDS_TAG_BD_ADDRESS[2]结构。我使用的6字节的BDA,我保持前三个字节的共同和其他3字节保持变化的设备的数量。

所以我的问题是,如果在生产过程中分配BDA到设备后,它会影响我的代码吗?如果是,那么在分配BDA期间需要注意哪些事情,以使我的代码能够以最小的更改工作。

并且我也想知道使用OTP方法以及flash编程设备的效果是什么?

感谢致敬

Rohit R.

PM_Dialog
离线
最后看到:2天13小时前
工作人员
加入:2018-02-08 11:03
嗨罗希特,

嗨罗希特,

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

谢谢,PM_Dialog

Rajapurerohit
离线
最后看到:1年3个星期前
加入:2017-04-20 09:17
嗨PM_Dialog,

嗨PM_Dialog,

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

如果是,能否分享一下如何映射OTP BDA?意思是如果有一个例子,有人使用这个方法。

如果我使用Flash制作会有什么效果?请解释一下关于OTP你是如何澄清的。
因为对于一些生产,我可以使用DA14580 MCU所以OTP是必要的,按我的知识
,而对于一些产品,我使用DA14583所以在这里我要使用闪光灯。所以,请让我知道什么是过度使用闪光灯BDA效果。

“在生产过程中,代码不会受到影响,
但如前所述,PLT将使用适当的BD地址写入OTP标题“
-好了,但如果动态头使用BDA然后我NVDS结构不会影响我需要改变的BDA访问和操作的情况下我的代码。

感谢致敬

Rohit R.

PM_Dialog
离线
最后看到:2天13小时前
工作人员
加入:2018-02-08 11:03
嗨罗希特,

嗨罗希特,

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

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

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

谢谢,PM_Dialog

Rajapurerohit
离线
最后看到:1年3个星期前
加入:2017-04-20 09:17
嗨PM_Dialog,

嗨PM_Dialog,

谢谢你的反馈,

>>>如果我使用Flash制作会有什么效果?-意味着,对于某些产品,我使用DA14583 MCU,我有闪存选项,所以使用PLT并通过它写BDA,然后将BDA写入OTP标题或它将在NVDS结构中写入NVDS结构(NVDS_TAG_BD_ADDRESS)。

因为,在开发阶段,我们已经使用DA14583这里我已访问BDA通过NVDS和使用SmartSnippet我刚才烧.hex文件到设备和测试。

那么当我使用PLT时,对DA1583有什么影响?

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

所以,我想知道如何获得BDA从OTP头,什么我需要在我的代码更改访问相同到位NVDS_TAG_BD_ADDRESS(例如 - ?param_data [23] == nvds_data_ptr-> NVDS_TAG_BD_ADDRESS [2])

还有,如果我使用DA14583,使用PLT刻录代码并写入BDA, BDA会更新到NVDS_TAG_BD_ADDRESS或OTP头吗?

感谢致敬

Rohit R.

PM_Dialog
离线
最后看到:2天13小时前
工作人员
加入:2018-02-08 11:03
嗨罗希特,

嗨罗希特,

在任何情况下,如果你使用的是PLT烧BDA,那么它将被保存在OTP头。然后DA1458x将开始投放广告与BDA从OTH头。请检查nvds_read_bdaddr_from_otp()。你的意思是你从烧FW澳门汇业银行的OTP Hader,然后看了吗?

谢谢,PM_Dialog

Rajapurerohit
离线
最后看到:1年3个星期前
加入:2017-04-20 09:17
嗨PM_Dialog,

嗨PM_Dialog,

好的,谢谢你的反馈。

检查nvds_read_bdaddr_from_otp() -好的,我会检查函数。

你的意思是在OTP Hader上烧了BDA然后从你的FW上读出来吗?-是的,我想访问固件并编写与使用NVDS结构相同的逻辑。

请通过步骤过程或任何示例,让我知道相同的例子。

感谢致敬

Rohit R.

PM_Dialog
离线
最后看到:2天13小时前
工作人员
加入:2018-02-08 11:03
嗨罗希特,

嗨罗希特,

如果设备BD地址在OTP标题中写入,则忽略CFG_NVDS_TAG_BD_ADDRESS值。如果检查system_init()函数,则会看到SDK检查并读取BD地址 - NVDS_READ_BDADDR()。如果检查上述功能,您将看到:

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

在DA14580的情况下,因为它不包含嵌入式SPI闪存中,SDK仅检查OTP头 - nvds_read_bdaddr_from_otp()。

如果你读nvds_read_bdaddr_from_otp()的源代码,你会看到如何从OTP头读取BD地址,它从0x7fd4地址(BDADDR_OFFSET)开始。

谢谢,PM_Dialog

Rajapurerohit
离线
最后看到:1年3个星期前
加入:2017-04-20 09:17
嗨PM_Dialog,

嗨PM_Dialog,

谢谢你这么多的响应,

好吧,我刚刚经历nvds_read_bdaddr_from_otp的源代码了(),如果我没有错,我只需要哪里需要我的自定义代码,而不是调用这个函数并映射这个“otp_bdaddr”结构“NVDS”结构。

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

感谢致敬

Rohit R.

PM_Dialog
离线
最后看到:2天13小时前
工作人员
加入:2018-02-08 11:03
嗨罗希特,

嗨罗希特,

otp_bdaddr在dev_bdaddr中被mem- copy。

的memcpy(&dev_bdaddr,otp_bdaddr,的sizeof(dev_bdaddr));

如果在SDK中搜索一点点,您将找到以下内容:

///设备BD地址

Struct bd_addr dev_bdaddr __attribute__((section("retention_mem_area0"), zero_init));

SDK已检索OTP_BDADDR。因此,这取决于您 - 您可以使用此功能或实现基于NVDS_READ_BDADDR_FROM_OTP()的功能,您需要做的就是从OTP读取正确的地址。

谢谢,PM_Dialog

Rajapurerohit
离线
最后看到:1年3个星期前
加入:2017-04-20 09:17
嗨PM_Dialog,

嗨PM_Dialog,

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

我会把所有的点都过一遍,然后给你答复。

感谢致敬

Rohit R.

Rajapurerohit
离线
最后看到:1年3个星期前
加入:2017-04-20 09:17
嗨PM_DIALOG.

嗨PM_DIALOG.

我遵循了以下步骤来构建OTP固件

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

2)在User_Peripheral文件中,extern struct bd_addr * dev_bdaddr;(///从nvds.c文件struct bd_addr dev_bdaddr __attribute __((部分(“retent_mem_area0”),zero_init)))))
3)在user_peripheral文件-使用dev_bdaddr->addr[5];访问地址并在广告变量中分配
4)构建的代码没有错误

通过上面的4个步骤,我试图从OTP访问BDA,但我不确定是否正确,我根据我的理解尝试了。
可否请您让我知道这是正确与否?因为我想试试这件定制电路板,除非我是100%正确的。

如果有任何其他步骤或任何其他东西,需要启用的生产角度在固件,然后让我知道DA14580和DA14583 MCU。

感谢致敬

Rohit R.

PM_Dialog
离线
最后看到:2天13小时前
工作人员
加入:2018-02-08 11:03
嗨罗希特,

嗨罗希特,

对不起,BUR我有点糊涂了,所以请你注明你所要完成的任务?你烧OTP与你的固件,还是你烧OTP头与特定BDA?只是尝试连接到从SmartSnippets工具箱OTP页眉和燃烧你的BDA。

不过我不能完全肯定,如果我明白你的要求。如果我没理解错的话你有两种不同的产品。雷电竞官网登录第一种在基于DA14580并在DA14583第二。

你想要使用PLT和烧的OTP头与特定的BDA。出于测试目的,您可以使用SST来刻录BD地址。你烧了OTP头了吗?

谢谢,PM_Dialog

Rajapurerohit
离线
最后看到:1年3个星期前
加入:2017-04-20 09:17
嗨PM_Dialog,

嗨PM_Dialog,

没有,我什么都没试过。我现在有有限的设备,所以我没有烧录固件到任何设备。我正在准备最终的固件。

意思是,我的问题是从OTP访问BDA的步骤是正确的还是错误的?如果步骤是正确的,那么我是否也需要在DA14583固件中进行更改,还是只对DA14580进行更改?

“不过,我还是不能完全确定我是否理解了您的要求。如果我没理解错的话你有两种不同的产品。雷电竞官网登录第一款基于DA14580,第二款基于DA14583。-是的,我有2个具有不同MCU雷电竞官网登录的产品,一个是使用DA14580,另一个是DA14583。我将使用PLT进行大规模生产。所以我询问了我需要在固件中的生产中启用或禁用的所有内容?这意味着DA14580需要什么以及生产过程中DA14583所需的内容。

感谢致敬

Rohit R.

PM_Dialog
离线
最后看到:2天13小时前
工作人员
加入:2018-02-08 11:03
嗨罗希特,

嗨罗希特,

道歉的延迟。Externign的dev_bdaddr可能是一个可行的方法。该设备获得(从其中可以得到BD地址或者NVDS结构或OTP设备检查)启动,在nvds_read_bdaddr()函数中保持的地址的BD地址和地的dev_bdaddr变量所得到的值设备。

你能解释一下第三步吗?

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

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

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

谢谢,PM_Dialog

Rajapurerohit
离线
最后看到:1年3个星期前
加入:2017-04-20 09:17
嗨PM_Dialog,

嗨PM_Dialog,

好的,谢谢你的反馈。

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

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

正如我已经提到的,你应该在OTP头刻录BD地址。请使用智能代码片段工具箱读取和刻录OTP标头。你将不需要烧整个应用程序映像到OTP和引导从那里" -好的,意思是如果我烧了OTP头并检查设备广告,那么我将能够读取地址仪式?您能告诉我做这件事的步骤吗?这样可以帮助我理解,这样我就不会犯任何错误,因为我现在的设备很少,其他设备都在生产过程中。

感谢和问候

Rohit R.

Rajapurerohit
离线
最后看到:1年3个星期前
加入:2017-04-20 09:17
嗨PM_Dialog,

嗨PM_Dialog,

我对于以前的帖子任何更新?

感谢致敬

Rohit R.

PM_Dialog
离线
最后看到:2天13小时前
工作人员
加入:2018-02-08 11:03
嗨罗希特,

嗨罗希特,

抱歉,我可能错过了你的最后一条评论。您的意思是您应该遵循的步骤,以便通过智能代码片段工具箱刻录OTP头文件中的BDA ?

如果是,您可以使用CLI来刻录OTP头中的BD地址。CLI可以在\5.0.4\binaries\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工具箱来刻录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 Header中看到所有可用字段。PLT将BD地址存储在“设备唯一ID”字段中的以下地址中。

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

谢谢,PM_Dialog