99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

【產(chǎn)品應(yīng)用】AWorksLP 樣例詳解(MR6450)——PWM(單通道)

ZLG致遠(yuǎn)電子 ? 2023-01-13 09:28 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

AWorksLP 對(duì)外設(shè)進(jìn)行了高度抽象化,為同一類外設(shè)提供了相同的接口,應(yīng)用程序可以輕松跨平臺(tái)。本文以MR6450(點(diǎn)擊了解詳情)平臺(tái)為例,介紹AWorksLP PWM 外設(shè)基本用法。

e1a3306e-918d-11ed-ad0d-dac502259ad0.jpg ?簡(jiǎn)介

脈沖寬度調(diào)制(PWM),是英文“Pulse Width Modulation”的縮寫(xiě),簡(jiǎn)稱脈寬調(diào)制,是利用微處理器的數(shù)字輸出來(lái)對(duì)模擬電路進(jìn)行控制的一種非常有效的技術(shù),廣泛應(yīng)用在從測(cè)量、通信到功率控制與變換的許多領(lǐng)域中。以下簡(jiǎn)述幾個(gè)關(guān)鍵的概念:

e1addf0a-918d-11ed-ad0d-dac502259ad0.png

圖1

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


e1a3306e-918d-11ed-ad0d-dac502259ad0.jpg ?接口介紹

函數(shù)列表:

函數(shù)原型

簡(jiǎn)要描述

aw_err_t aw_pwm_enable (int fd);

使能PWM設(shè)備輸出

aw_err_t aw_pwm_disable (int fd);

PWM設(shè)備輸出停止

aw_err_t aw_pwm_accurate_output (int fd, uint32_t period_num);

精確輸出 period_num 個(gè)周期PWM波

aw_err_t aw_pwm_config_set (int fd, aw_const aw_pwm_config_t *p_config);

設(shè)置PWM設(shè)備參數(shù)配置

aw_err_t aw_pwm_config_get (int fd, aw_pwm_config_t *p_config);

獲取PWM設(shè)備的配置參數(shù)

aw_err_t aw_pwm_config_frac_set (int fd, aw_const aw_pwm_config_frac_t *p_config);

以更加精確的形式設(shè)置PWM設(shè)備的參數(shù)

aw_err_t aw_pwm_config_frac_get (int fd, aw_pwm_config_frac_t *p_config);

獲取PWM設(shè)備的分?jǐn)?shù)形式配置參數(shù)

下表為PWM接口相關(guān)結(jié)構(gòu)體類型。

結(jié)構(gòu)體類型表:

類型

簡(jiǎn)要描述

aw_pwm_config_t

PWM配置參數(shù)結(jié)構(gòu)體

aw_pwm_config_frac_t

PWM配置參數(shù)結(jié)構(gòu)體(分?jǐn)?shù)形式),用分?jǐn)?shù)表示,更精確

PWM 配置信息說(shuō)明:

1. aw_pwm_config_t

typedef struct { uint32_t duty_ns; uint32_t period_ns; uint32_t is_inverse;} aw_pwm_config_t;

PWM配置參數(shù)結(jié)構(gòu)體。

成員詳解:

  • duty_ns:pwm周期中高電平的有效時(shí)間 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配置參數(shù)結(jié)構(gòu)體(分?jǐn)?shù)形式),用分?jǐn)?shù)表示,更精確。

成員詳解:

duty_numerator:PWM周期中高電平的有效時(shí)間分子部分。

duty_denominator:PWM周期中高電平的有效時(shí)間分母部分。

period_numerator:PWM周期分子部分。

period_denominator:PWM周期分母部分。

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


e1a3306e-918d-11ed-ad0d-dac502259ad0.jpg ?使用樣例

AWorksLP SDK相關(guān)使用請(qǐng)參考《AWorksLP SDK快速入門(mén)(MR6450)——開(kāi)箱體驗(yàn)》一文,本文不在贅述。

1. PWM單通道輸出功能{SDK}\demos\peripheral\pwm路徑下為PWM例程,例程關(guān)鍵代碼如下:

/** * \brief PWM演示例程入口 * \return 無(wú) */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("\nPWM demo testing...\n"); fd = aw_open(CONFIG_DEMO_PWM_DEVICE_NAME, AW_O_RDWR, 0); if(fd < 0){ aw_kprintf("pwm open failed \r\n"); aw_close(fd); return 0; } ret = aw_pwm_config_get(fd, &pwm_config);
/* period 配置不可以為0 * duty配置為0,這時(shí)可以配置成功:輸出一直為低 * duty配置為peroid,占空比為100%,也可配置成功:輸出一直為高 * PWM正在進(jìn)行輸出,不可配置 */ 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 的有效時(shí)間(高電平時(shí)間)50% ,周期 period1*/ aw_pwm_config_set(fd, &pwm_config); aw_pwm_enable(fd); /* 使能通道 */ aw_mdelay(250); aw_pwm_disable(fd); /* 禁能通道 */ aw_mdelay(250); /* 輸出五個(gè)周期pwm波*/ aw_pwm_accurate_output(fd, 5);
/* 配置 PWM 的有效時(shí)間(高電平時(shí)間)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 的有效時(shí)間(高電平時(shí)間)50% ,周期 period2*/ aw_pwm_config_set(fd, &pwm_config); aw_pwm_enable(fd); /* 使能通道 */ aw_mdelay(250); aw_pwm_disable(fd); /* 禁能通道 */ aw_mdelay(250);

/* 配置 PWM 的有效時(shí)間(高電平時(shí)間)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;}

例程默認(rèn)使用pwm3_chan4對(duì)應(yīng)開(kāi)發(fā)板的位置如圖2所示:

e1d4052c-918d-11ed-ad0d-dac502259ad0.png

圖2pwm排針

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

在while循環(huán)中每間隔一段時(shí)間通過(guò)設(shè)置PWM的參數(shù),從而輸出各種PWM的波形,下圖為例程中輸出的各種PWM波形。

e1e4774a-918d-11ed-ad0d-dac502259ad0.png

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

e201504a-918d-11ed-ad0d-dac502259ad0.png

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

e2203c6c-918d-11ed-ad0d-dac502259ad0.png

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

e237f122-918d-11ed-ad0d-dac502259ad0.png

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

2.蜂鳴器輸出{SDK}\demos\peripheral\buzzer路徑下為蜂鳴器例程,例程關(guān)鍵代碼如下:

/** * \brief 建立蜂鳴器例程入口 * \return 無(wú) */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 \r\n"); aw_close(fd); return 0; }
while(1) { /* 強(qiáng)度調(diào)節(jié)設(shè)備驅(qū)動(dòng)無(wú)源蜂鳴器 */ aw_buzzer_loud_set(fd, 80); /* 設(shè)置蜂鳴器鳴叫強(qiáng)度 */ aw_buzzer_beep(fd, 500); /* 啟動(dòng)蜂鳴器延時(shí)500ms */
/* GPIO驅(qū)動(dòng)直流蜂鳴器 */ aw_buzzer_loud_set(fd, 50); /* 設(shè)置蜂鳴器鳴叫強(qiáng)度 */ aw_buzzer_on(fd); /* 啟動(dòng)蜂鳴器 */ aw_mdelay(500); /* 延時(shí)500ms */ aw_buzzer_off(fd); /* 關(guān)閉蜂鳴器 */ aw_mdelay(500); /* 延時(shí)500ms */ } aw_close(fd); return 0;}

蜂鳴器在開(kāi)發(fā)板上的位置如圖7所示。

e246bd9c-918d-11ed-ad0d-dac502259ad0.png

圖7蜂鳴器位置

蜂鳴器引腳所對(duì)應(yīng)的PWM通道為pwm3_chan1,如下圖所示。

e26f7f70-918d-11ed-ad0d-dac502259ad0.png

圖8蜂鳴器對(duì)應(yīng)引腳

e27ac060-918d-11ed-ad0d-dac502259ad0.png

圖9PWM對(duì)應(yīng)引腳

e289286c-918d-11ed-ad0d-dac502259ad0.png

圖10蜂鳴器對(duì)應(yīng)的PWM通道

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

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

    關(guān)注

    33

    文章

    9005

    瀏覽量

    153766
  • PWM
    PWM
    +關(guān)注

    關(guān)注

    116

    文章

    5521

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    AD74115單通道軟件可配置的輸入和輸出技術(shù)手冊(cè)

    AD74115是一款單通道、軟件可配置輸入和輸出器件,適用于工業(yè)控制應(yīng)用。AD74115提供各種單芯片集成用。這些用包括模擬輸出、模擬輸入、數(shù)字輸出、數(shù)字輸入、電阻溫度檢測(cè)器(RTD)和熱電偶
    的頭像 發(fā)表于 06-01 16:12 ?309次閱讀
    AD74115<b class='flag-5'>單通道</b>軟件可配置的輸入和輸出技術(shù)手冊(cè)

    無(wú)雜散、50 MHz 至 2.1 GHz 單通道小數(shù) N 分頻頻率合成器 skyworksinc

    電子發(fā)燒友網(wǎng)為你提供()無(wú)雜散、50 MHz 至 2.1 GHz 單通道小數(shù) N 分頻頻率合成器相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有無(wú)雜散、50 MHz 至 2.1 GHz 單通道小數(shù) N 分頻頻率合成器
    發(fā)表于 05-23 18:30
    無(wú)雜散、50 MHz 至 2.1 GHz <b class='flag-5'>單通道</b>小數(shù) N 分頻頻率合成器 skyworksinc

    700–1000 MHz 高線性度、單通道上/下變頻混頻器 skyworksinc

    電子發(fā)燒友網(wǎng)為你提供()700–1000 MHz 高線性度、單通道上/下變頻混頻器相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有700–1000 MHz 高線性度、單通道上/下變頻混頻器的引腳圖、接線圖、封裝手冊(cè)
    發(fā)表于 05-21 18:30
    700–1000 MHz 高線性度、<b class='flag-5'>單通道</b>上/下變頻混頻器 skyworksinc

    1700–2100 MHz 高線性度、單通道上/下變頻混頻器 skyworksinc

    電子發(fā)燒友網(wǎng)為你提供()1700–2100 MHz 高線性度、單通道上/下變頻混頻器相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有1700–2100 MHz 高線性度、單通道上/下變頻混頻器的引腳圖、接線圖、封裝手冊(cè)
    發(fā)表于 05-20 18:32
    1700–2100 MHz 高線性度、<b class='flag-5'>單通道</b>上/下變頻混頻器 skyworksinc

    湖南銀河電氣有限公司產(chǎn)品應(yīng)用案例

    湖南銀河電氣有限公司產(chǎn)品應(yīng)用案例
    發(fā)表于 04-23 11:21 ?0次下載

    PC1702單通道H橋柵極驅(qū)動(dòng)器中文手冊(cè)

    產(chǎn)品簡(jiǎn)述:?PC1702 是一款小型單通道 H?橋柵極驅(qū)動(dòng)器。它使用四個(gè)外部?N?通道?MOSFET,驅(qū)動(dòng)一個(gè)雙向刷式直流電機(jī)。PH/EN、獨(dú)立半橋或?PWM 允許輕松連接到控制器電路
    發(fā)表于 03-14 17:57 ?0次下載

    深度解析 | 基于HPM6450的RISC-V核心板究竟有哪些過(guò)人之處?

    本文導(dǎo)讀隨著AIoT時(shí)代的到來(lái),RISC-V作為新興架構(gòu),其精簡(jiǎn)及開(kāi)源的特性在物聯(lián)網(wǎng)的應(yīng)用領(lǐng)域有很大的優(yōu)勢(shì),為此ZLG致遠(yuǎn)電子推出MR6450系列是基于先楫HPM6450的全新RISC-V核心板
    的頭像 發(fā)表于 02-08 13:45 ?769次閱讀
    深度解析 | 基于HPM<b class='flag-5'>6450</b>的RISC-V核心板究竟有哪些過(guò)人之處?

    談?wù)?b class='flag-5'>單通道注射泵的組成系統(tǒng)

    單通道注射泵以其精密、穩(wěn)定、抗干擾能力強(qiáng)等優(yōu)點(diǎn)被廣泛應(yīng)用于微流控相關(guān)領(lǐng)域。該設(shè)備使用方便,操作簡(jiǎn)單。流體控制的參數(shù)設(shè)置、修改和查看可在啟動(dòng)主界面完成。在參數(shù)輸入過(guò)程中,可以直接從列表中選擇注射器
    的頭像 發(fā)表于 02-07 15:59 ?328次閱讀

    tlv5610是否可以控制單通道輸出?

    8通道DA芯片tlv5610,輸出第一個(gè)通道同時(shí),第二個(gè)通道會(huì)得到一的輸出。 請(qǐng)問(wèn)該芯片是否可以控制單通道輸出?
    發(fā)表于 01-24 07:37

    ADS8329是單通道,是不是獲取數(shù)據(jù)還要發(fā)CMR 0X000?

    想問(wèn)下ADS8329的 D[15:12]命令寄存器,ADS8329是單通道,是不是獲取數(shù)據(jù)還要發(fā)CMR 0X000? 還有那么時(shí)序 自動(dòng)觸發(fā)和收到觸發(fā) 是只有CONVST 不一嗎 ? 還有那個(gè)Read while sampling 和Read while comver
    發(fā)表于 12-25 07:32

    淺談瑞盟科技·MS30517SA——單通道、高速、低側(cè)柵極驅(qū)動(dòng)器

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

    請(qǐng)問(wèn)ADC12DJ3200如何實(shí)現(xiàn)雙通道、單通道模式切換?

    您好,請(qǐng)問(wèn)ADC12DJ3200 如何實(shí)現(xiàn)雙通道單通道模式切換,謝謝
    發(fā)表于 11-21 07:08

    單通道數(shù)據(jù)鎖存模塊嗎?

    請(qǐng)問(wèn),有單通道數(shù)據(jù)鎖存模塊嗎?應(yīng)用是系統(tǒng)網(wǎng)電斷電后,任然可以鎖存數(shù)據(jù)狀態(tài)。要求鎖存模塊能長(zhǎng)期單獨(dú)長(zhǎng)期供電。
    發(fā)表于 11-13 07:42

    單通道、配電開(kāi)關(guān)評(píng)估模塊

    電子發(fā)燒友網(wǎng)站提供《單通道、配電開(kāi)關(guān)評(píng)估模塊.pdf》資料免費(fèi)下載
    發(fā)表于 11-12 14:27 ?0次下載
    <b class='flag-5'>單通道</b>、配電開(kāi)關(guān)評(píng)估模塊

    使用官方SDK開(kāi)發(fā)6450

    官網(wǎng)提供的SDK芯片類型沒(méi)有包含HPM6450,如何添加6450到SDK中有人知道么?
    發(fā)表于 10-24 14:51