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

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

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

3天內不再提示

學技術 | 使用 LPC553X eFlexPWM 生成 6 路互補帶死區 PWM

大大通 ? 2023-01-14 11:00 ? 次閱讀

1.eFlexPWM 介紹

2.PWM GPIO 口配置

3.eFlexPWM 配置(PWM 配置)

4.eFlexPWM 配置(死區 配置)

5.eFlexPWM 配置代碼

6.開發板測試與波形

7.參考文檔

1. eFlexPWM 介紹

eFlexPWM 是 LPC553X 的一個高級 Timer 外設,針對電機應用和電源應用做了優化,并能夠產生各種不同的 PWM 類型,PWM 輸出功能主要有中心對齊(Center Aligned)、邊緣對齊(Edge Aligned)、相移(Phase Shifted)、雙開關(Double Switching)功能。

增強的輸入捕獲功能(Enhanced Capture),可以精確測量 PWM 頻率和占空比。

一個 eFlexPWM 中還有 4 個子模塊,4 個子模塊之間具有同步開關功能,事件產生時同時動作,消除了中斷和軟件操作上的延時,特別適合于電機的換相操作。

eFlexPWM 還可以在精確的時刻觸發 ADC 進行采樣,在電機相電流采樣中特別方便。


此外還有 counter 不同的重載邏輯,多樣的寄存器 Buffer 更新時機,PWM 互補和死區自動生成等功能,本文主要講解如何生成 6 路互補帶死區的 PWM 以應用于電機控制,這些 PWM 通過 PreDriver 后驅動 MOS 或 IGBT,下圖是 eFlexPWM 框圖。

0f6450c2-92d4-11ed-ad0d-dac502259ad0.png

2. PWM GPIO 口配置

GPIO 口的初始化和分配使用 MCUXpresso config Tools 來配置,可以減少錯誤和沖突,配置完后將自動生成的 pin_mux.c 和 pin_mux.h 拷貝到工程中并在 main 中執行 BOARD_InitBootPins() 函數即可,圖中的 A,0 和 B,0 為互補到死區的一對 PWM,將分別接到 Predriver 后驅動圖中 MOS 管的 T1 和 T2 信號,其他依次類推。

0f6d0910-92d4-11ed-ad0d-dac502259ad0.png0f96e578-92d4-11ed-ad0d-dac502259ad0.png

3. eFlexPWM 配置(頻率配置)

PWM 頻率的配置主要通過配置 eFlexPWM 的 INIT 和 VAL1 寄存器配置,counter 從 INIT 開始計數,計到 VAL1 時重新計數,如果要產生 20KHz 的 PWM,計算過程為:INIT = 定時器時鐘/20KHz/2 = 150MHz/20KHz/2 = 3750,VAL1 =定時器時鐘/20KHz/2 -1 = 3749。部分代碼:

/* value register initial values, duty cycle 50% */

PWMBase->SM[0].INIT = PWM_INIT_INIT((uint16_t)(-(M1_PWM_MODULO / 2)));//1875

PWMBase->SM[1].INIT = PWM_INIT_INIT((uint16_t)(-(M1_PWM_MODULO / 2)));

PWMBase->SM[2].INIT = PWM_INIT_INIT((uint16_t)(-(M1_PWM_MODULO / 2)));

PWMBase->SM[3].INIT = PWM_INIT_INIT((uint16_t)(-(M1_PWM_MODULO / 2)));

PWMBase->SM[0].VAL1 = PWM_VAL1_VAL1((uint16_t)((M1_PWM_MODULO / 2) - 1));

PWMBase->SM[1].VAL1 = PWM_VAL1_VAL1((uint16_t)((M1_PWM_MODULO / 2) - 1));

PWMBase->SM[2].VAL1 = PWM_VAL1_VAL1((uint16_t)((M1_PWM_MODULO / 2) - 1));

PWMBase->SM[3].VAL1 = PWM_VAL1_VAL1((uint16_t)((M1_PWM_MODULO / 2) - 1));

0f9fe3b2-92d4-11ed-ad0d-dac502259ad0.png

4. eFlexPWM 配置(死區配置)

為了防止上下橋同時開通造成短路,可以根據 MOS 或 IGBT 的開關速度設置合適的死區時間,通過 DTCNT0 寄存器設置,計算方式如下, M1_PWM_DEADTIME 單位為 us,其位置為上圖中的藍色部分,部分代碼:

PWMBase->SM[0].DTCNT0 = ((M1_PWM_DEADTIME * (MCU_CLOCK_FREQ / 1000000U)) / 1000U);

5. eFlexPWM 配置代碼

eFlexPWM 的配置主要是開啟時鐘、復位、設置 INIT、VAL1 確定頻率、死區、模式、占空比設置寄存器 VAL2、VAL3,以下代碼為基于寄存器方式的完整配置代碼:

void eFlexPWM0_init(void)

{

PWM_Type *PWMBase = (PWM_Type *)PWM0;

/*eFlexPWM0 init*/

SYSCON->PWM0SUBCTL = (SYSCON_PWM0SUBCTL_CLK0_EN_MASK | SYSCON_PWM0SUBCTL_CLK1_EN_MASK | SYSCON_PWM0SUBCTL_CLK2_EN_MASK | SYSCON_PWM0SUBCTL_CLK3_EN_MASK); //Enable Sub-module0 clock

CLOCK_EnableClock(kCLOCK_Pwm0);

/* value register initial values, duty cycle 50% */

PWMBase->SM[0].INIT = PWM_INIT_INIT((uint16_t)(-(M1_PWM_MODULO / 2)));//1875

PWMBase->SM[1].INIT = PWM_INIT_INIT((uint16_t)(-(M1_PWM_MODULO / 2)));

PWMBase->SM[2].INIT = PWM_INIT_INIT((uint16_t)(-(M1_PWM_MODULO / 2)));

PWMBase->SM[3].INIT = PWM_INIT_INIT((uint16_t)(-(M1_PWM_MODULO / 2)));

PWMBase->SM[0].VAL1 = PWM_VAL1_VAL1((uint16_t)((M1_PWM_MODULO / 2) - 1));

PWMBase->SM[1].VAL1 = PWM_VAL1_VAL1((uint16_t)((M1_PWM_MODULO / 2) - 1));

PWMBase->SM[2].VAL1 = PWM_VAL1_VAL1((uint16_t)((M1_PWM_MODULO / 2) - 1));

PWMBase->SM[3].VAL1 = PWM_VAL1_VAL1((uint16_t)((M1_PWM_MODULO / 2) - 1));

// TODO - TEST, init to 0 otherwise (see above).

PWMBase->SM[0].VAL2 = (uint16_t)(-(M1_PWM_MODULO/4));

PWMBase->SM[1].VAL2 = (uint16_t)(-(M1_PWM_MODULO/4));

PWMBase->SM[2].VAL2 = (uint16_t)(-(M1_PWM_MODULO/4));

PWMBase->SM[3].VAL2 = (uint16_t)(-(M1_PWM_MODULO/4));

PWMBase->SM[0].VAL3 = (uint16_t)((M1_PWM_MODULO/4));

PWMBase->SM[1].VAL3 = (uint16_t)((M1_PWM_MODULO/4));

PWMBase->SM[2].VAL3 = (uint16_t)((M1_PWM_MODULO/4));

PWMBase->SM[3].VAL3 = (uint16_t)((M1_PWM_MODULO/4));

/* PWM0 module 0 trigger on VAL4 enabled for ADC synchronization */

PWMBase->SM[0].VAL4 = PWM_VAL4_VAL4((uint16_t)((-(M1_PWM_MODULO / 2))));

/*xx_xxx1b - PWM_OUT_TRIG0 will set when the counter value matches the VAL0 value */

PWMBase->SM[0].TCTRL |= PWM_TCTRL_OUT_TRIG_EN(0b010001);//PWAOT0 PWBOT1 TRGFRQ OUT_TRIG_EN

PWMBase->SM[0].INTEN = (0x1UL << 12UL);//RIE,Reload Interrupt Enable?

/* set deadtime (number of Fast Peripheral Clocks)

DTCNT0,1 = T_dead * f_fpc = 1.0us * 150MHz = 150 */

PWMBase->SM[0].DTCNT0 = ((M1_PWM_DEADTIME * (MCU_CLOCK_FREQ / 1000000U)) / 1000U);

PWMBase->SM[1].DTCNT0 = ((M1_PWM_DEADTIME * (MCU_CLOCK_FREQ / 1000000U)) / 1000U);

PWMBase->SM[2].DTCNT0 = ((M1_PWM_DEADTIME * (MCU_CLOCK_FREQ / 1000000U)) / 1000U);

PWMBase->SM[3].DTCNT0 = ((M1_PWM_DEADTIME * (MCU_CLOCK_FREQ / 1000000U)) / 1000U);

PWMBase->SM[0].DTCNT1 = ((M1_PWM_DEADTIME * (MCU_CLOCK_FREQ / 1000000U)) / 1000U);

PWMBase->SM[1].DTCNT1 = ((M1_PWM_DEADTIME * (MCU_CLOCK_FREQ / 1000000U)) / 1000U);

PWMBase->SM[2].DTCNT1 = ((M1_PWM_DEADTIME * (MCU_CLOCK_FREQ / 1000000U)) / 1000U);

PWMBase->SM[3].DTCNT1 = ((M1_PWM_DEADTIME * (MCU_CLOCK_FREQ / 1000000U)) / 1000U);

/* Control Register */

PWMBase->SM[0].CTRL = ( 0x0UL << 12UL )? //LDFQ

|( 0x0UL << 11UL )? //HALF

|( 0x1UL << 10UL )? //FULL

|( 0x0UL <

|( 0x0UL <

|( 0x0UL <

|( 0x0UL <

|( 0x0UL <

|( 0x0UL <

/* Control Register */

PWMBase->SM[1].CTRL = ( 0x0UL << 12UL )? //LDFQ

|( 0x0UL << 11UL )? //HALF

|( 0x1UL << 10UL )? //FULL

|( 0x0UL <

|( 0x0UL <

|( 0x0UL <

|( 0x0UL <

|( 0x0UL <

|( 0x0UL <

/* Control Register */

PWMBase->SM[2].CTRL = ( 0x0UL << 12UL )? //LDFQ

|( 0x0UL << 11UL )? //HALF

|( 0x1UL << 10UL )? //FULL

|( 0x0UL <

|( 0x0UL <

|( 0x0UL <

|( 0x0UL <

|( 0x0UL <

|( 0x0UL <

/* Control Register */

PWMBase->SM[3].CTRL = ( 0x0UL << 12UL )? //LDFQ

|( 0x0UL << 11UL )? //HALF

|( 0x1UL << 10UL )? //FULL

|( 0x0UL <

|( 0x0UL <

|( 0x0UL <

|( 0x0UL <

|( 0x0UL <

|( 0x0UL << 0UL ); //DBLEN

/* Fault0 trigger, Disable X,Disable B,Disable A */

// PWMBase->SM[0].DISMAP[0] = 0xF111U;

// PWMBase->SM[1].DISMAP[0] = 0xF111U;

// PWMBase->SM[2].DISMAP[0] = 0xF111U;

// PWMBase->SM[3].DISMAP[0] = 0xF111U;

PWMBase->SM[0].DISMAP[0] = 0;

PWMBase->SM[1].DISMAP[0] = 0;

PWMBase->SM[2].DISMAP[0] = 0;

PWMBase->SM[3].DISMAP[0] = 0;

/* PWMs are re-enabled at PWM full cycle / half cycle */

PWMBase->FSTS = (PWMBase->FSTS & ~(PWM_FSTS_FFULL_MASK | PWM_FSTS_FHALF_MASK)) | PWM_FSTS_FFULL(0x1) | PWM_FSTS_FHALF(0x1);

/* PWM fault filter - 3 Fast periph. clocks sample rate, 5 agreeing samples to activate */

PWMBase->FFILT = (PWMBase->FFILT & ~PWM_FFILT_FILT_PER_MASK) | PWM_FFILT_FILT_PER(2);

/* All interrupts disabled, safe manual fault clearing, inversed logic (trigger level = high) */

PWMBase->FCTRL &= ~(PWM_FCTRL_FLVL_MASK | PWM_FCTRL_FAUTO_MASK | PWM_FCTRL_FSAFE_MASK | PWM_FCTRL_FIE_MASK); /* clear FCTRL register prior further settings */

PWMBase->FCTRL |= PWM_FCTRL_FLVL(0x1U);

PWMBase->FCTRL |= PWM_FCTRL_FAUTO(0x1U);

PWMBase->FCTRL |= PWM_FCTRL_FSAFE(0x1U);

PWMBase->FCTRL |= PWM_FCTRL_FIE(0U); /* FAULT 0 & FAULT 1 - Interrupt disable */

/* Clear all fault flags */

PWMBase->FSTS = (PWMBase->FSTS & ~PWM_FSTS_FFLAG_MASK) | PWM_FSTS_FFLAG(0xF);

PWMBase->MASK = 0;//UPDATE_MASK MASKA MASKB MASKx

PWMBase->SWCOUT = 0;

PWMBase->DTSRCSEL = 0;//

PWMBase->SM[0].FRCTRL |= ((0UL << 4UL) | (0UL << 2UL) | (0UL << 1UL)) ;//FRAC45_EN 4,FRAC23_EN 2,FRAC1_EN1

PWMBase->SM[0].FRACVAL2 = 0 << 11UL;

PWMBase->SM[0].FRACVAL3 = 0 << 11UL;

PWMBase->SM[1].FRACVAL2 = 0 << 11UL;

PWMBase->SM[1].FRACVAL3 = 0 << 11UL;

PWMBase->SM[2].FRACVAL2 = 0 << 11UL;

PWMBase->SM[2].FRACVAL3 = 0 << 11UL;

PWMBase->SM[3].FRACVAL2 = 0 << 11UL;

PWMBase->SM[3].FRACVAL3 = 0 << 11UL;

PWMBase->SM[0].CTRL2 = ( 0x0UL << 15UL ) //DBGEN

|( 0x0UL << 14UL ) //WAITEN,Sleep Enable

|( 0x0UL << 13UL ) //INDEP,0b - PWM_A and PWM_B form a complementary PWM pair.

|( 0x0UL << 12UL ) //PWM23_INIT,

|( 0x0UL << 11UL ) //PWM45_INIT

|( 0x0UL << 10UL ) //PWMX_INIT

|( 0x0UL << 8UL ) //INIT_SEL,counter load init value,Local sync,Master reload,Master sync,EXT_SYNC

|( 0x0UL << 7UL ) //FRCEN

|( 0x0UL << 6UL ) //FORCE

|( 0x0UL << 3UL ) //FORCE_SEL,local force,master force,local reload,master reload,local sync,master sync,external force,external sync

|( 0x0UL << 2UL ) //RELOAD_SEL,0b - The local RELOAD signal

|( 0x0UL << 0UL ); //CLK_SEL,

//00b - The IPBus clock

//01b - EXT_CLK

//10b - Submodule 0’s clock (AUX_CLK)

PWMBase->SM[1].CTRL2 = ( 0x0UL << 15UL ) //DBGEN

|( 0x0UL << 14UL ) //WAITEN,Sleep Enable

|( 0x0UL << 13UL ) //INDEP,0b - PWM_A and PWM_B form a complementary PWM pair.

|( 0x0UL << 12UL ) //PWM23_INIT,

|( 0x0UL << 11UL ) //PWM45_INIT

|( 0x0UL << 10UL ) //PWMX_INIT

|( 0x2UL << 8UL ) //INIT_SEL,counter load init value,Local sync,Master reload,Master sync,EXT_SYNC

|( 0x0UL << 7UL ) //FRCEN

|( 0x0UL << 6UL ) //FORCE

|( 0x1UL << 3UL ) //FORCE_SEL,local force,master force,local reload,master reload,local sync,master sync,external force,external sync

|( 0x1UL << 2UL ) //RELOAD_SEL,1b - The master RELOAD signal

|( 0x0UL << 0UL ); //CLK_SEL,

//00b - The IPBus clock

//01b - EXT_CLK

//10b - Submodule 0’s clock (AUX_CLK)

PWMBase->SM[2].CTRL2 = ( 0x0UL << 15UL ) //DBGEN

|( 0x0UL << 14UL ) //WAITEN,Sleep Enable

|( 0x0UL << 13UL ) //INDEP,0b - PWM_A and PWM_B form a complementary PWM pair.

|( 0x0UL << 12UL ) //PWM23_INIT,

|( 0x0UL << 11UL ) //PWM45_INIT

|( 0x0UL << 10UL ) //PWMX_INIT

|( 0x2UL << 8UL ) //INIT_SEL,counter load init value,Local sync,Master reload,Master sync,EXT_SYNC

|( 0x0UL << 7UL ) //FRCEN

|( 0x0UL << 6UL ) //FORCE

|( 0x1UL << 3UL ) //FORCE_SEL,local force,master force,local reload,master reload,local sync,master sync,external force,external sync

|( 0x1UL << 2UL ) //RELOAD_SEL,1b - The master RELOAD signal

|( 0x0UL << 0UL ); //CLK_SEL,

//00b - The IPBus clock

//01b - EXT_CLK

//10b - Submodule 0’s clock (AUX_CLK)

PWMBase->SM[3].CTRL2 = ( 0x0UL << 15UL ) //DBGEN

|( 0x0UL << 14UL ) //WAITEN,Sleep Enable

|( 0x0UL << 13UL ) //INDEP,0b - PWM_A and PWM_B form a complementary PWM pair.

|( 0x0UL << 12UL ) //PWM23_INIT,

|( 0x0UL << 11UL ) //PWM45_INIT

|( 0x0UL << 10UL ) //PWMX_INIT

|( 0x2UL << 8UL ) //INIT_SEL,counter load init value,Local sync,Master reload,Master sync,EXT_SYNC

|( 0x0UL << 7UL ) //FRCEN

|( 0x0UL << 6UL ) //FORCE

|( 0x1UL << 3UL ) //FORCE_SEL,local force,master force,local reload,master reload,local sync,master sync,external force,external sync

|( 0x1UL << 2UL ) //RELOAD_SEL,1b - The master RELOAD signal

|( 0x0UL << 0UL ); //CLK_SEL,

//00b - The IPBus clock

//01b - EXT_CLK

//10b - Submodule 0’s clock (AUX_CLK)

/* Start PWMs (set load OK flags and run - we need to trigger the ADC) */

PWMBase->MCTRL = (PWMBase->MCTRL & ~PWM_MCTRL_CLDOK_MASK) | PWM_MCTRL_CLDOK(0xF);

PWMBase->MCTRL = (PWMBase->MCTRL & ~PWM_MCTRL_LDOK_MASK) | PWM_MCTRL_LDOK(0xF);

PWMBase->MCTRL = (PWMBase->MCTRL & ~PWM_MCTRL_RUN_MASK) | PWM_MCTRL_RUN(0xF);

//PWMBase->OUTEN = 0xFF0;//0xFF0,11-8,PWMA3_EN ~ PWMA0_EN, 7-4 PWMB3_EN ~ PWMB0_EN, 3-0 PWMX3_EN ~ PWMX0_EN

/* Enable & setup interrupt from PWMA */

NVIC_SetPriority(FLEXPWM0_RELOAD0_IRQn, 0U);

NVIC_EnableIRQ(FLEXPWM0_RELOAD0_IRQn);

}

6. 開發板測試與波形

本文使用 NXP 原廠的 LPC55S36-EVK 測試,生成的 6 路 PWM 對應原理圖中的 PWM_AT、PWM_AB、 PWM_BT、PWM_BB、 PWM_CT、PWM_CB,如下圖所示:

0fab957c-92d4-11ed-ad0d-dac502259ad0.png

示波器探頭連接開發板 J10 插件 15 與 13 腳,如下圖中紅框部分如圖所示:

0fb6b952-92d4-11ed-ad0d-dac502259ad0.png

示波器黃色探頭為 PWM_AT,藍色為 PWM_AB,測量為 40KHz PWM,死區 1us,與設置的一致。

0fcd758e-92d4-11ed-ad0d-dac502259ad0.png0fdd3d16-92d4-11ed-ad0d-dac502259ad0.png

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

    關注

    114

    文章

    5192

    瀏覽量

    214198
  • 電機
    +關注

    關注

    142

    文章

    9035

    瀏覽量

    145729
收藏 人收藏

    評論

    相關推薦

    PWM信號生成方法 PWM調制原理講解

    PWM(脈沖寬度調制,Pulse Width Modulation)是一種重要的模擬信號電平數字編碼方法,在電子技術和控制領域具有廣泛應用。以下是對PWM信號生成方法和
    的頭像 發表于 11-28 16:34 ?1511次閱讀

    PWM輸出配置方法

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

    PWM死區的定義和作用

    PWM(Pulse Width Modulation,脈寬調制)死區是一個在PWM控制系統中至關重要的概念,特別是在涉及電力電子設備和電機控制的應用中。以下是對PWM
    的頭像 發表于 10-16 11:19 ?2557次閱讀

    TC387 MCAL如何配置互補PWM

    請問有用MCAL配過三互補PWM的輸出嗎?研究了好幾天了,沒找到MCAL配置互補PWM的地方
    發表于 07-03 07:20

    求助,關于編碼盤與PWM的疑問求解

    55;//高/低電平有效(CCiP),使能PWM輸出(CCiE)使能互補輸出 (CCiNE),互補高/低電平有效(CCiNP) TIM1_CCMR1 = 0X6C; TIM1_CC
    發表于 04-30 07:12

    STM8S003 TIM1高級定時器輸出互補死區方波怎么解決?

    TIM1高級定時器輸出死區方波已經實現,但是我的設備是上下管都為高的時候,才是關閉,和正常的低電平死區不太一樣,大家幫我看一下哈,謝謝了,我要實現右側高電平死區
    發表于 04-30 06:52

    采用STM32F030K6T6互補PWM輸出時,互補通道沒有波形輸出是為什么?

    各路大神指教,采用STM32F030K6T6互補PWM輸出時,配置什么的都檢查了基本沒問題,但是只有主通道有輸出,互補通道沒有波形輸出,請教一下是軟件問題還是這款IC不支持
    發表于 04-22 07:50

    stm32控制三相全橋,怎么使pwm移相120度?

    我想用stm32f控制一個三相電機,也就是控制一個三相全橋,現在已經能實現stm32輸出6互補死區
    發表于 04-22 07:09

    用STM32F051 TIM17產生兩死區互補pwm互補pwm出來了,但死區沒有,為什么?

    我想用STM32F051 TIM17產生兩死區互補pwm互補
    發表于 04-18 06:21

    集成FET的3-V-6-V輸入、6-A輸出同步降壓PWM切換器TPS5461x數據表

    電子發燒友網站提供《集成FET的3-V-6-V輸入、6-A輸出同步降壓PWM切換器TPS5461x數據表.pdf》資料免費下載
    發表于 04-03 14:51 ?6次下載
    <b class='flag-5'>帶</b>集成FET的3-V-<b class='flag-5'>6</b>-V輸入、<b class='flag-5'>6</b>-A輸出同步降壓<b class='flag-5'>PWM</b>切換器TPS5461<b class='flag-5'>x</b>數據表

    PWM控制信號中的死區time對逆變器的影響

    PWM控制信號中的死區time對逆變器的影響 PWM是一種常見的電子控制技術,逆變器作為一種重要的電力電子設備,通常使用PWM控制信號來控制
    的頭像 發表于 02-18 10:49 ?2020次閱讀

    關于TC264死區時間的疑問求解

    各位,我配置了一版寄存器版本的CCU6初始化程序,生成6中心沿對齊的PWM用于控制PWSM,其中包含了
    發表于 02-18 08:57

    TC275 MCAL如何用EB配置雙互補PWM

    TC275,MCAL如何用EB配置雙互補PWM,研究了好幾天,一直不知道怎么配置互補pwm.同時還有
    發表于 02-02 08:09

    GTM怎么輸出指定脈沖數的PWM呢?

    我們都知道GTM可生成獨立的可調占空比可調周期PWM,或死區互補PWM,那么怎么輸出指定脈沖
    發表于 01-26 08:08

    pwm死區是什么意思

    PWM死區是指在電力電子中,為了避免同一橋臂上的兩個開關管同時導通,從而防止出現短路情況對系統造成損害,在電平翻轉時插入的一個時間間隔。 PWM,即脈寬調制,是一種廣泛應用于電力電子領域的技術
    的頭像 發表于 01-17 18:15 ?3321次閱讀
    主站蜘蛛池模板: 国产精品久久久久久人妻精品流| bbw极度另类孕妇| 日本久久久| 嫩草成人国产精品| 免费的好黄的漫画| 老人FREE VIODES老少配| 久久国产伦子伦精品| 黄瓜视频苹果直接安装| 国产制服丝袜91在线| 国产日韩在线欧美视频| 国产精品亚洲欧美一区麻豆| 国产成人亚洲精品无广告| 搞基福利社| 国产精品av免费观看| 国产成人免费高清视频| 国产爱豆果冻传媒在线观看视频| 粉嫩AV国产一区二区福利姬| 成年人视频在线免费观看| 床上色APP下载免费版 | 18岁男人女人插孔| 69夫妇交友群| 99视频网站| 成人无码在线超碰视频| 国产91青青成人a在线| 国产精品久久久久久久A片冻果 | 十分钟在线观看免费视频高清WWW| 色狠狠一区二区| 无码人妻精品一区二区蜜桃色欲| 午夜福利视频极品国产83| 亚洲国产精品自在自线观看| 亚洲欧美免费无码专区| 在线观看成人免费| 99国产这里只有精品视频| 超碰97视频在线观看| 国产精品AV无码免费播放| 国产在线观看99| 久章草一区二区| 秋霞电影网午夜鲁丝片| 无码一区国产欧美在线资源| 亚洲精品久久久久AV无码| 在线观看中文|