读取DA14585中的OTP字段

了解更多常见问题解答教程

4个帖子/ 0新
最后一篇
DLO.
离线
最后一次露面:1周5天前
加入:2017-05-26 16: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,0x1);
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,0x1);
UINT8_T * OTP_MAJOR =(UINT8_T *)0x47F54;
UINT8_T * OTP_MINOR =(UINT8_T *)0x47F56;
memcpy(&beacon_data [major],otp_major,2);
memcpy(&beacon_data [minor],Otp_minor,2);
setbits16(clk_amba_reg,otp_enable,0);//禁用OTP时钟

使用ldo_vdd_ok而不是ldo_otp_ok​​它是正确的吗?

我认为DA14585具有较大的OTP大小,内存位置仍然正常工作吗?

谢谢

设备:
PM_DIALOG.
离线
最后一次露面:5小时41分钟前
员工
加入: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.
离线
最后一次露面:1周5天前
加入:2017-05-26 16:21
谢谢PM!

谢谢PM!

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

PM_DIALOG.
离线
最后一次露面:5小时41分钟前
员工
加入:2018-02-08 11:03
嗨DLO,

嗨DLO,

谢谢你接受我的答案。如果您有任何Follwo-Up问题,请创建一个新的论坛帖子。

谢谢,PM_DIALOG.