×

SD3012的PWM或者电压输出调零方法

消耗积分:0 | 格式:pdf | 大小:241.55 KB | 2024-11-05

璟逸电子

  • 24内容
  • 1.2w阅读
  • 0粉丝

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)
发评论

下载排行榜

全部0条评论

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