Echo的PWM学习

概要

本文基于linux的pwm驱动框架,实现方式,驱动添加方式和调试来介绍.

pwm驱动框架

pwm的主要C源码在:
drivers/pwm/core.c //pwm框架抽象层代码
drivers/pwm/sysfs.c //sysfs调试代码
drivers/pwm/pwm-xxx.c //芯片厂家的硬件层实现代码
include/linux/pwm.h //头文件

ops& api

可见头文件详解,说的比较详细。

如何添加芯片的pwm驱动

1)在pwm目录下Kconfig添加
在这里插入图片描述
2)Makefile中添加
在这里插入图片描述
3)menuconfig选中
在这里插入图片描述
4)接下来就是编辑自己的pwm代码了
主要就是根据自己芯片对几个函数进行实现。
可根据需求对以下函数进行选择实现。
在这里插入图片描述

一般芯片的pwm实现方式存在不同,比如高通用的pmic来实现,有点厂家直接就是pwm控制器,我们acme主要用的是timer来产生。

设备树添加
在这里插入图片描述

上层测试

用sysfs接口对PWM驱动进行功能调试,主要调试命令示例如下。

(1)查看PWM控制器节点
ls /sys/class/pwm/pwmchip0/
(2) 打开指定PWM通道信号
cd /sys/class/pwm/pwmchip0/
echo 0 > export
(3) 设置PWM周期
echo 50000> pwm0/period //注意,这里设置的是周期值,单位为 ns,比如 20KHz 频率的周期就是 50000ns
(4)设置PWM信号占空比
echo 25000> pwm0/duty_cycle //这里不能直接设置占空比,而是设置的一个周期的 ON 时间,也就是高电平时间,比如 20KHz 频率下 50%占空比的 ON 时间就是 25000
(5)使能某个PWM通道信号
echo 1 > pwm0/enable
(6)禁止某个PWM通道信号
echo 0 > pwm0/enable

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值