10BASE-T1S tests (OA_TC6)

Browse source code on GitHub

10BASE-T1S Network (OA_TC6) Tests

Overview

This test setup checks if long term stability and operation of the T1S communication is preserved.

Prerequisites

HW prerequisites:

Note

The lan867x-linux-driver-2v2/linux-v6.1.21-support IPv6 is not working on PC’s Debian 12. Hence, the move to RPI4 is recommended.

Connections and IOs

Nucleo G474RE | microe-lan8651

3V3 (CN 6)

3V3

GND (CN 6)

GND

SCK/D13 (CN 5)

SCK

MISO/D12 (CN 5)

SDO

PWM/MOSI/D11 (CN 5)

SDI

PWM/CS/D10 (CN 5)

CS

D8 (CN 5)

RST

D7 (CN 9)

IRQ

Software prerequisites:

- name: udp-perf
  path: modules/udp-perf
  • Enable config UDPPERF in the config file for echo_server or zperf

  • Extend boards/nucleo_g474re.conf for per setup IP configuration:

CONFIG_NET_CONFIG_MY_IPV4_ADDR="192.0.2.1"
CONFIG_NET_CONFIG_PEER_IPV4_ADDR="192.0.2.3"
CONFIG_NET_CONFIG_MY_IPV6_ADDR="2001:db8::1"
CONFIG_NET_CONFIG_PEER_IPV6_ADDR="2001:db8::3"

Testing and validation:

Echo server (advanced) with udp-perf:

west build -p always -b nucleo_g474re samples/net/sockets/echo_server/

Default configuration:

Nucleo ip:  192.0.2.1      RPI4: 192.0.2.3
Nucleo ipv6 2001:db8::1      RPI4: 2001:db8::3
  • Use RPI4 to connect the USB <-> T1S dongle (connect to USB 2.0):

uname -a # Linux raspberrypi 6.1.21
cd ~/work/Zephyr/lan867x-linux-driver-2v2/linux-v6.1.21-support
./load.sh

Add default route to Nucleo (on RPI4):

ip -6 route add 2001:db8::1 dev eth0
  • Run test programs (on RPI4) - log via SSH to have separate consoles for each while:

cd ~/work/Zephyr/net-tools $
while :; do ./echo-client -r -i eth1 192.0.2.1; sleep 1; ping -c 3 192.0.2.1; done
while :; do ./echo-client -r -i eth1 2001:db8::1; sleep 1; ping -6 -c 3 2001:db8::1; done
cd ~/work/Zephyr/udp-perf $
while :; do ./target/armv7-unknown-linux-gnueabihf/release/udp-perf client --ip 192.0.2.1 --packets 100 --mode reduced --runs 5; [ $? -ne 0 ] && echo "Error!"; done

zperf: Network Traffic Generator:

west build -p always -b nucleo_g474re samples/net/zperf/
  • Zephyr module (nucleo board) as CLIENT

zperf udp upload 192.0.2.3 5001 10 1460 10M # -> nucleo shell
iperf -s -l 1460 -u -B 192.0.2.3 -i 1 # -> RPI4
  • Zephyr module (nucleo board) as SERVER

zperf udp download 5001 # -> nucleo shell
iperf -l 1460 -u -c 192.0.2.1 -i 1 -b 10M -p 5001 # -> RPI4

Running more device instances:

It is possible to run more than one instance of DUTs:

  • Adjust IP addresses in nucleo_g474re.conf

  • In boards/nucleo_g474re.overlay adjust local-mac-address and plca-node-id properties.