欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

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

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

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

以太網(wǎng)PHY寄存器分析 以太網(wǎng)PHY驅(qū)動(dòng)軟件配置

瑞薩MCU小百科 ? 來(lái)源:瑞薩嵌入式小百科 ? 2024-02-22 12:17 ? 次閱讀

我們對(duì)g_ethercat_ssc_port0_ext_cfg這個(gè)全局變量深入追蹤,其成員變量 g_ether_PHY0,正好是一個(gè)PHY實(shí)例的詳細(xì)描述體。

/* Instance structure to use this module. */
const ether_PHY_instance_t g_ether_PHY0 =
{
  .p_ctrl    = &g_ether_PHY0_ctrl,
  .p_cfg     = &g_ether_PHY0_cfg,
  .p_api     = &g_ether_PHY_on_ether_PHY
};

其中g(shù)_ether_PHY0_cfg是pyh實(shí)例的配置結(jié)構(gòu)體:

const ether_PHY_cfg_t g_ether_PHY0_cfg =
{


  .channel          = 0,
  .PHY_lsi_address      = 0,
  .PHY_reset_wait_time    = 0x00020000,
  .mii_bit_access_wait_time = 0,             // Unused
  .flow_control       = ETHER_PHY_FLOW_CONTROL_DISABLE,
  .mii_type         = (ether_PHY_mii_type_t) 0, // Unused
  .p_context         = NULL,
  .p_extend         = &g_ether_PHY0_extend
};

這里又通過(guò)p_extend 做了擴(kuò)展配置(其實(shí)可以合并在一起)如下所示:

const ether_PHY_extend_cfg_t g_ether_PHY0_extend =
{
  .port_type     = ETHER_PHY_PORT_TYPE_ETHER_CAT,
  .PHY_chip      = (ether_PHY_chip_t) ETHER_PHY_CHIP_VSC8541,
  .mdio_type     = ETHER_PHY_MDIO_GMAC,


  .bps        = ETHER_PHY_SPEED_100,
  .duplex       = ETHER_PHY_DUPLEX_FULL,
  .auto_negotiation  = ETHER_PHY_AUTO_NEGOTIATION_ON,


  .PHY_reset_pin   = BSP_IO_PORT_20_PIN_7,
  .PHY_reset_time   = 15000,


  .p_selector_instance = (ether_selector_instance_t *)&g_ether_selector0,
};

可以看到上面的擴(kuò)展配置當(dāng)中,PHY的具體硬件型號(hào)都已經(jīng)列出,如PHY_chip = (ether_PHY_chip_t) ETHER_PHY_CHIP_;

可以看到在示例代碼當(dāng)中已經(jīng)支持的PHY如下所示:

/** Identify PHY-LSI */
typedef enum e_ether_PHY_chip
{
  ETHER_PHY_CHIP_VSC8541 = (1 << 0), ///< VSC8541
 ? ?ETHER_PHY_CHIP_KSZ9131 = (1 << 1), ///< KSZ9131
 ? ?ETHER_PHY_CHIP_KSZ9031 = (1 << 2), ///< KSZ9031
 ? ?ETHER_PHY_CHIP_KSZ8081 = (1 << 3), ///< KSZ8081
 ? ?ETHER_PHY_CHIP_KSZ8041 = (1 << 4) ?///< KSZ8041
} ether_PHY_chip_t;

這里具體看一下 g_ether_selector0 這個(gè) ether_selector_instance_t 類型的全局指針,指向 selector driver實(shí)例的成員變量:

typedef struct st_ether_selector_instance
{
  ether_selector_ctrl_t   * p_ctrl; ///< Pointer to the control structure for this instance
 ? ?ether_selector_cfg_t const * p_cfg; ?///< Pointer to the configuration structure for this instance
 ? ?ether_selector_api_t const * p_api; ?///< Pointer to the API structure for this instance
} ether_selector_instance_t;

這又是一個(gè)類似的結(jié)構(gòu)體,通過(guò)三個(gè)指針來(lái)分別指向結(jié)構(gòu)本身,selector的具體配置,和配置selector過(guò)程中所需要用的的成員方法api.

看一下selector的具體配置信息

typedef struct st_ether_selector_cfg
{
  uint8_t port;               ///< Port number
 ? ?ether_selector_PHYlink_polarity_t PHYlink; ///< PHY link signal polarity


 ? ?ether_selector_interface_t interface; ? ? ?///< Converter mode
 ? ?ether_selector_speed_t ? ? speed; ? ? ? ? ?///< Converter Speed
 ? ?ether_selector_duplex_t ? ?duplex; ? ? ? ? ///< Converter Duplex
 ? ?ether_selector_ref_clock_t ref_clock; ? ? ?///< Converter REF_CLK
 ? ?void const ? ? ? ? ? ? ? * p_extend; ? ? ? ///< Placeholder for user extension.
} ether_selector_cfg_t;

可以看到selector 對(duì)應(yīng)的端口號(hào),PHY連接信號(hào)對(duì)應(yīng)的極性,接口模式,速率,全雙工,以及外部時(shí)鐘輸入。再看一下配置selector的過(guò)程中所需要用到的API函數(shù):

const ether_selector_api_t g_ether_selector_on_ether_selector =
{
  .open     = R_ETHER_SELECTOR_Open,
  .converterSet = R_ETHER_SELECTOR_ConverterSet,
  .close    = R_ETHER_SELECTOR_Close,
  .versionGet  = R_ETHER_SELECTOR_VersionGet
};

其最主要的成員方法就是R_ETHER_SELECTOR_Open做了些什么:

先初始化ETHER_SELECTOR

 /* One time initialization for all ETHER_SELECTOR instances. */
  r_ether_selector_state_initialize();


  /* Unlock write access protection for Ethernet subsystem registers */
  r_ether_selector_reg_protection_disable(p_reg_ethss);
  
  /* Set the function of Ethernet ports. */
  sw_mode = ETHER_SELECTOR_CFG_MODE;
  p_reg_ethss->MODCTRL_b.SW_MODE = sw_mode & ETHER_SELECTOR_MODCTRL_BIT_SWMODE_MASK;
  
  /* Set the MAC of all port for half-duplex. */
  p_reg_ethss->SWDUPC_b.PHY_DUPLEX = 0;
  
  /* Set all Ethernet switch port to select not use 10Mbps. */
  p_reg_ethss->SWCTRL_b.SET10 = 0;

根據(jù)端口號(hào)來(lái)選擇對(duì)應(yīng)控制寄存器

/* Set RGMII/RMII Converter configuration */
  switch (port)
  {
    case 0:
    {
      p_reg_convctrl = (uint32_t *) &p_reg_ethss->CONVCTRL[0];
      break;
    }


    case 1:
    {
      p_reg_convctrl = (uint32_t *) &p_reg_ethss->CONVCTRL[1];
      break;
    }


    case 2:
    default:
    {
      p_reg_convctrl = (uint32_t *) &p_reg_ethss->CONVCTRL[2];
      break;
    }
  }

根據(jù)指向selector的配置信息:

const ether_selector_cfg_t g_ether_selector0_cfg =
{
  .port           = 0,
  .PHYlink          = ETHER_SELECTOR_PHYLINK_POLARITY_LOW,
  .interface         = ETHER_SELECTOR_INTERFACE_RGMII,
  .speed           = ETHER_SELECTOR_SPEED_100MBPS,
  .duplex          = ETHER_SELECTOR_DUPLEX_FULL,
  .ref_clock         = ETHER_SELECTOR_REF_CLOCK_INPUT,
  .p_extend         = NULL,
};

來(lái)對(duì)CONVCTRL[port_number]寄存器做相應(yīng)的配置

2eb4a366-d138-11ee-a297-92fbcf53809c.png

這里結(jié)合RZ/T2M的用戶手冊(cè),很容易理解其中的意思:

2ec2147e-d138-11ee-a297-92fbcf53809c.png

結(jié)合代碼來(lái)看,總體ETHER_SELECTOR 的驅(qū)動(dòng)的配置流程圖臺(tái)下所示:

2edfe864-d138-11ee-a297-92fbcf53809c.png

在對(duì)ETHER_SELECTOR驅(qū)動(dòng)做完配置后,下面具體看一下對(duì)ETHER_PHY_CHIP這個(gè)PHY,代碼具體做了哪些操作:

首先是做初始化:

2ef2df46-d138-11ee-a297-92fbcf53809c.png

oid ether_PHY_targets_initialize_vsc8541 (ether_PHY_instance_ctrl_t * p_instance_ctrl)
{
  /* Vendor Specific PHY Registers */
 #define ETHER_PHY_REG_LED_MODE_SELECT         (0x1D)
 #define ETHER_PHY_REG_LED_BEHAVIOR          (0x1E)
 #define ETHER_PHY_REG_EXTEND_GPIO_PAGE        (0x1F)
...

這個(gè)初始化函數(shù),并沒(méi)有對(duì)IEEE 標(biāo)準(zhǔn)規(guī)定的16個(gè)寄存器做讀寫(xiě)操作,只對(duì)廠商自定義的寄存器做了配置。初始化完成之后,對(duì)是否打開(kāi)自動(dòng)協(xié)商的功能對(duì)PHY進(jìn)行了讀寫(xiě):

2efeb3d4-d138-11ee-a297-92fbcf53809c.png

2f107bb4-d138-11ee-a297-92fbcf53809c.png

這里可以看到對(duì)PHY芯生來(lái)說(shuō),需要配置的寄存器并不是很多,大多數(shù)情況下,把自動(dòng)協(xié)商寄存器配置好,就可以了。除此之后就是廠商自定義的寄存器的一些自定義的功能。這部分功能需要結(jié)合用戶手冊(cè)來(lái)理解和使用,大部分也是用來(lái)調(diào)試和指示的作用以及一些IEEE基本標(biāo)準(zhǔn)之外的特色功能,比如節(jié)能標(biāo)準(zhǔn)之類的。

對(duì)于用戶說(shuō)來(lái),搞清楚數(shù)據(jù)結(jié)構(gòu)之間的關(guān)聯(lián),剩下的就是驅(qū)動(dòng)代碼的執(zhí)行邏輯,考慮到執(zhí)行邏輯并不復(fù)雜,這里不展開(kāi)來(lái)說(shuō)。用戶可以參考錄屏材料進(jìn)一步深入了解。

其它

經(jīng)過(guò)驗(yàn)證的PHY芯片列表:

2f2436d6-d138-11ee-a297-92fbcf53809c.jpg






審核編輯:劉清

聲明:本文內(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)投訴
  • 以太網(wǎng)
    +關(guān)注

    關(guān)注

    40

    文章

    5465

    瀏覽量

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

    關(guān)注

    31

    文章

    5369

    瀏覽量

    121275
  • PHY
    PHY
    +關(guān)注

    關(guān)注

    2

    文章

    305

    瀏覽量

    51883

原文標(biāo)題:工業(yè)以太網(wǎng)PHY驅(qū)動(dòng)適配參考文檔(完結(jié)篇)

文章出處:【微信號(hào):瑞薩MCU小百科,微信公眾號(hào):瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何對(duì)以太網(wǎng)PHY芯片的rmii pin腳進(jìn)行配置

    如何對(duì)以太網(wǎng)PHY芯片的時(shí)鐘進(jìn)行配置?如何對(duì)以太網(wǎng)PHY芯片的gmac進(jìn)行配置?如何對(duì)
    發(fā)表于 02-21 06:54

    RK3288搭配以太網(wǎng)PHY芯片需要注意哪些

    (1)以太網(wǎng)PHY芯片驅(qū)動(dòng)及接口瑞芯微在設(shè)計(jì)RK 系列主控芯片時(shí),有內(nèi)置以太網(wǎng)MAC 控制,通常只需要搭配一顆
    發(fā)表于 08-31 17:15

    車載以太網(wǎng)MAC和PHY的問(wèn)題詳解

    問(wèn):如何實(shí)現(xiàn)單片 以太網(wǎng)微控制 ?答:訣竅是將微控制、以太網(wǎng) 媒體接入控制 (MAC )和物理接口收發(fā)
    發(fā)表于 06-02 08:00 ?5次下載
    車載<b class='flag-5'>以太網(wǎng)</b>MAC和<b class='flag-5'>PHY</b>的問(wèn)題詳解

    AN-2047:配置ADIN1300以太網(wǎng)PHY

    AN-2047:配置ADIN1300以太網(wǎng)PHY
    發(fā)表于 03-22 21:57 ?1次下載
    AN-2047:<b class='flag-5'>配置</b>ADIN1300<b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>PHY</b>

    AN-2043:配置ADIN1200以太網(wǎng)PHY

    AN-2043:配置ADIN1200以太網(wǎng)PHY
    發(fā)表于 03-22 21:58 ?10次下載
    AN-2043:<b class='flag-5'>配置</b>ADIN1200<b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>PHY</b>

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

    EE-315:更改Blackfin?處理以太網(wǎng)驅(qū)動(dòng)程序中的PHY
    發(fā)表于 04-25 09:51 ?8次下載
    EE-315:更改Blackfin?處理<b class='flag-5'>器</b>的<b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>驅(qū)動(dòng)</b>程序中的<b class='flag-5'>PHY</b>

    車載以太網(wǎng)PHY標(biāo)準(zhǔn)分布

    車載以太網(wǎng)標(biāo)準(zhǔn)分物理層PHY和鏈路層兩大類,TSN標(biāo)準(zhǔn)主要在第二層的鏈路層。車載以太網(wǎng)PHY標(biāo)準(zhǔn)主要是制定單對(duì)雙絞線標(biāo)準(zhǔn),傳統(tǒng)以太網(wǎng)與車載
    的頭像 發(fā)表于 06-14 11:18 ?5066次閱讀

    簡(jiǎn)化您的以太網(wǎng)設(shè)計(jì),第1部分:以太網(wǎng)PHY基礎(chǔ)知識(shí)和選擇過(guò)程

    簡(jiǎn)化您的以太網(wǎng)設(shè)計(jì),第1部分:以太網(wǎng)PHY基礎(chǔ)知識(shí)和選擇過(guò)程
    發(fā)表于 10-31 08:23 ?1次下載
    簡(jiǎn)化您的<b class='flag-5'>以太網(wǎng)</b>設(shè)計(jì),第1部分:<b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>PHY</b>基礎(chǔ)知識(shí)和選擇過(guò)程

    選擇以太網(wǎng)PHY時(shí)的重要因素

    以太網(wǎng)是 IEEE 802.3 中規(guī)定的接口規(guī)范。IEEE 802.3 的元素之一是以太網(wǎng)物理 (PHY) 層。它是用于發(fā)送和接收數(shù)據(jù)或以太網(wǎng)幀的收發(fā)
    的頭像 發(fā)表于 12-14 11:43 ?1172次閱讀
    選擇<b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>PHY</b>時(shí)的重要因素

    如何選擇適合的以太網(wǎng)PHY

    以太網(wǎng)是IEEE 802.3中規(guī)定的一種接口規(guī)范。以太網(wǎng)物理(PHY)層是IEEE 802.3的其中一個(gè)元素。它是一種收發(fā)組件,用于發(fā)送和接收數(shù)據(jù)或
    的頭像 發(fā)表于 02-14 09:36 ?1289次閱讀
    如何選擇適合的<b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>PHY</b>

    以太網(wǎng)PHY的功能和選擇

    以太網(wǎng) PHY具有兩個(gè)主要功能。
    的頭像 發(fā)表于 05-11 16:46 ?1691次閱讀
    <b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>PHY</b>的功能和選擇

    還在為以太網(wǎng)PHY缺芯改版煩惱嗎?

    以太網(wǎng)PHY芯片使用范圍廣泛,但在缺“芯”大環(huán)境下,用戶面臨的真實(shí)痛點(diǎn)與困境卻是:產(chǎn)品成熟,達(dá)到工業(yè)級(jí)標(biāo)準(zhǔn)的PHY芯片供貨不穩(wěn)定。如何換“芯”而不必硬件改版?如何簡(jiǎn)化設(shè)計(jì)?如何輕松全國(guó)產(chǎn)化呢?近兩年
    的頭像 發(fā)表于 09-06 10:09 ?1589次閱讀
    還在為<b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>PHY</b>缺芯改版煩惱嗎?

    以太網(wǎng) PHY 的功能和選擇

    以太網(wǎng) PHY 3具有兩個(gè)主要功能
    的頭像 發(fā)表于 07-14 15:52 ?1300次閱讀
    <b class='flag-5'>以太網(wǎng)</b> <b class='flag-5'>PHY</b> 的功能和選擇

    更換不同的以太網(wǎng)PHY

    電子發(fā)燒友網(wǎng)站提供《更換不同的以太網(wǎng)PHY.pdf》資料免費(fèi)下載
    發(fā)表于 07-31 14:45 ?3次下載
    更換不同的<b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>PHY</b>

    適用于工業(yè)應(yīng)用的使用MDIO的以太網(wǎng)PHY配置

    電子發(fā)燒友網(wǎng)站提供《適用于工業(yè)應(yīng)用的使用MDIO的以太網(wǎng)PHY配置.pdf》資料免費(fèi)下載
    發(fā)表于 09-21 10:24 ?0次下載
    適用于工業(yè)應(yīng)用的使用MDIO的<b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>PHY</b><b class='flag-5'>配置</b>