单片机和PHY芯片连接时的注意事项

cathy的头像
cathy 发布于:周五, 10/11/2024 - 17:07 ,关键词:

随着物联网的快速发展,嵌入式设备终端联网已经是常态了,众多MCU厂商已经考虑到这个问题,因此很多MCU都集成了以太网 (ETH)控制器。

终端设备需要联网,仅MCU集成以太网控制器还不能联网,在应用时需搭配外部的以太网PHY芯片。
本文以瑞萨高性能32位RX72M系列单片机为例,给大家讲述一下单片机和PHY芯片连接时的注意事项。

一、所需引脚定义

首先,RX72M和PHY芯片整体的连接关系如下图所示:

1.png

图1  RX72M和PHY-LSI连接示例

由于RX72M具备两个ESC端口,因此需要连接两颗PHY芯片。

对于每个PHY芯片,和RX72M连接时用到的引脚如下:

2.png

图2  每个PHY芯片和RX72M引脚的连接

注:*的值为0或1。

两个PHY芯片共同连接到RX72M的引脚如下:

3.png

图3  两个PHY芯片和RX72M连接时共用的引脚

注:MDIO引脚需增加4.7K上拉电阻。

二、PHY接口模式选择

每个PHY芯片的Power on strapping要求不尽相同,由于RX72M ESC仅支持MII模式,因此引脚配置请参考MII对应的要求(下表中黄色高亮的部分):

4.png

图4  PHY芯片 Power on strapping - Mode Config

三、PHY地址配置

对于MCU和PHY芯片通信来说,PHY芯片地址是非常重要的参数。由于RX72M具备两个ESC端口,因此需要通过地址对两颗PHY芯片进行区分。此情况下,00b地址不可用。请从下表中的3种可选项中选取任意两个。

5.png

图5  PHY芯片 Power on strapping – Phy Address

由于需要利用两颗LED分别指示PHY芯片的Link和Activity状态,因此将Pin 10 RXD1设定为LED Mode,如下图所示:

6.png

图6  PHY芯片 Power on strapping – Wake On LAN Selection

四、系统设计流程

有了前面的基础信息,我们可以按照以下的步骤进行系统设计。

01、选取板上两颗PHY芯片的Phy Address,由此决定LED/PHYADD0和LED1/PHYADD1的初始电平。

02、依据Phy Address决定LED的有效驱动电平,设计RJ45接口电路。下图是RJ45的参考设计,保留了充分的冗余设计,可适配不同Phy Address选项。

7.png

图7  RJ45部分参考设计

03、以LED0(Green)表示Link Status,LED1(Yellow)表示Activity Status为例,不同的Phy Address选项下,对应了不同的电阻配置,参考下表中的说明调整RJ45中电阻的焊接/不焊接配置。

8.png

图8  Phy Address和电阻设定对照表

04、对照硬件设计,需要在RX72M Project的Smart Configurator中进行Phy Address和Link Signal Polarity设定,下图以Phy Address分别为2和3时的设定值。注意,Phy Address的低位(bit 0)决定了Link Signal Active Level。具体地说,如果bit 0为0,则表示上电时该引脚电平已为低,则PHY芯片Link起来时,该引脚电平会变高,因此Link Signal Active Level应设定为Active-High。bit 0为1时则刚好相反。

9.png

图9  PHY Address和Link Signal Polarity设定方式

五、软件引脚初始化

最后,需要在RX72M代码(r_ecat_setting_rx72m.c中函数esc_init())中增加对PHY芯片初始化的配置,使得PHY芯片按照设定的模式工作。

//配置phy0
write_phyreg((ECAT_CFG_CH0_PHY_ADDRESS - ECAT_CFG_PHY_OFFSET_ADDRESS), 0x1e, 0x40C0); // EXT 40C0
write_phyreg((ECAT_CFG_CH0_PHY_ADDRESS - ECAT_CFG_PHY_OFFSET_ADDRESS), 0x1f, 0x0030);
write_phyreg((ECAT_CFG_CH0_PHY_ADDRESS - ECAT_CFG_PHY_OFFSET_ADDRESS), 0x1e, 0x40C0);
write_phyreg((ECAT_CFG_CH0_PHY_ADDRESS - ECAT_CFG_PHY_OFFSET_ADDRESS), 0x1e, 0x40C3); // EXT 40C3
write_phyreg((ECAT_CFG_CH0_PHY_ADDRESS - ECAT_CFG_PHY_OFFSET_ADDRESS), 0x1f, 0x0320);
write_phyreg((ECAT_CFG_CH0_PHY_ADDRESS - ECAT_CFG_PHY_OFFSET_ADDRESS), 0x1e, 0x40C3);
//configuration for phy1
write_phyreg((ECAT_CFG_CH1_PHY_ADDRESS - ECAT_CFG_PHY_OFFSET_ADDRESS), 0x1e, 0x40C0); // EXT 40C0
write_phyreg((ECAT_CFG_CH1_PHY_ADDRESS - ECAT_CFG_PHY_OFFSET_ADDRESS), 0x1f, 0x0030);
write_phyreg((ECAT_CFG_CH1_PHY_ADDRESS - ECAT_CFG_PHY_OFFSET_ADDRESS), 0x1e, 0x40C0);
write_phyreg((ECAT_CFG_CH1_PHY_ADDRESS - ECAT_CFG_PHY_OFFSET_ADDRESS), 0x1e, 0x40C3); // EXT 40C3
write_phyreg((ECAT_CFG_CH1_PHY_ADDRESS - ECAT_CFG_PHY_OFFSET_ADDRESS), 0x1f, 0x0320);
write_phyreg((ECAT_CFG_CH1_PHY_ADDRESS - ECAT_CFG_PHY_OFFSET_ADDRESS), 0x1e, 0x40C3);

以上就是单片机RX72M单片机和PHY芯片连接时的注意事项,希望对你平时开发有所帮助。

来源:瑞萨嵌入式小百科

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 48