flyorange 发表于 2017-10-15 17:32:41

龙芯1C机器人主控板PWM功能操作教程

龙芯1C机器人主控板共有32路PWM输出,由板载的两颗PCA9685PW芯片提供,每颗芯片最大可输出16路PWM信号。
详细使用方式如下:
一、准备工作
        将各舵机的电源和信号线按线序插到主控板的插针上;
        连接上调试串口;
接入主控版和舵机主电源;
        检查舵机电源是否正常;
        等待终端出现命令行界面;

二、系统PWM输出功能操作
1、查询系统中探测到的PWM芯片:
# ls /sys/class/pwm
pwmchip0   pwmchip17

两颗PWM芯片在sysfs中分别对应pwmchip0和pwmchip17两个目录(下面以pwmchip0为例)。

2、列出pwmchip0下的文件接口:
# ls /sys/class/pwm/pwmchip0
device   export   npwm      subsystemuevent   unexport

3、请求并打开pwmchip0中的pwm0输出通道:
# echo 0 > /sys/class/pwm/pwmchip0/export
# ls /sys/class/pwm/pwmchip0
device   export   npwm       pwm0       subsystemuevent   unexport
# echo 1 > /sys/class/pwm/pwmchip0/pwm0/enable

每颗芯片有16路PWM信号输出,对应的编号为0~15,这里打开的是0号;
4、设置pwm0输出信号的周期为20ms:
# echo 20000000 > /sys/class/pwm/pwmchip0/pwm0/period

注意这里的输入的时间单位是ns;

5、设置一个PWM周期中高电平所占的时间为1.5ms:
# echo 1500000 > /sys/class/pwm/pwmchip0/pwm0/duty_cycle

设置完后,即可观察到连接到pwm0输出上的舵机发生了相应的转动;
根据不同的舵机这里设置的值可能不同,目前我们所使用的DS3115MG这个舵机的设置范围是450000~2650000;

6、关闭pwm0
# echo 0 > /sys/class/pwm/pwmchip0/pwm0/enable
# echo 0 > /sys/class/pwm/pwmchip0/unexport
# ls /sys/class/pwm/pwmchip0
device   export   npwm       subsystemuevent   unexport


三、另外一颗PWM芯片的使用步骤也和以上类似,在此不再赘述。



nrj 发表于 2017-10-26 09:48:46

:lol:lol

ratking 发表于 2017-10-27 09:24:48

感谢分享,顶顶顶!

nrj 发表于 2017-10-27 09:51:50

:P:P:P
页: [1]
查看完整版本: 龙芯1C机器人主控板PWM功能操作教程