全志平臺Tina系統pwm控制led調試的方法(以R18某方案爲例)
sys_config.fe的修改:
--- a/recipes-bsp/tina-board/tulip-noma/configs/sys_config.fex
+++ b/recipes-bsp/tina-board/tulip-noma/configs/sys_config.fex
@@ -534,11 +534,11 @@ pwm_positive = port:PD22<2><0><default><default>
[pwm0_suspend]
pwm_positive = port:PD22<7><0><default><default>
-[pwm16]
-s_pwm0_used = 0
+[spwm0]
+spwm0_used = 1
pwm_positive = port:PL10<2><0><default><default>
-[pwm16_suspend]
+[spwm0_suspend]
pwm_positive = port:PL10<7><0><default><default>
這個LED設計的是MUTE功能開啓的時候點亮,所以要先把MUTE打開,調試的時候請先拉高PD4:
root@tulip-mozart:/sys/kernel# mount -t debugfs none debug/
root@tulip-mozart:/sys/kernel/debug/sunxi_pinctrl# echo pio > dev_name
root@tulip-mozart:/sys/kernel/debug/sunxi_pinctrl# echo PD4 > sunxi_pin
root@tulip-mozart:/sys/kernel/debug/sunxi_pinctrl# echo PD4 1 > data
然後
echo 0 > /sys/class/pwm/pwmchip16/export
echo 100000 > /sys/class/pwm/pwmchip16/pwm0/period
echo 20000 > /sys/class/pwm/pwmchip16/pwm0/duty_cycle
echo 1 > /sys/class/pwm/pwmchip16/pwm0/enable
echo 80000 > /sys/class/pwm/pwmchip16/pwm0/duty_cycle
duty_cycle的值限制在0~period的範圍內
period是週期,單位是ns。
如果要設置爲某頻率,比如如果頻率想改成200Hz,
1/200Hz=0.005s=5 000 000 ns
這裏就要改成5 000 000
然後在這個範圍內變化,可以寫個3000000什麼的進行調試:
echo 0 > /sys/class/pwm/pwmchip16/export
echo 5000000 > /sys/class/pwm/pwmchip16/pwm0/period
echo 3000000 > /sys/class/pwm/pwmchip16/pwm0/duty_cycle