1, 把 Pin2( HVPP) 接 7V 电压
2,磁场至于起点位,并从寄存器 0x01,0x02 中读出当前芯片的角度值, 01 和 02
的高 6 位组成 14 位角度值:angle_data[13:0] ={0x01[7:0],0x02[7:2]}
3,把第 2 步得到 angle_data 的高 12 位写入到起点寄存器中:
start_angle={ 0x2B[3:0], 0x2A} = angle_data[13:2]
4,磁场至于终点位,并从寄存器 0x01,0x02 中读出当前芯片的角度值, 01 和 02
的高 6 位组成 14 位角度值:angle_data[13:0] ={0x01[7:0],0x02[7:2]}
5,把第 4 步得到 angle_data 的高 12 位写入到终点寄存器中:
stop_angle={ 0x2D[3:0], 0x2C} = angle_data[13:2]
6, 解锁 OTP, 写寄存器 0x20 为 B3
7, 写入 OTP 的页码,零点位置从第 4 页到第 7 页,(先从第 4 页开始用,顺序用
到第 7 页,每次编程只用一页,不可重复使用)
如为 page4: 0x11=0001 0000b
如为 page5: 0x11=0010 0000b
如为 page5: 0x11=0100 0000b
如为 page7: 0x11=1000 0000b
8, 写入 OTP 的编程指令 0x10=8’h02
9,再次写入第 7 步写入的相同页码并解锁 OTP, 0x11=XX, 0x20=8’hB3
10,页码值编程指令,写入 OTP 的页码编程指令 0x10=8’h12
参考代码流程(寄存器地址和数值均为 16 进制):
下面举例起始位置值编程,假设已经编程过一次,第 4 页已经用过,现在编
入到第五页 OTP 中,
Read reg 01 /02,{0x01,0x02} ## 读出当前角度值
ang_data = {0x01, 0x02<7:4>}
地址 写入值
磁铁旋转到起点, 并读取 angle_data
reg_set_1 = 2A ang_data[7:0] ## 写入当前的角度值到起点寄存器低 8 位
reg_set_2 = 2B ang_data[11:8] ## 写入当前的角度值到零位寄存器高 4 位
磁铁旋转到终点,并读取 angle_data
reg_set_3 = 2C ang_data[7:0] ## 写入当前的角度值到终点寄存器低 8 位
reg_set_4 = 2D ang_data[11:8] ## 写入当前的角度值到终点寄存器高 4 位
reg_set_5 = 20 b3 ## 打开 OTP 锁
reg_set_6 = 11 20 ## 写入页码 page5
reg_set_7 = 10 02 ## OTP 编程指令
wait 300ms
reg_set_8 = 20 b3 ## 打开 OTP 锁
reg_set_9 = 11 20 ## 写入页码 page5
reg_set_10 = 10 12 ## OTP 编程指令编写页码(在 page0)
reg_set_11 = 20 00 ## 锁上 OTP
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !