首页 > 技术知识 > 正文

MOTOR控制

1. 接线方式

使用Hi3516A的PWM0~PWM7这8个引脚,通过L8548MC转换输出。

M14接口电动变焦镜头控制

1 22 33 4 A+ + + – – A- – – + + B+ – + + – B- + – – + ZOOM FOCUS 1 22 33 4 GPIO0_3 GPIO10_5 1 1 0 0 GPIO0_4 GPIO0_2 0 0 1 1 GPIO14_0 GPIO14_3 0 1 1 0 GPIO14_1 GPIO14_2 1 0 0 1

2. GPIO模式控制

查阅《Hi3516A/Hi3516D 专业型HD IP Camera Soc用户指南.pdf》

2.1. 管脚复用控制寄存器设置

2.3 管脚复用控制寄存器

2.3.1 复用寄存器概览

复用寄存器概览如表 2-37 所示。

表2-37 复用寄存器概览(复用寄存器基地址为 0x200F_0000)

找到PWM0~PWM7管脚复用控制寄存器的偏移地址以及具体复用情况

M14接口电动变焦镜头控制1

使用himm设置寄存器。

#set GPIO14_0 ~ GPIO14_3 ; default PWM0 ~ 3 0x0 himm 0x200f014c 0x1 himm 0x200f0150 0x1 himm 0x200f0154 0x1 himm 0x200f0158 0x1 #set GPIO10_5 ; default GPIO10_5 himm 0x200f00a4 0x0 #set GPIO0_2 ~ GPIO0_4 ; default GPIO0_2 ~GPIO0_4 himm 0x200f00dc 0x0 himm 0x200f00e0 0x0 himm 0x200f00e4 0x0

2.2. 配置GPIO输出

13.6.4 GPIO 寄存器概览

16 组 GPIO 寄存器的基地址如表 13-20 所示。

表13-20 16 组 GPIO 寄存器对应的基地址 寄存器 基地址 GPIO15 0x20660000 GPIO14 0x20220000 GPIO13 0x20210000 GPIO12 0x20200000 GPIO11 0x201f0000 GPIO10 0x201e0000 GPIO9 0x201d0000 GPIO8 0x201c0000 GPIO7 0x201b0000 GPIO6 0x201a0000 GPIO5 0x20190000 GPIO4 0x20180000 GPIO3 0x20170000 GPIO2 0x20160000 GPIO1 0x20150000 GPIO0 0x20140000

表 13-21 是单组 GPIO 内部寄存器的偏移地址以及定义,GPIO0~GPIO15 具有相同的

寄存器组 。

M14接口电动变焦镜头控制2

设置GPIO方向控制寄存器

M14接口电动变焦镜头控制3

#set GPIO14_0 ~ GPIO14_3 output himm 0x20220400 0xf #set GPIO10_5 output himm 0x201e0400 0x10 #set GPIO0_2 ~ GPIO0_4 output himm 0x20140400 0x1c

2.3. 输出电平

GPIO_DATA 为 GPIO 数据寄存器。用来对输入或输出数据进行缓存。

当配置 GPIO_DIR 中对应位为输出时,写入 GPIO_DATA 寄存器的值将会输出到相应

的管脚(注意需要配置正确的管脚复用);如果配置为输入时,将会读取相应输入管脚

的值。

M14接口电动变焦镜头控制4

结合之前的电机接线,使用himm配置出各个状态,并使用万用表测量检验。

#set ZOOM1 himm 0x20140060 0x8 himm 0x2022000c 0x2 #set ZOOM22 himm 0x2022000c 0x1 #set ZOOM33 himm 0x20140060 0x10 #set ZOOM4 himm 0x2022000c 0x2 #set ZOOM1 himm 0x20140060 0x8 #set FOCUS1 himm 0x200f00a4 0x0 himm 0x20140010 0x0 himm 0x20220030 0x4 #set FOCUS22 himm 0x20220030 0x8 #set FOCUS33 himm 0x200f00a4 0x2 himm 0x20140010 0x4 #set FOCUS4 himm 0x20220030 0x4 #set FOCUS1 himm 0x200f00a4 0x0 himm 0x20140010 0x0

3. 结语

实际使用中,可以在rcS中,使用himm配置GPIO的复用和输出,进行初始化;在程序中使用HI_MPI_SYS_SetReg来控制步进电机。

本文中配置实际可用;但存在一个错误的配置导致出现了问题,并使用了其他方法解决,欢迎各位大佬指出。

猜你喜欢