以一個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中,
-
傳感器
+關注
關注
2548文章
50678瀏覽量
752007 -
編碼
+關注
關注
6文章
935瀏覽量
54763 -
OTP
+關注
關注
4文章
191瀏覽量
47104
發布評論請先 登錄
相關推薦
評論