日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > 嵌入式微處理器
[導讀]01 — 使用AURIX TOM模塊生成交流電機的PWM驅(qū)動 1簡介 2 GTM and PWM 的生成 ????2.1 用于PWM生成TOM模塊介紹 ????2.2居中對齊和邊沿對齊PWM 3 PWMAC驅(qū)動器功能概述 ????3.1 PWMAC通道和順序 ????3.2 ADC的PWMAC觸發(fā) 4帶GTM的PWMAC驅(qū)動器 ????4.1 ADC觸發(fā) 5實




01



使用AURIX TOM模塊生成交流電機PWM驅(qū)動




1簡介

2 GTM and PWM 的生成

    2.1 用于PWM生成TOM模塊介紹

    2.2居中對齊和邊沿對齊PWM

3 PWMAC驅(qū)動器功能概述

    3.1 PWMAC通道和順序

    3.2 ADC的PWMAC觸發(fā)

4帶GTM的PWMAC驅(qū)動器

    4.1 ADC觸發(fā)

5實施示例–PWMAC

    5.1簡介

    5.2 PWMAC驅(qū)動程序

    5.3 PWMAC驅(qū)動程序API

    5.4驅(qū)動程序配置

 

1. 簡介

通過使用英飛凌AURIX?系列產(chǎn)品中引入的通用計時器模塊(GTM),可用于交流電動機控制的PWM信號的生成。

交流電機的驅(qū)動

如下圖所示:只需要在A,B,C三相提供120相位差的正弦電壓,電機就會穩(wěn)定的轉(zhuǎn)動起來,調(diào)節(jié)正弦電壓的幅值和頻率,就能調(diào)節(jié)電機的轉(zhuǎn)速和扭矩。這是我們所需要的輸出。


》三相橋臂電路

而我們所提供的輸入是穩(wěn)壓直流電源,電機控制中的控制二字指的就是通過6PWM,控制三相橋臂電路中的6MOS管的開斷,來達到直流電源變正弦交流的目的。

注意:每個橋臂上有兩個電力電子器件,比如IGBT。這兩個IGBT不能同時導通,否則就會出現(xiàn)短路的情況。

》死區(qū)

因此,設計帶死區(qū)(英飛凌中成為Deadtime)的PWM波可以防止上下兩個器件同時導通。也就是說,當一個器件導通后關閉,再經(jīng)過一段死區(qū),這時才能讓另一個導通。

 


》》死區(qū)的原理和作用

死區(qū)就是在上半橋關斷后,延遲一段時間再打開下半橋或在下半橋關斷后,延遲一段時間再打開上半橋,從而避免功率元件燒毀。這段延遲時間就是死區(qū)??偨Y:死區(qū)持續(xù)的時間區(qū)間內(nèi)上、下半橋的元件都是關斷的。

 

》》死區(qū)的副作用

死區(qū)時間是PWM輸出時,為了使H橋或半H橋的上下管不會因為開關速度問題發(fā)生同時導通而設置的一個保護時段,所以在這個時間,上下管都不會有輸出,當然會使波形輸出中斷,死區(qū)時間一般只占百分之幾的周期。但是PWM波本身占空比小時,空出的部分要比死區(qū)還大,所以死區(qū)會影響輸出的紋波,但應該不是起到?jīng)Q定性作用的。


2.     GTM and PWM 的生成 

GTM提供了兩種可用于PWM生成的模塊:

?定時器輸出模塊(TOM

?與ARU連接的定時器輸出模塊(ATOM

這兩個模塊均可用于生成多個PWM信號,相互依賴或相互獨立。

TOM模塊只能用于生成簡單的PWM。 ATOM模塊還可以生成復雜的信號,這些信號主要用于引擎管理應用程序中的點火/噴射脈沖的生成。

2.1 用于PWM生成TOM模塊介紹

每個TOM(定時器輸出模塊)最多包含16個通道(TOM_CHx)。每個通道都有其自己的16位計數(shù)器,可用于生成PWM的邊沿。

TOM通道分為兩組,每組八個通道。每個組均由TOM全局通道控制(TGC)單元控制。

計數(shù)器頻率可以從CMUCMU_FXCLK)提供的五個預分頻器時鐘之一中選擇。此外,每個TOM通道均含有兩個捕獲比較單元(CCU0CCU1),以將計數(shù)器CN0與可配置值進行比較。 CCU0用于確定PWM的持續(xù)時間,而CCU1定義占空比持續(xù)時間。

使能后,在實際開始生成PWM之前,PWM通道首先計數(shù)到CM0的值。因此,第一個PWM周期的持續(xù)時間取決于CN0的初始值,該值在復位后為零。

注意:可以給通道預加載不同的CN0值,以實現(xiàn)不同相位的PWM。

可以在CM0匹配(周期)上產(chǎn)生一個中斷,而在CM1匹配(占空比)下產(chǎn)生另一個中斷。。當TOM通道的計數(shù)器被該通道的前一個通道復位時,可以定義兩個捕獲比較單元,以生成任意PWM周期的脈沖,該周期由前一個TOM通道定義。

對于每個捕獲比較單元,都有一個影子寄存器來存儲下一個PWM周期的PWM特性個除此之外,還有一個為新的PWM周期選擇不同的時鐘預分頻系數(shù)的影子寄存器。

關于這個模塊的詳細介紹請參見上一篇文章。


2.2 居中對齊和邊沿對齊PWM

為了使用(ATOM來實現(xiàn)居中對齊和邊沿對齊PWM,第一個通道(CH0)必須向所有其他后續(xù)通道提供主PWM周期和復位信號。 下圖提供了一個示例:


生成任何類型的PWM調(diào)制以及對稱/非對稱死區(qū)時間,使用GTM都可以考慮以下方法:

-配置(ATOMx_CH0(主資源),以將復位信號發(fā)送到所有其他通道

-將其他所有通道也配置為在來自CH0TRIG [x-1])的觸發(fā)信號上也要復位

-將正確的公式應用于所有相位和觸發(fā)通道的CM0(周期)和CM1(占空比)寄存器(CH1..CH7)。

在以下各段中將提供一個實際的配置示例。

3. PWMAC驅(qū)動器功能概述

PWMAC驅(qū)動器的主要目標是為DC / AC逆變器生成啟動命令,并有可能在命令生成期間的特定瞬間觸發(fā)AD轉(zhuǎn)換。

3.1 PWMAC通道和順序

PWMAC通道(或PWMAC相位)由兩個帶死區(qū)時間的中心對齊PWM通道組成。這兩個PWM通道可以是反相器相位的高端和低端。 PWMAC通道不能單獨存在,而必須始終是PWMAC序列的一部分。每個PWMAC通道都有其獨立的占空比。

PWMAC序列是共享相同參考時間的PWMAC通道的集合,因此序列中的所有PWM信號都以該參考時間為中心。此外,包含在相同序列中的所有PWMAC通道共享相同的周期和死區(qū)時間。下圖顯示了三個PWMAC通道的PWMAC序列。



3.2 ADC的PWMAC觸發(fā)

可選地,每個PWMAC序列都擁有另一個數(shù)字信號,稱為PWMAC觸發(fā),可以用作觸發(fā)AD轉(zhuǎn)換的源。觸發(fā)器以“參考時間”為中心,并且可以指定“偏移”。見下圖:


4. 帶GTM的PWMAC驅(qū)動器

如前幾節(jié)所述,GTM提供了兩種對實現(xiàn)PWMAC驅(qū)動程序均有效的模塊:TOMATOM

要實現(xiàn)一個PWMAC通道(或相位),該通道由兩個具有指定死區(qū)時間的居中對齊的PWM組成,需要使用三個(ATOM通道:

?通道0提供參考周期(主資源)

?其他兩個通道,通常是CH [i]CH [i + 1]

因此,要實現(xiàn)包含三相,需要的CH0以及其他六個(ATOM通道的PWMAC序列,以實現(xiàn)3個高側(cè)(HS)和3個低側(cè)(LS)居中對齊的PWM信號。

需要將通道零配置為將CCU0觸發(fā)(周期匹配)發(fā)送到其他通道(GTM_ATOM_CH0.TRIG_OUT = 1)。

所有其他通道都需要配置為在從通道零的TRIG_0上開始重置自己的計數(shù)器(CN0),或者在達到其自己的編程周期后復位。

要啟用此選項,需要將位字段GTM_ATOM_CHx_CTRL.RST_CC0設置為1;

下圖顯示了一個生成帶有三相加觸發(fā)的序列的示例。

                                                                       


寄存器SR0(陰影寄存器)包含周期,而SR1包含占空比。為了生成居中對齊(或邊沿對齊)的PWM信號,應采用以下公式:

當占空比HS0[0.00,0.50]0-100%)的范圍內(nèi)時。見下表:

 每個(ATOM通道都需要配置為以同步更新模式工作(使用影子寄存器)。下面代碼提供了TOM[y]通道配置的示例。該配置對于ATOM還是有效的,區(qū)別在于ATOMGTM_ATOM[y] _CH [i] _CTRL.B.MODE位字段必須設置為2PWM模式),因為ATOM可以工作在四種不同的模式下,并且TGC寄存器(TOM全局控制)必須由AGCATOM全局控制)代替。以下是配置的代碼示例:

GTM_TOM[y]_TGC0_GLB_CTRL.B.UPEN_CTRL[i]=0x10;//enable CH0 update from shadow reg. SR0/SR1
GTM_TOM[y]_TGC0_ENDIS_CTRL.B.ENDIS_CTRL[i]=0x10; //enable channel on an update trigger
GTM_TOM[y]_TGC0_FUPD_CTRL.B.FUPD_CTRL[i]=0x10; //Channel Force update enabled
GTM_TOM[y]_TGC0_OUTEN_CTRL.B.OUTEN_CTRL[i]=0x10//Output (A)TOM_OUT(0) enable/disable
GTM_TOM[y]_CH[i]_CTRL.B.CLK_SRC_SR = <clockSrc>; //Clk source select for channel 0,1,
GTM_TOM[y]_CH[i]_CTRL.B.SL = 0; //Signal level for duty cycle
0B Low signal level, 1B High signal level
GTM_TOM[y]_CH[i]_SR0.U = <Period>;
GTM_TOM[y]_CH[i]_SR1.U = <Duty>;
//Special Configuration
GTM_TOM[y]_CH[i]_CTRL.B.TRIGOUT = 1; //Only needed for the CH0 (Reference Period)
GTM_TOM[y]_CH[i]_CTRL.B.RST_CCU0 = 1; //Needed for each Phase Channel != CH0
//Only for ATOMs
GTM_ATOM[y]_CH[i]_CTRL.B.MODE = 2; //=> SOMP Mode (PWM Generation)

4.1 ADC觸發(fā)

GTM模塊提供了多種源來內(nèi)部觸發(fā)Delta-SigmaADCADC下圖顯示了可用于觸發(fā)常規(guī)ADC的定時器通道。

 

注意:并非所有的ATOM/TOM模塊都可以觸發(fā)ADC轉(zhuǎn)換。有關詳細信息,請參閱最新版本的用戶手冊。注意:這些圖未顯示所有可用的觸發(fā)源要觸發(fā)相應的ADC通道,需要在位字段XTMODE中配置兩個觸發(fā)事件。要測量相電流,只需要一個觸發(fā)事件即可。見下圖:


PWMAc序列內(nèi)部,觸發(fā)信號的配置必須與其他相位信號完全相同,

配置要求如下:

-同步更新

-觸發(fā)來自CH0(參考)的CCU0復位。

要寫入SR0SR1寄存器的值取決于偏移量和觸發(fā)信號有效沿。

下面代碼提供了一個觸發(fā)器配置示例(TOMy_CH7)。

GTM_TOM[y]_TGC0_GLB_CTRL.B.UPEN_CTRL7=0x10;//enable CH0 update from shadow reg. SR0/SR1
GTM_TOM[y]_TGC0_ENDIS_CTRL.B.ENDIS_CTRL7=0x10; //enable channel on an update trigger
GTM_TOM[y]_TGC0_FUPD_CTRL.B.FUPD_CTRL7=0x10; //Channel Force update enabled
GTM_TOM[y]_TGC0_OUTEN_CTRL.B.OUTEN_CTRL7=0x10//Output (A)TOM_OUT(0) enable/disable
GTM_TOM[y]_CH7_CTRL.B.CLK_SRC_SR = <clockSrc>; //Clk source select for channel 0,1,
GTM_TOM[y]_CH7_CTRL.B.SL = 0; //Signal level for duty cycle
0B Low signal level, 1B High signal level
if (triggerEdge == IfxGtm_Raising) {
trigDuty = <CH0_Duty> + <triggerOffset>;
GTM_TOM[y]_CH7_SR0.U = trigDuty + <triggerWidth>;
GTM_TOM[y]_CH7_SR1.U = trigDuty;
Else {
trigPeriod = <CH0_Duty> + <triggerOffset>
GTM_TOM[y]_CH7_SR0.U = trigPeriod;
GTM_TOM[y]_CH7_SR1.U = trigPeriod- <triggerWidth>;
}
GTM_TOM[y]_CH7_CTRL.B.RST_CCU0 = 1; ? Needed for each Phase Channel != CH0

以下偽代碼提供了VADC配置的示例。在該示例中,VADC Group0Group1TOM0_CH7TOM1_CH7觸發(fā)。

sint32 vadc_init(void) {
uint32 gr, ch;
SCU_vResetENDINIT(0);
VADC_CLC.
U = 0x00000000; // load clock control register
while ((VADC_CLC.U & 0x00000002) == 2); // wait until module is enabled
VADC_KRST0.B.RST = 0x1;
VADC_KRST1.
B.RST = 0x1;
while (!VADC_KRST0.B.RSTSTAT)
;
VADC_KRSTCLR.
B.CLR = 0x1;
SCU_vSetENDINIT(0);
// setting clocks */
VADC_GLOBCFG.U = 0x000008009; //fspb divided by 10 (fadci=10MHz), fadcd=fspb
VADC_GLOBCFG.B.SUCAL = 0x1; // turn on calibration
for (gr = 0; gr < VADC_GROUPS; gr += 1)
MEM (&VADC_G0ARBCFG.
U + gr * 0x100) = 0x13;
for (gr = 0; gr < VADC_GROUPS; gr += 1)
MEM (&VADC_G0ARBPR.
U + gr * 0x100) = 0x07000321 | 0x0888;
/* use the same setting for all groups VADC0,1,2….*/
for (gr = 0; gr < VADC_GROUPS; gr++) {
for (ch = 0; ch < VADC_CHANNELS_PER_GROUP; ch++) {

/* setting result control registers for all channels (VADC_GxRCRy) */
MEM (&VADC_G0RCR0 + gr * 0x100 + ch) = (1 << 31); //Enable Service Request
/* setting channel registers for all channels (VADC_GxCHCTRy) */
MEM (&VADC_G0CHCTR0 + gr * 0x100 + ch) = 0x00100000; // GLOBAL Result Register
}
// setting STC to 0x1F, 12 bit resolution (VADC_GxICLASS0) */
MEM (&VADC_G0ICLASS0.U + gr * 0x100) = 0x00000003;
/* we wait until calibration is finished for this group VADC_GxARBCFG.CAL==0 */
while (MEM (&VADC_G0ARBCFG.U + gr * 0x100) & 0x10000000)
;
}
/* enable interrupt, enable and prio of group */
VADC_GLOBEVNP.U = 0x0;
//Service Request Enable, Wait for Read Mode
VADC_GLOBRCR.U = 0x81000000;
// Specific Configuration for ADC0 and ADC1 Configuration */
VADC_G0CHASS.U = 0x000000FF; /*all channels in the Gr0 assigned as priority channel*/
VADC_G1CHASS.U = 0x000000FF; /*all channels in the Gr1 assigned as priority channel*/
VADC_G0ASMR.B.ENGT =1; //Conversion req. are issued if at least one pending bit is set
VADC_G0ASMR.B.ENTR =1; //Enable External Trigger (GTM)
VADC_G1ASMR.B.ENGT =1; //Conversion req. are issued if at least one pending bit is set
VADC_G1ASMR.B.ENTR =1; //Enable External Trigger (GTM)
VADC_G0ASCTRL.U = EXTERNAL_TRIGGER << 8 /**! XTSEL => use gate as trigger source */
| TRIGGER_EVENT_RISING_EDGE << 13 /**! XTMODE: 3 = trigger on any edge*/
| 1 << 15 /**! allow write access to trigger config */
| ADC_X_TRIG_0 << 16 /**! GTSEL: => use GTM ADC Trigger 0 */
| 1 << 23 /**! allow write access to gate config */
;
VADC_G1ASCTRL.
U = EXTERNAL_TRIGGER << 8 /**! XTSEL => use gate as trigger source */
| TRIGGER_EVENT_FALLING_EDGE<< 13 /**! XTMODE: trigger Edge Sel*/
| 1 << 15 /**! allow write access to trigger config */
| ADC_X_TRIG_1 << 16 /**! GTSEL: => use GTM ADC Trigger 1 */
| 1 << 23 /**! allow write access to gate config */
;
/*! GTM Configuration - Select correct trigger from ADC0/ADC1 */
GTM_ADCTRIG0OUT0.B.SEL0 = 2; /**! TOM0_CH 7 ==> adc_x_trig_0 => ADC0*/
GTM_ADCTRIG1OUT0.B.SEL1 = 2; /**! TOM1_CH 7 ==> adc_x_trig_1 => ADC1*/
VADC_G0ASSEL.U = 0x000000FF; /**! channel 0 is selected as part of the scan*/
VADC_G1ASSEL.U = 0x000000FF; /**! channel 0 is selected as part of the scan*/
return (0);
}

5.實施示例–PWMAC

5.1 簡介

驅(qū)動程序演示了如何使用GTM生成居中對齊的PWM波形。并且本章將概述驅(qū)動程序的API的含義(應用程序編程接口)及其用法。

5.2 PWMAC驅(qū)動程序

PWMAC驅(qū)動程序提供以下功能:

?基于TOMATOM模塊的PWMAC HS /LS PWM生成

?每個序列的可配置相位數(shù)

?每個序列的靈活ADC觸發(fā)器生成

?每個相位靈活的“死區(qū)時間”生成(對稱)

?單個PWM信號的有效電平是可配置的。

PWMAC驅(qū)動程序使用一些基本方法在TOM / ATOM模塊上生成PWM

這些方法或函數(shù)在IfxLldPwm.c文件(PWM底層驅(qū)動程序)中實現(xiàn)。見下圖為驅(qū)動程序的架構:

   


5.3 PWMAC驅(qū)動程序API

         

函數(shù)名                                 

函數(shù)聲明                                 

功能描述   

IfxPwmAc_configSequence  

IfxPwm_Status IfxPwmAc_configSequence  (IfxPwmAc_Sequence seqId, IfxPwmMAC_CfgSequence* ptrCfgSequence)

PWMAC  <seqId> Sequence configuration.

IfxPwmAc_setEnable  

IfxPwm_Switch IfxPwmAc_setEnable  ( IfxPwmAc_Sequence pwmSequenceId, IfxPwmAc_SwitchMode enDisSw ,  IfxPwm_Status* status )

Function to  enable the Sequence <seqId>

IfxPwmAc_configTrigger  

IfxPwm_Status IfxPwmAc_configTrigger  ( IfxPwmAc_Sequence pwmSequenceId, uint32 triggerOffset, IfxPwm_ActiveEdge  triggerEdge)

Function to  configure a trigger for the Sequence <seqId>

IfxPwmAc_setDutyPeriod  

IfxPwm_Status IfxPwmAc_setDutyPeriod(Ifx  PwmAc_Sequence seqId, uint32 period, uint32* duty);

Function to  update the Period and/or the duty of all the AC Phases inside the Sequence  <seqId>

傳遞給所有函數(shù)的<seqId>索引相應的結構體數(shù)組<sequenceChIdArray>中的元素,它包含所有序列的靜態(tài)配置。

5.4 驅(qū)動程序配置

為了配置驅(qū)動程序,要做的第一步是定義一個包含序列靜態(tài)配置的數(shù)組。數(shù)組為每個序列指定要使用的(ATOM通道。該數(shù)組在pwmAc_test.c文件中定義

      

IfxPwmAc_SequenceChannelsDef sequenceChIdArray[PWMAC_SEQ_MAX] =
{
//Sequence1 (FirstSequence),
{ IfxGtm_Tom, //Module Time: TOM or ATOM
IfxGtm_Tom0, //Module Number
{ [0]=IfxGtm_TomCh1, //HS0 Channel, LS0 always the next CH (i.e. CH2)
[1]=IfxGtm_TomCh3, //HS1 Channel, LS1 always the next CH (i.e. CH4)
[2]=IfxGtm_TomCh5 //HS2 Channel, LS2 always the next CH (i.e. CH6)
},
IfxGtm_TomCh7 }, //Trigger Channel (if needed), shall be always CH7 or CH14
//Sequence2 (SecondSequence),
{ IfxGtm_Tom,
IfxGtm_Tom1,
{ [0]=
IfxGtm_TomCh1,
[1]=
IfxGtm_TomCh3,
[2]=
IfxGtm_TomCh5 },
IfxGtm_TomCh7 },
//Sequence3,
………
………
};


第二步是配置序列:

IfxPwmAc_CfgSequence seqCfg,seqCfg1;
/*First Sequence*/
seqCfg.period = PWM_PERIOD; //Reference Period
seqCfg.PwmAcPhaseNumber = 3; //3 phases
seqCfg.deadTimes[0] = 500; //=> DT 1st Phase (5us)
seqCfg.deadTimes[1] = 600; //=> DT 2nd Phase (6us)
seqCfg.deadTimes[2] = 700; //=> DT 3rd Phase (7us)
/*Signal Levels*/
seqCfg.signalLevelHS[0] = IfxGtm_SignalHigh;
seqCfg.
signalLevelHS[1] = IfxGtm_SignalHigh;
seqCfg.
signalLevelHS[2] = IfxGtm_SignalHigh;
seqCfg.
signalLevelLS[0] = IfxGtm_SignalLow;
seqCfg.
signalLevelLS[1] = IfxGtm_SignalLow;
seqCfg.
signalLevelLS[2] = IfxGtm_SignalLow;
seqCfg.
dutyCycles[0] = 500; // DC 1st Phase 50.0%
seqCfg.dutyCycles[1] = 250; // DC 2nd Phase 20.0%
seqCfg.dutyCycles[2] = 750; // DC 3rd Phase 75.0%
/*Second Sequence*/
seqCfg1.period = PWM_PERIOD;
seqCfg1.
PwmAcPhaseNumber = 2; //2 phases
seqCfg1.deadTimes[0] = 500; //=> DT 1st phase (5us)
seqCfg1.deadTimes[1] = 600; //=> DT 2nd phase (6us)
seqCfg1.signalLevelHS[0] = IfxGtm_SignalHigh;
seqCfg1.
signalLevelHS[1] = IfxGtm_SignalHigh;
seqCfg1.
signalLevelLS[0] = IfxGtm_SignalLow;
seqCfg1.
signalLevelLS[1] = IfxGtm_SignalLow;
seqCfg1.
dutyCycles[0] = 500; // 50.0%
seqCfg1.dutyCycles[1] = 250; // 25.0%
還可以指定要用于每個TOM / ATOM 通道的AURIX 端口引腳。

 

/**!
* PWM AC channels mapping to IO PORTs
*/
IfxPwm_ModulePortOutTable modulePortOutTable[NUM_TOUT_PINS] = {
/*timer------, channel------, port, pin, toutNum, iocrCfg*/
{ IfxGtm_Tom0, IfxGtm_TomCh0, (uint32*) &P00_IOCR8, 9, TOUT18, A_COL }, //P00.9
{ IfxGtm_Tom0, IfxGtm_TomCh1, (uint32*) &P00_IOCR8, 10, TOUT19, A_COL },//P00.10 HS
{ IfxGtm_Tom0, IfxGtm_TomCh2, (uint32*) &P00_IOCR8, 11, TOUT20, A_COL }, //P00.11 LS (0)
{ IfxGtm_Tom0, IfxGtm_TomCh3, (uint32*) &P00_IOCR12, 12, TOUT21, A_COL }, //P00.12
{ IfxGtm_Tom0, IfxGtm_TomCh4, (uint32*) &P14_IOCR0, 1, TOUT102, A_COL }, //P14.1
{ IfxGtm_Tom0, IfxGtm_TomCh5, (uint32*) &P10_IOCR8, 8, TOUT110, A_COL }, //P10.8
{ IfxGtm_Tom0, IfxGtm_TomCh6, (uint32*) &P10_IOCR4, 4, TOUT106, A_COL }, //P10.5
{ IfxGtm_Tom0, IfxGtm_TomCh7, (uint32*) &P13_IOCR0, 2, TOUT93, A_COL }, //P13.2 (TRIG)
{ IfxGtm_Tom1, IfxGtm_TomCh0, (uint32*) &P20_IOCR12, 12, TOUT68, A_COL }, //P20.12
{ IfxGtm_Tom1, IfxGtm_TomCh1, (uint32*) &P20_IOCR12, 13, TOUT69, A_COL }, //P20.13 HS (0)
{ IfxGtm_Tom1, IfxGtm_TomCh2, (uint32*) &P20_IOCR12, 14, TOUT70, A_COL }, //P20.13 LS (0)
{ IfxGtm_Tom1, IfxGtm_TomCh3, (uint32*) &P14_IOCR0, 0, TOUT80, B_COL }, //P14.0 HS (1)
{ IfxGtm_Tom1, IfxGtm_TomCh4, (uint32*) &P00_IOCR4, 5, TOUT14, B_COL }, //P00.5 LS (1)
{ IfxGtm_Tom1, IfxGtm_TomCh5, (uint32*) &P00_IOCR4, 6, TOUT15, B_COL }, //P00.6 HS (2)
{ IfxGtm_Tom1, IfxGtm_TomCh6, (uint32*) &P00_IOCR4, 7, TOUT16, B_COL }, //P00.5 LS (2)
{ IfxGtm_Tom1, IfxGtm_TomCh7, (uint32*) &P00_IOCR8, 0, TOUT17, B_COL }, //P00.8 (TRIG.)
……
};

本文授權轉(zhuǎn)載自公眾號“談過AutoSar”,作者初光

免責聲明:本文內(nèi)容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

嵌入式ARM

掃描二維碼,關注更多精彩內(nèi)容

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅(qū)動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅(qū)動性能的關鍵。

關鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質(zhì)量和效率直接關系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅(qū)動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關鍵字: LED 驅(qū)動電源 開關電源

LED驅(qū)動電源是把電源供應轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅(qū)動電源
關閉