Linux驱动开发(14):PWM子系统–pwm波形输出实验

PWM子系统用于管理PWM波的输出,与我们之前学习的其他子系统类似,PWM具体实现代码由芯片厂商提供并默认编译进内核, 而我们可以使用内核(pwm子系统)提供的一些接口函数来实现具体的功能,例如使用PWM波控制显示屏的背光、控制无源蜂鸣器等等。

pwm子系统功能单一,很少单独使用。PWM子系统的使用也很简单,我们这章通过一个极简的PWM子系统驱动来简单认识一下PWM子系统。其中讲解的一些接口函数后面的复杂驱动可能会用到。

本章配套源码和设备树插件位于 ~/linux_driver/pwm_sub_system 目录下。

1. PWM子系统简介

在i.mx6中pwm子系统使用的是PWM外设,共有8个。 有关PWM外设的介绍可以参考imx6ull参考手册的Chapter 38 Pulse Width Modulation(PWM)章节, 这里不再介绍。使用了PWM子系统后和具体硬件相关的内容芯片厂商已经写好了, 我们唯一要做的就是在设备树(或者是设备树插件)中声明使用的引脚。

1.1. PWM设备结构体

在驱动中使用pwm_device结构体代表一个PWM设备。结构体原型如下所示:

pwm_device结构体:

struct pwm_device {
    const char              *label;
    unsigned long           flags;
    unsigned int            hwpwm;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值