读取DA14585中的OTP字段

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.xmece.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
4个职位/ 0个新职位
最后发表
dlo
离线
最后看到:2个月1个星期前
加入:2017-05-26十六21
读取DA14585中的OTP字段

我正在尝试将一个旧的DA14580项目迁移到DA14585:

旧的代码:

Int CNT = 100000;
SetBits16 (CLK_AMBA_REG OTP_ENABLE 1);//启用OTP时钟
while ((GetWord16(ANA_STATUS_REG) & LDO_OTP_OK) != LDO_OTP_OK && cnt——)
//设置OTP为读模式
SetWord32 (OTPC_MODE_REG 0 x1);
uint8_t *otp_major = (uint8_t *)0x47F54;
uint8_t *otp_minor = (uint8_t *)0x47F56;
memcpy (&user_beacon_config。major_ALT_val1 otp_major 2);
memcpy (&user_beacon_config。minor_ALT_val2 otp_minor 2);
SetBits16 (CLK_AMBA_REG OTP_ENABLE 0);/ /禁用OTP时钟

新代码:

Int CNT = 100000;
SetBits16 (CLK_AMBA_REG OTP_ENABLE 1);//启用OTP时钟
while ((GetWord16(ANA_STATUS_REG) & LDO_VDD_OK) != LDO_VDD_OK && cnt——)
//设置OTP为读模式
SetWord32 (OTPC_MODE_REG 0 x1);
uint8_t *otp_major = (uint8_t *)0x47F54;
uint8_t *otp_minor = (uint8_t *)0x47F56;
memcpy (&beacon_data[主要]otp_major 2);
memcpy (&beacon_data[小]otp_minor 2);
SetBits16 (CLK_AMBA_REG OTP_ENABLE 0);/ /禁用OTP时钟

使用LDO_VDD_OK而不是LDO_OTP_OK是否正确?

我想DA14585的OTP尺寸比较大,内存位置还能用吗?

谢谢你!

设备:
PM_Dialog
离线
最后看到:6小时59分钟前
工作人员
加入:2018-02-08 11:03
嗨dlo,

嗨dlo,

如果我理解正确,您正在尝试将一个基于DA14580和SDK5.0.4的现有应用程序移植到DA14585和SDK6.0.14。我的理解正确吗?

根据数据表:

DA14585: ANA_STATUS_REG [LDO_VDD_OK]: LDO_VDD处于调节状态

DA14580: ANA_STATUS_REG [LDO_OTP_OK]: LDO_OTP处于调节状态

所以,我想这可能不是问题。

如果是DA14585,请参见数据表和第9节内存映射。OTP从0x07F80000开始,到0x07F8FFFF结束。

请同时查看UM-B-082: DA14585 & DA14586 SDK6移植指南用户指南。

希望对大家有帮助!

谢谢,PM_Dialog

dlo
离线
最后看到:2个月1个星期前
加入:2017-05-26十六21
谢谢你点!

谢谢你点!

我一直在咨询UM-B-082。我确实错过了数据表的OTP开始和结束,我会回去查看它。谢谢你!

PM_Dialog
离线
最后看到:6小时59分钟前
工作人员
加入:2018-02-08 11:03
嗨dlo,

嗨dlo,

谢谢你接受我的回答。如果您有任何后续问题,请创建一个新的论坛帖子。

谢谢,PM_Dialog