rk3308 BSP系统(Linux网关) —— RGB调色灯三路PWM驱动

​​​​​​硬件基础

在我们的开发板上集成了一颗RGB灯组,引脚连接着主控的三路PWM输出,因此我们可以通过三路PWM输出进行调色的功能,硬件原理图如下:

​​​​​​​内核设备树

我们把设备树补丁文件放在目录:~/share/patchs/pwm-dts

板载的RGB灯珠连接的是主控的三路PWM(PWM1,PWM2,PWM3);这三路PWM的设备树节点在rk3308.dtsi中;默认情况下是disabled的状态,我们只需要将disabled改成okay即可,补丁文件其实就是做了这个事情,可以通过patchloader.sh进行补丁。

打补丁后再编译内核即可,要求rk3308.dtsi是原生未改动的,因为补丁也会调用之前有对rk3308.dtsi修改的补丁。

​​​​​​​​​​​​​​应用

烧录内核后,我们可以在板子上看到PWM的设备节点:

说明一下:pwmchip0实际上是原厂评估板的LCD背光灯驱动,我们可以在设备树中将其关调,这里忽略pwmchip0;其他的对应我们的三路PWM,

导出三路PWMecho 0 > pwmchipx/export

设置周期(单位是ns):echo ns > pwmchipx/pwm0/period

1s = 1000ms = 1000000us = 1000000000ns

设置占空比:echo ns > pwmchipx/pwm0/duty_cycle

周期1秒,占空比0.5秒,也就是50%

使能PWM:echo 1 > pwmchipx/pwm0/enable

使能PWM的时候,可以看到RGB灯珠的被正常驱动的过程:

效果是RGB灯闪烁,大家可以尝试修改占空比看效果。

了解硬件和更多资料可点击:点击了解

新建一个物联网行业交流学习QQ群,感兴趣可加:928840648