1 硬件基础
在我们的开发板上集成了一颗RGB灯组,引脚连接着主控的三路PWM输出,因此我们可以通过三路PWM输出进行调色的功能,硬件原理图如下:
2 内核设备树
我们把设备树补丁文件放在目录:~/share/patchs/pwm-dts
板载的RGB灯珠连接的是主控的三路PWM(PWM1,PWM2,PWM3);这三路PWM的设备树节点在rk3308.dtsi中;默认情况下是disabled的状态,我们只需要将disabled改成okay即可,补丁文件其实就是做了这个事情,可以通过patchloader.sh进行补丁。
打补丁后再编译内核即可,要求rk3308.dtsi是原生未改动的,因为补丁也会调用之前有对rk3308.dtsi修改的补丁。
3 应用
烧录内核后,我们可以在板子上看到PWM的设备节点:
说明一下:pwmchip0实际上是原厂评估板的LCD背光灯驱动,我们可以在设备树中将其关调,这里忽略pwmchip0;其他的对应我们的三路PWM,
导出三路PWM: echo 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
欢迎共同学习成长,有一群爱学习的小伙伴一起勉励!!一起加油!!也可点击
笔者基于嵌入式系统框架内容如下整理编辑: