• 正文
    • 啟動OK1028A-C系統(tǒng)
    • 使能使用的pwm通道
    • 用示波器測試T6_CAN2_RX產(chǎn)生1khz的方波由于每次只能使能一路pwm,所以我們要使能pwm2,就需要先關(guān)閉pwm1。
    • 用示波器測試U7_CAN2_TX產(chǎn)生1khz的方波在我們使用OK1028A-C時,由于管腳復(fù)用,很多功能模塊的管腳沒有引出,但是模塊的驅(qū)動是支持的。這種情況下,我們只需要修改rcw相應(yīng)的pinmux配置和設(shè)備樹文件就可以使用相應(yīng)的功能了。
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

干貨 | OK1028A-C如何輸出PWM方波?

2021/04/30
180
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

最近,我收到了一個使用OK1028A-C輸出pwm方波的需求.但是發(fā)現(xiàn)OK1028平臺沒有相關(guān)的說明,于是我著手寫下了這篇文章。

在查閱OK1028底板的原理圖和《QorIQ LS1028A Reference Manual》后得知,LS1028默認有8個FlexTimer (FTM) ,每個FTM有8路pwm。

默認背光采用的是FTM1產(chǎn)生的pwm,我們使用FTM7做pwm測試。

如下圖所示:

LS1028 RCWSR12寄存器的12-14為I2C4的管腳復(fù)用。 

如下圖所示:

I2C4管腳可以復(fù)用為六種管腳功能。OK1028A-C將管腳設(shè)置為can2 的rx 和tx ,在原理圖《OK1028A-C_V1.1》中可以看到T6_CAN2_RX、U7_CAN2_TX。我們可以通過修改rcw文件,將I2C4設(shè)置為pwm管腳。OK1028A-C默認是支持pwm功能的,所以我們無需移植驅(qū)動,所做的工作只是修改pinmux和在設(shè)備樹中增加pwm的相應(yīng)設(shè)備節(jié)點即可。修改packages/firmware

/rcw/ls1028ardb/RSQPP0x85bb/rcw1500gpu600.rcw中IIC4_PMUX的設(shè)置,將pin設(shè)置為pwm輸出。

將IIC4_PMUX=2修改為 IIC4_PMUX=4

如下圖所示:

 

完成上述設(shè)置后我們需要修改設(shè)備樹代碼,增加PWM配置。我們的修改的文件路徑如下:

packages/linux/linux/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi。

然后添加pwm7設(shè)備

Pwm7: pwm@2860000 {

                        compatible = "fsl,ls1028a-ftm-pwm";

                        reg = <0x0 0x2860000 0x0 0x10000>;

                        #pwm-cells = <3>;

                        clock-names = "ftm_sys";

                        clocks = <&ftm_sysclk>;

                };

如下圖所示:

啟動OK1028A-C系統(tǒng)

root@forlinx:~#cat /sys/kernel/debug/pwm 查看我們當(dāng)前的pwm設(shè)備

如下圖所示:

我們現(xiàn)在打開了一個pwm控制器,可以看到FTM1支持8個通道,而背光使用的是pwm-1通道。將我們修改后的設(shè)備樹文件和firmware編譯,燒寫到OK1028A-C開發(fā)板,啟動系統(tǒng)。

root@forlinx:~#cat /sys/kernel/debug/pwm 查看我們當(dāng)前的pwm設(shè)備。

如下圖所示:

此時,雖然我們添加的pwm設(shè)備打開了,但和pwm0設(shè)備還是有差別的,新添加的pwm設(shè)備的每一路通道都沒有設(shè)置周期和占空比。

所以下一步我們不需要再增加驅(qū)動代碼,而是利用sys即可直接設(shè)置pwm參數(shù)。Pwmchip8是我們添加的pwm設(shè)備。

使能使用的pwm通道

root@forlinx:~#echo 1 > /sys/class/pwm/pwmchip8/export 初始化 pwm通道1  

root@forlinx:~#echo 2 > /sys/class/pwm/pwmchip8/export 初始化 pwm通道2

root@forlinx:~#cat /sys/kernel/debug/pwm 命令查看我們當(dāng)前的pwm設(shè)備:

如果想取消相應(yīng)pwm通道的話,可以使用“echo 1 > /sys/class/pwm/pwmchip8/unexport”

“echo 2 > /sys/class/pwm/pwmchip8/unexport”命令。

因為我們每次只能使能一路pwm,所以先配置和打開pwm1。

root@forlinx:~#echo 1000000 > /sys/class/pwm/pwmchip8/pwm1/period 配置pwm1 period為1000000,單位為ns,即1kHZ。

root@forlinx:~#echo 500000 > /sys/class/pwm/pwmchip8/pwm1/duty_cycle 配置 duty_cycle 為500000,一個周期中on的時間即占空比,單位為ns,占空比50%

root@forlinx:~#echo 1 > /sys/class/pwm/pwmchip8/pwm1/enable 使能

root@forlinx:~#cat/sys/class/pwm/pwmchip8/pwm1/{enable,period,duty_cycle} 命令可以查看我們的pwm使能狀態(tài),周期,和占空比。

如下圖所示:

用示波器測試T6_CAN2_RX產(chǎn)生1khz的方波由于每次只能使能一路pwm,所以我們要使能pwm2,就需要先關(guān)閉pwm1。

root@forlinx:~#echo 0 > /sys/class/pwm/pwmchip8/pwm1/enable

root@forlinx:~#echo 1000000 > /sys/class/pwm/pwmchip8/pwm2/period 配置period為1000000

root@forlinx:~#echo 500000 > /sys/class/pwm/pwmchip8/pwm2/duty_cycle 配置duty_cycle為500000。root@forlinx:~#echo 1 > /sys/class/pwm/pwmchip8/pwm2/enable 使能

root@forlinx:~#cat/sys/class/pwm/pwmchip8/pwm2/{enable,period,duty_cycle}

用示波器測試U7_CAN2_TX產(chǎn)生1khz的方波在我們使用OK1028A-C時,由于管腳復(fù)用,很多功能模塊的管腳沒有引出,但是模塊的驅(qū)動是支持的。這種情況下,我們只需要修改rcw相應(yīng)的pinmux配置和設(shè)備樹文件就可以使用相應(yīng)的功能了。

 

好了,以上便是我對OK1028A-C開發(fā)板如何實現(xiàn)PWM輸出方波的方法,有什么需要幫助和了解的可以在文章下方留言。

飛凌嵌入式

飛凌嵌入式

保定飛凌嵌入式技術(shù)有限公司,創(chuàng)建于2006年,是一家專注嵌入式核心控制系統(tǒng)研發(fā)、設(shè)計和生產(chǎn)的高新技術(shù)企業(yè),是國內(nèi)較早專業(yè)從事嵌入式技術(shù)的企業(yè)之一。 經(jīng)過十幾年的發(fā)展與積累,公司擁有業(yè)內(nèi)優(yōu)秀的軟硬件研發(fā)團隊,在北京及保定建立兩大研發(fā)基地,在蘇州、深圳設(shè)有華東、華南技術(shù)服務(wù)中心,并在北美、歐洲以及亞太等其他國家和地區(qū)擁有國際業(yè)務(wù)網(wǎng)絡(luò)。公司研發(fā)的智能設(shè)備核心平臺廣泛應(yīng)用于物聯(lián)網(wǎng)、工控、軌道交通、醫(yī)療、電力、商業(yè)電子、智能家居、安防、機器人、環(huán)境監(jiān)測等諸多領(lǐng)域。

保定飛凌嵌入式技術(shù)有限公司,創(chuàng)建于2006年,是一家專注嵌入式核心控制系統(tǒng)研發(fā)、設(shè)計和生產(chǎn)的高新技術(shù)企業(yè),是國內(nèi)較早專業(yè)從事嵌入式技術(shù)的企業(yè)之一。 經(jīng)過十幾年的發(fā)展與積累,公司擁有業(yè)內(nèi)優(yōu)秀的軟硬件研發(fā)團隊,在北京及保定建立兩大研發(fā)基地,在蘇州、深圳設(shè)有華東、華南技術(shù)服務(wù)中心,并在北美、歐洲以及亞太等其他國家和地區(qū)擁有國際業(yè)務(wù)網(wǎng)絡(luò)。公司研發(fā)的智能設(shè)備核心平臺廣泛應(yīng)用于物聯(lián)網(wǎng)、工控、軌道交通、醫(yī)療、電力、商業(yè)電子、智能家居、安防、機器人、環(huán)境監(jiān)測等諸多領(lǐng)域。收起

查看更多

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

秉承專業(yè)態(tài)度,專注智能設(shè)備核心平臺研發(fā)與制造,以技術(shù)研發(fā)創(chuàng)新為主導(dǎo),以客戶實用化,產(chǎn)品化為目標(biāo),把握嵌入式行業(yè)的前沿發(fā)展需求,利用核心技術(shù)為客戶提供穩(wěn)定、可靠、功能優(yōu)異的高品質(zhì)產(chǎn)品。合作聯(lián)系:17713286011