龙芯1C机器人主控板共有32路PWM输出,由板载的两颗PCA9685PW芯片提供,每颗芯片最大可输出16路PWM信号。
详细使用方式如下:
一、准备工作
将各舵机的电源和信号线按线序插到主控板的插针上;
连接上调试串口;
接入主控版和舵机主电源;
检查舵机电源是否正常;
等待终端出现命令行界面;
二、系统PWM输出功能操作
1、查询系统中探测到的PWM芯片:
[root@Loongson-gz:/]# ls /sys/class/pwm
pwmchip0 pwmchip17
两颗PWM芯片在sysfs中分别对应pwmchip0和pwmchip17两个目录(下面以pwmchip0为例)。
2、列出pwmchip0下的文件接口:
[root@Loongson-gz:/]# ls /sys/class/pwm/pwmchip0
device export npwm subsystem uevent unexport
3、请求并打开pwmchip0中的pwm0输出通道:
[root@Loongson-gz:/]# echo 0 》 /sys/class/pwm/pwmchip0/export
[root@Loongson-gz:/]# ls /sys/class/pwm/pwmchip0
device export npwm pwm0 subsystem uevent unexport
[root@Loongson-gz:/]# echo 1 》 /sys/class/pwm/pwmchip0/pwm0/enable
每颗芯片有16路PWM信号输出,对应的编号为0~15,这里打开的是0号;
4、设置pwm0输出信号的周期为20ms:
[root@Loongson-gz:/]# echo 20000000 》 /sys/class/pwm/pwmchip0/pwm0/period
注意这里的输入的时间单位是ns;
5、设置一个PWM周期中高电平所占的时间为1.5ms:
[root@Loongson-gz:/]# echo 1500000 》 /sys/class/pwm/pwmchip0/pwm0/duty_cycle
设置完后,即可观察到连接到pwm0输出上的舵机发生了相应的转动;
根据不同的舵机这里设置的值可能不同,目前我们所使用的DS3115MG这个舵机的设置范围是450000~2650000;
6、关闭pwm0
[root@Loongson-gz:/]# echo 0 》 /sys/class/pwm/pwmchip0/pwm0/enable
[root@Loongson-gz:/]# echo 0 》 /sys/class/pwm/pwmchip0/unexport
[root@Loongson-gz:/]# ls /sys/class/pwm/pwmchip0
device export npwm subsystem uevent unexport
三、另外一颗PWM芯片的使用步骤也和以上类似,在此不再赘述。
全部0条评论
快来发表一下你的评论吧 !