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

arm,cortex-m4f

on-chip

MAX32 RV32 core1

adi,max32-rv32

ADC

on-chip

ADI MAX32 ADC SAR1

adi,max32-adc-sar

CAN

on-chip

ADI MAX32 CAN Node2

adi,max32-can

Clock control

on-chip

Generic fixed-rate clock provider26

fixed-clock

on-chip

MAX32 Global Control1

adi,max32-gcr

Counter

on-chip

ADI MAX32 counter6

adi,max32-counter

on-chip

ADI MAX32 compatible Counter RTC1

adi,max32-rtc-counter

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

adi,max32-wut

DMA

on-chip

ADI MAX32 DMA1

adi,max32-dma

Ethernet

on-board

ADIN1140 10BASE-T1S Ethernet MAC-PHY with SPI Interface1

adi,adin1140

on-board

ADIN1140 MDIO Driver node1

adi,adin1140-mdio

on-board

ADIN1140 PHY1

adi,adin1140-phy

on-board

ADIN1110 standalone 10BASE-T1L Ethernet controller with SPI interface1

adi,adin1110

on-board

ADIN2111 MDIO Driver node1

adi,adin2111-mdio

on-board

ADIN2111 PHY1

adi,adin2111-phy

Flash controller

on-chip

MAX32XXX flash controller2

adi,max32-flash-controller

GPIO & Headers

on-chip

MAX32 GPIO5

adi,max32-gpio

I2C

on-chip

ADI MAX32 I2C21

adi,max32-i2c

I2S

on-chip

Analog Devices MAX32 series I2S controller1

adi,max32-i2s

Input

on-board

Group of GPIO-bound input keys1

gpio-keys

Interrupt controller

on-chip

ARMv7-M NVIC (Nested Vectored Interrupt Controller)1

arm,v7m-nvic

LED

on-board

Group of GPIO-controlled LEDs1

gpio-leds

Mailbox

on-chip

ADI MAX32 SEMA Mailbox1

adi,mbox-max32-sema

Memory controller

on-chip

MAX32 HyperBus (HPB) Memory Controller Interface1

adi,max32-hpb

MTD

on-chip

Flash node2

soc-nv-flash

on-board

I2C EEPROMs compatible with Atmel’s AT24 family1

atmel,at24

Pin control

on-chip

MAX32 Pin Controller1

adi,max32-pinctrl

PWM

on-chip

ADI MAX32 PWM4

adi,max32-pwm

QSPI

on-chip

MAX32 SPIXF device representation1

adi,max32-spixf

RNG

on-chip

ADI MAX32XXX TRNG1

adi,max32-trng

Sensors

on-board

ADT7420 16-Bit digital I2C temperature sensor1

adi,adt7420

Serial controller

on-chip

MAX32 UART13

adi,max32-uart

SPI

on-chip

ADI MAX32 SPI23

adi,max32-spi

SRAM

on-chip

Generic on-chip SRAM9

mmio-sram

Timer

on-chip

ADI MAX32 timer8

adi,max32-timer

on-chip

ARMv7-M System Tick1

arm,armv7m-systick

USB

on-chip

ADI MAX32 USBHS1

adi,max32-usbhs

1-Wire

on-chip

ADI MAX32xxx MCUs 1-Wire Master1

adi,max32-w1

Watchdog

on-chip

MAX32XXX watchdog2

adi,max32-watchdog

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

References