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

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

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

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

MM32F0160的FlexCAN FD位時間采樣點如何計算?

靈動MM32MCU ? 來源:靈動MM32MCU ? 2023-11-09 17:43 ? 次閱讀

1?

FlexCAN簡介

FlexCAN模塊是一個通信控制器,擴(kuò)展了CAN FD功能,遵循ISO 11898-1標(biāo)準(zhǔn)、CAN FD和CAN 2.0B協(xié)議規(guī)范。 CAN協(xié)議主要被設(shè)計用作車載串行總線,滿足實時處理,帶寬要求,車輛在電磁干擾環(huán)境下的可靠操作,該模塊支持標(biāo)準(zhǔn)和擴(kuò)展幀,支持最大64字節(jié)有效負(fù)載,傳輸速率高達(dá) 8Mbps,并且具有非常靈活的用于傳輸和接收的郵箱系統(tǒng)和RxFIFO接收機(jī)制。郵箱系統(tǒng)由 32 個報文緩沖區(qū)(MB)組成。

2?

FlexCAN的功能框圖

FlexCAN 的功能框圖如下圖1所示,包括用于存儲報文緩沖區(qū)(MB)、接收全局掩碼寄存器、接收私有掩碼寄存器、接收(Rx) FIFO 過濾器以及接收 FIFO 標(biāo)識符過濾器的內(nèi)存。

deb1b9f0-7ee2-11ee-939d-92fbcf53809c.png

圖1 FlexCAN功能框圖

如上圖1所示為FlexCAN的功能框圖,協(xié)議引擎(PE)子模塊管理 CAN 總線上的串行通信:

請求存取 RAM 接收和傳輸幀

驗收接收到的報文

進(jìn)行錯誤處理

檢測 CAN FD 報文

控制器主機(jī)接口(CHI)子模塊負(fù)責(zé)選擇接收和傳輸?shù)膱笪木彌_區(qū),以及對報文的仲裁和 ID 匹配算法

總線接口單元(BIU)子模塊控制內(nèi)部接口總線的訪問,建立與 CPU 和其他模塊的連接。時鐘、地址和數(shù)據(jù)總線、中斷輸出、 DMA 都通過 BIU 進(jìn)行訪問。

3?

FlexCAN的時鐘

如下圖2所示為產(chǎn)生 PE 時鐘的電路結(jié)構(gòu)。時鐘源選擇位(CAN_CTRL1.CLKSRC)定義了內(nèi)部時鐘為異步時鐘或同步時鐘。其中,同步時鐘為外設(shè)時鐘(由APB1總線時鐘提供);異步時鐘的時鐘源可選(細(xì)節(jié)請參考 RCC 章節(jié) RCC_CFGR2寄存器)。為保證可靠運(yùn)行,應(yīng)在模塊禁止模式時(CAN_MCR.MDIS 置位)選擇時鐘源。

debca63a-7ee2-11ee-939d-92fbcf53809c.png

圖2 FlexCAN的PE時鐘結(jié)構(gòu)

4?

FlexCAN的協(xié)議時序

FlexCAN支持多種方式來設(shè)置 CAN 協(xié)議所要求的位時序參數(shù)。控制寄存器 1(CAN_CTRL1)有各種用于控制位時序參數(shù)的字段: PRESDIV、 PROPSEG、 PSEG1、 PSEG2 和 RJW。 CAN 位時序寄存器(CAN_CBT)擴(kuò)展了 CAN_CTRL1 中 CAN 位時序變量的范圍。 CAN_FDCBT 提供了用于 BRS 置位的 CAN FD 幀數(shù)據(jù)段的位時序變量。

CAN FD 使能時,應(yīng)始終置位 CAN_CBT.BTF 或 CAN_CTRL2.BTE,并在 CAN_CBT 中配置CAN 位時序變量。

PRESDIV字段(及其擴(kuò)展范圍 EPRESDIV 和用于 CAN FD 報文數(shù)據(jù)段的 FDPRESDIV)定義了

串行時鐘(Sclock)的預(yù)分頻(見下列方程)。串行時鐘的周期定義了用于構(gòu)成 CAN 波形的時間單位 Tq(Time Quantum)。 Tq 為 CAN 引擎所能處理的最小時間單元。

dec74874-7ee2-11ee-939d-92fbcf53809c.png

比特率定義了接收或傳輸 CAN 報文的速率,公式如下:

deeef2ac-7ee2-11ee-939d-92fbcf53809c.png

FlexCAN的位時間可細(xì)分為三個部分:

同步段(SYNC_SEG)

1Tq 的固定長度;信號邊沿出現(xiàn)在該段內(nèi)。

時間段 1

包括 CAN 標(biāo)準(zhǔn)的傳播段和相位段1。該段可通過設(shè)置 CAN_CTRL1 寄存器的PROPSEG和PSEG1 字段來編程,其總和(+2)為 2 ~ 16Tq。當(dāng) CAN_CBT.BTF 被置位時,F(xiàn)lexCAN 使用來自 CAN_CBT 寄存器的EPROPSEG和EPSEG1 字段,其總和(+2)為 2~ 96Tq 。對于BRS置位的CAN FD報文,F(xiàn)lexCAN使用CAN_FDCBT寄存器的FDPROPSEG 和 FDPSEG1 字段,其總和為 2 ~ 39Tq。

時間段 2

CAN 標(biāo)準(zhǔn)的相位段2。該段可通過設(shè)置CAN_CTRL1寄存器的PSEG2字段來編程,其值(+1)為 2 ~ 8Tq。當(dāng)CAN_CBT.BTF被置位時, FlexCAN使用來自CAN_CBT寄存器的EPSEG2字段,其值(+1)為 2 ~ 32Tq。對于BRS置位的 CAN FD 報文, FlexCAN使用CAN_FDCBT寄存器的FDPSEG2字段,其值(+1)為 2 ~ 8Tq。時間段2不能小于信息處理時間(IPT),IPT 在 FlexCAN 中為 2Tq。

注意事項:

FPRESDIV 定義了 BRS 置位的 CAN FD 幀數(shù)據(jù)比特率部分的PE時鐘頻率和串行時鐘(Sclock)頻率之間的比率。 Sclock 周期定義了CAN FD協(xié)議數(shù)據(jù)比特率的 Tq。Sclock 頻率 = PE 時鐘頻率 /(FPRESDIV + 1)注:為避免處理FD幀時出錯, FPRESDIV 和PRESDIV(CAN_CBT 或 CAN_CTRL1)請使用相同的值。FPRESDIV 只能在凍結(jié)模式下寫入,其他模式下被硬件鎖定。

如下圖3所示為FlexCAN位時間內(nèi)的段使用 CAN_CTRL1位時序變量的經(jīng)典 CAN 格式。

df000a2e-7ee2-11ee-939d-92fbcf53809c.png

圖3

如下圖4所示為FlexCAN FD位時間內(nèi)的段,使用CAN FD格式的CAN_CBT和CAN_FDCBT位時序變量,其中FlexCAN FD的仲裁段使用經(jīng)典CAN格式配置位時間,即使用CAN_CBT位時序變量用于配置仲裁段的位時間,F(xiàn)lexCAN FD的可變速率的位時間使用CAN_FDCBT位時序變量配置。

df212dd0-7ee2-11ee-939d-92fbcf53809c.png

圖4

FlexCAN的語法說明如下表1所示:

df384f06-7ee2-11ee-939d-92fbcf53809c.png

表1

當(dāng)采用CAN位作為持續(xù)時間的衡量標(biāo)準(zhǔn)時(例如,評估報文中的CAN位事件),一個 CAN 位的外設(shè)時鐘個數(shù)(NumClkBit)為:

df58991e-7ee2-11ee-939d-92fbcf53809c.png

其中:

NumClkBit 為一個 CAN 位的外設(shè)時鐘個數(shù)

fSYS 為系統(tǒng)(CHI)時鐘頻率,單位 Hz

PSEG1 為 CAN_CTRL1.PSEG1 的值

PSEG2 為 CAN_CTRL1.PSEG2 的值

PROPSEG 為 CAN_CTRL1.PROPSEG 的值

PRESDIV 為 CAN_CTRL1.PRESDIV 的值

上述公式也適用于 CAN 位時序寄存器(CAN_CBT)所述的 CAN 位時間變量。

因此,F(xiàn)lexCAN FD仲裁段使用經(jīng)典CAN位的速率計算公式為:

df67495a-7ee2-11ee-939d-92fbcf53809c.png

FlexCAN FD可變速率數(shù)據(jù)段的計算公式為:

df7675e2-7ee2-11ee-939d-92fbcf53809c.png

fCANCLK為PE時鐘,單位Hz

BITRATEN是由CAN 標(biāo)稱位時間變量計算出的 CAN 位速率,單位bps

BITRATEF是由CAN 數(shù)據(jù)位時間變量計算出的CAN位速率,單位bps

EPSEG1為CAN_CBT.EPSEG1的值(也可使用 CAN_CTRL1.PSEG1)

EPSEG2 為 CAN_CBT.EPSEG2 的值(也可使用 CAN_CTRL1.PSEG2)

EPROPSEG 為CAN_CBT.EPROPSEG 的值(也可使用 CAN_CTRL1.PROPSEG)

EPRESDIV 為CAN_CBT.EPRESDIV 的值(也可使用 CAN_CTRL1.PRESDIV)

那么CAN FD幀標(biāo)稱比特率相應(yīng)的每個CAN位的外設(shè)時鐘數(shù)量CPCBN為:

df845964-7ee2-11ee-939d-92fbcf53809c.png

CAN FD 幀數(shù)據(jù)比特率相應(yīng)的每個CAN位的外設(shè)時鐘數(shù)量CPCBF為:

df943d16-7ee2-11ee-939d-92fbcf53809c.png

因此在已知FlexCAN FD時鐘和預(yù)分頻系數(shù)以及波特率的情況下可以計算出FlexCAN FD的標(biāo)稱位時間TqN總數(shù)和可變速率數(shù)據(jù)位時間TqF總數(shù),計算公式分別如下所示:

fcanclk / BITRATEN x (EPRESDIV+1) = [1+(EPSEG1+1)+(EPSEG2+1)+(EPROPSEG+1)]

fcanclk / BITRATEF x (FPRESDIV+1) = [1+(FPSEG1+1)+(FPSEG2+1)+FPROPSEG]

根據(jù)以上FlexCAN FD的位時序可知可以分別根據(jù)標(biāo)稱位時間TqN總數(shù)和可變速率數(shù)據(jù)位時間TqF總數(shù)分別計算出其標(biāo)稱位時間的采樣點和可變速率數(shù)據(jù)位時間的采樣點,即FlexCAN FD標(biāo)稱位時間的采樣點的計算公式為:

FlexCAN_samplepoint = (SYNC_SEG+(EPROPSEG+1) +(EPSEG1+1) )/ (SYNC_SEG+(EPROPSEG+1) +(EPSEG1+1)+ (EPSEG2+1))

FlexCAN FD可變速率位時間的采樣點的計算公式為:

FlexCAN_FDsamplepoint = (SYNC_SEG+FPROPSEG+(FPSEG1+1) )/ (SYNC_SEG+FPROPSEG+(FPSEG1+1)+ (FPSEG2+1))

5?

FlexCAN FD位時間采樣點的計算

根據(jù)以上4章節(jié)FlexCAN的位時間描述以及FlexCAN FD位時間和采樣點的計算公式推導(dǎo),在給定FlexCAN FD時鐘和波特率以及分頻系數(shù)的情況下,可以使用FlexCAN的庫函數(shù)通過循環(huán)遍歷的方式實現(xiàn)自動計算FlexCAN FD的位時間的采樣點。

FlexCAN FD庫函數(shù)定義的協(xié)議時序代碼如下所示:

typedefstruct_flexcan_timing_config{
u16preDivider;/*!

FlexCAN FD標(biāo)稱位時間采樣點和可變速率采樣點的位時間的計算,可以通過循環(huán)遍歷方式實現(xiàn)自動計算,代碼如下所示:

boolFLEXCAN_FDCalculateImprovedTimingValues(uint32_tbaudRate,uint32_tbaudRateFD,uint32_tsourceClock_Hz,flexcan_timing_config_t*pTimingConfig)
{
boolfgRet=false;
pTimingConfig->preDivider=0U;
pTimingConfig->fpreDivider=0U;
if(FLEXCAN_CalculateImprovedTimingValuesByFDCBT(baudRateFD,sourceClock_Hz,pTimingConfig))
{
if(FLEXCAN_CalculateImprovedTimingValuesByCBT(baudRate,sourceClock_Hz,pTimingConfig))
{
fgRet=true;
}
}

return(fgRet);
}

staticboolFLEXCAN_CalculateImprovedTimingValuesByFDCBT(uint32_tbaudRate,uint32_tsourceClock_Hz,flexcan_timing_config_t*pTimingConfig)
{
uint32_tclk;/*theclockistqNumbxbaudRateFD.*/
uint32_ttqNum;/*NumbersofTQ.*/
boolfgRet=false;
tqNum=FDCBT_MAX_TIME_QUANTA;
/*AutoImprovedProtocaltiming.*/
do
{
clk=baudRate*tqNum;

if(clk>sourceClock_Hz)
{
continue;/*tqNumtoolarge,clkhasbeenexceedsourceClock_Hz.*/
}
if((sourceClock_Hz/clk*clk)!=sourceClock_Hz)
{
continue;/*Non-supporting:thefrequencyofclocksourceisnotdivisiblebytargetbaudrate,theuser
shouldchangeadivisiblebaudrate.*/
}
/*Makesurethenewcalculateddividervalueisgreaterthanthepreviousone.*/
if(pTimingConfig->fpreDivider>((uint16_t)(sourceClock_Hz/clk)-1U))
{
continue;
}
else
{
pTimingConfig->fpreDivider=(uint16_t)(sourceClock_Hz/clk)-1U;
}
if(pTimingConfig->fpreDivider>MAX_FPRESDIV)
{
break;/*Thefrequencyofsourceclockistoolargeorthebaudrateistoosmall,thepre-dividercould
nothandleit.*/
}
/*Trytogetthebesttimingconfiguration.*/
if(FLEXCAN_FDGetSegmentswithBRS(baudRate,tqNum,pTimingConfig))
{
fgRet=true;
break;
}
}
while(--tqNum>=FDCBT_MIN_TIME_QUANTA);

return(fgRet);
}

staticboolFLEXCAN_FDGetSegmentswithBRS(uint32_tbaudRatebrs,uint32_ttqNum,flexcan_timing_config_t*pTimingConfig)
{
uint32_tideal_sp;
uint32_tp1;
boolfgRet=false;

/*getidealsamplepoint.*/
if(baudRatebrs>=1000000U)
{
ideal_sp=IDEAL_SP_LOW;
}
elseif(baudRatebrs>=800000U)
{
ideal_sp=IDEAL_SP_MID;
}
else
{
ideal_sp=IDEAL_SP_HIGH;
}

/*distributetimequanta.*/
p1=tqNum*(uint32_t)ideal_sp;
pTimingConfig->fpropSeg=(uint8_t)(p1/(uint32_t)IDEAL_SP_FACTOR-2U);

if(pTimingConfig->fpropSeg<=?(MAX_FPSEG1?+?MAX_FPROPSEG))
????{
????????if?(pTimingConfig->fpropSeg>MAX_FPROPSEG)
{
pTimingConfig->fphaseSeg1=pTimingConfig->fpropSeg-MAX_FPROPSEG;
pTimingConfig->fpropSeg=MAX_FPROPSEG;
}
else
{
pTimingConfig->fphaseSeg1=0;
}

if(pTimingConfig->fphaseSeg1<=?MAX_PSEG1)
????????{
????????????if?((pTimingConfig->fpropSeg+pTimingConfig->fphaseSeg1)fphaseSeg2=(uint8_t)tqNum-(pTimingConfig->fphaseSeg1+pTimingConfig->fpropSeg+3U);

if(pTimingConfig->fphaseSeg2<=?MAX_PSEG2)
????????????????{
????????????????????if?((pTimingConfig->fphaseSeg1fphaseSeg2)&&(pTimingConfig->fpropSeg>(pTimingConfig->fphaseSeg2-pTimingConfig->fphaseSeg1)))
{
pTimingConfig->fpropSeg-=(pTimingConfig->fphaseSeg2-pTimingConfig->fphaseSeg1);
pTimingConfig->fphaseSeg1=pTimingConfig->fphaseSeg2;
}

/*subtractoneTQforsyncseg.*/
/*sjwis20%oftotalTQ,roundedtonearestint.*/
pTimingConfig->frJumpwidth=((uint8_t)tqNum+4U)/5U-1U;

if(pTimingConfig->frJumpwidth>MAX_FRJW)
{
pTimingConfig->frJumpwidth=MAX_FRJW;
}

fgRet=true;
}
}
}
}

return(fgRet);
}

staticboolFLEXCAN_CalculateImprovedTimingValuesByCBT(uint32_tbaudRate,uint32_tsourceClock_Hz,flexcan_timing_config_t*pTimingConfig)
{
uint32_tclk;/*theclockistqNumbxbaudRateFD.*/
uint32_ttqNum;/*NumbersofTQ.*/
boolfgRet=false;

tqNum=CBT_MAX_TIME_QUANTA;

/*AutoImprovedProtocaltiming.*/
do
{
clk=baudRate*tqNum;

if(clk>sourceClock_Hz)
{
continue;/*tqNumtoolarge,clkhasbeenexceedsourceClock_Hz.*/
}

if((sourceClock_Hz/clk*clk)!=sourceClock_Hz)
{
continue;/*Non-supporting:thefrequencyofclocksourceisnotdivisiblebytargetbaudrate,theuser
shouldchangeadivisiblebaudrate.*/
}

/*Makesurethenewcalculateddividervalueisgreaterthanthepreviousone.*/
if(pTimingConfig->preDivider>((uint16_t)(sourceClock_Hz/clk)-1U))
{
continue;
}
else
{
pTimingConfig->preDivider=(uint16_t)(sourceClock_Hz/clk)-1U;
}

/*TominimizeerrorswhenprocessingFDframes,trytocalculatethesamevalueforFPRESDIVandPRESDIV(inCBT).*/
if(pTimingConfig->preDivider!=pTimingConfig->fpreDivider)
{
continue;
}

if(pTimingConfig->preDivider>MAX_EPRESDIV)
{
break;/*Thefrequencyofsourceclockistoolargeorthebaudrateistoosmall,thepre-dividercould
nothandleit.*/
}

/*Trytogetthebesttimingconfiguration.*/
if(FLEXCAN_FDGetSegments(baudRate,tqNum,pTimingConfig))
{
fgRet=true;
break;
}
}
while(--tqNum>=CBT_MIN_TIME_QUANTA);

return(fgRet);
}

FlexCAN FD位時間采樣點應(yīng)用舉例,本文示例以MM32F0160的FlexCAN FD外設(shè)為例,其中FlexCAN FD的標(biāo)稱波特率為500K,可變速率波特率為2MHz。fCAN的時鐘為72MHz,把FlexCAN FD的fCAN時鐘,標(biāo)稱波特率500K,可變速率波特率2MHz代入庫函數(shù)FLEXCAN_FDCalculateImprovedTimingValues分別計算得出FlexCAN FD標(biāo)稱波特率和可變速率波特率的位時間參數(shù)如下:

標(biāo)稱波特率的位時間參數(shù):

preDivider = 0x01;

propSeg = 0x34;

phaseSeg1 = 0x08;

phaseSeg2 = 0x08;

rJumpwidth = 0x0E

可變速率波特率位時間參數(shù):

fpreDivider = 0x01;

fpropSeg = 0x07;

fphaseSeg1 = 0x04;

fphaseSeg2 = 0x04;

frJumpwidth = 0x03

注:再同步參數(shù)rJumpwidth 和frJumpwidth不參與FlexCANFD采樣點的計算

又因為在已知FlexCAN FD時鐘和預(yù)分頻系數(shù),以及波特率的情況下可以計算出FlexCAN FD的標(biāo)稱位時間TqN總數(shù)和可變速率數(shù)據(jù)位時間TqF總數(shù),計算公式分別如下所示:

標(biāo)稱位時間TqN總數(shù):

fcanclk / BITRATEN x (EPRESDIV+1) = [1+(EPSEG1+1)+(EPSEG2+1)+(EPROPSEG+1)]

代入自動計算得出的標(biāo)稱波特率500K的位時間參數(shù),計算出TqN:

TqN = 72000000/500000x(1+1)= 72

可變速率數(shù)據(jù)位時間TqF總數(shù):

fcanclk / BITRATEF x (FPRESDIV+1) = [1+(FPSEG1+1)+(FPSEG2+1)+FPROPSEG]

代入自動計算得出的可變波特率2MHz的位時間參數(shù),計算出TqF:

TqF = 72000000/2000000x(1+1)= 18

根據(jù)以上FlexCAN FD使用庫自動計算出的位時間參數(shù),以及標(biāo)稱位時間TqN總數(shù)和可變速率位時間TqF總數(shù),可以分別計算出其標(biāo)稱位時間的采樣點和可變速率數(shù)據(jù)位時間的采樣點,即FlexCAN FD標(biāo)稱位時間的采樣點的計算公式為:

FlexCAN_samplepoint = (SYNC_SEG+(EPROPSEG+1) +(EPSEG1+1) )/ (SYNC_SEG+(EPROPSEG+1) +(EPSEG1+1)+ (EPSEG2+1))

代入標(biāo)稱波特率500K的位時間參數(shù)計算標(biāo)稱波特率的位時間的采樣點如下:

FlexCAN_samplepoint =(1+(52+1)+(8+1))/(1+(52+1)+(8+1)+(8+1))= 87.5%

FlexCAN FD可變速率位時間的采樣點的計算公式為:

FlexCAN_FDsamplepoint = (SYNC_SEG+FPROPSEG+(FPSEG1+1) )/ (SYNC_SEG+FPROPSEG+(FPSEG1+1)+ (FPSEG2+1))

代入可變速率2MHz波特率的位時間參數(shù)計算可變速率的位時間的采樣點如下:

FlexCAN_FDsamplepoint = (1+7+(4+1))/(1+7+(4+1)+(4+1))= 72%

CAN采樣點一般設(shè)置在75%—80%之間,具體要根據(jù)CAN通信波特率大小配置。當(dāng)波特率不超過500K時,建議采樣點設(shè)置在87.5%;當(dāng)波特率大小在500K—800K之間的時候,建議采樣點設(shè)置在80%;當(dāng)波特率大于800K的時候,建議采樣點設(shè)置在75%。以上建議并不是絕對的,需根據(jù)應(yīng)用環(huán)境復(fù)雜程度通過調(diào)整FlexCAN FD的再同步參數(shù)rJumpwidth和frJumpwidth使得phaseSeg1和phaseSeg2以及fphaseSeg1和fphaseSeg2在標(biāo)稱波特率和可變波特率的位時間上前移或后移N(0-15)個Tq值來微調(diào)采樣點(雖然rJumpwidth和frJumpwidth不參與采樣點計算)。

注意事項:

關(guān)于采樣點的配置的一些額外建議:當(dāng)用戶在實際車用環(huán)境中出現(xiàn)FlexCAN無正常收發(fā)數(shù)據(jù)時除了根據(jù)錯誤標(biāo)志查找問題定位問題外,還可使用專業(yè)的CAN診斷儀測試出多節(jié)點總線上的rJumpwidth和frJumpwidth,phaseSeg1和phaseSeg2以及fphaseSeg1和fphaseSeg2參數(shù),參考這些位時間參數(shù)值來調(diào)整適配rJumpwidth和frJumpwidth,phaseSeg1和phaseSeg2以及fphaseSeg1和fphaseSeg2參數(shù)到CAN通信的合適的采樣點。






審核編輯:劉清

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

    關(guān)注

    6

    文章

    1921

    瀏覽量

    45473
  • CAN
    CAN
    +關(guān)注

    關(guān)注

    57

    文章

    2744

    瀏覽量

    463612
  • 接收機(jī)
    +關(guān)注

    關(guān)注

    8

    文章

    1180

    瀏覽量

    53453
  • FIFO芯片
    +關(guān)注

    關(guān)注

    0

    文章

    10

    瀏覽量

    8803

原文標(biāo)題:靈動微課堂 (第277講)|MM32F0160的FlexCAN FD位時間采樣點的計算

文章出處:【微信號:MindMotion-MMCU,微信公眾號:靈動MM32MCU】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    使用MM32F0160 FlexCAN-FD接口實現(xiàn)CAN FD通信

    MM32F0160 系列 MCU 具有一個 FlexCAN 模塊,該模塊遵循 ISO 11898-1 標(biāo)準(zhǔn)、 CAN FD 和 CAN 2.0B 協(xié)議規(guī)范,不僅兼容傳統(tǒng)CAN,還支持CAN F
    的頭像 發(fā)表于 12-14 16:44 ?2327次閱讀
    使用<b class='flag-5'>MM32F0160</b> <b class='flag-5'>FlexCAN-FD</b>接口實現(xiàn)CAN <b class='flag-5'>FD</b>通信

    靈動重磅發(fā)布MM32G新系列MCU產(chǎn)品:G0140 & G0160

    發(fā)布會上,靈動股份隆重介紹了MM32G01系列產(chǎn)品,其擁有以下四大特點,一是所集成的FlexCAN-FD提供了更快的通信速度、更長的數(shù)據(jù)長度和更多的幀格式等優(yōu)勢;二是配置的XTAL-LESS USB
    發(fā)表于 02-14 09:23

    S32K344 FlexCAN如何設(shè)置Rx MB掩碼以接收具有不同ID的CAN FD消息?

    嗨,朋友們,我參考下面的掩碼設(shè)置演示,但我只收到具有單個 ID 的 CAN FD 消息。基于下面的代碼,我只收到 ID 為 0x300 的 CAN FD 消息 64 字節(jié)有效負(fù)載。其他 ID 無法
    發(fā)表于 03-29 07:48

    靈動股份全新MM32F0160系列MCU發(fā)布

    靈動股份發(fā)布全新MM32F0160 系列 MCU,其搭載 72MHz Arm Cortex-M0 處理器,內(nèi)置 128KB Flash,16KB RAM,配備高速 ADC、USB、CAN-FD
    的頭像 發(fā)表于 12-20 13:55 ?759次閱讀

    MM32F0160 產(chǎn)品手冊(中文版)

    MM32F0160 產(chǎn)品手冊(中文版)
    發(fā)表于 02-22 18:50 ?0次下載
    <b class='flag-5'>MM32F0160</b> 產(chǎn)品手冊(中文版)

    MM32F0160 產(chǎn)品手冊(英文版)

    MM32F0160 產(chǎn)品手冊(英文版)
    發(fā)表于 02-22 18:51 ?0次下載
    <b class='flag-5'>MM32F0160</b> 產(chǎn)品手冊(英文版)

    MM32F0160 用戶手冊(中文版)

    MM32F0160 用戶手冊(中文版)
    發(fā)表于 02-22 18:51 ?0次下載
    <b class='flag-5'>MM32F0160</b> 用戶手冊(中文版)

    MM32F0160 用戶手冊(英文版)

    MM32F0160 用戶手冊(英文版)
    發(fā)表于 02-22 18:52 ?0次下載
    <b class='flag-5'>MM32F0160</b> 用戶手冊(英文版)

    MM32G0160 產(chǎn)品簡介(中文版)

    MM32G0160 產(chǎn)品簡介(中文版)
    發(fā)表于 02-27 18:21 ?0次下載
    <b class='flag-5'>MM32G0160</b> 產(chǎn)品簡介(中文版)

    MM32G0160 產(chǎn)品簡介(英文版)

    MM32G0160 產(chǎn)品簡介(英文版)
    發(fā)表于 02-27 18:21 ?0次下載
    <b class='flag-5'>MM32G0160</b> 產(chǎn)品簡介(英文版)

    基于MM32F0160微控制器的機(jī)械鍵盤

    最近,為了配合新品推廣,靈動的軟件與系統(tǒng)工程SE團(tuán)隊,基于帶有 USB 外設(shè)模塊的 MM32F0160 微控制器,實現(xiàn)了一套低成本帶RGB燈效的機(jī)械鍵盤。這里將設(shè)計機(jī)械鍵盤的全過程開源出來,感興趣
    的頭像 發(fā)表于 04-21 09:11 ?1177次閱讀

    如何通過Mini-F0160開發(fā)板實現(xiàn)USB轉(zhuǎn)三路虛擬串口功能?

    Mini-F0160 開發(fā)板搭載 MM32F0160 ,產(chǎn)品內(nèi)嵌 1 個 USB 控制器,內(nèi)置 USB PHY,兼容 USB 2.0 全速規(guī)范,提供最高 12 Mbps 數(shù)據(jù)速率,支持設(shè)備模式,USB 控制器提供了最高 8 個雙向端點。
    的頭像 發(fā)表于 05-06 15:45 ?797次閱讀
    如何通過Mini-<b class='flag-5'>F0160</b>開發(fā)板實現(xiàn)USB轉(zhuǎn)三路虛擬串口功能?

    MM32F0140 FlexCAN一致性測試 (2)

    MM32F0140 FlexCAN一致性測試 (2)
    的頭像 發(fā)表于 11-10 18:23 ?675次閱讀
    <b class='flag-5'>MM32F</b>0140 <b class='flag-5'>FlexCAN</b>一致性測試 (2)

    MM32F0140 FlexCAN一致性測試(1)

    MM32F0140 FlexCAN一致性測試 (1)
    的頭像 發(fā)表于 11-10 17:50 ?621次閱讀
    <b class='flag-5'>MM32F</b>0140 <b class='flag-5'>FlexCAN</b>一致性測試(1)

    MM32F0140學(xué)習(xí)筆記——FlexCAN 控制器局域網(wǎng)

    MM32F0140學(xué)習(xí)筆記——FlexCAN 控制器局域網(wǎng)
    的頭像 發(fā)表于 10-27 09:25 ?1458次閱讀
    <b class='flag-5'>MM32F</b>0140學(xué)習(xí)筆記——<b class='flag-5'>FlexCAN</b> 控制器局域網(wǎng)
    主站蜘蛛池模板: 国产精品麻豆a啊在线观看| 果冻传媒在线观看进入窗口| 久久免费精彩视频| 色狠狠AV老熟女| 69久久国产露脸精品国产| 国产一区二区无码蜜芽精品| 热九九99香蕉精品品| 777黄色片| 精品亚洲一区二区在线播放| 无限资源在线观看完整版免费下载| 97精品免费视频| 久久久97丨国产人妻熟女| 性夜影院爽黄A爽免费动漫| 超大号黑吊magnet| 免费人成视频X8X8国产更快乐| 亚洲精品久久无码AV片银杏| 国产成人精品免费青青草原app| 欧美含羞草免费观看全部完| 中文字幕欧美日韩VA免费视频| 国产在线播放91| 无人区尖叫之夜美女姐姐视频| 成人网视频在线观看免费| 能看的黄页最新网站| 中文字幕人成人乱码亚洲AV| 精彩国产萝视频在线| 亚洲AV永久无码精品澳门| 欧美MV日韩MV国产网站| 美国一级大黄一片免费的网站| 亚洲日本va中文字幕久久| 国产免费69成人精品视频| 谁有成人网站地址| 处xxxx.88| 日日夜夜国产| 夫妻日本换H视频| 日日操日日射| 风月宝鉴之淫乱英雄传 电影| 日本无码毛片久久久九色综合| japanese from色系| 欧美亚洲日韩国码在线观看| 99视频在线观看免费| 男男肉肉互插腐文|