.. _adi_eval_adin1110ebz:

ADI EVAL-ADIN1110EVB Evaluation board
#####################################

Overview
********

The EVAL-ADIN1110EBZ is a flexible platform enabling quick evaluation of the ADIN1110, robust,
low power 10BASE-T1L MAC-PHY. It provides 10Mbit per second Single Pair Ethernet (SPE) connections
with devices across 1.7km of cable.

The evaluation board offers two modes of operation for maximum flexibility. Connected to a PC
via USB port, the full set of ADIN1110 register settings and features such as link quality
monitoring and diagnostics can be accessed over the USB using serial command interface.
The board also provides an Arduino interface.

Alternatively, the board can operate in stand-alone mode where it is configured by setting hardware
configuration links and switches. On-board LEDs provide status indication.

The SPI interface provides configuration and data access to the ADIN1110.

A small prototyping area and test points are provided for experimentation with alternative cable
connection topologies including isolation transformers and/or power coupling inductors.

.. figure:: img/adi_eval_adin1110ebz.webp
   :align: center
   :alt: ADI EVAL-ADIN1110EBZ

   ADI EVAL-ADIN1110EBZ (Credit: Analog Devices, Inc.)

.. important::

   S201 DIP switches are shipped in Open Alliance SPI mode. The current Zephyr
   default board configuration is set to work as "Generic SPI, CRC enabled",
   so the S201 DIP switches must be set as ``SPI_CFG0 OFF`` and ``SPI_CFG1 ON``.
   An inconsistent S201 DIP switches configuration will halt the boot.

Hardware
********

The ADI EVAL-ADIN1110EBZ hardware features list is available here:

https://wiki.analog.com/resources/eval/user-guides/eval-adin1110ebz-user-guide


Supported Features
==================

The ADI adi_eval_adin1110ebz board configuration supports the
following hardware features:

+--------------+------------+-------------------------------------+
| Interface    | Controller | Driver/Component                    |
+==============+============+=====================================+
| NVIC         | on-chip    | nested vector interrupt controller  |
+--------------+------------+-------------------------------------+
| UART         | on-chip    | serial port-polling;                |
|              |            | serial port-interrupt               |
+--------------+------------+-------------------------------------+
| PINMUX       | on-chip    | pinmux                              |
+--------------+------------+-------------------------------------+
| GPIO         | on-chip    | gpio                                |
+--------------+------------+-------------------------------------+
| I2C          | on-chip    | i2c                                 |
+--------------+------------+-------------------------------------+
| SPI          | on-chip    | spi                                 |
+--------------+------------+-------------------------------------+
| PWM          | on-chip    | pwm                                 |
+--------------+------------+-------------------------------------+
| WATCHDOG     | on-chip    | independent watchdog                |
+--------------+------------+-------------------------------------+
| ADIN1110     | spi        | adin1110 10BASE-T1L mac/phy         |
+--------------+------------+-------------------------------------+
| FT232        | uart       | usb-uart                            |
+--------------+------------+-------------------------------------+
| ADT7422      | i2c        | temperature sensor                  |
+--------------+------------+-------------------------------------+
| ISS66WVE4M16 | fmc        | 8MB PSRAM                           |
+--------------+------------+-------------------------------------+


The default configuration can be found in the defconfig file:

	``boards/arm/adi_eval_adin1110ebz/adi_eval_adin1110ebz_defconfig``


Connections and IOs
===================

ADI ADIN1110EBZ evaluation board has 7 GPIO controllers (from A to G). These controllers are
responsible for pin muxing, input/output, pull-up, etc.

For mode details please refer to `EVAL-ADIN1110EBZ User Guide <https://wiki.analog.com/resources/eval/user-guides/eval-adin1110ebz-user-guide>`_.

Default Zephyr Peripheral Mapping:
----------------------------------

- UART_1 TX/RX : PA9/PA10 (UART to FT232)
- UART_4 TX/RX : PA0/PA1 (Arduino Serial)
- I2C1 SCL/SDA : PG14/PG13 (Arduino I2C)
- I2C3 SCL/SDA : PG7/PG8 (Sensor I2C bus)
- SPI1 SCK/MISO/MOSI : PA5/PA6/PA7 (Simple SPI to nor Flash)
- SPI2 SCK/MISO/MOSI : PB13/PB14/PB15 (ADIN1110)
- SPI3 SCK/MISO/MOSI : PC10/PC11/PC12 (Arduino SPI)
- LD1 : PC13 (Green LED)
- LD2 : PE2 (Red LED)
- LD3 : PE6 (Yellow LED)
- LD4 : PG15 (Blue LED)
- PSRAM : PE0/PE1/PF0-PF15/PG0-PG5/PD11-PD13/PE3/PE4
          PD14/PD15/PD9/PD1/PE7-PE15/PD8-PD10


System Clock
------------

EVAL-ADIN1110EBZ System Clock could be driven by an internal or external oscillator, as well as
the main PLL clock. By default the System clock is driven by the PLL clock at 80MHz, driven by the
16MHz high speed internal oscillator.

Serial Port
-----------

EVAL-ADIN1110EBZ has 2 U(S)ARTs. The Zephyr console output is assigned to UART1 that is connected
to a FT232, so available through Micro USB connector. Default settings are 115200 8N1.


Programming and Debugging
*************************

Flashing
========

EVAL-ADIN1110EBZ includes an ST-LINK/V2-1 JTAG/SWD 10 or 20 pin connector. This interface is
supported by the openocd version included in Zephyr SDK.

Flashing an application to  Discovery kit
-----------------------------------------

Connect the EVAL-ADIN1110EBZ to your host computer using the USB port, then run a serial host
program to connect with your ADI board. For example:

.. code-block:: console

   $ minicom -D /dev/serial/by-id/usb-ADI_EVAL-ADIN1110EBZ_AVAS_XXXXXX-if00-port0

where XXXXXX is the serial number of the connected device.
Then, build and flash in the usual way. Here is an example for the :ref:`hello_world` application.

.. zephyr-app-commands::
   :zephyr-app: samples/hello_world
   :board: adi_eval_adin1110ebz
   :goals: build flash

You should see the following message on the console:

.. code-block:: console

   Hello World! adi_eval_adin1110ebz

Debugging
=========

You can debug an application in the usual way.  Here is an example for the :ref:`hello_world`
application.

.. zephyr-app-commands::
   :zephyr-app: samples/hello_world
   :board: adi_eval_adin1110ebz
   :maybe-skip-config:
   :goals: debug

.. _EVAL-ADIN1110EBZ evaluation board website:
   https://www.analog.com/en/design-center/evaluation-hardware-and-software/evaluation-boards-kits/eval-adin1110.html

.. _EVAL-ADIN1110EBZ board User Guide:
   https://wiki.analog.com/resources/eval/user-guides/eval-adin1110ebz-user-guide

.. _ADIN1110 Datasheet:
   https://www.analog.com/media/en/technical-documentation/data-sheets/adin1110.pdf

.. _STM32L4S5QII3P reference manual:
   https://www.st.com/resource/en/reference_manual/rm0432-stm32l4-series-advanced-armbased-32bit-mcus-stmicroelectronics.pdf
