最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

RK3588開發(fā)板(armsom-w3) 之 PWM實(shí)操

2023-06-10 10:26 作者:磊子啊_  | 我要投稿

PWM介紹

  • 專欄總目錄

  • PWM是脈寬調(diào)制(Pulse Width Modulation)的縮寫。它是一種用于控制電子設(shè)備的技術(shù),通過改變電信號的脈沖寬度來實(shí)現(xiàn)對設(shè)備的控制。

PWM基本概念

PWM信號由一個固定頻率的周期性脈沖序列組成,每個脈沖的寬度(持續(xù)時間)可以根據(jù)需要進(jìn)行調(diào)節(jié)。調(diào)節(jié)脈沖寬度的比例可以改變平均電壓或電流的大小,從而實(shí)現(xiàn)對設(shè)備的控制。

當(dāng)談?wù)揚(yáng)WM時,以下三個關(guān)鍵術(shù)語經(jīng)常被提及:
頻率(Frequency):PWM信號的頻率是指每秒鐘內(nèi)脈沖的數(shù)量。
周期(Period):PWM信號的周期是指一個完整脈沖序列所花費(fèi)的時間。它是頻率的倒數(shù),以秒為單位表示。周期可以通過將頻率的倒數(shù)計算得到,例如,一個10kHz的PWM信號的周期為0.1毫秒(100微秒)。
占空比(Duty Cycle):占空比是指PWM信號中脈沖寬度與周期之間的比例關(guān)系。它表示了脈沖在一個周期中所占據(jù)的時間比例,通常以百分比表示。占空比為0%意味著脈沖不存在(完全低電平),而占空比為100%表示脈沖持續(xù)時間占據(jù)了整個周期(完全高電平)。在實(shí)際應(yīng)用中,占空比可以在0%到100%之間任意調(diào)整,以實(shí)現(xiàn)所需的控制效果。

PWM驅(qū)動

pwm驅(qū)動是一個通用的驅(qū)動,SOC廠家都會在SDK里面默認(rèn)打開

驅(qū)動文件

驅(qū)動文件所在位置:

drivers/pwm/pwm-rockchip.c

默認(rèn)SDK已經(jīng)加載好了PWM的驅(qū)動,下文我們主要注意PWM怎么使用

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

DTS 配置參考文檔

Documentation/devicetree/bindings/pwm/pwm.txt

以下為一個例子的示例


pwms的幾個參數(shù)說明如下:
參數(shù) 1,表示 index (per-chip index of the PWM to request),一般是 0,因?yàn)槲覀?Rockchip PWM 每個chip 只有一個。
參數(shù) 2,表示 PWM 輸出波形的時間周期,單位是 ns;例如下面配置的 25000 就是表示想要得到的
PWM 輸出周期是 40K 赫茲。
參數(shù) 3,表示極性,為可選參數(shù);下面例子中的配置為負(fù)極性。

PWM使用

PWM 提供了用戶層的接口,在 /sys/class/pwm/ 節(jié)點(diǎn)下面,PWM 驅(qū)動加載成功后,會在/sys/class/pwm/ 目錄下產(chǎn)生 pwmchip0 目錄;向 export 文件寫入 0,就是打開 pwm 定時器 0,會產(chǎn)生一個 pwm0 目錄,相反的往 unexport 寫入 0 就會關(guān)閉 pwm 定時器了,同時 pwm0 目錄會
被刪除,該目錄下有以下幾個文件:

enable:寫入 1 使能 pwm,寫入 0 關(guān)閉 pwm;
polarity:有 normal 或 inversed兩個參數(shù)選擇,表示輸出引腳電平翻轉(zhuǎn);
duty_cycle:在 normal 模式下,表示一個周期內(nèi)高電平持續(xù)的時間(單位:納秒),在
reversed 模式下,表示一個周期中低電平持續(xù)的時間(單位:納秒);
period:表示 pwm 波的周期(單位:納秒);

以下是 pwmchip0 的例子,設(shè)置 pwm0 輸出頻率 100K,占空比 50%, 極性為正極性:


PWM應(yīng)用實(shí)例

通常電子設(shè)備中應(yīng)用pwm是比較常見的,比如風(fēng)扇電機(jī)控制,電視背光控制, LED 照明調(diào)光、電動工具馬達(dá)控制、汽車加熱器等領(lǐng)域。

這里簡單介紹一下pwm控制LED燈實(shí)現(xiàn)呼吸燈效果。
呼吸燈需要燈的驅(qū)動與PWM的驅(qū)動結(jié)合,兩個驅(qū)動之間傳遞數(shù)據(jù),我們可以在驅(qū)動中調(diào)用其他的驅(qū)動。
led是我需要的設(shè)備,這個設(shè)備用到了pwm,而pwm是用默認(rèn)的驅(qū)動。
硬件上我們在開發(fā)板找到具有pwm功能的引腳

設(shè)備樹的修改如下:


寫一個驅(qū)動。內(nèi)部在使用PWM子系統(tǒng)。形成了包含驅(qū)動的驅(qū)動。

示例代碼

驅(qū)動程序

DULE_LICENSE("GPL");

將上述驅(qū)動編譯為ko文件然后push進(jìn)3588開發(fā)板里面

應(yīng)用層程序


使用3588自帶的編譯器將用戶程序編譯進(jìn)開發(fā)板

prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-gcc apptest_breathing_light_.c -o testpwm
adb push path/testpwm /userdata
chmod 777 testpwm
./testpwm

最后可以看到燈明滅交替的效果


RK3588開發(fā)板(armsom-w3) 之 PWM實(shí)操的評論 (共 條)

分享到微博請遵守國家法律
儋州市| 原平市| 中西区| 青冈县| 格尔木市| 宝山区| 高碑店市| 兰西县| 唐海县| 苗栗市| 壤塘县| 长丰县| 乌鲁木齐县| 通化市| 琼结县| 惠安县| 高阳县| 大邑县| 平谷区| 德兴市| 和田市| 舒城县| 天柱县| 舒兰市| 文昌市| 长宁区| 台江县| 临沭县| 阳江市| 万源市| 日喀则市| 西藏| 牙克石市| 亳州市| 舒城县| 玛纳斯县| 德庆县| 咸宁市| 龙岩市| 玉林市| 福安市|