使用Beaglebone Black 的P8_45,P8_46作为PWM输出

根据BBB_Header_Table.pdf里面的说明,P8.45 <—>P8.19都可以作为PWM2A输出,P8.46<—>P8.13都可以作为PWM2B输出,
使用Beaglebone Black 的P8_45,P8_46作为PWM输出_第1张图片

但是尝试着使能P8.45,P8.46的PWM输出:

root@beaglebone:~# echo bone_pwm_p8_45 >> $SLOTS 
-bash: echo: write error: File exists
root@beaglebone:~# 

“File exists”表示与当前的硬件设备冲突,继续查资料,原来是被HDMI占用了,BBB_Header_Table里面红色部分就代表已经被占用:
使用Beaglebone Black 的P8_45,P8_46作为PWM输出_第2张图片

于是想到卸载HDMI cap,通用硬件的卸载方法是

echo - >> $SLOTS

cap_id表示slots中的cap序号,如下所示

root@beaglebone:~# cat $SLOTS 
 0: 54:PF--- 
 1: 55:PF--- 
 2: 56:PF--- 
 3: 57:PF--- 
 4: ff:P-O-L Bone-LT-eMMC-2G,00A0,Texas Instrument,BB-BONE-EMMC-2G
 5: ff:P-O-L Bone-Black-HDMI,00A0,Texas Instrument,BB-BONELT-HDMI

其中0,1,2,3,4,5就表示cap_id,执行

root@beaglebone:~# echo -5 >> $SLOTS 

输出一堆信息,然后执行

root@beaglebone:~# cat $SLOTS 

命令始终没有返回,重启,HDMI又出来了,于是想到HDMI应该是系统开机自动启动的,应该从开机脚本上禁止加载HDMI cap,具体方法参考

http://blog.csdn.net/bh_binghu/article/details/44986865

开机运行

root@beaglebone:~# echo bone_pwm_p8_45 >> $SLOTS

没有任何输出,再查看SLOTS:

root@beaglebone:~# cat $SLOTS 
 0: 54:PF--- 
 1: 55:PF--- 
 2: 56:PF--- 
 3: 57:PF--- 
 4: ff:P-O-L Bone-LT-eMMC-2G,00A0,Texas Instrument,BB-BONE-EMMC-2G
 5: ff:P-O-- Bone-Black-HDMI,00A0,Texas Instrument,BB-BONELT-HDMI
 6: ff:P-O-- Bone-Black-HDMIN,00A0,Texas Instrument,BB-BONELT-HDMIN
 7: ff:P-O-L Override Board Name,00A0,Override Manuf,bone_pwm_P8_45
root@beaglebone:~# 

第5个已经变成ff:P-O–没有字符’L’,表示没有加载,说明卸载成功,同时增加了7,说明驱动加载成功
可以开始使用P8_45作为PWM输出了!P8_46方法一样!

你可能感兴趣的:(嵌入式系统,开源技术,beaglebone)