10BASE-T1S tests (OA_TC6)
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:
Raspberry PI4 with Debian 11.9 (v.6.1 kernel) and LAN8670-USB dongle setup as 10 BASE T1S master (HOST)
Nucleo (Nucleo G474RE) connected to LAN8651 “micro BUS” module from microe.com (one or more) (DUTs)
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
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:
Compile udp-perf program (both for HOST and DUTs)
The udp-perf Zephyr sources should be cloned to:
modules/udp-perf/zephyrExtend
west.yml:
- name: udp-perf
path: modules/udp-perf
Enable config
UDPPERFin the config file forecho_serverorzperfExtend
boards/nucleo_g474re.conffor 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:
Build for the Nucleo G474RE board
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:
Build for the Nucleo G474RE board
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.confIn
boards/nucleo_g474re.overlayadjustlocal-mac-addressandplca-node-idproperties.