以一个8页的OTPSD3012为例,页数从page0~page7,每页32字节,其中page0是系统配置,包括工作模式,Z脉冲宽度,UVW级数等系统配置,Page1~3厂家使用不对用户开放,Page4,5,6,7 用于零点位置,ABZ输出分辨率等,具体OTP的页码分配见寄存器表。Page4~page7多页设置用于用户多次编程,每页用完后如果需要更新编程值,需要进行换页,所以在每次编程前,用户需要读取页码值(寄存器0x11),判断当前页码值后,重新写入另外页码值,需要注意的是写入顺序是4~7,从小到大的顺序。寄存器地址0x11页码。
值和页码对应关系如下:page4: 0x11=0001 0000b
page5: 0x11=001x0000b
page6: 0x11=01xx0000b
page7: 0x11=1xxx0000b
当寄存器值为pageN(N=4,5,6,7),需要换页就写入寄存器0x11的值为pageN+1后进行编程。
完成所需的寄存器OTP编程后,如果OTP所在页码在page4~7,还需要对页码值编程,这个页码值寄存器0x11在page0。
具体编程方法主要分为2大步:第1步进行零位编程,第2步是编好后再编当前OTP所在页码的页码值。
1,把Pin2( HVPP)接6.75V电压
2,从寄存器0x01,0x02中读出当前芯片的角度值, 01和02的高6位组成14位角度值:Angle_data[13:0] =
{0x01[7:0],0x02[7:2]}
3,把angle_data的高12位写入到零点寄存器中,零点寄存器地址位0x26和0x27,如下图
Zero={ 0x26,0x27[3:0]}=angle_data[14:2]
4, 解锁OTP, 写寄存器0x20为B3
5,写入OTP的页码,零点位置从第4页到第7页,
如为page4: 0x11=0001 0000b
如为page5: 0x11=0010 0000b
如为page5: 0x11=0100 0000b
如为page7: 0x11=1000 0000b
6, 写入OTP的编程指令0x10=8’h02
7,重复步骤4和步骤5
8,烧入页码值指令,写入OTP的页码编程指令0x10=8’h12
参考代码流程(寄存器地址和数值均为16进制):零位值编程,编入到第五页OTP中,
-
传感器
+关注
关注
2550文章
51038浏览量
753086 -
编码
+关注
关注
6文章
942浏览量
54814 -
OTP
+关注
关注
4文章
201浏览量
47144
发布评论请先 登录
相关推荐
评论