6.9物联网RK3399项目开发实录-驱动开发之PWM的使用(wulianjishu666)

这篇具有很好参考价值的文章主要介绍了6.9物联网RK3399项目开发实录-驱动开发之PWM的使用(wulianjishu666)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

嵌入式实战开发例程,珍贵资料,开发必备:

链接:https://pan.baidu.com/s/1149x7q_Yg6Zb3HN6gBBAVA?pwd=hs8b

======================================================================

PWM 使用

前言

AIO-3399J 开发板上有 4 路 PWM 输出,分别为 PWM0 ~ PWM3,4 路 PWM 分别使用在 EDP 背光、MIPI 背光、VDDLOG 供电、红外 IR。

本章主要描述如何配置 PWM。

AIO-3399J 的 PWM 驱动为:kernel/drivers/pwm/pwm-rockchip.c

DTS配置

配置 PWM 主要有以下三大步骤:配置 PWM DTS 节点、配置 PWM 内核驱动、控制 PWM 设备。

配置 PWM DTS节点

在 DTS 源文件 kernel/arch/arm64/boot/dts/rockchip/rk3399-firefly-demo.dtsi 添加 PWM DTS 配置,如下所示:

pwm_demo: pwm_demo {
    status = "okay";
    compatible = "firefly,rk3399-pwm";
    pwm_id = <1>;
    min_period = <0>;
    max_period = <10000>;
    duty_ns = <5000>;
};
  • pwm_id:需要申请的 PWM 通道数。

  • min_period:周期时长最小值。

  • max_period:周期时长最大值。

  • duty_ns:PWM 的占空比激活的时长,单位 ns。

接口说明

用户可在其它驱动文件中使用以上步骤生成的 PWM 节点。具体方法如下:

(1)、在要使用 PWM 控制的设备驱动文件中包含以下头文件:

#include <linux/pwm.h>

该头文件主要包含 PWM 的函数接口。

(2)、申请 PWM

使用

struct pwm_device *pwm_request(int pwm_id, const char *label);

函数申请 PWM。 例如:

struct pwm_device * pwm1 = NULL;pwm0 = pwm_request(1, “firefly-pwm”);

(3)、配置 PWM

使用

int pwm_config(struct pwm_device *pwm, int duty_ns, int period_ns);

配置 PWM 的占空比,例如:

pwm_config(pwm0, 500000, 1000000);

(4)、使能PWM函数

int pwm_enable(struct pwm_device *pwm);

用于使能 PWM,例如:

pwm_enable(pwm0);

(5)控制 PWM 输出主要使用以下接口函数:

  • 功能:用于申请 PWM

struct pwm_device *pwm_request(int pwm_id, const char *label);
  • 功能:用于释放所申请的 PWM

void pwm_free(struct pwm_device *pwm);
  • 功能:用于配置 PWM 的占空比

int pwm_config(struct pwm_device *pwm, int duty_ns, int period_ns);
  • 功能:使能 PWM

int pwm_enable(struct pwm_device *pwm);
  • 功能:禁止 PWM

void pwm_disable(struct pwm_device *pwm);

参考例子: kernel/drivers/pwm/pwm-firefly.c

调试方法

通过内核丰富的 debug 接口查看 PWM 注册状态,adb shell 或者串口进入 Android 终端执行:

cat  /sys/kernel/debug/pwm

查看注册是否成功,成功则返回接口名和寄存器地址。

FAQs

PWM 无法注册成功:

  • dts 配置文件是否打开对应的 PWM。

  • PWM 所在的 IO 口是否被其他资源占用,可以根据报错的返回值去查看原因。文章来源地址https://www.toymoban.com/news/detail-860972.html

到了这里,关于6.9物联网RK3399项目开发实录-驱动开发之PWM的使用(wulianjishu666)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • RK3399驱动开发 | 21 -Marvell交换机芯片88E6390X调试(基于linux主线5.4.32内核)

    88E6390X芯片是Marvell的一款11端口交换器芯片,有1个CPU端口、8个10/100/1000Mbsp以太网端口、两个XAUI/RXAUI/2500光口。 RK3399只有一个MAC控制器,所以只能外接一个PHY芯片作为网口,但有了外部的交换机芯片后,连接架构如下:

    2024年02月13日
    浏览(47)
  • RK3399之8250串口驱动

    前言 内核版本4.4 平台 瑞芯微RK3399 8250串口 一、驱动整体框架 二、驱动结构体对象 关系如下图所示 三、驱动代码流程 驱动加载由以下入口 1.8250_core.c的serial8250_init 个人理解代码里有三套串口设备注册代码, 方式一,嵌入式常用的方式,驱动通过与dts硬件信息匹配注册uart

    2024年02月09日
    浏览(49)
  • RK3588平台开发系列讲解(项目篇)YOLOv5部署测试

    平台 内核版本 安卓版本 RK3588 Linux 5.10 Android 12 沉淀、分享、成长,让自己和他人都能有所收获!😄

    2024年02月06日
    浏览(54)
  • 安卓RK3399编译驱动MPU6050,实现内核层与HAL层驱动

    今天我们一起学习一下如何实现对一款有驱动代码的传感器适配安卓系统 开发板:某AR眼镜公司的开发板RK3399 1. 什么是设备树(.dts) DTS即Device Tree Source 设备树源码, Device Tree是一种描述硬件的数据结构,它起源于 OpenFirmware (OF)。 其主要目的是定义MCU各个引脚的接线功能,通过

    2024年02月04日
    浏览(50)
  • RK3588平台开发系列讲解(项目篇)基于yolov5的物体识别

    平台 内核版本 安卓版本 RK3588 Linux 5.10 Android 12 沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 本篇将给大家介绍,如

    2024年02月06日
    浏览(49)
  • RK3399_PCIe_Host驱动分析_地址映射

    《PCI Express Technology 3.0》,Mike Jackson, Ravi Budruk; MindShare, Inc. 《PCIe扫盲系列博文》,作者Felix,这是对《PCI Express Technology》的理解与翻译 《PCI EXPRESS体系结构导读 (王齐)》 《PCI Express_ Base Specification Revision 4.0 Version 0.3 ( PDFDrive )》 《NCB-PCI_Express_Base_5.0r1.0-2019-05-22》 SOC中AXI总线是

    2024年02月06日
    浏览(41)
  • QT学习开发笔记(项目实战之智能家居物联网项目1 )

    本章介绍使用 Qt 开发智能家居中的一个物联应用。简单直白的说就是通过云服务器远程控 制设备(与设备通信等)。本章可以直接做毕设,是毕设物联网项目的一大福音!本章将实现远 程点亮开发板 LED 作为一个项目实例。 在生活中,我们可能使用过 WIFI 智能插座这款产品

    2023年04月13日
    浏览(63)
  • 工业互联网项目开发工作流程及核心问题

    工业互联网项目开发全流程V3.0   工业互联网项目开发工作流程及核心问题 一、需求分析 1、共享平台需求分析 这个平台要解决什么问题? 这个平台的用户群体是谁? 这个平台应该具备哪些主要功能? 这个平台的使用场景是什么? 这个平台如何与现有的系统集成? 2、需求

    2024年02月09日
    浏览(51)
  • ESP32物联网项目开发1-ESP32简介

    第1章,ESP32入门,向你介绍一般的物联网技术、ESP32硬件和开发环境选项。 第2章,与地球对话--传感器和执行器,讨论了不同类型的传感器和执行器,以及如何将它们与ESP32连接。 第3章,令人印象深刻的显示输出,解释了如何在ESP32项目中选择和使用不同的显示类型。FreeRT

    2024年02月08日
    浏览(42)
  • 4.物联网射频识别,RFID开发【智能门禁项目】

    补充:学习路径 一。项目介绍及需求分析 1.酒店智能门禁使用场景介绍 1.客人入住         客人在前台办理入住手续,前台管理员通过门禁管理系统为客户开一张门禁卡         客户持卡到相应客房,用IC 卡刷卡开门         客人过了入住时间后,卡自动失效,刷

    2024年02月07日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包