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

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

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

fireflyAIO-3399J主板PWM使用介紹

firefly ? 來源:firefly ? 作者:firefly ? 2019-12-24 10:37 ? 次閱讀

PWM 使用

前言

AIO-3399J開發(fā)板上有 4 路 PWM 輸出,分別為 PWM0 ~ PWM3,4路 PWM 分別使用在eDP背光、MIPI背光、VDDLOG供電、紅外IR。 本章主要描述如何配置 PWM。

RK3399的 PWM 驅(qū)動(dòng)為: kernel/drivers/pwm/pwm-rockchip.c

DTS配置

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

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

在 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:需要申請(qǐng)的pwm通道數(shù)。

min_period:周期時(shí)長(zhǎng)最小值。

max_period:周期時(shí)長(zhǎng)最大值。

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

接口說明

用戶可在其它驅(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 * 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 函數(shù)

int pwm_enable(struct pwm_device *pwm);

用于使能 PWM,例如:

pwm_enable(pwm0);

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

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

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

void pwm_free(struct pwm_device *pwm);

功能:用于釋放所申請(qǐng)的 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);

功能:禁止 pwm

參考Demo:kernel/drivers/pwm/pwm-firefly.c

調(diào)試方法

通過內(nèi)核豐富的debug接口查看pwm注冊(cè)狀態(tài),adb shell或者串口進(jìn)入android終端 cat /sys/kernel/debug/pwm —注冊(cè)是否成功,成功則返回接口名和寄存器地址

FAQs

Pwm無法注冊(cè)成功:

dts配置文件是否打開對(duì)應(yīng)的pwm。

pwm所在的io口是否被其他資源占用,可以根據(jù)報(bào)錯(cuò)的返回值去查看原因。

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

    關(guān)注

    7

    文章

    6085

    瀏覽量

    35336
  • 安卓
    +關(guān)注

    關(guān)注

    5

    文章

    2130

    瀏覽量

    57198
  • Firefly
    +關(guān)注

    關(guān)注

    2

    文章

    538

    瀏覽量

    7045
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    fireflyAIO-3399J主板簡(jiǎn)介

    AIO-3399J 的標(biāo)準(zhǔn)套裝包含以下配件
    的頭像 發(fā)表于 11-05 15:52 ?1563次閱讀
    <b class='flag-5'>fireflyAIO-3399J</b><b class='flag-5'>主板</b>簡(jiǎn)介

    fireflyAIO-3399C主板PWM介紹

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

    fireflyAIO-3399J主板介紹

    AIO-3399J默認(rèn)出廠固件是支持LVDS+HDMI 1080P的雙屏顯示,HDMI分辨率最高只能到1080P。
    的頭像 發(fā)表于 12-24 10:03 ?1673次閱讀
    <b class='flag-5'>fireflyAIO-3399J</b><b class='flag-5'>主板</b><b class='flag-5'>介紹</b>

    fireflyAIO-3399J主板散熱套件簡(jiǎn)介

    散熱套件 鋁制散熱片 產(chǎn)品參數(shù) 適配:AIO-3399J 尺寸:43mm (L)* 39.5mm(W)*11mm(H)
    的頭像 發(fā)表于 12-24 10:01 ?1232次閱讀
    <b class='flag-5'>fireflyAIO-3399J</b><b class='flag-5'>主板</b>散熱套件簡(jiǎn)介

    fireflyAIO-3399J主板紅外遙控器簡(jiǎn)介

    紅外遙控器 產(chǎn)品參數(shù) 產(chǎn)品:12鍵紅外遙控器 版本:Firefly定制版 電源:兩節(jié)7號(hào)電池 適配:AIO-3399J 描述:支持AIO-3399J開發(fā)板的遙控開機(jī)功能
    的頭像 發(fā)表于 12-24 10:07 ?1580次閱讀

    fireflyAIO-3399J主板屏幕模組介紹

    屏幕模組 7.85寸MIPI液晶屏模組 注意:默認(rèn)的AIO-3399J主板不帶mipi_dsi接口,如需要此功能需修改硬件。
    的頭像 發(fā)表于 12-24 10:14 ?1634次閱讀
    <b class='flag-5'>fireflyAIO-3399J</b><b class='flag-5'>主板</b>屏幕模組<b class='flag-5'>介紹</b>

    fireflyAIO-3399J主板UART使用介紹

    AIO-3399J 支持SPI橋接/擴(kuò)展4個(gè)增強(qiáng)功能串口(UART)的功能,分別為UART1,UART2,RS232,RS485。
    的頭像 發(fā)表于 12-24 10:18 ?2120次閱讀
    <b class='flag-5'>fireflyAIO-3399J</b><b class='flag-5'>主板</b>UART使用<b class='flag-5'>介紹</b>

    fireflyAIO-3399J主板TIMER使用簡(jiǎn)介

    RK3399有12 個(gè)Timers (timer0-timer11),有12 個(gè)Secure Timers(stimer0~stimer11) 和 2 個(gè)Timers(pmutimer0
    的頭像 發(fā)表于 12-24 10:25 ?1494次閱讀
    <b class='flag-5'>fireflyAIO-3399J</b><b class='flag-5'>主板</b>TIMER使用簡(jiǎn)介

    fireflyAIO-3399J主板RTC使用簡(jiǎn)介

    AIO-3399J開發(fā)板上有 一個(gè)集成于RK808上的RTC(Real Time Clock),主要功能有時(shí)鐘,日歷,鬧鐘,周期性中斷,雙通道32KHz時(shí)鐘輸出。
    的頭像 發(fā)表于 12-24 10:20 ?2024次閱讀
    <b class='flag-5'>fireflyAIO-3399J</b><b class='flag-5'>主板</b>RTC使用簡(jiǎn)介

    fireflyAIO-3399J主板MIPI CSI使用簡(jiǎn)介

    AIO-3399J 開發(fā)板分別帶有兩個(gè)MIPI,一個(gè)DVP攝像頭接口,MIPI最高支持支持4K拍照,并支持1080P 30FPS以上視頻錄制。
    的頭像 發(fā)表于 12-24 10:22 ?5183次閱讀
    <b class='flag-5'>fireflyAIO-3399J</b><b class='flag-5'>主板</b>MIPI CSI使用簡(jiǎn)介

    fireflyAIO-3399J主板LED使用介紹

    AIO-3399J 開發(fā)板上有 2 個(gè) LED 燈
    的頭像 發(fā)表于 12-24 10:31 ?3044次閱讀
    <b class='flag-5'>fireflyAIO-3399J</b><b class='flag-5'>主板</b>LED使用<b class='flag-5'>介紹</b>

    fireflyAIO-3399J主板IR使用簡(jiǎn)介

    AIO-3399J 開發(fā)板上使用紅外收發(fā)傳感器 IR (在 mic 接口和喇叭接口之間)實(shí)現(xiàn)遙控功能,在IR接口處接上紅外接收器。
    的頭像 發(fā)表于 12-24 10:32 ?2214次閱讀
    <b class='flag-5'>fireflyAIO-3399J</b><b class='flag-5'>主板</b>IR使用簡(jiǎn)介

    fireflyAIO-3399J主板I2C使用介紹

    AIO-3399J 開發(fā)板上有 9 個(gè)片上 I2C 控制器,
    的頭像 發(fā)表于 12-24 10:34 ?1917次閱讀
    <b class='flag-5'>fireflyAIO-3399J</b><b class='flag-5'>主板</b>I2C使用<b class='flag-5'>介紹</b>

    fireflyAIO-3399J主板ADC使用介紹

    AIO-3399J 開發(fā)板上的 AD 接口有兩種,分別為:溫度傳感器 (Temperature Sensor)、逐次逼近ADC (Successive Approximation Register)。
    的頭像 發(fā)表于 12-24 10:47 ?1710次閱讀

    fireflyAIO-3399J啟動(dòng)模式說明主板

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