1.PWM簡(jiǎn)介
1.1 開(kāi)發(fā)板PWM資源

1.2 查找PWM節(jié)點(diǎn)
rv1126b的pwm資源表如下:

【PWM1 CH0】對(duì)應(yīng)的是pwm1_4ch_0,寄存地址為20700000。
【PWM1 CH1】對(duì)應(yīng)的是pwm1_4ch_1,寄存地址為20710000。
pwm驅(qū)動(dòng)加載成功后,在文件系統(tǒng)/sys/class/pwm/下會(huì)產(chǎn)生pwm節(jié)點(diǎn)(pwmchip*),通過(guò)下方命令,可得知pwm節(jié)點(diǎn)與pwm資源的對(duì)應(yīng)關(guān)系。

【PWM1 CH0】對(duì)應(yīng)的節(jié)點(diǎn)為【pwmchip1】
【PWM1 CH1】對(duì)應(yīng)的節(jié)點(diǎn)為【pwmchip2】
1.3 操作PWM節(jié)點(diǎn)
下方以操作【PWM1 CH0】為例:
首先通過(guò)命令進(jìn)入到pwmchip1控制器(/sys/class/pwm/pwmchip1),能看到以下內(nèi)容:
cd /sys/class/pwm/pwmchip1 ls

export:用于導(dǎo)出pwm定時(shí)器設(shè)備
unexport:用于釋放pwm定時(shí)器設(shè)備
向export文件寫(xiě)入0,就會(huì)打開(kāi)pwm定時(shí)器,會(huì)產(chǎn)生一個(gè)pwm0目錄。
echo 0 > export

進(jìn)入到pwm0定時(shí)器,就能設(shè)置它的各種屬性,如周期、占空比等。
cd pwm0

echo 1000000 > period ##設(shè)置定時(shí)器1個(gè)周期內(nèi)的脈沖個(gè)數(shù) echo 500000 > duty_cycle ##設(shè)置定時(shí)器1個(gè)周期內(nèi)低電平的脈沖個(gè)數(shù) echo 1 > enable ##使能pwm定時(shí)器 echo 0 > enable ##禁能pwm定時(shí)器
相反往unexport文件寫(xiě)入0,就會(huì)關(guān)閉pwm定時(shí)器,同時(shí)pwm0目錄會(huì)被刪除。
cd .. echo 0 > unexport

2. 快速上手
2.1 開(kāi)發(fā)環(huán)境準(zhǔn)備
如果您初次閱讀此文檔,請(qǐng)閱讀《入門(mén)指南/開(kāi)發(fā)環(huán)境準(zhǔn)備/Easy-Eai編譯環(huán)境準(zhǔn)備與更新》,并按照其相關(guān)的操作,進(jìn)行編譯環(huán)境的部署。
在PC端Ubuntu系統(tǒng)中執(zhí)行run腳本,進(jìn)入EASY-EAI編譯環(huán)境,具體如下所示。
cd ~/develop_environment ./run.sh

2.2 源碼下載以及例程編譯
首先,在虛擬機(jī)后臺(tái)終端,執(zhí)行以下命令,創(chuàng)建外設(shè)單例源碼管理目錄:
首先,到【百度網(wǎng)盤(pán)】上下載相關(guān)的單例程序:
鏈接:https://pan.baidu.com/s/1Br608Hiff2Xs65PzWO_qWQ?pwd=1234
提取碼:1234
比如把單例程序下載到:此電腦\D:\BaiduNetdisk (無(wú)規(guī)定,用戶可自主選擇),如下圖所示。

再將下載好的單例復(fù)制進(jìn)入虛擬機(jī)的文件系統(tǒng),過(guò)程如下圖所示。



最后,進(jìn)入到對(duì)應(yīng)的例程目錄執(zhí)行編譯操作,具體命令如下所示:
cd EASY-EAI-Nano-TB/demo/10_PWM ./build.sh
注:
* 由于依賴庫(kù)部署在板卡上,因此交叉編譯過(guò)程中必須保持/mnt掛載。

編譯成功后,會(huì)生成1個(gè)叫test-pwm可執(zhí)行程序在Release目錄下,并會(huì)自動(dòng)部署到開(kāi)發(fā)板的/userdata/目錄中。
2.3 例程運(yùn)行
通過(guò)串口調(diào)試或ssh調(diào)試,進(jìn)入板卡后臺(tái),定位到例程部署的位置,如下所示:
cd /userdata

執(zhí)行下方命令以運(yùn)行PWM輸出demo,如下所示。
sudo ./test-pwm
執(zhí)行效果如下所示。

通過(guò)示波器抓取的波形,如下圖所示:

3. C語(yǔ)言使用案例
PWM的C語(yǔ)言使用案例,代碼地址為10_PWM/test-pwm/main.c,供用戶編碼參考。以下代碼展示了pwm控制器的初始化,調(diào)整周期,占空比,資源釋放的操作流程:
int main(int argc, const char** argv) { int ret; ret = pwm_init("pwmchip1", "0"); printf("export_ret:%d\n", ret); ret = pwm_set_attr("pwmchip1", "0", "period", "1000000"); printf("set_period_ret:%d\n", ret); ret = pwm_set_attr("pwmchip1", "0", "duty_cycle", "500000"); printf("set_duty_cycle_ret:%d\n", ret); ret = pwm_set_enable("pwmchip1", "0", "1"); printf("set_enable:%d\n", ret); ret = pwm_release("pwmchip1", "0"); printf("unexport_ret:%d\n", ret); //====================================================================== ret = pwm_init("pwmchip2", "0"); printf("export_ret:%d\n",ret); ret = pwm_set_attr("pwmchip2", "0", "period", "1000000"); printf("set_period_ret:%d\n",ret); ret = pwm_set_attr("pwmchip2", "0", "duty_cycle", "500000"); printf("set_duty_cycle_ret:%d\n",ret); ret = pwm_set_enable("pwmchip2", "0", "1"); printf("set_enable:%d\n",ret); ret = pwm_release("pwmchip2", "0"); printf("unexport_ret:%d\n",ret); //====================================================================== return 0; }
其中pwm_init(),pwm_set_attr(),pwm_set_enable(),pwm_release()是對(duì)系統(tǒng)調(diào)用的易用化封裝。具體實(shí)現(xiàn)于10_PWM/test-pwm/main.c
-
Linux
+關(guān)注
關(guān)注
88文章
11695瀏覽量
218642 -
瑞芯微
+關(guān)注
關(guān)注
27文章
745瀏覽量
53965 -
EASY-EAI靈眸科技
+關(guān)注
關(guān)注
4文章
65瀏覽量
3489 -
RV1126B
+關(guān)注
關(guān)注
0文章
52瀏覽量
105
發(fā)布評(píng)論請(qǐng)先 登錄
瑞芯微(EASY EAI)RV1126B 音頻輸入
如何用瑞芯微RV1126B核心板贏得AI紅利?
【EASY EAI Nano-TB(RV1126B)開(kāi)發(fā)板試用】+初識(shí)篇
【EASY EAI Nano-TB(RV1126B)開(kāi)發(fā)板試用】命令行功能測(cè)試-shell腳本進(jìn)行IO控制-燈閃
【EASY EAI Nano-TB(RV1126B)開(kāi)發(fā)板試用】命令行功能測(cè)試-shell腳本進(jìn)行IO控制-紅綠燈項(xiàng)目
【EASY EAI Nano-TB(RV1126B)開(kāi)發(fā)板試用】命令行功能測(cè)試-shell腳本進(jìn)行IO控制-紅綠燈按鈕項(xiàng)目
請(qǐng)問(wèn)各位大佬,如何解決,瑞芯微 RV1126B 使用 mpp 自帶工具 調(diào)試時(shí),內(nèi)核直接報(bào)錯(cuò)崩潰!
【EASY EAI Nano-TB(RV1126B)開(kāi)發(fā)板試用】+1、開(kāi)箱上電
【EASY EAI Nano-TB(RV1126B)開(kāi)發(fā)板試用】介紹、系統(tǒng)安裝
RV1126系列選型指南:從RV1126到RV1126B,一文看懂升級(jí)差異
【免費(fèi)試用】EASY EAI Nano-TB(RV1126B)開(kāi)發(fā)套件評(píng)測(cè)
瑞芯微RV1126B特性概述
瑞芯微RV1126B開(kāi)發(fā)套件評(píng)測(cè)大賽正式開(kāi)賽!(文末附報(bào)名二維碼)
替代升級(jí)實(shí)錘!實(shí)測(cè)RV1126B,CPU性能吊打RV1126
瑞芯微(EASY EAI)RV1126B 人體關(guān)鍵點(diǎn)識(shí)別
瑞芯微(EASY EAI)RV1126B PWM使用
評(píng)論