Firefly-RK3399 開發板上有 4 路 PWM 輸出,分別為 PWM0 ~ PWM3,4路 PWM 分別使用在eDP背光、MIPI背光、VDDLOG供電、紅外IR。 本章主要描述如何配置 PWM。
RK3399的 PWM 驅動為: kernel/drivers/pwm/pwm-rockchip.c
配置 PWM 主要有以下三大步驟:配置 PWM DTS 節點、配置 PWM 內核驅動、控制 PWM 設備。
在 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
該頭文件主要包含 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 輸出主要使用以下接口函數:
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);
-
功能:禁止 pwm
通過內核豐富的debug接口查看pwm注冊狀態,adb shell或者串口進入android終端 cat /sys/kernel/debug/pwm —注冊是否成功,成功則返回接口名和寄存器地址
-
dts配置文件是否打開對應的pwm。
-
pwm所在的io口是否被其他資源占用,可以根據報錯的返回值去查看原因。
-
嵌入式主板
+關注
關注
7文章
6086瀏覽量
35641 -
安卓
+關注
關注
5文章
2137瀏覽量
57654 -
可制造性設計
+關注
關注
10文章
2065瀏覽量
15722 -
Firefly
+關注
關注
2文章
538瀏覽量
7141 -
華秋DFM
+關注
關注
20文章
3494瀏覽量
4762
發布評論請先 登錄
相關推薦
RK3399中PWM3如果用成普通的PWM功能改如何修改呢
firefly RK3399上沒有pwm輸出端口是哪個?
Firefly -RK3399電源適配器介紹
![<b class='flag-5'>Firefly</b> -<b class='flag-5'>RK3399</b>電源適配器<b class='flag-5'>介紹</b>](https://file.elecfans.com/web1/M00/AB/49/o4YBAF22zsCACha_AAESYwVcVZw399.jpg)
Firefly-RK3399--IR程序 使用
![<b class='flag-5'>Firefly-RK3399</b>--IR程序 使用](https://file.elecfans.com/web1/M00/AB/49/o4YBAF22zu2AKNkMAADawVe-83s960.png)
Firefly-RK3399--ADC開發板介紹
![<b class='flag-5'>Firefly-RK3399</b>--ADC開發板<b class='flag-5'>介紹</b>](https://file.elecfans.com/web1/M00/AE/9A/pIYBAF3XSW2AGzt6AAIRdlroTGQ426.png)
評論