色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

【產品應用】AWorksLP 樣例詳解(MR6450)——PWM(單通道)

AGk5_ZLG_zhiyua ? 來源:未知 ? 2023-01-04 23:15 ? 次閱讀
AWorksLP 對外設進行了高度抽象化,為同一類外設提供了相同的接口,應用程序可以輕松跨平臺。本文以MR6450(點擊了解詳情)平臺為例,介紹AWorksLP PWM 外設基本用法。

6086d666-8c42-11ed-bfe3-dac502259ad0.jpg??簡介

脈沖寬度調制(PWM),是英文“Pulse Width Modulation”的縮寫,簡稱脈寬調制,是利用微處理器的數字輸出來對模擬電路進行控制的一種非常有效的技術,廣泛應用在從測量、通信到功率控制與變換的許多領域中。以下簡述幾個關鍵的概念:

60961ae0-8c42-11ed-bfe3-dac502259ad0.png

圖1

  • PWM周期:指信號從高電平到低電平再回到高電平的時間,如上圖T所示。
  • PWM頻率一秒內PWM周期的次數。
  • 占空比:一個周期內高電平持續時間所占的比例即(T1 / T)。
  • 脈寬時間:高電平時間。

6086d666-8c42-11ed-bfe3-dac502259ad0.jpg??接口介紹

函數列表:

函數原型 簡要描述
aw_err_t aw_pwm_enable (int fd); 使能PWM設備輸出
aw_err_t aw_pwm_disable (int fd); PWM設備輸出停止
aw_err_t aw_pwm_accurate_output (int fd, uint32_t period_num); 精確輸出 period_num 個周期PWM
aw_err_t aw_pwm_config_set (int fd, aw_const aw_pwm_config_t *p_config); 設置PWM設備參數配置
aw_err_t aw_pwm_config_get (int fd, aw_pwm_config_t *p_config); 獲取PWM設備的配置參數
aw_err_t aw_pwm_config_frac_set (int fd, aw_const aw_pwm_config_frac_t *p_config); 以更加精確的形式設置PWM設備的參數
aw_err_t aw_pwm_config_frac_get (int fd, aw_pwm_config_frac_t *p_config); 獲取PWM設備的分數形式配置參數

下表為PWM接口相關結構體類型。

結構體類型表:

類型

簡要描述

aw_pwm_config_t

PWM配置參數結構體

aw_pwm_config_frac_t

PWM配置參數結構體(分數形式),用分數表示,更精確

PWM 配置信息說明:

1. aw_pwm_config_t

typedef struct { 
    uint32_t duty_ns;
    uint32_t period_ns;
    uint32_t is_inverse;
} aw_pwm_config_t;
PWM配置參數結構體。

成員詳解:

  • duty_ns:pwm周期中高電平的有效時間 ns為單位。
  • period_ns:pwm周期ns為單位。
  • is_inverse:輸出波形是否反相,0表示不反相。

2. aw_pwm_config_frac

typedef struct aw_pwm_config_frac { 


    uint32_t duty_numerator;
    uint32_t duty_denominator; 
    uint32_t period_numerator;
    uint32_t period_denominator;
    uint32_t is_inverse;
} aw_pwm_config_frac_t;

PWM配置參數結構體(分數形式),用分數表示,更精確。

成員詳解:
  • duty_numerator:PWM周期中高電平的有效時間分子部分。

  • duty_denominator:PWM周期中高電平的有效時間分母部分。

  • period_numerator:PWM周期分子部分。

  • period_denominator:PWM周期分母部分。

  • is_inverse:PWM輸出波形輸出是否反向,0:不反向,1:反向。

6086d666-8c42-11ed-bfe3-dac502259ad0.jpg??使用樣例

AWorksLP SDK相關使用請參考《AWorksLP SDK快速入門(MR6450)——開箱體驗》一文,本文不在贅述。

1. PWM單通道輸出功能{SDK}demosperipheralpwm路徑下為PWM例程,例程關鍵代碼如下:
/**
 * rief PWM演示例程入口
 * 
eturn 無
 */
aw_local void* __task_handle (void *arg)
{
    uint32_t    period1 = 2000000;      /* (ns) */
    uint32_t    period2 = 1000000;      /* (ns) */
    int         fd;
    int         ret;
    aw_pwm_config_t         pwm_config;


    aw_kprintf("
PWM demo testing...
");
    fd = aw_open(CONFIG_DEMO_PWM_DEVICE_NAME, AW_O_RDWR, 0);
    if(fd < 0){
        aw_kprintf("pwm open failed 
");
        aw_close(fd);
        return 0;
    }
    ret = aw_pwm_config_get(fd, &pwm_config);


    /* period 配置不可以為0
     * duty配置為0,這時可以配置成功:輸出一直為低
     * duty配置為peroid,占空比為100%,也可配置成功:輸出一直為高
     * PWM正在進行輸出,不可配置 */
    pwm_config.duty_ns = period1 / 2;
    pwm_config.is_inverse = 0;
    pwm_config.period_ns = period1;
    aw_pwm_config_set(fd, &pwm_config);
    while(1) {


        /* 配置 PWM 的有效時間(高電平時間)50% ,周期 period1*/
        aw_pwm_config_set(fd, &pwm_config);
        aw_pwm_enable(fd);      /* 使能通道 */
        aw_mdelay(250);
        aw_pwm_disable(fd);     /* 禁能通道 */
        aw_mdelay(250);
        
        /* 輸出五個周期pwm波*/
        aw_pwm_accurate_output(fd, 5);


        /* 配置 PWM 的有效時間(高電平時間)2% ,周期 period1*/
        pwm_config.duty_ns =  period1 / 50;
        aw_pwm_config_set(fd, &pwm_config);
        aw_pwm_enable(fd);      /* 使能通道 */
        aw_mdelay(250);
        aw_pwm_disable(fd);     /* 禁能通道 */
        aw_mdelay(250);


        pwm_config.duty_ns = period2 / 2;
        pwm_config.period_ns = period2;
        /* 配置 PWM 的有效時間(高電平時間)50% ,周期 period2*/
        aw_pwm_config_set(fd, &pwm_config);
        aw_pwm_enable(fd);      /* 使能通道 */
        aw_mdelay(250);
        aw_pwm_disable(fd);     /* 禁能通道 */
        aw_mdelay(250);




        /* 配置 PWM 的有效時間(高電平時間)2% ,周期 period2*/
        pwm_config.duty_ns = period2 / 50;
        aw_pwm_config_set(fd, &pwm_config);
        aw_pwm_enable(fd);      /* 使能通道 */
        aw_mdelay(250);
        aw_pwm_disable(fd);     /* 禁能通道 */
        aw_mdelay(250);


        pwm_config.duty_ns = period1 / 2;
        pwm_config.period_ns = period1;
    }


    return 0;
}
例程默認使用pwm3_chan4對應開發板的位置如圖2所示:

60d23bec-8c42-11ed-bfe3-dac502259ad0.png

圖2pwm排針

上述代碼中使用aw_pwm_config_get接口獲取PWM當前的配置信息,PWM周期中高電平的有效時間為1000000ns,PWM周期為2000000ns,也就是設置PWM的占空比為50%。使用aw_pwm_config_set接口設置PWM。使用aw_pwm_enable接口使能PWM,使用aw_pwm_disable接口關閉PWM,使用aw_pwm_accurate_output接口輸出任意個PWM波。

在while循環中每間隔一段時間通過設置PWM的參數,從而輸出各種PWM的波形,下圖為例程中輸出的各種PWM波形。

60eead72-8c42-11ed-bfe3-dac502259ad0.png

圖3占空比50%,周期2ms

60fe2356-8c42-11ed-bfe3-dac502259ad0.png

圖4占空比2%,周期2ms

610c8892-8c42-11ed-bfe3-dac502259ad0.png

圖5占空比50%,周期1ms

6121e552-8c42-11ed-bfe3-dac502259ad0.png

圖6占空比2%,周期1ms

2.蜂鳴器輸出{SDK}demosperipheraluzzer路徑下為蜂鳴器例程,例程關鍵代碼如下:
/**
 * rief 建立蜂鳴器例程入口
 * 
eturn 無
 */
aw_local void* __task_handle (void *arg)
{
    int             fd;
    fd = aw_open("/dev/Buzzer", AW_O_RDWR, 0);
    if(fd < 0){
        aw_kprintf("Buzzer open failed 
");
        aw_close(fd);
        return 0;
    }


    while(1) {
        /* 強度調節設備驅動無源蜂鳴器 */
        aw_buzzer_loud_set(fd, 80); /* 設置蜂鳴器鳴叫強度 */
        aw_buzzer_beep(fd, 500);    /* 啟動蜂鳴器延時500ms */


        /* GPIO驅動直流蜂鳴器 */
        aw_buzzer_loud_set(fd, 50); /* 設置蜂鳴器鳴叫強度 */
        aw_buzzer_on(fd);         /* 啟動蜂鳴器 */
        aw_mdelay(500);         /* 延時500ms */
        aw_buzzer_off(fd);        /* 關閉蜂鳴器 */
        aw_mdelay(500);         /* 延時500ms */
    }
    aw_close(fd);
    return 0;
}

蜂鳴器在開發板上的位置如圖7所示。

6136b6e4-8c42-11ed-bfe3-dac502259ad0.png

圖7蜂鳴器位置

蜂鳴器引腳所對應的PWM通道為pwm3_chan1,如下圖所示。

615e5b2c-8c42-11ed-bfe3-dac502259ad0.png

圖8蜂鳴器對應引腳

61721518-8c42-11ed-bfe3-dac502259ad0.png

圖9PWM對應引腳

6183dd8e-8c42-11ed-bfe3-dac502259ad0.png

圖10蜂鳴器對應的PWM通道

上述代碼中在while循中環使用aw_buzzer_loud_set接口設置蜂鳴器的鳴叫程度為80,相當于調節PWM的占空比。然后使用aw_buzzer_beep接口使蜂鳴器鳴叫一段時間后關閉。再設置蜂鳴器的鳴叫程度為50,使用aw_buzzer_on接口啟動蜂鳴器,相當于使能PWM,延時一段時間后用aw_buzzer_off接口關閉蜂鳴器,相當于關閉PWM,然后再延時一段時間。實驗現象為蜂鳴器先以較大的聲音鳴叫一段時間后以較小的聲音鳴叫一段時間后停止鳴叫,持續一段時間后再次循環。在PWM例程中,PWM作為設備資源被Buzzer引用,可在配置界面中查看所有可引用資源,也可以在界面中查看當前平臺所有PWM資源,以便在軟件設計過程中查看修改。本文以PWM外設通用接口為例,演示了單通道的輸出以及接口特性,同時與蜂鳴器進行設備綁定,后續將會更詳細的介紹多通道的輸出以及相關特性,請持續關注后續推文~


原文標題:【產品應用】AWorksLP 樣例詳解(MR6450)——PWM(單通道)

文章出處:【微信公眾號:ZLG致遠電子】歡迎添加關注!文章轉載請注明出處。


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

    關注

    13

    文章

    408

    瀏覽量

    31361

原文標題:【產品應用】AWorksLP 樣例詳解(MR6450)——PWM(單通道)

文章出處:【微信號:ZLG_zhiyuan,微信公眾號:ZLG致遠電子】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    ADS8329是單通道,是不是獲取數據還要發CMR 0X000?

    想問下ADS8329的 D[15:12]命令寄存器,ADS8329是單通道,是不是獲取數據還要發CMR 0X000? 還有那么時序 自動觸發和收到觸發 是只有CONVST 不一嗎 ? 還有那個Read while sampling 和Read while comver
    發表于 12-25 07:32

    淺談瑞盟科技·MS30517SA——單通道、高速、低側柵極驅動器

    MS30517SA 是單通道、高速、低側柵極驅動器器件,能夠有效地驅動 MOSFET 和 IGBT 開關 。提供FAE支持,歡迎咨詢了解。單通道、高速、低側柵極驅動器
    的頭像 發表于 12-20 17:44 ?227次閱讀
    淺談瑞盟科技·MS30517SA——<b class='flag-5'>單通道</b>、高速、低側柵極驅動器

    請問ADC12DJ3200如何實現雙通道單通道模式切換?

    您好,請問ADC12DJ3200 如何實現雙通道單通道模式切換,謝謝
    發表于 11-21 07:08

    單通道數據鎖存模塊嗎?

    請問,有單通道數據鎖存模塊嗎?應用是系統網電斷電后,任然可以鎖存數據狀態。要求鎖存模塊能長期單獨長期供電。
    發表于 11-13 07:42

    單通道、配電開關評估模塊

    電子發燒友網站提供《單通道、配電開關評估模塊.pdf》資料免費下載
    發表于 11-12 14:27 ?0次下載
    <b class='flag-5'>單通道</b>、配電開關評估模塊

    使用官方SDK開發6450

    官網提供的SDK芯片類型沒有包含HPM6450,如何添加6450到SDK中有人知道么?
    發表于 10-24 14:51

    ADC3910Dx和ADC3910Sx小型單通道和雙通道ADC數據表

    電子發燒友網站提供《ADC3910Dx和ADC3910Sx小型單通道和雙通道ADC數據表.pdf》資料免費下載
    發表于 07-12 10:09 ?0次下載
    ADC3910Dx和ADC3910Sx小型<b class='flag-5'>單通道</b>和雙<b class='flag-5'>通道</b>ADC數據表

    集成過流保護單通道低邊柵驅動器——AiP44175

    集成過流保護單通道低邊柵驅動器——AiP44175
    的頭像 發表于 07-09 09:43 ?540次閱讀
    集成過流保護<b class='flag-5'>單通道</b>低邊柵驅動器——AiP44175

    CW32使用DMA單通道、定時器觸發ADC實現了多路AD采集

    本測試樣基于CW32F030C8T6MCU,使用DMA單通道、定時器觸發ADC實現了12路AD采集。
    的頭像 發表于 05-24 09:29 ?884次閱讀
    CW32使用DMA<b class='flag-5'>單通道</b>、定時器觸發ADC實現了多路AD采集

    武漢凡谷:現階段已有產品應用到5.5G系統

    近日,武漢凡谷在接受機構調研時表示,公司具備5.5G方面的產品,如多頻多通道濾波器,現階段有相關的產品應用到客戶的5.5G系統。
    的頭像 發表于 05-20 09:54 ?578次閱讀

    單通道和雙通道氣密性測試儀的區別

    在很多產品質量控制環節中,氣密性測試是保證產品密封合格的關鍵過程。深入分析單通道和雙通道氣密性測試儀的區別,幫助你更有效地選擇適合您需求的測試設備
    的頭像 發表于 04-01 10:31 ?883次閱讀
    <b class='flag-5'>單通道</b>和雙<b class='flag-5'>通道</b>氣密性測試儀的區別

    WS9901單通道同步整流控制器 穩先微原裝

    WS9901具有快速關斷特性的單通道同步整流控制器 品牌:穩先微 型號:WS9901 封裝:SOP8 售后服務:公司免費提供樣品,并提供產品運用的技術支持。 阿里店鋪:阿里 “供應商 ”搜索
    發表于 03-29 16:47

    單通道直流LED燈光控制觸摸芯片FS102WS規格說明書

    FS102WS是一款用于 LED 燈光開關控制及亮度調節的觸摸IC,支持單通道觸摸輸入、單路 PWM 輸出,可在有介質(如玻璃、亞克力、塑料、陶瓷等)隔離保護的情況下實現觸摸功能,可靠性非常高,燈光無閃頻。
    發表于 03-06 09:21 ?3次下載

    汽車單通道和雙通道天線LDO電流感應PC8803數據手冊

    電子發燒友網站提供《汽車單通道和雙通道天線LDO電流感應PC8803數據手冊.pdf》資料免費下載
    發表于 03-01 10:15 ?0次下載

    單通道和多通道高性能信號源 APLC技術手冊

    電子發燒友網站提供《單通道和多通道高性能信號源 APLC技術手冊.pdf》資料免費下載
    發表于 02-28 15:16 ?4次下載
    主站蜘蛛池模板: 超碰97视频在线观看| 俄罗斯破处| 国产成人综合高清在线观看| 男生脱美女内裤内衣动态图| 18禁无遮挡羞羞污污污污免费| 午夜影视不充值观看| 一本道本线中文无码| 国产精品亚洲精品久久品| 吻嘴胸全身好爽床大全| 国产成人永久免费视频| 日本午夜精品理论片A级APP发布 | 十分钟在线观看免费视频高清WWW 十分钟视频影院免费 | www.久久精品视频| 欧美牲交A欧美牲交VDO| 亚洲精品6久久久久中文字幕| 国产色综合色产在线视频| 先锋影音av最新资源| 狠狠啪在线香蕉| 亚洲午夜精品AV无码少妇| 久久亚洲精品中文字幕| 99精品国产福利在线观看| 前后灌满白浆护士| 成人免费视频在线| 无码一区二区三区| 狠狠色综合7777久夜色撩人| 永久免费精品影视网站| 欧美XXXX69学生HD| 国产AV无码一二三区视频| 亚洲高清视频在线观看| 久久婷婷五月综合色情| jizz丝袜| 亚洲AV香蕉一区区二区三区蜜桃| 久久99这里只有精品| proburn中文破解版下载| 午夜福利网国产A| 精品久久久久中文字幕| 97国内精品久久久久久久影视| 日韩精品亚洲专区在线影院 | babesvideos性欧美| 性直播免费| 蜜桃日本免费观看MV|