DA1458X大规模生产

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

大家好,

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

对于给设备分配质量BDA,我有一个疑问,

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

意思是,例如param_data [23] == nvds_data_ptr-> nvds_tag_bd_address [2]这里,我已经使用了一个字节的BDA进行操作。因此,批量生产时间在DA14580和DA14583方面都需要考虑BDA。

感谢致敬

Rohit R.

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

嗨rohit,

如果是大批量生产,请检查生产线工具(PLT)。最多可以连接16个设备。

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

您是否使用此工具进行生产?

谢谢,PM_Dialog

Rajapurerohit.
离线
最后看到:9个月1周前
加入:2017-04-20 09:17
嗨pm_dialog,

嗨pm_dialog,

好的,谢谢你的回复。

是的,我要把这个工具用于生产。

那我对BDA的怀疑呢。对代码有影响吗?如果不修改代码,它能工作吗?

感谢致敬

Rohit R.

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

嗨rohit,

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

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

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

谢谢,PM_Dialog

Rajapurerohit.
离线
最后看到:9个月1周前
加入:2017-04-20 09:17
嗨pm_dialog,

嗨pm_dialog,

感谢您的反馈,

好的,我设计了2个产品。产品A和B,使用产品B,我们正在控制产品A。因此,为了控制和识别我使用的设备的BDA,使用nvds_data_ptr->NVDS_TAG_BD_ADDRESS[2]结构的设备。我使用了6个字节的BDA,我保持前3个字节是通用的,其他3个字节随着设备的数量不断变化。

所以我的问题是,如果在生产过程中分配BDA给设备后,它会影响我的代码吗?如果是,那么在分配BDA期间要处理的所有事情是什么,以便以最小的更改我的代码应该正常工作。

我也想知道使用OTP方法以及闪存的编程设备的影响是什么?

感谢致敬

Rohit R.

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

嗨rohit,

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

谢谢,PM_Dialog

Rajapurerohit.
离线
最后看到:9个月1周前
加入:2017-04-20 09:17
嗨pm_dialog,

嗨pm_dialog,

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

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

如果我使用Flash进行生产,那么效果是多少?请向我解释您如何清除关于OTP的点。
因为对于一些生产,我可能会使用DA14580 MCU,因此根据我的知识,可以使用OTP
而对于一些产品,我正在使用DA14583,所以我将使用闪光灯。所以请让我知道使用闪光灯的BDA效果是什么。

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

感谢致敬

Rohit R.

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

嗨rohit,

如果您计划使用PLT生产,并且如果要通过PLT刻录BD地址,则BD地址将存储在OTP标题的相应字段中。这个领域也可以在没有PLT的情况下烧毁,所以如果您有大量的电路板,您可以进行一些测试。您可以使用“使用SmartSnippet”工具箱来读取和编写OTP标题。

>>>如果我使用Flash进行生产,那么效果是多少?

如果将BD地址编程到OTP标题?因此,如果我正确地理解您的设计中使用DA14580和DA14583,您是否想通过PLT进行编程(使用不同的FW假设)?那个BD地址怎么样?

谢谢,PM_Dialog

Rajapurerohit.
离线
最后看到:9个月1周前
加入:2017-04-20 09:17
嗨pm_dialog,

嗨pm_dialog,

感谢您的反馈,

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

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

所以当我使用PLT对DA1583的影响是什么时候?

>>>如果BD地址被编程到OTP标题?因此,如果我正确地理解您的设计中使用DA14580和DA14583,您是否想通过PLT进行编程(使用不同的FW假设)?那个BD地址怎么样?-是的,我正在使用DA14580和DA14583,因为很少有产品专为DA14580设计,很少有DA14583 MCU。是的,不同的固件。

所以,我想知道如何从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标题?

感谢致敬

Rohit R.

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

嗨rohit,

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

谢谢,PM_Dialog

Rajapurerohit.
离线
最后看到:9个月1周前
加入:2017-04-20 09:17
嗨pm_dialog,

嗨pm_dialog,

好的,谢谢你的反馈。

检查nvds_read_bdaddr_from_otp() -好的,我会检查这个功能。

你的意思是烧毁OTP Hader中的BDA,然后从你的FW上读它?-是的,我想访问固件并在使用NVDS结构完成时写入相同的逻辑。

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

感谢致敬

Rohit R.

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

嗨rohit,

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

如果da14583,sdk首次检查并读取来自da14583的内部spi flash - nvds_read_bdaddr_from_da14583_flash()的BD地址..如果在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个月1周前
加入: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天4小时前
工作人员
加入:2018-02-08 11:03
嗨rohit,

嗨rohit,

otp_bdaddr在dev_bdaddr中被mems复制。

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

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

///设备BD地址

struct bd_addr dev_bdaddr __attribute __((部分(“retent_mem_area0”),zero_init));

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

谢谢,PM_Dialog

Rajapurerohit.
离线
最后看到:9个月1周前
加入:2017-04-20 09:17
嗨pm_dialog,

嗨pm_dialog,

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

我会经历所有的积分并回复你。

感谢致敬

Rohit R.

Rajapurerohit.
离线
最后看到:9个月1周前
加入: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_beripheral文件中 - 使用dev_bdaddr-> addr [5];访问的地址并分配在广告变量中
4)没有错误建立代码

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

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

感谢致敬

Rohit R.

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

嗨rohit,

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

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

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

谢谢,PM_Dialog

Rajapurerohit.
离线
最后看到:9个月1周前
加入: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天4小时前
工作人员
加入:2018-02-08 11:03
嗨rohit,

嗨rohit,

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

你能解释一下第三步吗?

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

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

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

谢谢,PM_Dialog

Rajapurerohit.
离线
最后看到:9个月1周前
加入: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.
离线
最后看到:9个月1周前
加入:2017-04-20 09:17
嗨pm_dialog,

嗨pm_dialog,

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

感谢致敬

Rohit R.

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

嗨rohit,

抱歉,我可能错过了你最后的评论。你的意思是为了通过智能片段工具箱烧掉OTP头中的BDA你应该遵循的步骤吗?

如果是,则可以使用CLI才能刻录OTP标题中的BD地址。CLI可以在\ 5.0.4 \二进制\主机\ Windows \ prod_test_cmds SDK路径下找到。以下命令将BD地址写入OTP:

prodtest -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头。PLT将存储BD地址在以下地址“设备唯一ID”字段。

因此,如果您想测试它,您应该在“设备唯一ID”字段中刻录BD地址。请注意,单词中最重要的(最左)字节存储在最小的地址(Big-Endian)中。例如。如果字段'设备唯一ID'的用户类型0a0b0c0d,0x0a将写在0x47fd4,0x0d将写入0x47fd7。

谢谢,PM_Dialog