EVAL-ADIN1140D1Z
Overview
The EVAL-ADIN1140D1Z is an evaluation platform for the ADIN1140 10BASE-T1S MAC-PHY. It integrates an on-board Arm Cortex-M4 MAX32690 microcontroller as the host and enables evaluation of a USB to 10BASE-T1S bridge.
Hardware
MAX32690 Arm Cortex-M4 host microcontroller
ADIN1140 10BASE-T1S MAC-PHY (connected via SPI)
ADIN1110 10BASE-T1L MAC-PHY (connected via SPI)
The ADIN1140 provides a 10BASE-T1S multidrop interface, while the ADIN1110 provides a 10BASE-T1L point-to-point interface. Both are robust, low power Ethernet MAC-PHYs that connect to the MAX32690 host over SPI using the Open Alliance TC6 (10BASE-T1x MAC-PHY Serial Interface) protocol. Together they enable the board to perform 10BASE-T1S to 10BASE-T1L media conversion, which will be supported in a future dedicated Zephyr sample.
Supported Features
The adi_eval_adin1140d1z board supports the hardware features listed below.
- on-chip / on-board
- Feature integrated in the SoC / present on the board.
- 2 / 2
-
Number of instances that are enabled / disabled.
Click on the label to see the first instance of this feature in the board/SoC DTS files. -
vnd,foo -
Compatible string for the Devicetree binding matching the feature.
Click on the link to view the binding documentation.
adi_eval_adin1140d1z/max32690/m4 target
On-target memory for this board target: 128 KiB of RAM, 3 MiB of Flash.
Type |
Location |
Description |
Compatible |
|---|---|---|---|
CPU |
on-chip |
ARM Cortex-M4F CPU1 |
|
on-chip |
MAX32 RV32 core1 |
||
ADC |
on-chip |
ADI MAX32 ADC SAR1 |
|
CAN |
on-chip |
ADI MAX32 CAN Node2 |
|
Clock control |
on-chip |
||
on-chip |
MAX32 Global Control1 |
||
Counter |
on-chip |
ADI MAX32 counter6 |
|
on-chip |
ADI MAX32 compatible Counter RTC1 |
||
on-chip |
ADI MAX32 Wake-Up Timer is a unique instance of a 32-bit timer that can wake up the device from sleep, standby and backup modes2 |
||
DMA |
on-chip |
ADI MAX32 DMA1 |
|
Ethernet |
on-board |
ADIN1140 10BASE-T1S Ethernet MAC-PHY with SPI Interface1 |
|
on-board |
ADIN1140 MDIO Driver node1 |
||
on-board |
ADIN1140 PHY1 |
||
on-board |
ADIN1110 standalone 10BASE-T1L Ethernet controller with SPI interface1 |
||
on-board |
ADIN2111 MDIO Driver node1 |
||
on-board |
ADIN2111 PHY1 |
||
Flash controller |
on-chip |
MAX32XXX flash controller2 |
|
GPIO & Headers |
on-chip |
MAX32 GPIO5 |
|
I2C |
on-chip |
||
I2S |
on-chip |
Analog Devices MAX32 series I2S controller1 |
|
Input |
on-board |
Group of GPIO-bound input keys1 |
|
Interrupt controller |
on-chip |
ARMv7-M NVIC (Nested Vectored Interrupt Controller)1 |
|
LED |
on-board |
Group of GPIO-controlled LEDs1 |
|
Mailbox |
on-chip |
ADI MAX32 SEMA Mailbox1 |
|
Memory controller |
on-chip |
MAX32 HyperBus (HPB) Memory Controller Interface1 |
|
MTD |
on-chip |
Flash node2 |
|
on-board |
I2C EEPROMs compatible with Atmel’s AT24 family1 |
||
Pin control |
on-chip |
MAX32 Pin Controller1 |
|
PWM |
on-chip |
ADI MAX32 PWM4 |
|
QSPI |
on-chip |
MAX32 SPIXF device representation1 |
|
RNG |
on-chip |
ADI MAX32XXX TRNG1 |
|
Sensors |
on-board |
ADT7420 16-Bit digital I2C temperature sensor1 |
|
Serial controller |
on-chip |
||
SPI |
on-chip |
||
SRAM |
on-chip |
Generic on-chip SRAM9 |
|
Timer |
on-chip |
ADI MAX32 timer8 |
|
on-chip |
ARMv7-M System Tick1 |
||
USB |
on-chip |
ADI MAX32 USBHS1 |
|
1-Wire |
on-chip |
ADI MAX32xxx MCUs 1-Wire Master1 |
|
Watchdog |
on-chip |
MAX32XXX watchdog2 |
Connections and IOs
The MAX32690 host peripherals are connected to the on-board components as
described below. Pin names use the MAX32690 P<port>_<pin> notation.
Programming and Debugging
The adi_eval_adin1140d1z board supports the runners and associated west commands listed below.
| flash | debug | attach | debugserver | rtt | reset | |
|---|---|---|---|---|---|---|
| jlink | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| openocd | ✅ (default) | ✅ (default) | ✅ | ✅ | ✅ |
Flashing
The MAX32690 MCU can be flashed by connecting an external debug probe to the SWD port. SWD debug can be accessed through the Cortex 10-pin connector, P9. Logic levels are either 1.8V or 3.3V (based on P3 selection).
Once the debug probe is connected to your host computer, then you can simply run the
west flash command to write a firmware image into flash.
Note
This board uses OpenOCD as the default debug interface. You can also use
a Segger J-Link with Segger’s native tooling by overriding the runner,
appending --runner jlink to your west command(s). The J-Link should
be connected to the standard 2*5 pin debug connector (P9) using an
appropriate adapter board and cable.
Debugging
Please refer to the Flashing section and run the west debug command
instead of west flash.
Running the zperf Sample
The zperf: Network Traffic Generator network throughput sample can be used to benchmark both Ethernet interfaces on this board: the 10BASE-T1S link (ADIN1140) and the 10BASE-T1L link (ADIN1110).
Building and Flashing
Build and flash the sample for this board target:
# From the root of the zephyr repository
west build -b adi_eval_adin1140d1z/max32690/m4 -p always samples/net/zperf
west flash
Network Interfaces and Addressing
The board exposes two Ethernet interfaces. Each must be placed on a separate IPv4 subnet, otherwise the IPv4 stack cannot determine which interface to route a given packet through.
Interface |
Media |
Board address |
Peer address |
|---|---|---|---|
ADIN1140 (T1S) |
10BASE-T1S |
192.0.2.2/24 |
192.0.2.1/24 |
ADIN1110 (T1L) |
10BASE-T1L |
192.0.3.2/24 |
192.0.3.1/24 |
The sample configures the default interface automatically from
CONFIG_NET_CONFIG_MY_IPV4_ADDR. The second interface can be assigned an
address at runtime from the shell (<index> is the interface number shown
by net iface):
net ipv4 add <index> 192.0.3.2 255.255.255.0
net iface
Note
Only one zperf UDP (or TCP) server instance can run at a time. To test each link, bind the server to the address of the interface under test, stop it, then rebind to the other interface’s address.
Testing the 10BASE-T1S Interface (ADIN1140)
On the board, start the zperf UDP server bound to the ADIN1140 address:
zperf udp download 5001 192.0.2.2
On the host connected to the 10BASE-T1S link:
iperf -c 192.0.2.2 -u -p 5001 -b 10M -t 10 -l 1000
Testing the 10BASE-T1L Interface (ADIN1110)
Stop the previous server and rebind to the ADIN1110 address:
zperf udp download stop
zperf udp download 5001 192.0.3.2
On the host connected to the 10BASE-T1L link:
iperf -c 192.0.3.2 -u -p 5001 -b 10M -t 10 -l 1000