chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

基于DWC_ether_qos的以太網(wǎng)驅(qū)動(dòng)開發(fā)-MDIO驅(qū)動(dòng)編寫與測試

嵌入式USB開發(fā) ? 來源:嵌入式USB開發(fā) ? 作者:嵌入式USB開發(fā) ? 2023-08-30 09:37 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文轉(zhuǎn)自公眾號(hào)歡迎關(guān)注

一.前言

以太網(wǎng)驅(qū)動(dòng)的編寫與調(diào)試往往從MDIO接口開始,MDIO是MAC訪問PHY的接口。實(shí)現(xiàn)通過MDIO對PHY進(jìn)行操作才能配置PHY,所以實(shí)現(xiàn)MDIO讀寫是第一步。DWC_ether_qos提供了SMA模塊,操作兩個(gè)寄存器即可實(shí)現(xiàn)PHY寄存器的讀寫,比較簡單方便,且支持C45和C22兩種模式,另外有比較靈活的配置參數(shù)后面會(huì)詳講。

二.SMA模塊介紹

DWC_ether_qos中SMA(Station Management Agent)是一種雙線站管理接口(MIM:Station Management interface),即MDIO管理接口,通過SMA模塊即MDIO接口可以訪問PHY的寄存器。

其具備以下特征:

l時(shí)鐘

IEEE 802.3中規(guī)定,MDC的最大操作頻率(gmi_MDC_o)是2.5MHz。在DWC_ether_qos中,gmii_mdc_o時(shí)鐘是從csr_i分頻得到的,通過MAC_MDIO_Address寄存器中的CR字段配置,

要注意該分頻值一般要使得MDC滿足不大于2.5MHz的要求。如果系統(tǒng)支持更高的頻率該分頻也可以分頻到大于2.5MHz的頻率。

l模式選擇:MAC_MDIO_Address 的C45E 配置使用C45還是C22格式。

l前導(dǎo)抑制:MAC_MDIO_Address的PSE控制是否發(fā)送只有一個(gè)bit的前導(dǎo)的幀。

l時(shí)鐘保持與連續(xù)傳輸:MAC_MDIO_Address 的NTC可以配置MDIO幀發(fā)送完后時(shí)鐘保持07個(gè)CLK。在此基礎(chǔ)上還可以配置MAC_MDIO_Address 的BTB使能連續(xù)傳輸,此時(shí)不等07個(gè)時(shí)鐘保持結(jié)束,Busy信號(hào)就會(huì)發(fā)送完幀后立即清除,軟件可以開始下一次傳輸,否則需要等到配置的0~7個(gè)保持時(shí)鐘之后Busy才會(huì)清除。BTB必須在NTC大于0時(shí)才能使能。

三. MDIO幀結(jié)構(gòu)

MDIO幀的一些特征:

MDC一般是1MHz~2.5MHz。

MDIO引腳需要一個(gè)1.5k歐姆的上拉電阻,以在空閑和周轉(zhuǎn)期間保持MDIO高電平。

MDC下降沿修改數(shù)據(jù),上升沿鎖存數(shù)據(jù),這樣使得數(shù)據(jù)的建立和保持時(shí)間都是半個(gè)周期。

高位先發(fā)送,高字節(jié)先發(fā)送。

參考

IEEE 802.3,Section 22.2.4.5

**3.1 **Clause 45

SMA支持在該模式下操作時(shí)的讀后遞增地址。

MAC_MDIO_Address 的C45E 配置為1使用C45.

字段描述
IDLEgmii_mdc_o無時(shí)鐘,MDIO處于高阻態(tài)。通過外部MDIO上拉到高電平
PREAMBLE32 個(gè)連續(xù)的1,前導(dǎo)抑制模式則只有一個(gè)bit。
START包開始2’b00
OPCODE操作碼■ 2’b00 讀寫地址寄存器■ 2’b01 讀寫數(shù)據(jù), 讀寫完地址不遞增■ 2’b10 讀寫數(shù)據(jù),讀寫完地址自動(dòng)遞增■ 2’b11 讀寫數(shù)據(jù),僅寫完地址自動(dòng)遞增
PHY ADDR5-bit 的PHY地址,可以編碼最多32 個(gè)PHY。
DEV ADDR5-bit 設(shè)備地址可以編碼32個(gè)設(shè)備。
TATurnaround寄存器地址和幀的數(shù)據(jù)字段之間的2位時(shí)間間隔,以避免在讀取事務(wù)期間發(fā)生爭用。■ 2’bZ0: 讀時(shí) 第一個(gè)bit MAC和PHY都處于高組態(tài),第二個(gè)bit是PHY拉低。■ 2’b10: 寫時(shí) 10都是MAC驅(qū)動(dòng)。Z 表示三態(tài)
DATA/ADDRESS16-bit 值: 對于地址周期(OPCODE = 2'b00), 表示下一個(gè)周期需要訪問的寄存器地址. 對于數(shù)據(jù)寫周期,表示需要寫入寄存器的數(shù)據(jù)內(nèi)容. 對于read,post-read遞增幀,表示從PHY讀出的寄存器內(nèi)容.

完成一次C45寄存器讀寫需要兩步,第一步發(fā)送地址包,第二步再讀寫

圖片

**3.2 ****Clause **22

MAC_MDIO_Address 的C45E 配置為0使用C22.

幀結(jié)構(gòu)如下

字段描述
IDLEgmii_mdc_o無時(shí)鐘,MDIO處于高阻態(tài)。通過外部MDIO上拉到高電平。
PREAMBLE32 個(gè)連續(xù)的1,前導(dǎo)抑制模式則只有一個(gè)bit。
START包開始2’b01
OPCODE■ 2’b01 寫■ 2’b10 讀
PHY ADDR5-bit 的PHY地址,可以編碼最多32 個(gè)PHY。
REG ADDR5-bit 寄存器地址可以編碼32個(gè)寄存器。尋址對應(yīng)指定MMD的某一個(gè)寄存器。
TATurnaround寄存器地址和幀的數(shù)據(jù)字段之間的2位時(shí)間間隔,以避免在讀取事務(wù)期間發(fā)生爭用?!?2’bZ0: 讀時(shí) 第一個(gè)bit MAC和PHY都處于高組態(tài),第二個(gè)bit是PHY拉低?!?2’b10: 寫時(shí) 10都是MAC驅(qū)動(dòng)。Z 表示三態(tài)
DATA16-bit 值:■ 寫時(shí)DWC_ether_qos 驅(qū)動(dòng)MDIO■ 讀時(shí)PHY 驅(qū)動(dòng)MDIO

完成C22讀寫只需要一步

圖片

讀寫波形如下

圖片

3.3使用C22模式訪問C45寄存器

使用C22訪問C45寄存器

參考https://www.ieee802.org/3/efm/public/nov02/oam/pannell_oam_1_1102.pdf

用13號(hào)寄存器作為命令寄存器,14號(hào)寄存器作為寄存器/數(shù)據(jù)寄存器

圖片

圖片

步驟如下,分為4步完成:

1.C22模式寫寄存器13,高兩位FN為00,低5位DEV設(shè)備地址。

2.C22模式將16位寄存器地址寫入14號(hào)寄存器。

3.C22模式寫寄存器13,高兩位FN為01或者10或者11,低5位DEV設(shè)備地址。

4.讀:轉(zhuǎn)至步驟5。寫:轉(zhuǎn)至步驟6

5.C22模式讀14號(hào)寄存器的16位內(nèi)容。

6.C22模式將16位寄存器內(nèi)容寫入14號(hào)寄存器。

四.相關(guān)寄存器

MDIO操作僅需要兩個(gè)寄存器

MAC_MDIO_Address和MAC_MDIO_Data

4.1 MAC_MDIO_Address

Offset: 0x200

PSE[27]: bit27,置位則只發(fā)送1bit的前導(dǎo),否則發(fā)送32位的前導(dǎo)

BTB **[26]: **bit26,NTC 不為0時(shí)生效,NTC為0時(shí)不能設(shè)置為1.

設(shè)置為1時(shí),NTC不為0時(shí),MDIO發(fā)送完幀不等NTC個(gè)時(shí)鐘就立即清除GB位,可以立即重新下一次讀寫。

設(shè)置為0,則等待NTC保持時(shí)鐘之后GB才清除。

**PA[25:21] **5位的PHY地址

RDA[22:16] 對于C22模式的寄存器地址,C45的設(shè)備地址MMD。

NTC[14:12] MDIO幀的發(fā)送完后,MDC再保持該配置個(gè)時(shí)鐘。

CR[11:8]:MDC時(shí)鐘選擇 一般配置為1~2.5MHz

0000: CSR clock = 60-100 MHz; MDC clock = CSR clock/42
0001: CSR clock = 100-150 MHz; MDC clock = CSR clock/62
0010: CSR clock = 20-35 MHz; MDC clock = CSR clock/16
0011: CSR clock = 35-60 MHz; MDC clock = CSR clock/26
0100: CSR clock = 150-250 MHz; MDC clock = CSR clock/102
0101: CSR clock = 250-300 MHz; MDC clock = CSR clock/124
0110, 0111: Reserved

1000: CSR clock/4
1001: CSR clock/6
1010: CSR clock/8
1011: CSR clock/10
1100: CSR clock/12
1101: CSR clock/14
1110: CSR clock/16
1111: CSR clock/18

SKAP[4]:只有C45E使能時(shí)才有,置位時(shí)不發(fā)送地址包

GOC_1_0[3:2]:

00: Reserved
01: Write
10: Post Read Increment Address for Clause 45 PHY
11: Read

C45E[1]: 使能C45模式

GB[0]: 軟件寫1觸發(fā)讀寫操作,讀寫完硬件清零。

4.2 MAC_MDIO_Data

Offset: 0x204

圖片

RA[31:16]:C45E模式時(shí)指定16位寄存器地址。

GD[15:0]:讀出或者寫入寄存器的16位值。

五.MDIO讀寫驅(qū)動(dòng)

5.1 寄存器操作接口

實(shí)現(xiàn)基本的寄存器級(jí)別的操作接口,

后面再對關(guān)鍵參數(shù)MDC時(shí)鐘,NTC,PSE等測試,抓取波形進(jìn)行驗(yàn)證。

/*
 * GB_MASK bit0 置位,觸發(fā)MDIO操作, 操作完GB_MASK位硬件清零
 */
GMAC_INLINE int gmac_cfg_mdio_address(uint8_t id, uint8_t pse, uint8_t btb, uint8_t phyadd, 
                                    uint8_t reg_dev, uint8_t ntc, uint32_t csrclk,
                                    uint8_t skap, uint8_t cmd, uint8_t c45)
{
    (void)id;
    uint32_t tmp = 0;
    uint8_t csr = GMAC_CLK_60_100MHZ;
    if(csrclk >= 250000000ul)
    {
        csr = GMAC_CLK_250_300MHZ;
    }
    else if(csrclk >= 150000000ul)
    {
        csr = GMAC_CLK_150_250MHZ;
    }
    else if(csrclk >= 100000000ul)
    {
        csr = GMAC_CLK_100_150MHZ;
    }
    else if(csrclk >= 60000000ul)
    {
        csr = GMAC_CLK_60_100MHZ;
    }
    else if(csrclk >= 35000000ul)
    {
        csr = GMAC_CLK_35_60MHZ;
    }
    else
    {
        csr = GMAC_CLK_20_35MHZ;
    }
    tmp = ((uint32_t)csr < < CR_OFFSET) 
            | ((uint32_t)cmd < < GOC_0_OFFSET) 
            | (uint32_t)GB_MASK 
            | (((uint32_t)reg_dev < < RDA_OFFSET) & RDA_MASK) 
            | (((uint32_t)phyadd < < PA_OFFSET) & PA_MASK)
            | (((uint32_t)pse < < PSE_OFFSET) & PSE_MASK)
            | (((uint32_t)btb < < BTB_OFFSET) & BTB_MASK)
            | (((uint32_t)ntc < < NTC_OFFSET) & NTC_MASK)
            | (((uint32_t)skap < < SKAP_OFFSET) & SKAP_MASK)
            | (((uint32_t)c45 < < C45E_OFFSET) & C45E_MASK);
    GMAC_WRITE_REG(CFG_MAC_MDIO_ADDRESS_ADDR, tmp);
    return 0;
}


GMAC_INLINE int gmac_get_mdio_data(uint8_t id, uint16_t* data, uint16_t* regaddr)
{
    (void)id;
    uint32_t tmp = 0;
    tmp = GMAC_READ_REG(CFG_MAC_MDIO_DATA_ADDR);
    if(data != (void*)0)
    {
        *data = (tmp & GD_MASK) > > GD_OFFSET;
    }
    if(regaddr != (void*)0)
    {
        *regaddr = (tmp & REG_ADDR_MASK) > > REG_ADDR_OFFSET;
    }
    return 0;
}


GMAC_INLINE int gmac_set_mdio_data(uint8_t id, uint16_t data, uint16_t regaddr)
{
    (void)id;
    uint32_t tmp = 0;
    tmp = (((uint32_t)regaddr<

1 MDC時(shí)鐘

我這里時(shí)鐘是60MHz,設(shè)置CR為0,即分頻42,理論上60/42=1.429MHz

實(shí)測MDC頻率為1.449MHz

圖片

圖片

設(shè)置CR為3,即分頻26,理論上60/26=2.31MHz

實(shí)測MDC頻率為2.326MHz

圖片

圖片

2 NTC

NTC=0,幀發(fā)送完后MDC立即結(jié)束

圖片

圖片

NTC=7,幀發(fā)送完后MDC保持7個(gè)CLK

圖片

圖片

3 PSE

PSE=0,發(fā)送32個(gè)前導(dǎo)1

圖片

圖片

PSE=1,發(fā)送1個(gè)前導(dǎo)1,可以看到這個(gè)PHY是不支持前導(dǎo)抑制的,即發(fā)送1個(gè)前導(dǎo)時(shí)不能讀寫。

圖片

5.2 C22讀寫

驅(qū)動(dòng)代碼如下

int iot_gmac_mdio_read(uint8_t id, uint8_t phyadd, uint8_t reg, uint16_t *data, uint32_t clk)
{
    int timeout = IOT_GMAC_MDIO_TIMEOUT;
    while(gmac_is_mdio_busy(id) && (timeout-- > 0));
    if(timeout <= 0)
    {
        return -1;
    }


    gmac_cfg_mdio_address(id, 0, 0, phyadd, reg, 0, clk, 0, GMAC_CMD_PHY_RD, 0);


    timeout = IOT_GMAC_MDIO_TIMEOUT;
    while(gmac_is_mdio_busy(id) && (timeout-- > 0));
    if(timeout <= 0)
    {
        return -1;
    }


    gmac_get_mdio_data(id, data, (void*)0);
    return 0;
}


int iot_gmac_mdio_write(uint8_t id, uint8_t phyadd, uint8_t reg, uint16_t data, uint32_t clk)
{
    int timeout = IOT_GMAC_MDIO_TIMEOUT;
    while(gmac_is_mdio_busy(id) && (timeout-- > 0));
    if(timeout <= 0)
    {
        return -1;
    }


    gmac_set_mdio_data(id, data, 0);
    gmac_cfg_mdio_address(id, 0, 0, phyadd, reg, 0, clk, 0, GMAC_CMD_PHY_WR, 0);
    timeout = IOT_GMAC_MDIO_TIMEOUT;
    while(gmac_is_mdio_busy(id) && (timeout-- > 0));
    if(timeout <= 0)
    {
        return -1;
    }


    return 0;
}

如下是往0號(hào)寄存器寫0x9040即Reset軟復(fù)位PHY

圖片

如下是讀0號(hào)寄存器為0x1040即Reset軟復(fù)位PHY完成,硬件自清零了Reset位。

圖片

5.3 C45讀寫

驅(qū)動(dòng)代碼如下

int iot_gmac_mdio_readc45(uint8_t id, uint8_t phyadd, uint8_t dev, uint16_t reg, uint16_t *data, uint32_t clk)
{
    int timeout = IOT_GMAC_MDIO_TIMEOUT;
    while(gmac_is_mdio_busy(id) && (timeout-- > 0));
    if(timeout <= 0)
    {
        return -1;
    }
    gmac_set_mdio_data(id, 0, reg);
    gmac_cfg_mdio_address(id, 0, 0, phyadd, dev, 0, clk, 0, GMAC_CMD_PHY_RD, 1);


    timeout = IOT_GMAC_MDIO_TIMEOUT;
    while(gmac_is_mdio_busy(id) && (timeout-- > 0));
    if(timeout <= 0)
    {
        return -1;
    }


    gmac_get_mdio_data(id, data, (void*)0);
    return 0;
}


int iot_gmac_mdio_writec45(uint8_t id, uint8_t phyadd, uint8_t dev, uint16_t reg, uint16_t data, uint32_t clk)
{
    int timeout = IOT_GMAC_MDIO_TIMEOUT;
    while(gmac_is_mdio_busy(id) && (timeout-- > 0));
    if(timeout <= 0)
    {
        return -1;
    }


    gmac_set_mdio_data(id, data, reg);
    gmac_cfg_mdio_address(id, 0, 0, phyadd, dev, 0, clk, 0, GMAC_CMD_PHY_WR, 1);
    timeout = IOT_GMAC_MDIO_TIMEOUT;
    while(gmac_is_mdio_busy(id) && (timeout-- > 0));
    if(timeout <= 0)
    {
        return -1;
    }


    return 0;
}

波形如下:兩個(gè)包,一個(gè)是地址包,一個(gè)是數(shù)據(jù)包

圖片

圖片

5.4 C22模式讀寫C45寄存器

以下是RTL8211F的MMD寄存器,不支持直接C45模式,但是支持C22模式讀C45寄存器,

通過13和14號(hào)寄存器實(shí)現(xiàn)。

圖片

驅(qū)動(dòng)代碼如下

int dwc_mdio_c22readc45(uint8_t id, uint8_t phyadd, uint8_t dev, uint16_t reg, uint16_t *data, uint32_t clk)
{
    iot_gmac_mdio_write(id, phyadd, 13, (0< < 14) | dev, clk);
    iot_gmac_mdio_write(id, phyadd, 14, reg, clk);
    iot_gmac_mdio_write(id, phyadd, 13, (1u< < 14) | dev, clk);
    iot_gmac_mdio_read(id, phyadd, 14, data, clk);
    return 0;
}


int dwc_mdio_c22writec45(uint8_t id, uint8_t phyadd, uint8_t dev, uint16_t reg, uint16_t data, uint32_t clk)
{
    iot_gmac_mdio_write(id, phyadd, 13, (0< < 14) | dev, clk);
    iot_gmac_mdio_write(id, phyadd, 14, reg, clk);
    iot_gmac_mdio_write(id, phyadd, 13, (1u< < 14) | dev, clk);
    iot_gmac_mdio_write(id, phyadd, 14, data, clk);
    return 0;
}

測試代碼如下

uint16_t c45reg = 0;
    dwc_mdio_c22writec45(p_ctrl.unit,p_ctrl.phy_addr,3,0,1u< < 10,p_ctrl.clk);
    dwc_mdio_c22readc45(p_ctrl.unit,p_ctrl.phy_addr,3,0,&c45reg,p_ctrl.clk);
    printf("PC1R=%xrn",c45reg);
    c45reg = 0;
    dwc_mdio_c22readc45(p_ctrl.unit,p_ctrl.phy_addr,3,1,&c45reg,p_ctrl.clk);
    printf("PS1R=%xrn",c45reg);
    c45reg = 0;
    dwc_mdio_c22readc45(p_ctrl.unit,p_ctrl.phy_addr,3,20,&c45reg,p_ctrl.clk);
    printf("EEECR=%xrn",c45reg);
    c45reg = 0;
    dwc_mdio_c22readc45(p_ctrl.unit,p_ctrl.phy_addr,3,22,&c45reg,p_ctrl.clk);
    printf("EEEWER=%xrn",c45reg);
    c45reg = 0;
    dwc_mdio_c22readc45(p_ctrl.unit,p_ctrl.phy_addr,7,60,&c45reg,p_ctrl.clk);
    printf("EEEAR=%xrn",c45reg);
    c45reg = 0;
    dwc_mdio_c22readc45(p_ctrl.unit,p_ctrl.phy_addr,7,61,&c45reg,p_ctrl.clk);
    printf("EEELPAR=%xrn",c45reg);

打印結(jié)果如下

可以看到PC1R的bit10設(shè)置為了1,其他寄存器對照手冊可以看到都是默認(rèn)值

圖片

波形如下

寫4步完成

圖片

讀4步完成

圖片

六. 總結(jié)

以太網(wǎng)驅(qū)動(dòng)編寫調(diào)試的第一步都是調(diào)通MDIO接口,重點(diǎn)是要去抓取信號(hào)分析實(shí)際的波形,比如寄存器的每一個(gè)參數(shù)對應(yīng)波形的什么變化,這在驅(qū)動(dòng)編寫調(diào)試中很重要,一定要對寄存器每一個(gè)bit的功能都非常清晰。

審核編輯 黃宇

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

    關(guān)注

    8

    文章

    6049

    瀏覽量

    130786
  • 嵌入式
    +關(guān)注

    關(guān)注

    5188

    文章

    20181

    瀏覽量

    329290
  • 以太網(wǎng)
    +關(guān)注

    關(guān)注

    41

    文章

    5934

    瀏覽量

    179676
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5590

    瀏覽量

    129166
  • 驅(qū)動(dòng)
    +關(guān)注

    關(guān)注

    12

    文章

    1929

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    克服全車以太網(wǎng)汽車架構(gòu)中的 QoS 挑戰(zhàn)

    這份報(bào)告由雷諾Ampere汽車公司和RTaW公司在2025年10月15日法國圖盧茲舉辦的IEEEEthernet&IP@AutomotiveTechnologyDay上聯(lián)合發(fā)表,主題為“OvercomingQoSChallengesinaFullAutomotiveEthernetArchitecture(克服全車以太網(wǎng)
    發(fā)表于 10-29 15:47 ?1次下載

    車載以太網(wǎng)測試典型問題三則

    北匯信息作為國內(nèi)外眾多OEM的第三方認(rèn)證測試服務(wù)商,積累了大量的測試服務(wù)經(jīng)驗(yàn),分享三則車載以太網(wǎng)測試典型問題。
    的頭像 發(fā)表于 10-11 15:42 ?1784次閱讀
    車載<b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>測試</b>典型問題三則

    移植網(wǎng)絡(luò)PHY芯片驅(qū)動(dòng),如何融入 rt-thread 的網(wǎng)絡(luò)體系,并添加新的以太網(wǎng)類型的報(bào)文?

    PHY 芯片最底層收發(fā)以太網(wǎng)報(bào)文,有可能組成 VLAN 網(wǎng)絡(luò)); 我要實(shí)現(xiàn)一個(gè)新的以太網(wǎng)類型報(bào)文(HPGP報(bào)文,以太網(wǎng)報(bào)文類型為 0x88E1),要求能在應(yīng)用層收發(fā)該以太網(wǎng)類型報(bào)文,
    發(fā)表于 09-22 06:11

    STM32H743以太網(wǎng)驅(qū)動(dòng)移植異常怎么解決?

    單片機(jī):STM32H743II PHY:LAN8720 開發(fā)環(huán)境:Keil 移植以太網(wǎng)驅(qū)動(dòng)時(shí),遇到異常。 使用的drv_eth.c drv_eth.h的版本信息如下圖所示, 編譯運(yùn)行之后,顯示的異常如下圖所示, 使用ifco
    發(fā)表于 09-10 07:52

    如何使用 M252 PSIO 模擬 MDIO 波形以控制以太網(wǎng) PHY (IP101克)?

    使用 M252 PSIO 模擬 MDIO 波形以控制以太網(wǎng) PHY (IP101克)。
    發(fā)表于 08-19 08:13

    以太網(wǎng)模塊被忽視的角落 #電磁兼容EMC #電子工程師 #電子元器件 #磁珠 #濾波電容 #以太網(wǎng)

    以太網(wǎng)
    深圳市韜略科技有限公司
    發(fā)布于 :2025年07月25日 17:35:35

    飛凌嵌入式ElfBoard ELF 1板卡-uboot移植之網(wǎng)絡(luò)修改-MDIO接口

    前面已經(jīng)說了,MDIO原本是為MII總線接口定義的。MII用于連接MAC和PHY,包含兩種信號(hào)接口,一個(gè)數(shù)據(jù)接口用于MAC和PHY之間接收和發(fā)送以太網(wǎng)幀數(shù)據(jù),一個(gè)PHY管理接口,即MDIO,用于讀寫
    發(fā)表于 06-16 09:39

    以太網(wǎng)入門:從零開始,掌握以太網(wǎng)基礎(chǔ)知識(shí)!

    以太網(wǎng)作為現(xiàn)代通信技術(shù)的基石,其重要性不言而喻。無論是日常網(wǎng)絡(luò)應(yīng)用,還是AI對高速大帶寬網(wǎng)絡(luò)的需求,以太網(wǎng)都扮演著不可或缺的角色。本文將從零開始,帶您了解以太網(wǎng)的基礎(chǔ)知識(shí),幫助您快速入門。什么是
    的頭像 發(fā)表于 06-09 14:00 ?4117次閱讀
    <b class='flag-5'>以太網(wǎng)</b>入門:從零開始,掌握<b class='flag-5'>以太網(wǎng)</b>基礎(chǔ)知識(shí)!

    Microchip LAN9211-ABZJ 集成 10/100 以太網(wǎng) PHY的以太網(wǎng)控制器

    Microchip LAN9211-ABZJ 集成 10/100 以太網(wǎng) PHY的以太網(wǎng)控制器
    的頭像 發(fā)表于 06-04 14:56 ?840次閱讀
    Microchip LAN9211-ABZJ 集成 10/100 <b class='flag-5'>以太網(wǎng)</b> PHY的<b class='flag-5'>以太網(wǎng)</b>控制器

    雙通道CAN轉(zhuǎn)以太網(wǎng)#CAN轉(zhuǎn)以太網(wǎng)#三格電子

    以太網(wǎng)
    三格電子科技
    發(fā)布于 :2025年05月12日 13:17:05

    廣成科技CAN轉(zhuǎn)以太網(wǎng)模塊的作用和應(yīng)用

    CAN轉(zhuǎn)以太網(wǎng)模塊是一類能夠?qū)AN總線數(shù)據(jù)轉(zhuǎn)換為以太網(wǎng)數(shù)據(jù)的設(shè)備,通常用于實(shí)現(xiàn)CAN總線與以太網(wǎng)總線之間的互聯(lián)互通。在智能鎖柜和智能文件交換箱中,CAN轉(zhuǎn)以太網(wǎng)模塊可以實(shí)現(xiàn)將本地CA
    的頭像 發(fā)表于 03-20 13:58 ?1033次閱讀
    廣成科技CAN轉(zhuǎn)<b class='flag-5'>以太網(wǎng)</b>模塊的作用和應(yīng)用

    TC10以太網(wǎng)休眠喚醒測試用例

    在上一篇文章中,我們了解了TC10規(guī)范的內(nèi)容,并掌握了基于以太網(wǎng)鏈路的物理層休眠喚醒機(jī)制。為了確保不同廠商的設(shè)備在以太網(wǎng)休眠喚醒功能上的互操作性,OPEN Alliance制定了詳細(xì)的測試規(guī)范。
    的頭像 發(fā)表于 02-13 09:05 ?993次閱讀
    TC10<b class='flag-5'>以太網(wǎng)</b>休眠喚醒<b class='flag-5'>測試</b>用例

    是德科技與KD攜手開發(fā)車載以太網(wǎng)測試解決方案

    是德科技(Keysight Technologies,Inc.)與無晶圓廠半導(dǎo)體公司 KD 達(dá)成合作,雙方將共同開發(fā)針對多千兆位光纖車載以太網(wǎng)物理層的完整測試方案。是德科技與 KD 聯(lián)合開發(fā)
    的頭像 發(fā)表于 02-12 14:14 ?779次閱讀

    EE-315:更改Blackfin處理器以太網(wǎng)驅(qū)動(dòng)程序中的PHY

    電子發(fā)燒友網(wǎng)站提供《EE-315:更改Blackfin處理器以太網(wǎng)驅(qū)動(dòng)程序中的PHY.pdf》資料免費(fèi)下載
    發(fā)表于 01-07 14:15 ?0次下載
    EE-315:更改Blackfin處理器<b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>驅(qū)動(dòng)</b>程序中的PHY