MCUXpresso SDK Documentation

enet_txrx_multiring_transfer

enet_txrx_multiring_transfer#

Overview#

The enet_txrx_multiring_transfer example shows the way to use ENET driver to
receive and transmit avb frame in the avb feature supported multi-ring platforms. this example is only supported in multi-ring platform.

  1. This example shows how to initialize the ENET MAC.

  2. How to use ENET MAC to transmit frames in avb supported multiple-ring platforms.

The example transmits 30 number frames. For simple demo, we create frames with some special definition.

  1. Build transmission frames with broadcast mac address.

  2. Build different frames for each ring: 10 normal ethernet frame, 10 similar IEC 61883-6 type frames, 10 similar IEC 61883-8 type frames and the two IEC 1722 avb frames are set with different vlan priority .

Notice, To simply show how to use three different rings in rx/tx on one board. This example set PHY local loop and you will see there will be PHY init auto-negotiation fail and this is normal. because phy can not finish auto-negotiation when phy is in loop back mode. However, the auto-negotiation fail has no impact on this loop back example, so just forget about the failure auto-negotiation.

Supported Boards#

EVK-MIMX8MM
Hardware requirements
  • Micro USB cable

  • MIMX8MM6-EVK board

  • J-Link Debug Probe

  • 12V power supply

  • Loopback network cable RJ45 standard

  • Network cable RJ45 standard

  • Network switch

  • Personal Computer

Board settings

J501 connected with network switch through RJ45 network cable. Two types of base boards(ENET PHY is RTL8211F or AR8031) are supported and the default is for RTL8211F. For base boards with ENET PHY AR8031(older version than RevD) need define macro “EXAMPLE_ENET_PHY_PHYAR8031” to 1 in example source code.

Please note this application can’t support running with Linux BSP! This example aims to show the basic usage of the IP’s function, some of the used Pads/Resources are also used by Cortex-A core.

Prepare the Demo
  1. Connect 12V power supply and J-Link Debug Probe to the board, switch SW101 to power on the board

  2. Connect a USB cable between the host PC and the J901 USB port on the target board.

  3. Open a serial terminal with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  4. Insert loopback network cable into network switch device(support loopback frames) and connect switch to the board’s Ethernet RJ45 port.

  5. Download the program to the target board.

  6. Launch the debugger in your IDE to begin running the demo.

Make loopback network cable: Standard 1 Standard 2 J1 orange+white green+white J2 orange green J3 green+white orange+white J4 blue brown+white J5 blue+white brown J6 green orange J7 brown+white blue J8 brown blue+white

Connect J1 => J3, J2 => J6, J4 => J7, J5 => J8. 10/100M transfer only requires J1, J2, J3, J6, and 1G transfer requires all 8 pins. Check your net cable color order and refer to the sheet above. If your cable’s color order is not showed in the list, please connect J1~J8 based on your situation.

Running the demo

When the demo runs, the log would be seen on the debug terminal like:

ENET multi-ring txrx example start. The 0 frame transmitted from the ring 0 ! The frame received from the ring 0, 1, 2 is 1, 0, 0 now! The 1 frame transmitted from the ring 1 ! The frame received from the ring 0, 1, 2 is 1, 0, 1 now!

……

The 10 frame transmitted from the ring 1 ! The frame received from the ring 0, 1, 2 is 10, 9, 10 now! The 10 frame transmitted from the ring 2 ! The frame received from the ring 0, 1, 2 is 10, 10, 10 now! 30 frame transmitted succeed! 10 frame successfully received from the ring 0! 10 frame successfully received from the ring 1! 10 frame successfully received from the ring 2!

EVK-MIMX8MP
Hardware requirements
  • Micro USB cable

  • EVK-MIMX8M Plus board

  • J-Link Debug Probe

  • 12V power supply

  • Loopback network cable RJ45 standard

  • Personal Computer

Board settings

J9 connected with loopback network cable.

Please note this application can’t support running with Linux BSP! This example aims to show the basic usage of the IP’s function, some of the used Pads/Resources are also used by Cortex-A core. If using the U-Boot bootaux to boot the Mcore, the U-Boot from Linux release 5.15.52_2.1.0 or later should be used.

Prepare the Demo
  1. Connect 12V power supply and J-Link Debug Probe to the board, switch SW3 to power on the board

  2. Connect a USB cable between the host PC and the J23 USB port on the target board.

  3. Open a serial terminal with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  4. Insert loopback network cable into the board’s Ethernet RJ45 port.

  5. Download the program to the target board.

  6. Launch the debugger in your IDE to begin running the demo.

Make loopback network cable: Standard 1 Standard 2 J1 orange+white green+white J2 orange green J3 green+white orange+white J4 blue brown+white J5 blue+white brown J6 green orange J7 brown+white blue J8 brown blue+white

Connect J1 => J3, J2 => J6, J4 => J7, J5 => J8. 10/100M transfer only requires J1, J2, J3, J6, and 1G transfer requires all 8 pins. Check your net cable color order and refer to the sheet above. If your cable’s color order is not showed in the list, please connect J1~J8 based on your situation.

Running the demo

When the demo runs, the log would be seen on the debug terminal like:

ENET multi-ring txrx example start. The 0 frame transmitted from the ring 0 ! The frame received from the ring 0, 1, 2 is 1, 0, 0 now! The 1 frame transmitted from the ring 1 ! The frame received from the ring 0, 1, 2 is 1, 0, 1 now!

……

The 10 frame transmitted from the ring 1 ! The frame received from the ring 0, 1, 2 is 10, 9, 10 now! The 10 frame transmitted from the ring 2 ! The frame received from the ring 0, 1, 2 is 10, 10, 10 now! 30 frame transmitted succeed! 10 frame successfully received from the ring 0! 10 frame successfully received from the ring 1! 10 frame successfully received from the ring 2!

MCIMX93AUTO-EVK
Hardware requirements
  • USB Type-C cable

  • Loopback network cable RJ45 standard

  • MCIMX93AUTO-EVK board

  • Personal Computer

Board settings

No special settings are required.

Note

Please run the application in Low Power boot mode (without Linux BSP). The IP module resource of the application is also used by Linux BSP. Or, run with Single Boot mode by changing Linux BSP to avoid resource conflict.

Prepare the Demo
  1. Connect a USB cable between the host PC and the OpenSDA USB port on the target board.

  2. Open a serial terminal with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  3. Insert loopback network cable to Ethernet RJ45 port(J601).

  4. Download the program to the target board.

  5. Either re-power up your board or launch the debugger in your IDE to begin running the demo.

Make loopback cable: 568B standard Unknowed standard J1 orange+white green+white J2 orange green J3 green+white orange+white J4 blue brown+white J5 blue+white brown J6 green orange J7 brown+white blue J8 brown blue+white

Connect J1 => J3, J2 => J6, J4 => J7, J5 => J8. 10/100M transfer only requires J1, J2, J3, J6, and 1G transfer requires all 8 pins. Check your net cable color order and refer to 568B standard or the other standard. If your cable’s color order is not showed in the list, please connect J1~J8 based on your situation.

Running the demo

When the demo runs, the log would be seen on the terminal like:

ENET multi-ring txrx example start. The 0 frame transmitted from the ring 0 ! The frame received from the ring 0, 1, 2 is 1, 0, 0 now! The 1 frame transmitted from the ring 1 ! The frame received from the ring 0, 1, 2 is 1, 0, 1 now! The 1 frame transmitted from the ring 2 ! The frame received from the ring 0, 1, 2 is 1, 1, 1 now! …… The 9 frame transmitted from the ring 0 ! The frame received from the ring 0, 1, 2 is 0, 0, 0 now! The 10 frame transmitted from the ring 1 ! The frame received from the ring 0, 1, 2 is 0, 0, 0 now! The 10 frame transmitted from the ring 2 ! The frame received from the ring 0, 1, 2 is 0, 0, 0 now!

30 frames transmitted succeed! 10 frames successfully received from the ring 0! 10 frames successfully received from the ring 1! 10 frames successfully received from the ring 2!

MCIMX93-EVK
Hardware requirements
  • USB Type-C cable

  • Loopback network cable RJ45 standard

  • MCIMX93-EVK board

  • Personal Computer

Board settings

No special settings are required.

Note

Please run the application in Low Power boot mode (without Linux BSP). The IP module resource of the application is also used by Linux BSP. Or, run with Single Boot mode by changing Linux BSP to avoid resource conflict.

Prepare the Demo
  1. Connect a USB cable between the host PC and the OpenSDA USB port on the target board.

  2. Open a serial terminal with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  3. Insert loopback network cable to Ethernet RJ45 port(J601).

  4. Download the program to the target board.

  5. Either re-power up your board or launch the debugger in your IDE to begin running the demo.

Make loopback cable: 568B standard Unknowed standard J1 orange+white green+white J2 orange green J3 green+white orange+white J4 blue brown+white J5 blue+white brown J6 green orange J7 brown+white blue J8 brown blue+white

Connect J1 => J3, J2 => J6, J4 => J7, J5 => J8. 10/100M transfer only requires J1, J2, J3, J6, and 1G transfer requires all 8 pins. Check your net cable color order and refer to 568B standard or the other standard. If your cable’s color order is not showed in the list, please connect J1~J8 based on your situation.

Running the demo

When the demo runs, the log would be seen on the terminal like:

ENET multi-ring txrx example start. The 0 frame transmitted from the ring 0 ! The frame received from the ring 0, 1, 2 is 1, 0, 0 now! The 1 frame transmitted from the ring 1 ! The frame received from the ring 0, 1, 2 is 1, 0, 1 now! The 1 frame transmitted from the ring 2 ! The frame received from the ring 0, 1, 2 is 1, 1, 1 now! …… The 9 frame transmitted from the ring 0 ! The frame received from the ring 0, 1, 2 is 0, 0, 0 now! The 10 frame transmitted from the ring 1 ! The frame received from the ring 0, 1, 2 is 0, 0, 0 now! The 10 frame transmitted from the ring 2 ! The frame received from the ring 0, 1, 2 is 0, 0, 0 now!

30 frames transmitted succeed! 10 frames successfully received from the ring 0! 10 frames successfully received from the ring 1! 10 frames successfully received from the ring 2!

MCIMX93W-EVK
Hardware requirements
  • USB Type-C cable

  • Loopback network cable RJ45 standard

  • MCIMX93W-EVK board

  • Personal Computer

Board settings

No special settings are required.

Note

Please run the application in Low Power boot mode (without Linux BSP). The IP module resource of the application is also used by Linux BSP. Or, run with Single Boot mode by changing Linux BSP to avoid resource conflict.

Prepare the Demo
  1. Connect a USB cable between the host PC and the OpenSDA USB port on the target board.

  2. Open a serial terminal with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  3. Insert loopback network cable to Ethernet RJ45 port(J601).

  4. Download the program to the target board.

  5. Either re-power up your board or launch the debugger in your IDE to begin running the demo.

Make loopback cable: 568B standard Unknowed standard J1 orange+white green+white J2 orange green J3 green+white orange+white J4 blue brown+white J5 blue+white brown J6 green orange J7 brown+white blue J8 brown blue+white

Connect J1 => J3, J2 => J6, J4 => J7, J5 => J8. 10/100M transfer only requires J1, J2, J3, J6, and 1G transfer requires all 8 pins. Check your net cable color order and refer to 568B standard or the other standard. If your cable’s color order is not showed in the list, please connect J1~J8 based on your situation.

Running the demo

When the demo runs, the log would be seen on the terminal like:

ENET multi-ring txrx example start. The 0 frame transmitted from the ring 0 ! The frame received from the ring 0, 1, 2 is 1, 0, 0 now! The 1 frame transmitted from the ring 1 ! The frame received from the ring 0, 1, 2 is 1, 0, 1 now! The 1 frame transmitted from the ring 2 ! The frame received from the ring 0, 1, 2 is 1, 1, 1 now! …… The 9 frame transmitted from the ring 0 ! The frame received from the ring 0, 1, 2 is 0, 0, 0 now! The 10 frame transmitted from the ring 1 ! The frame received from the ring 0, 1, 2 is 0, 0, 0 now! The 10 frame transmitted from the ring 2 ! The frame received from the ring 0, 1, 2 is 0, 0, 0 now!

30 frames transmitted succeed! 10 frames successfully received from the ring 0! 10 frames successfully received from the ring 1! 10 frames successfully received from the ring 2!