【EmbeddedDev】BBB上打开PWM串口并进行操作
来源:互联网 发布:java urlencoder 中文 编辑:程序博客网 时间:2024/05/29 05:56
1.参考链接
http://www.lai18.com/content/8359588.html
https://briancode.wordpress.com/2015/01/06/working-with-pwm-on-a-beaglebone-black/
2. 串口PIN脚对应表
3.加载PWM设备驱动
首先加载am33xx_pwm, 各个pwm串口都会需要依赖它。
通过cat slots
可以查看已加载的结果列表,其中P-O-L表示已加载并且启用。
root@beaglebone:/sys/class/pwm# cd /sys/devices/bone_capemgr.9root@beaglebone:/sys/devices/bone_capemgr.9# echo am33xx_pwm > slotsroot@beaglebone:/sys/devices/bone_capemgr.9# 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,am33xx_pwm
然后加载指定pwm设备模块。
root@beaglebone:/sys/devices/bone_capemgr.9# cd /sys/class/pwmroot@beaglebone:/sys/class/pwm# echo 6 > exportroot@beaglebone:/sys/class/pwm# lsexport pwm6 pwmchip0 pwmchip2 pwmchip3 pwmchip5 pwmchip7 unexport
最后加载指定端口P8_13的pwm驱动。
root@beaglebone:/sys/class/pwm# cd /sys/devices/bone_capemgr.9root@beaglebone:/sys/devices/bone_capemgr.9# echo bone_pwm_P8_13 > slotsroot@beaglebone:/sys/devices/bone_capemgr.9# cd /sys/class/pwmroot@beaglebone:/sys/class/pwm# lsexport pwm6 pwmchip0 pwmchip2 pwmchip3 pwmchip5 pwmchip7 unexportroot@beaglebone:/sys/class/pwm# cd pwm6root@beaglebone:/sys/class/pwm/pwm6# lsdevice duty_ns period_ns polarity power run subsystem uevent
4. 通过shell操作PWM
修改period_ns
与duty_ns
可以改变输出电压, 从而达到控制外设的效果。
值得注意的是, 如果连接了pwm的外设使用了独立电源的话, 也需要把BBB的GND地线接口与独立电源的地线连接起来;否则因为回路不通而导致PWM控制失效。
另外,在每次修改两个值之前把run值置为0,修改完成后再置为1, 表示打开状态。
root@beaglebone:/sys/class/pwm/pwm6# echo 0 > runroot@beaglebone:/sys/class/pwm/pwm6# echo 1000000 > period_nsroot@beaglebone:/sys/class/pwm/pwm6# echo 990000 > duty_nsroot@beaglebone:/sys/class/pwm/pwm6# echo 1 > runroot@beaglebone:/sys/class/pwm/pwm6# echo 0 > runroot@beaglebone:/sys/class/pwm/pwm6# echo 1000000 > period_nsroot@beaglebone:/sys/class/pwm/pwm6# echo 100000 > duty_nsroot@beaglebone:/sys/class/pwm/pwm6# echo 1 > run
5. 通过python操作RGB led灯
连线图(分别使用了P8_13, P8_19, P9_14作为rgb的控制串口, P8_2作为地线回路串口)
python代码示例
import Adafruit_BBIO.PWM as PWMimport timeimport randomred = "P8_13"green = "P8_19"blue = "P9_14"PWM.start(red, 100)PWM.start(blue, 100)PWM.start(green, 100)if __name__ == "__main__": for i in range(0, 10000): PWM.set_duty_cycle(red, random.randint(0, 100)) PWM.set_duty_cycle(green, random.randint(0, 100)) PWM.set_duty_cycle(blue, random.randint(0, 100)) time.sleep(0.5)
1 0
- 【EmbeddedDev】BBB上打开PWM串口并进行操作
- 【EmbeddedDev】BBB上通过ADC串口获取光感数值
- 【EmbeddedDev】BBB&RTL8188CUS搭建wifi AP 问题整理
- 【EmbeddedDev】BBB控制直流电机的转速与方向
- BBB 使用串口
- stm32-led-串口-PWM
- 【EmbeddedDev】使用消息队列进行进程间通信
- BBB学习之——串口配置
- 怎样在网页中打开本地exe文件,并进行传参操作
- 使用STM32CubeMX捕获外来PWM高低电平并在串口调试助手显示
- web方式cgi程序操作串口,不能打开串口
- openwrt上如何进行串口加密
- Ubuntu上打开windows共享文件夹进行读写操作的命令
- bbb
- bbb
- bbb
- bbb
- bbb
- Android使用EventBus遇到的坑!
- java 接口 实现和继承关系
- Windows上Dbgview打印log信息
- 分组背包-hdu3033
- Install Single Node Hadoop(2.7.2) on Mac
- 【EmbeddedDev】BBB上打开PWM串口并进行操作
- POJ 1182食物链_DisjointSet并查集
- 谈谈MVC模式
- java学习日记_12:面向对象之如何使用类
- [深入浅出Cocoa]详解键值观察(KVO)及其实现机理
- C++可变模板参数中&&和&的使用
- 获得两个GPS点距离(数据库和java)
- iOS 中饼状图的自定义绘制
- PHPer们这几个函数,你懂了吗levenshtein/get_defined_vars/php_check_syntax/ignore_user_abortget_browser