MCUXpresso_MIMXRT1052xxxxB/boards/evkbimxrt1050/driver_examples/enet/txrx_ptp1588_transfer
Yilin Sun 6baf4427ce
Updated to v2.15.000
Signed-off-by: Yilin Sun <imi415@imi.moe>
2024-03-18 23:15:10 +08:00
..
armgcc Updated to v2.15.000 2024-03-18 23:15:10 +08:00
board.c Updated to v2.15.000 2024-03-18 23:15:10 +08:00
board.h Updated to v2.15.000 2024-03-18 23:15:10 +08:00
clock_config.c Update SDK to v2.13.0 2023-01-26 09:35:56 +08:00
clock_config.h Update SDK to v2.13.0 2023-01-26 09:35:56 +08:00
dcd.c SDK v2.11.1 2022-04-08 22:46:35 +08:00
dcd.h SDK v2.11.1 2022-04-08 22:46:35 +08:00
enet_txrx_ptp1588_transfer_v3_14.xml Updated to v2.15.000 2024-03-18 23:15:10 +08:00
enet_txrx_ptp1588_transfer.c Updated to v2.15.000 2024-03-18 23:15:10 +08:00
evkbimxrt1050_sdram_init.jlinkscript Updated to v2.14.0 2023-11-30 20:55:00 +08:00
pin_mux.c Updated to v2.15.000 2024-03-18 23:15:10 +08:00
pin_mux.h Updated to v2.15.000 2024-03-18 23:15:10 +08:00
readme.md Updated to v2.15.000 2024-03-18 23:15:10 +08:00

Overview

The enet_rxtx_ptp1588 example shows the way to use ENET driver to
receive and transmit frame in the 1588 feature required cases.

  1. This example shows how to initialize the ENET MAC.
  2. How to use ENET MAC to receive and transmit frame.
  3. How to add to the multicast group to receive PTP 1588 message.
  4. How to get the time stamp of the PTP 1588 timer.
  5. How to use Get the ENET transmit and receive frame time stamp.

The example transmits 20 number PTP event frame, shows the timestamp of the transmitted frame. The length, source MAC address and destination MAC address of the received frame will be print. The time stamp of the received timestamp will be print when the PTP message frame is received.

Note, The RMII mode is used for default setting to initialize the ENET interface between MAC and the external PHY. you can change it to MII mode as you wish. Please make sure the MII Mode setting in the MAC is synchronize to the setting in TWR-SERIAL board for the external PHY.

SDK version

  • Version: 2.15.000

Toolchain supported

  • IAR embedded Workbench 9.40.1
  • Keil MDK 5.38.1
  • GCC ARM Embedded 12.2
  • MCUXpresso 11.8.0

Hardware requirements

  • Mini/micro USB cable
  • Loopback network cable RJ45 standard
  • EVKB-IMXRT1050 board
  • Personal Computer

Board settings

No special settings are required.

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.
  4. Download the program to the target board.
  5. Either press the reset button on your board or launch the debugger in your IDE to begin running the demo.

Make loopback network 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 PTP 1588 example start.

Get the 1-th time xx second xx nanosecond ........ Get the 10-th time xx second xx nanosecond

The 1 frame transmitted success! the timestamp is xx second, xx nanosecond The 2 frame transmitted success! the timestamp is xx second, xx nanosecond The 3 frame transmitted success! the timestamp is xx second, xx nanosecond The 4 frame transmitted success! the timestamp is xx second, xx nanosecond ...... The 20 frame transmitted success! the timestamp is xx second, xx nanosecond

Note: the xx second and xx nanosecond should not be zero and should be number with solid increment.

when a 1000 length ptp event message frame is received, the log would be added to the terminal like: A frame received. the length 1000 the timestamp is xx second, xx nanosecond Dest Address xx:xx:xx:xx:xx:xx Src Address xx:xx:xx:xx:xx:xx