OTP零位磁编码零位编程案例分享

描述

    以一个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中,

编码
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分