RK3566泰山派PWM控制直流电机

本实验通过sysfs文件系统操作GPIO同时利用sysfs接口操作PWM,再配合电机驱动芯片完成RK3566泰山派(linux系统)对直流电机的pwm调速。

一、直流电机与电机驱动芯片TB6612

        直流电机属于大功率器件,GPIO口无法直接驱动,需要配合电机驱动电路来操作,在这里使用TB6612直流电机驱动芯片来辅助泰山派驱动直流电机。

本次实验中,需要用到的TB6612引脚分别为:①VM-驱动电压输入端(接5V)②VCC-逻辑电平输入端(接3V3)③GND-电源地端 ④STBY-状态控制输入端(接3V3)⑤PWMA-PWM信号输入端 ⑥AIN1和AIN2-电机控制模式输入端 ⑦A01和A02-电机驱动输出端

二、泰山派40PIN引脚选用

本实验选用33号引脚的PWM8_M0功能,38号引脚GPIO3_B3,30号引脚GPIO_B4以及部分电压和GND引脚

三、使用sysfs控制GPIO

1、使用sysfs控制GPIO 首先需要底层驱动的支持,需要在make menuconfig图形化配置界面中加入配置Device Drivers > GPIO Support > /sys/class/gpio/...(sysfs interface),*代表选中

2、sysfs控制接口

启动开发板

/sys/class/gpio/export 将GPIO控制权从内核空间导出到用户空间(只写)

/sys/class/gpio/unexport 取消GPIO控制从内核空间到用户空间的导出(只写)

gpiochipx (x=0,1,2...) 代表GPIO控制器

3、gpio控制接口

在/sys/class/gpio/gpioN/(N=0,1,2...)下有多种属性,可以通过这些属性进行控制,从而实现对GPIO的控制。

direction属性:值为in或者out。可以通过该属性写入in或者out设置该gpio为输入或者输出。

value属性:用于读取输入电平或者控制输出电平。写入或者读取到1表示高电平,写入或者读取到0表示低电平。

edge属性:设置触发电平。在将GPIO设置为中断时才会出现和使用这个属性。

4、泰山派GPIO编号确认

GPIO pin脚计算公式:pin = bank * 32 + number   //bank为组号,number为小组编号

GPIO 小组编号计算公式:number = group * 8 + X

依照上述公式计算我们选用的GPIO3_B3和GPIO3_4pin脚的编号

以GPIO3_B4为例:

bank = 3;

group = 1;    / /  group ∈ { (A=0), (B=1), (C=2), (D=3)}

X = 4;

number = 1 * 8 + 4 = 12;

pin = 3 * 32 + 12 = 108;

同理可得GPIO3_B3pin脚编号为107; 

5、使用sysfs控制gpio方法

①导出gpio

echo 107 > export

echo 108 > export

②设置方向

echo out > direction

gpio108同理

③给value属性写1或者0,这里我们给GPIO107和GPIO108分别写上1、0,分别对应控制TB6612模块的AIN1和AIN2

四、通过sysfs接口使用pwm

使用PWM8_M0(官方提供的内核文件中pwm8已经配置好了)

导出pwm8:

cd /sys/calss/pwm/pwmchip1/

echo 0 > export    

设置pwm参数即可完成对直流电机的控制(通过修改duty_cycle值可改变电机转速):

cd pwm0/
echo 20000000 > period      //设置周期
echo 8000000 > duty_cycle   //设置高电平的时间
echo normal > polarity      //设置极性,有normal或inversed两个参数选择
echo 1 > enable             //使能pwm

关闭pwm:

echo 0 > enable

  • 13
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值