衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

微雪電子AIO-3128C主板PWM使用介紹

firefly ? 來源:微雪電子 ? 作者:微雪電子 ? 2019-12-23 16:15 ? 次閱讀

PWM 使用

前言

AIO-3128C 開發板上有 4 路 PWM 輸出,分別為 PWM0 ~ PWM3,其中:

PWM0/GPIO0_D2: 在擴展口中引出

PWM1/GPIO0_D3: 內部用作 AUX_DET 信號

PWM2/GPIO0_D4: 內部用作 RTC_INT 信號

本章主要描述如何配置 PWM。 AIO-3128C 的 PWM 驅動為:

kernel/drivers/pwm/pwm-rockchip.c

配置步驟

配置 PWM 主要有以下三大步驟:配置 PWM DTS 節點、配置 PWM 內核驅動、控制 PWM 設備。

配置 PWM DTS節點

在 kernel/arch/arm/boot/dts/rk312x.dtsi 定義了以下 PWM 節點,如下所示:

pwm0: pwm@20050000 {compatible = "rockchip,rk-pwm";reg = <0x20050000 0x10>;#pwm-cells = <2>;pinctrl-names = "default";pinctrl-0 = <&pwm0_pin>;clocks = <&clk_gates7 10>;clock-names = "pclk_pwm";status = "disabled";}; pwm1: pwm@20050010 {compatible = "rockchip,rk-pwm";reg = <0x20050010 0x10>;#pwm-cells = <2>;pinctrl-names = "default";pinctrl-0 = <&pwm1_pin>;clocks = <&clk_gates7 10>;clock-names = "pclk_pwm";status = "disabled";}; pwm2: pwm@20050020 {compatible = "rockchip,rk-pwm";reg = <0x20050020 0x10>;#pwm-cells = <2>;pinctrl-names = "default";pinctrl-0 = <&pwm2_pin>;clocks = <&clk_gates7 10>;clock-names = "pclk_pwm";status = "disabled";}; pwm3: pwm@20050030 {compatible = "rockchip,rk-pwm";reg = <0x20050030 0x10>;#pwm-cells = <2>;pinctrl-names = "default";pinctrl-0 = <&pwm3_pin>;clocks = <&clk_gates7 10>;clock-names = "pclk_pwm";status = "disabled";}; remotectl: pwm@20050030 {compatible = "rockchip,remotectl-pwm";reg = <0x20050030 0x10>;#pwm-cells = <2>;pinctrl-names = "default";pinctrl-0 = <&pwm3_pin>;clocks = <&clk_gates7 10>;clock-names = "pclk_pwm";remote_pwm_id = <3>;interrupts = ;status = "okay";};

要使用 pwm0, 只需在 kernel/arch/arm/boot/dts/aio-3128c.dts 加入:

&pwm0 { status = "okay"; };

配置 PWM 內核驅動

PWM 驅動位于文件 kernel/drivers/pwm/pwm-rockchip.c。

控制 PWM 設備

用戶可在其它驅動文件中使用以上步驟生成的 PWM 節點。具體方法如下:

(1)、在要使用 PWM 控制的設備驅動文件中包含以下頭文件:

#include

該頭文件主要包含 PWM 的函數接口。

(2)、申請 PWM

使用

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

函數申請 PWM。例如:

struct pwm_device * pwm0 = NULL;pwm0 = pwm_request(0, “backlight-pwm”);

參數 pwm_id 表示要申請 PWM 的通道,label 為該 PWM 所取的標簽

(3)、配置 PWM

使用

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

配置 PWM 的占空比,例如:

pwm_config(pwm0, 500000, 1000000);

參數 pwm 為前一步驟申請的 pwm_device。duty_ns 為占空比激活的時長,單位為 ns。period_ns 為 PWM 周期,單位為 ns。

(4)、使能PWM

函數

int pwm_enable(struct pwm_device *pwm);

用于使能 PWM,例如:

pwm_enable(pwm0);

參數 pwm 為要使能的 pwm_device。

控制 PWM 輸出主要使用以下接口函數:

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

功能:用于申請 pwm

參數:

pwm_id:要申請的 pwm 通道。

label: 為該申請的 pwm 所取的標簽。

void pwm_free(struct pwm_device *pwm);

功能:用于釋放所申請的 pwm

參數:

pwm:所要釋放的 pwm 結構體

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

功能:用于配置 pwm 的占空比

參數:

pwm: 所要配置的 pwm

duty_ns:pwm 的占空比激活的時長,單位 ns

period_ns:pwm 占空比周期,單位 ns

int pwm_enable(struct pwm_device *pwm);

功能:使能 pwm

參數:

pwm:要使能的 pwm

void pwm_disable(struct pwm_device *pwm);

功能:禁止 pwm

參數:

pwm:要禁止的 pwm

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11345

    瀏覽量

    210389
  • 嵌入式主板
    +關注

    關注

    7

    文章

    6086

    瀏覽量

    35613
  • Firefly
    +關注

    關注

    2

    文章

    538

    瀏覽量

    7129
收藏 人收藏

    評論

    相關推薦

    超高性價比AIO-3128C開源主板

    `Firefly AIO-3128C開源主板擁有超高性價比處理核心四核ARM Cortex-A7,全面低于市面主流A7處理器的價格。主頻高達1.3GHz,集成Mali-400 MP2圖形處理器,內嵌2D加速器,擁有強大的圖形與視頻處理能力。豐富的外部擴展接口,可以直接應用
    發表于 05-16 16:27

    AIO-3128C一體板的特點及其功能分別有哪些呢

    AIO-3128C一體板的特點及其功能分別有哪些呢?
    發表于 01-14 06:28

    firefly RK3128開發板 AIO-3128C介紹

    采用了基于Cortex-A7構架的四核處理器RK3128,集成Mali-400 MP2圖形處理器,支持OpenGL ES1.1/2.0,可以實現1080P、H.265硬件解碼和1080P、H.264視頻編碼。AIO-3128C引出全面的開發接口,可快速應用于各種行業產品中
    的頭像 發表于 11-13 14:25 ?2649次閱讀
    firefly RK<b class='flag-5'>3128</b>開發板 <b class='flag-5'>AIO-3128C</b><b class='flag-5'>介紹</b>

    Firefly-RK3128主板PWM輸出介紹

    Firefly-RK3128 開發板上有 4 路 PWM 輸出,分別為 PWM0 ~ PWM3
    的頭像 發表于 11-28 16:56 ?2449次閱讀
    Firefly-RK<b class='flag-5'>3128</b><b class='flag-5'>主板</b><b class='flag-5'>PWM</b>輸出<b class='flag-5'>介紹</b>

    fireflyAIO-3399C主板PWM介紹

    AIO-3399C開發板上引出有 3 路 PWM 輸出,
    的頭像 發表于 12-09 16:20 ?1557次閱讀

    電子AIO-3128C主板U-Boot使用介紹

    RK U-Boot 基于開源的 U-Boot 進行開發,工作模式有啟動加載模式和下載模式。
    的頭像 發表于 12-23 16:08 ?1402次閱讀
    <b class='flag-5'>微</b><b class='flag-5'>雪</b><b class='flag-5'>電子</b><b class='flag-5'>AIO-3128C</b><b class='flag-5'>主板</b>U-Boot使用<b class='flag-5'>介紹</b>

    電子AIO-3128C主板屏幕模組簡介

    屏幕模組 10.1寸LVDS顯示模組
    的頭像 發表于 12-23 16:11 ?1113次閱讀
    <b class='flag-5'>微</b><b class='flag-5'>雪</b><b class='flag-5'>電子</b><b class='flag-5'>AIO-3128C</b><b class='flag-5'>主板</b>屏幕模組簡介

    電子AIO-3128C主板UART使用介紹

    AIO-3128C 開發板內置 3 路 UART,分別為 uart0,uart1,uart2。
    的頭像 發表于 12-23 16:10 ?2237次閱讀
    <b class='flag-5'>微</b><b class='flag-5'>雪</b><b class='flag-5'>電子</b><b class='flag-5'>AIO-3128C</b><b class='flag-5'>主板</b>UART使用<b class='flag-5'>介紹</b>

    電子AIO-3128C主板SPI使用介紹

    SPI是一種高速的,全雙工,同步串行通信接口,用于連接微控制器、傳感器、存儲設備等,本文以指紋識別模塊為例簡單介紹SPI使用。
    的頭像 發表于 12-23 16:14 ?1626次閱讀
    <b class='flag-5'>微</b><b class='flag-5'>雪</b><b class='flag-5'>電子</b><b class='flag-5'>AIO-3128C</b><b class='flag-5'>主板</b>SPI使用<b class='flag-5'>介紹</b>

    電子AIO-3128C主板MIPI DSI使用介紹

    MIPI DSI 使用 Config配置
    的頭像 發表于 12-23 16:16 ?1.4w次閱讀
    <b class='flag-5'>微</b><b class='flag-5'>雪</b><b class='flag-5'>電子</b><b class='flag-5'>AIO-3128C</b><b class='flag-5'>主板</b>MIPI DSI使用<b class='flag-5'>介紹</b>

    電子AIO-3128C主板LED使用簡介

    AIO-3128C 開發板上有 2 個 LED 燈
    的頭像 發表于 12-23 16:17 ?2859次閱讀
    <b class='flag-5'>微</b><b class='flag-5'>雪</b><b class='flag-5'>電子</b><b class='flag-5'>AIO-3128C</b><b class='flag-5'>主板</b>LED使用簡介

    fireflyAIO-3128C主板啟動模式介紹

    AIO-3128C 有靈活的啟動方式。一般情況下,除非硬件損壞,AIO-3128C 開發板是不會變磚的。
    的頭像 發表于 12-24 09:44 ?902次閱讀

    fireflyAIO-3128C主板串口調試介紹

    AIO-3128C 開發板的調試串口與 TF 卡接口有信號引腳復用,因此無法同時使用,即: 使用調試串口時必須拔掉 TF 卡,而使用 TF 卡時不要連接調試串口。
    的頭像 發表于 12-24 09:50 ?1508次閱讀
    fireflyAIO-<b class='flag-5'>3128C</b><b class='flag-5'>主板</b>串口調試<b class='flag-5'>介紹</b>

    電子BB Black卡片式電腦介紹

    電子
    的頭像 發表于 12-27 09:28 ?1524次閱讀
    <b class='flag-5'>微</b><b class='flag-5'>雪</b><b class='flag-5'>電子</b>BB Black卡片式電腦<b class='flag-5'>介紹</b>

    AIO-3128C 開發板防雷防靜電明細

    AIO-3128C 開發板防雷防靜電明細 AIO-3128C 開發板防雷防靜電明細 1. 產品概述 AIO-3128C 一體板采用了瑞芯(Rockchip)四核處理器 RK
    發表于 03-16 14:55 ?1077次閱讀
    赌博百家乐官网的玩法技巧和规则 | 888百家乐的玩法技巧和规则 | 万豪国际娱乐城| 百家乐网站建设| 网络百家乐官网网站| 顶级赌场手机版| 百家乐烫金筹码| 百家乐官网澳门路规则算法| 大发888娱乐城官方网站lm0| 视频百家乐官网破解| 88娱乐城备用| 百家乐有没有单机版的| 百家乐官网麻将筹码币镭射贴膜| 肥城市| 安卓水果机游戏下载| 百家乐一直下注庄家| 伯爵百家乐官网娱乐平台| 菲彩百家乐的玩法技巧和规则| 闲和庄百家乐官网娱乐城| 百家乐官网投注技巧| 六合投注系统| 大发888娱乐场官网官方下载| tt百家乐的玩法技巧和规则| 太阳城百家乐投注| A8百家乐官网赌场娱乐网规则 | 喀喇| 波克棋牌游戏大厅| 威尼斯人娱乐城网络博彩| 百家乐官网正式版| 百家乐官网闲庄和| 川宜百家乐官网注册号| 博九娱乐城| 88娱乐城注册| 七乐国际| 瑞士百家乐的玩法技巧和规则 | 百家乐赢赌场百家乐| 圣保罗百家乐官网的玩法技巧和规则 | 澳门百家乐现场视频| 百家乐赌场老千| 百家乐辅助工具| 百家乐官网网|