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

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

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

干貨 | LS1028A 如何輸出PWM方波?

飛凌嵌入式 ? 2021-10-28 17:04 ? 次閱讀

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

在查閱OK1028A-C原理圖和《QorIQ LS1028A Reference Manual》后得知,LS1028默認(rèn)有8個FlexTimer (FTM) ,每個FTM有8路pwm。

默認(rèn)背光采用的是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默認(rèn)是支持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編譯,燒寫到飛凌LS1028A-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輸出方波的方法,有什么需要幫助和了解的訪問飛凌嵌入式官網(wǎng)關(guān)注。

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

    評論

    相關(guān)推薦
    熱點推薦

    LS1028 FSPI設(shè)備驅(qū)動程序不工作怎么解決?

    我想使用 ls1028 處理器的 qspi 功能。 我按如下方式更改 dts: dts: spi@20c0000 { 兼容 = “NXP,LX2160A-FPPI”; #address-cells
    發(fā)表于 04-10 07:20

    如何為LSDK構(gòu)建libgtk-x11-2.0.so.0?

    我正在嘗試為我的 LS1028A RDB板(運(yùn)行 LSDK)構(gòu)建 libgtk-x11-2.0.so.0。這是 libopencv_highgui.so 所需要的。有沒有辦法為 LS1028A 交叉編譯這個庫?
    發(fā)表于 04-04 08:00

    DLPC7540EVM RGB的恒流源輸出電流是60HZ的方波嗎?

    我們想做一套RGB的外部驅(qū)動電源,RGB的恒流源輸出電流是60HZ的方波么?是不是通過三路RGB_EN來控制的。另外三路RGB_PWM是不是來控制三路RGB燈的亮度的。對應(yīng)的控制信號是否是J97對應(yīng)的
    發(fā)表于 02-21 15:02

    請問AMC1204的數(shù)字輸出端口與TMS570LS3137什么外設(shè)連接最適用?

    AMC1204, AMC1200現(xiàn)準(zhǔn)備用TMS570LS3137做電機(jī)控制芯片,用AMC1204隔離采樣直流母線電壓,請問AMC1204的數(shù)字輸出端口與TMS570LS3137什么外設(shè)連接最適用?程序中軟件如何實現(xiàn)數(shù)字脈寬表征
    發(fā)表于 02-05 10:12

    MSP430G2553怎么才能成功輸出兆赫茲的方波啊?

    XT2頻率的語句,然后就按書上的例子編了一下,發(fā)現(xiàn)分頻系數(shù)為1也就是直通的時候,將CCR0=2,CCR1設(shè)為1進(jìn)而產(chǎn)生占空比是1/2的方波,輸出方波頻率只有200KHZ左右,也就意味著XT2的頻率
    發(fā)表于 12-09 08:09

    DACx1416為什么不能輸出方波?

    ,根據(jù)9.4.1描述編程,實際結(jié)果為Register B的電壓,非方波。調(diào)試過程中發(fā)現(xiàn),按照編程流程,Register A和B的電壓均能輸出,Toggle引腳接入PWM信號,不能
    發(fā)表于 11-29 11:21

    TLV5637輸出電壓值,A通道是對的,為什么B通道輸出的是方波?

    輸出電壓值,A通道是對的,為什么B通道輸出的是方波
    發(fā)表于 11-22 11:07

    TLIN1028x EVM用戶指南

    電子發(fā)燒友網(wǎng)站提供《TLIN1028x EVM用戶指南.pdf》資料免費下載
    發(fā)表于 11-20 13:43 ?1次下載
    TLIN<b class='flag-5'>1028</b>x EVM用戶指南

    PWM輸出配置方法

    從上節(jié)課的定時器分類圖中我們了解到,互補(bǔ)輸出是高級定時器(TIM1、TIM8)所獨有的,它可以輸出兩路互補(bǔ)信號。而在本節(jié)課中我們將通過一個簡單的例程去介紹如何配置互補(bǔ)PWM輸出,同時為
    的頭像 發(fā)表于 11-04 09:44 ?2729次閱讀
    <b class='flag-5'>PWM</b><b class='flag-5'>輸出</b>配置方法

    pwm開關(guān)電源輸出電壓跳動原因分析

    PWM(Pulse Width Modulation,脈沖寬度調(diào)制)開關(guān)電源輸出電壓跳動是一個復(fù)雜的問題,可能涉及多個方面的因素。以下是對PWM開關(guān)電源輸出電壓跳動原因的分析: 一、
    的頭像 發(fā)表于 10-18 17:14 ?3787次閱讀

    請問PCM5102A是否能夠輸出一個384Khz的方波?

    PCM5102A的I2S輸入是支持384khz的信號輸入,如果一個音頻I2S信號是384khz的方波,請問PCM5102A輸出頻率是否可以正常
    發(fā)表于 10-15 07:21

    求助,關(guān)于PWM方波衰減電路設(shè)計問題求幫忙

    OPA835/836/837使用tina-ti進(jìn)行仿真。如下圖所示。 問題:設(shè)計思路是否正確,TI是否有針對PWM/方波/脈沖放大運(yùn)放,有沒有更好的解決方案?輸出阻抗50歐姆直接在運(yùn)放信號
    發(fā)表于 08-16 07:41

    pwm與spwm波,載波、參考波與輸出波形的關(guān)系

    存在著密切的關(guān)系。 一、PWM波的基本原理與關(guān)系 1. PWM波的基本原理 PWM是一種利用微處理器的數(shù)字信號輸出來對模擬電路進(jìn)行控制的技術(shù)。它通過改變脈沖信號的占空比(即脈沖信號高電
    的頭像 發(fā)表于 08-14 16:58 ?4459次閱讀

    請問LM211是否支持1MZH方波輸出?

    請問LM211是否支持1MZH方波輸出?現(xiàn)在現(xiàn)象是,當(dāng)輸入為1MHZ的PWM方波時,但是沒有輸出?如果LM211不支持,請推薦一款I(lǐng)C,支
    發(fā)表于 08-08 06:03

    在示波器上測量到GPIO12--15上輸出方波遇到的疑問求解

    如下測試代碼,在示波器上測量到 GPIO12--15 上輸出方波,但頻率在跳動,1K 持續(xù)幾秒會跳到10K以上,然后又回到1K,是否代碼有誤?謝謝 light_param.pwm_duty[0
    發(fā)表于 07-22 06:55

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品