Fix Ethernet PHY 100FDX/10FDX with W6100-EVB
Fix Ethernet PHY 100FDX/10FDX with W6100-EVB
Ethernet 10 Mbps and 100 Mbps overview
Ethernet is a networking technology developed at Xerox PARC, originally designed for local area networks (LANs). Ethernet has undergone many changes since then, but today it is one of the most widely used wired network technologies.
10 Mbps Ethernet
10Mbps Ethernet is one of the earliest Ethernet standards, offering a data transfer rate of 10 million bits per second. This was extremely fast for its time, and contributed greatly to the widespread adoption of Ethernet. 10 Mbps Ethernet is commonly known by the name 10Base-T.
100 Mbps Ethernet
100 Mbps Ethernet provides 10 times faster data transfer speeds compared to 10 Mbps Ethernet. The standard was published in 1995 as IEEE 802.3u, also known as Fast Ethernet. 100 Mbps Ethernet is commonly known by the name 100Base-TX.
Locking an Ethernet PHY to 100 Mbps/10 Mbps
Locking the Ethernet PHY to a specific speed is a way to regulate the performance and reliability of the network, and to tailor it to specific environments or requirements. While the auto-negotiation feature can automatically select the optimal configuration between different speeds and duplex settings, manual settings may be preferable in certain situations.
For example, legacy systems or less advanced network devices may not support or have poorly implemented auto-negotiation. In these cases, setting the PHY to a predetermined speed can ensure the stability of the connection. Also, in environments with high network traffic, it is necessary to lock in the speed to avoid delays or instability that can occur during auto-negotiation.
Ethernet Auto-Negotiation (Ethernet Auto-Negotiation)
IEEE 802.3u introduced Ethernet speeds of 100Mb/s, previously only 10Mb/s, and with the commercialisation of 1000Mb/s, the process of determining transmission parameters such as speed, duplex mode and flow control between devices at the physical layer is an important factor. When you want to connect both nodes, such as a device and a hub (switch), without knowing the Ethernet speed used, you can use plug and play to determine the transmission speed when connecting an Ethernet cable.
https://maker.wiznet.io/jaden/projects/auto%2Dnegotiation%2Danalysis/?page=2&serob=rd&serterm=all
Testing Ethernet PHY 100 Mbps/10 Mbps locking in an embedded system
The way to fix the Ethernet PHY in an embedded system to 100Mbps or 10Mbps is to control the PHY through the HOST system. The embedded system used in the test is WIZnet's W6100-EVB board, which uses an STM32F103 series MCU with a 32-bit ARM Cortex-M3. This EVB board is equipped with a W6100 Ethernet IC and has a 10/100 Ethernet PHY inside.
PHY Configuration How-to Guide
By default, to access or control certain registers of the PHY, you must access them through the standard MDC/MDIO interface provided by the PHY. However, the W6100 with Ethernet PHY provides r/w access to PHY registers through the wiz_mdio_write() and wiz_mdio_read() functions in the io6Library for easy user control.
https://github.com/Wiznet/io6Library/tree/master
In order to use this function, _PHY_IO_MODE_ must be set to _PHY_IO_MODE_MII_ in the following path(( io6Library/Ethernet/wizchip_conf.h )
/**
* @brief Select PHY Access Mode
* @details @ref _PHY_IO_MODE_ selects PHY access method.
* @todo You should select one of @ref _PHY_IO_MODE_PHYCR_ or @ref _PHY_IO_MODE_MII_.
* @sa ctlwizchip()
*/
#define _PHY_IO_MODE_ _PHY_IO_MODE_MII_ //_PHY_IO_MODE_PHYCR_