0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

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

PWM 使用

前言

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

PWM0/GPIO0_D2: 在擴(kuò)展口中引出

PWM1/GPIO0_D3: 內(nèi)部用作 AUX_DET 信號(hào)

PWM2/GPIO0_D4: 內(nèi)部用作 RTC_INT 信號(hào)

本章主要描述如何配置 PWM。 AIO-3128C 的 PWM 驅(qū)動(dòng)為:

kernel/drivers/pwm/pwm-rockchip.c

配置步驟

配置 PWM 主要有以下三大步驟:配置 PWM DTS 節(jié)點(diǎn)、配置 PWM 內(nèi)核驅(qū)動(dòng)、控制 PWM 設(shè)備。

配置 PWM DTS節(jié)點(diǎn)

在 kernel/arch/arm/boot/dts/rk312x.dtsi 定義了以下 PWM 節(jié)點(diǎn),如下所示:

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 內(nèi)核驅(qū)動(dòng)

PWM 驅(qū)動(dòng)位于文件 kernel/drivers/pwm/pwm-rockchip.c。

控制 PWM 設(shè)備

用戶可在其它驅(qū)動(dòng)文件中使用以上步驟生成的 PWM 節(jié)點(diǎn)。具體方法如下:

(1)、在要使用 PWM 控制的設(shè)備驅(qū)動(dòng)文件中包含以下頭文件:

#include

該頭文件主要包含 PWM 的函數(shù)接口。

(2)、申請(qǐng) PWM

使用

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

函數(shù)申請(qǐng) PWM。例如:

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

參數(shù) pwm_id 表示要申請(qǐng) PWM 的通道,label 為該 PWM 所取的標(biāo)簽。

(3)、配置 PWM

使用

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

配置 PWM 的占空比,例如:

pwm_config(pwm0, 500000, 1000000);

參數(shù) pwm 為前一步驟申請(qǐng)的 pwm_device。duty_ns 為占空比激活的時(shí)長(zhǎng),單位為 ns。period_ns 為 PWM 周期,單位為 ns。

(4)、使能PWM

函數(shù)

int pwm_enable(struct pwm_device *pwm);

用于使能 PWM,例如:

pwm_enable(pwm0);

參數(shù) pwm 為要使能的 pwm_device。

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

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

功能:用于申請(qǐng) pwm

參數(shù):

pwm_id:要申請(qǐng)的 pwm 通道。

label: 為該申請(qǐng)的 pwm 所取的標(biāo)簽。

void pwm_free(struct pwm_device *pwm);

功能:用于釋放所申請(qǐng)的 pwm

參數(shù):

pwm:所要釋放的 pwm 結(jié)構(gòu)體

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

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

參數(shù):

pwm: 所要配置的 pwm

duty_ns:pwm 的占空比激活的時(shí)長(zhǎng),單位 ns

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

int pwm_enable(struct pwm_device *pwm);

功能:使能 pwm

參數(shù):

pwm:要使能的 pwm

void pwm_disable(struct pwm_device *pwm);

功能:禁止 pwm

參數(shù):

pwm:要禁止的 pwm

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11304

    瀏覽量

    209538
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6085

    瀏覽量

    35345
  • Firefly
    +關(guān)注

    關(guān)注

    2

    文章

    538

    瀏覽量

    7047
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    超高性價(jià)比AIO-3128C開源主板

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

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

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

    firefly RK3128開發(fā)板 AIO-3128C介紹

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

    Firefly-RK3128主板PWM輸出介紹

    Firefly-RK3128 開發(fā)板上有 4 路 PWM 輸出,分別為 PWM0 ~ PWM3
    的頭像 發(fā)表于 11-28 16:56 ?2386次閱讀
    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開發(fā)板上引出有 3 路 PWM 輸出,
    的頭像 發(fā)表于 12-09 16:20 ?1487次閱讀

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

    RK U-Boot 基于開源的 U-Boot 進(jìn)行開發(fā),工作模式有啟動(dòng)加載模式和下載模式。
    的頭像 發(fā)表于 12-23 16:08 ?1366次閱讀
    <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主板屏幕模組簡(jiǎn)介

    屏幕模組 10.1寸LVDS顯示模組
    的頭像 發(fā)表于 12-23 16:11 ?1083次閱讀
    <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>屏幕模組簡(jiǎn)介

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

    AIO-3128C 開發(fā)板內(nèi)置 3 路 UART,分別為 uart0,uart1,uart2。
    的頭像 發(fā)表于 12-23 16:10 ?2162次閱讀
    <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是一種高速的,全雙工,同步串行通信接口,用于連接微控制器、傳感器、存儲(chǔ)設(shè)備等,本文以指紋識(shí)別模塊為例簡(jiǎn)單介紹SPI使用。
    的頭像 發(fā)表于 12-23 16:14 ?1580次閱讀
    <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配置
    的頭像 發(fā)表于 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使用簡(jiǎn)介

    AIO-3128C 開發(fā)板上有 2 個(gè) LED 燈
    的頭像 發(fā)表于 12-23 16:17 ?2800次閱讀
    <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使用簡(jiǎn)介

    fireflyAIO-3128C主板啟動(dòng)模式介紹

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

    fireflyAIO-3128C主板串口調(diào)試介紹

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

    電子BB Black卡片式電腦介紹

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

    AIO-3128C 開發(fā)板防雷防靜電明細(xì)

    AIO-3128C 開發(fā)板防雷防靜電明細(xì) AIO-3128C 開發(fā)板防雷防靜電明細(xì) 1. 產(chǎn)品概述 AIO-3128C 一體板采用了瑞芯(Rockchip)四核處理器 RK
    發(fā)表于 03-16 14:55 ?1062次閱讀