国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【EK-RA6E2開發指南】PWM輸出

嵌入式大雜燴 ? 來源:嵌入式大雜燴 ? 2025-09-23 18:17 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1 PWM簡介

脈沖寬度調制(PWM) ,是英文“Pulse Width Modulation” 的縮寫,簡稱脈寬調制,是利用微處理器的數字輸出來對模擬電路進行控制的一種非常有效的技術。簡單一點,就是對脈沖寬度的控制。

瑞薩RA6E2系列 MCU 中有兩種定時器,一種是通用 PWM 定時器 GPT,另外一種是異步通用定時器 AGT,在這里我們使用通用定時器GPT進行PWM輸出。

1.png

[]()[]()Figure ? GPT 外設模塊的結構框圖

RA6E2系列共有共 6 個GPT定時器(即6個通道)。GPT 的計數器支持遞增計數,遞減計數和遞增/遞減計數。詳細的通道名稱如下表所示。

2.png

[]()[]()Figure ? GPT各個通道詳情

PWM 輸出就是對外輸出脈寬(即占空比)可調的方波信號, 信號頻率由周期設定寄存器 GTPR 的值決定,占空比由比較寄存器 GTCCR 的值決定。

2 RT-Thread 的PWM簡介

PWM(Pulse Width Modulation , 脈沖寬度調制) 是一種對模擬信號電平進行數字編碼的方法,通過不同頻率的脈沖使用方波的占空比用來對一個具體模擬信號的電平進行編碼,使輸出端得到一系列幅值相等的脈沖,用這些脈沖來代替所需要波形的設備。

在開啟 PWM 設備框架以及 PWM驅動之后,應用程序通過 RT-Thread 提供的 PWM設備管理接口來訪問 PWM設備,相關接口如下所示:

函數描述
rt_device_find()根據PWM設備名稱查找設備獲取設備句柄
rt_pwm_set()設置PWM周期和脈沖寬度
rt_pwm_enable()使能PWM設備
rt_pwm_disable()關閉PWM設備

關于PWM的更多資料請參看RT-Thread官方手冊:

https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/pwm/pwm

3 PWM實例

3.1 RA6E2 PWM配置

接下來配置PWM,只需要簡單配置就可使用。

  • FSP配置PWM

打開RA Smart Configurator,在配置界面里面依次打開“Pins->Peripherals->Timers:GPT”配置GPT模塊,將GPT3 的 GTIOC3A 信號輸出連接到 P111引腳。

3.png

[]()[]()Figure ? 打開GPT輸出引腳

接下來就是添加PWM stack。

4.png

[]()[]()Figure ? 添加PWM stack

接下來需要配置PWM的參數。

5.png

[]()[]()Figure ? 配置PWM的參數

核心參數如下:

  • Pin Output Support :使能PWM輸出
  • Name :設置 GPT 模塊名字,這里使用是GPT3,名字就為g_timer3
  • Channel :配置GPT通道,這里使用的第3個通道
  • Mode :配置 GPT 的工作模式為 PWM 輸出模式。
  • Period :配置GPT的周期為10 KHz,需要和Period Unit配合使用
  • Period Unit :周期的單位,這里設置為KHz
  • Duty Cycle Percent :設置PWM的占空比,當然也可通過代碼修改,這里就設置為50
  • GTIOCA Output Enabled :使能 GTIOCA 輸出
  • GTIOCA Stop Level :設置定時器停止時 GTIOCA 輸出的電平為低電平
  • GTIOC3A :選擇連接到 P111引腳,打開GPT的Pin之后,會默認關聯

最后生成過程即可。

  • 配置組件

然后打開對應的通道。

6.png

3.2 PWM輸出代碼實現

核心代碼如下:

#define PWM_DEV_NAME     "pwm3"
#define PWM_DEV_CHANNEL  0

void open_pwm_output(void)
{
    struct rt_device_pwm *pwm_dev;
    /* turn on the LCD backlight */

    pwm_dev = (struct rt_device_pwm *)rt_device_find(PWM_DEV_NAME);

    /* pwm frequency:100K = 10000ns */
    rt_pwm_set(pwm_dev, PWM_DEV_CHANNEL, 10000, 5000);
    rt_pwm_enable(pwm_dev, PWM_DEV_CHANNEL);
}

3.3 測試驗證

編譯下載,調試信息如下:

7.png

接下來就看看PWM的輸出,PWM 信號可以通過示波器看到,下面筆者就是用邏輯分析儀查看波形。

首先筆者使用的邏輯分析儀是Kingst LA5016,當然啦,其他的也可以,關于邏輯分析儀的相關使用筆者這里就不介紹了,可以查看官方資料。

首先將P111引腳接到邏輯分析儀的CH0,然后下載程序到板子中,打開Kingst VIS,然后進行采樣。

8.png

[]()[]()Figure ? PWM輸出實現現象

從上圖可以看到,實際測量的頻率和占空比與理論是相符的。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • mcu
    mcu
    +關注

    關注

    147

    文章

    18925

    瀏覽量

    398106
  • 瑞薩
    +關注

    關注

    37

    文章

    22481

    瀏覽量

    90864
  • 計數器
    +關注

    關注

    32

    文章

    2316

    瀏覽量

    98176
  • 定時器
    +關注

    關注

    23

    文章

    3368

    瀏覽量

    123606
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    EK-RA6E2開發指南】ADC獲取電壓值

    RA6E22個ADC單元,每個ADC單元有12位、10位、8位讀取數據的格式可以選擇,在單元0上有13個ADC通道,而在單元1上有16個ADC通道。 ADC單元具有三種掃描方式分別為:單次描模式、連續掃描模式和分組掃描模式,
    的頭像 發表于 09-23 18:15 ?1993次閱讀
    【<b class='flag-5'>EK-RA6E2</b><b class='flag-5'>開發指南</b>】ADC獲取電壓值

    EK-RA6E2開發指南】DAC設置電壓值

    RA6E2有片上DAC外設,總共有兩路DAC輸出通道,每路的分辨率可配置為12位, 這兩個通道之間互不影響,每個通道都可以使用ELC功能可外部觸發或者進行與ADC單元1的同步轉換。
    的頭像 發表于 09-23 18:16 ?2047次閱讀
    【<b class='flag-5'>EK-RA6E2</b><b class='flag-5'>開發指南</b>】DAC設置電壓值

    EK-RA2E2-快速入門指南

    EK-RA2E2-快速入門指南
    發表于 01-30 18:47 ?0次下載
    <b class='flag-5'>EK-RA2E2</b>-快速入門<b class='flag-5'>指南</b>

    EK-RA2E1 – 快速入門指南

    EK-RA2E1 – 快速入門指南
    發表于 02-03 19:08 ?0次下載
    <b class='flag-5'>EK-RA2E</b>1 – 快速入門<b class='flag-5'>指南</b>

    EK-RA6M2– 快速入門指南

    EK-RA6M2 – 快速入門指南
    發表于 03-13 19:36 ?0次下載
    <b class='flag-5'>EK-RA6M2</b>– 快速入門<b class='flag-5'>指南</b>

    EK-RA6E2v1 – 用戶手冊

    EK-RA6E2 v1 – 用戶手冊
    發表于 05-12 19:18 ?0次下載
    <b class='flag-5'>EK-RA6E2</b>v1 – 用戶手冊

    EK-RA6E2– 快速入門指南

    EK-RA6E2 – 快速入門指南
    發表于 05-12 19:20 ?1次下載
    <b class='flag-5'>EK-RA6E2</b>– 快速入門<b class='flag-5'>指南</b>

    EK-RA4E2– 快速入門指南

    EK-RA4E2 – 快速入門指南
    發表于 05-12 19:23 ?0次下載
    <b class='flag-5'>EK-RA4E2</b>– 快速入門<b class='flag-5'>指南</b>

    EK-RA6E2v1 – 用戶手冊

    EK-RA6E2 v1 – 用戶手冊
    發表于 06-29 19:10 ?1次下載
    <b class='flag-5'>EK-RA6E2</b>v1 – 用戶手冊

    EK-RA6E2– 快速入門指南

    EK-RA6E2 – 快速入門指南
    發表于 06-29 19:11 ?1次下載
    <b class='flag-5'>EK-RA6E2</b>– 快速入門<b class='flag-5'>指南</b>

    EK-RA4E2– 快速入門指南

    EK-RA4E2 – 快速入門指南
    發表于 06-29 19:14 ?0次下載
    <b class='flag-5'>EK-RA4E2</b>– 快速入門<b class='flag-5'>指南</b>

    EK-RA2E2-快速入門指南

    EK-RA2E2-快速入門指南
    發表于 07-03 20:12 ?0次下載
    <b class='flag-5'>EK-RA2E2</b>-快速入門<b class='flag-5'>指南</b>

    EK-RA2E1 – 快速入門指南

    EK-RA2E1 – 快速入門指南
    發表于 07-04 19:40 ?0次下載
    <b class='flag-5'>EK-RA2E</b>1 – 快速入門<b class='flag-5'>指南</b>

    EK-RA6M2– 快速入門指南

    EK-RA6M2 – 快速入門指南
    發表于 07-04 20:54 ?0次下載
    <b class='flag-5'>EK-RA6M2</b>– 快速入門<b class='flag-5'>指南</b>

    Renesas EK - RA8D2評估套件快速上手與定制開發指南

    Renesas EK - RA8D2評估套件快速上手與定制開發指南 在嵌入式開發領域,一款好的評估套件能極大地加速開發進程,幫助
    的頭像 發表于 12-26 15:50 ?447次閱讀