boards: add support for eval-adin1110ebz
Add support for ADI EVAL-ADIN1110EBZ. Tested samples: * hello_world * blinky * dhcpv4_client * adt7420 Tested proper SPI detection of the ADIN1110 chip. Co-developed-by: Philip Molloy <pmolloy@baylibre.com> Signed-off-by: Philip Molloy <pmolloy@baylibre.com> Signed-off-by: Angelo Dureghello <adureghello@baylibre.com>
This commit is contained in:
parent
b77df76e98
commit
6d387b3fd5
8
boards/arm/adi_eval_adin1110ebz/Kconfig.board
Normal file
8
boards/arm/adi_eval_adin1110ebz/Kconfig.board
Normal file
|
@ -0,0 +1,8 @@
|
|||
# ADI EVAL-ADIN1110EBZ board configuration
|
||||
|
||||
# Copyright (c) 2024 BayLibre
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
config BOARD_ADI_EVAL_ADIN1110EBZ
|
||||
bool "ADI EVAL-ADIN1110EBZ evaulation board"
|
||||
depends on SOC_STM32L4S5XX
|
33
boards/arm/adi_eval_adin1110ebz/Kconfig.defconfig
Normal file
33
boards/arm/adi_eval_adin1110ebz/Kconfig.defconfig
Normal file
|
@ -0,0 +1,33 @@
|
|||
# ADI EVAL-ADIN1110EBZ board configuration
|
||||
|
||||
# Copyright (c) 2024 BayLibre
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
if BOARD_ADI_EVAL_ADIN1110EBZ
|
||||
|
||||
config BOARD
|
||||
default "adi_eval_adin1110ebz"
|
||||
|
||||
config SPI_STM32_INTERRUPT
|
||||
default y
|
||||
depends on SPI
|
||||
|
||||
config MDIO_INIT_PRIORITY
|
||||
default 81
|
||||
depends on MDIO
|
||||
|
||||
config PHY_INIT_PRIORITY
|
||||
default 82
|
||||
depends on NET_L2_ETHERNET && ETH_DRIVER
|
||||
|
||||
config MEMC
|
||||
default y
|
||||
|
||||
if NETWORKING
|
||||
|
||||
config NET_L2_ETHERNET
|
||||
default y
|
||||
|
||||
endif # NETWORKING
|
||||
|
||||
endif # BOARD_ADI_EVAL_ADIN1110EBZ
|
321
boards/arm/adi_eval_adin1110ebz/adi_eval_adin1110ebz.dts
Normal file
321
boards/arm/adi_eval_adin1110ebz/adi_eval_adin1110ebz.dts
Normal file
|
@ -0,0 +1,321 @@
|
|||
/*
|
||||
* Copyright (c) 2024 BayLibre
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include <st/l4/stm32l4s5Xi.dtsi>
|
||||
#include <st/l4/stm32l4s5qiix-pinctrl.dtsi>
|
||||
#include "arduino_r3_connector.dtsi"
|
||||
#include <zephyr/dt-bindings/memory-controller/stm32-fmc-nor-psram.h>
|
||||
|
||||
/ {
|
||||
model = "Analog Devices Inc. EVAL-ADIN1110EBZ board";
|
||||
compatible = "adi,eval-adin1110ebz";
|
||||
|
||||
chosen {
|
||||
zephyr,console = &usart1;
|
||||
zephyr,shell-uart = &usart1;
|
||||
zephyr,sram = &sram0;
|
||||
zephyr,flash = &flash0;
|
||||
zephyr,code-partition = &slot0_partition;
|
||||
zephyr,flash-controller = &mx25r6435f;
|
||||
};
|
||||
|
||||
ram0: psram@60000000 {
|
||||
compatible = "zephyr,memory-region", "mmio-sram";
|
||||
device_type = "memory";
|
||||
reg = <0x60000000 DT_SIZE_M(8)>;
|
||||
zephyr,memory-region = "RAM0";
|
||||
};
|
||||
|
||||
leds { /* Respecting pcb silkscreen naming */
|
||||
compatible = "gpio-leds";
|
||||
green_led: led_uC0 {
|
||||
gpios = <&gpioc 13 GPIO_ACTIVE_HIGH>;
|
||||
label = "Status uC0";
|
||||
};
|
||||
red_led: led_uC1 {
|
||||
gpios = <&gpioe 2 GPIO_ACTIVE_HIGH>;
|
||||
label = "Status uC1 ";
|
||||
};
|
||||
yellow_led: led_uC2 {
|
||||
gpios = <&gpioe 6 GPIO_ACTIVE_HIGH>;
|
||||
label = "Status uC2";
|
||||
};
|
||||
blue_led: led_uC3 {
|
||||
gpios = <&gpiog 15 GPIO_ACTIVE_HIGH>;
|
||||
label = "Status uC3";
|
||||
};
|
||||
};
|
||||
|
||||
aliases {
|
||||
led0 = &green_led;
|
||||
watchdog0 = &iwdg;
|
||||
spi-flash0 = &mx25r6435f;
|
||||
};
|
||||
|
||||
soc {
|
||||
fmc: memory-controller@a0000000 {
|
||||
compatible = "st,stm32-fmc";
|
||||
reg = <0xa0000000 0x400>;
|
||||
clocks = <&rcc STM32_CLOCK_BUS_AHB3 0x00000001>;
|
||||
|
||||
sram {
|
||||
compatible = "st,stm32-fmc-nor-psram";
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&clk_lsi {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&clk_hsi48 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&clk_hsi {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pll {
|
||||
div-m = <4>;
|
||||
mul-n = <40>;
|
||||
div-q = <2>;
|
||||
div-r = <2>;
|
||||
clocks = <&clk_hsi>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&rcc {
|
||||
clocks = <&pll>;
|
||||
clock-frequency = <DT_FREQ_M(80)>;
|
||||
ahb-prescaler = <1>;
|
||||
apb1-prescaler = <1>;
|
||||
apb2-prescaler = <1>;
|
||||
};
|
||||
|
||||
&flash0 {
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
boot_partition: partition@0 {
|
||||
label = "mcuboot";
|
||||
reg = <0x00000000 DT_SIZE_K(64)>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
/*
|
||||
* The flash starting at offset 0x10000 and ending at
|
||||
* offset 0x1ffff is reserved for use by the application.
|
||||
*/
|
||||
|
||||
slot0_partition: partition@20000 {
|
||||
label = "image-0";
|
||||
reg = <0x00020000 DT_SIZE_K(432)>;
|
||||
};
|
||||
slot1_partition: partition@8c000 {
|
||||
label = "image-1";
|
||||
reg = <0x0008C000 DT_SIZE_K(432)>;
|
||||
};
|
||||
scratch_partition: partition@f8000 {
|
||||
label = "image-scratch";
|
||||
reg = <0x000F8000 DT_SIZE_K(16)>;
|
||||
};
|
||||
|
||||
storage_partition: partition@fc000 {
|
||||
label = "storage";
|
||||
reg = <0x000fc000 DT_SIZE_K(16)>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&iwdg {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&rng {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&dma1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&dmamux1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usart1 { /* USB FT232 */
|
||||
pinctrl-0 = <&usart1_tx_pa9 &usart1_rx_pa10>;
|
||||
pinctrl-names = "default";
|
||||
current-speed = <115200>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart4 { /* ARDUINO P405 1 & 2 */
|
||||
pinctrl-0 = <&uart4_tx_pa0 &uart4_rx_pa1>;
|
||||
pinctrl-names = "default";
|
||||
current-speed = <115200>;
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
pinctrl-0 = <&i2c1_scl_pg14 &i2c1_sda_pg13>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
clock-frequency = <I2C_BITRATE_FAST>;
|
||||
};
|
||||
|
||||
&i2c3 {
|
||||
pinctrl-0 = <&i2c3_scl_pg7 &i2c3_sda_pg8>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
clock-frequency = <I2C_BITRATE_FAST>;
|
||||
|
||||
adt7420@48 {
|
||||
compatible = "adi,adt7420";
|
||||
reg = <0x48>;
|
||||
};
|
||||
};
|
||||
|
||||
&spi1 {
|
||||
pinctrl-0 = <&spi1_sck_pa5 &spi1_miso_pa6 &spi1_mosi_pa7>;
|
||||
pinctrl-names = "default";
|
||||
cs-gpios = <&gpioa 2 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
|
||||
};
|
||||
|
||||
&spi2 {
|
||||
pinctrl-0 = <&spi2_sck_pb13 &spi2_miso_pb14 &spi2_mosi_pb15>;
|
||||
pinctrl-names = "default";
|
||||
cs-gpios = <&gpiob 12 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
|
||||
status = "okay";
|
||||
|
||||
adin1110: adin1110@0 {
|
||||
compatible = "adi,adin1110";
|
||||
reg = <0x0>;
|
||||
spi-max-frequency = <25000000>;
|
||||
int-gpios = <&gpiob 11 GPIO_ACTIVE_LOW>;
|
||||
reset-gpios = <&gpioc 7 GPIO_ACTIVE_LOW>;
|
||||
|
||||
port1 {
|
||||
local-mac-address = [ 00 E0 22 FE DA C8 ];
|
||||
};
|
||||
mdio {
|
||||
compatible = "adi,adin2111-mdio";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
ethernet-phy@1 {
|
||||
reg = <0x1>;
|
||||
compatible = "adi,adin2111-phy";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&spi3 {
|
||||
pinctrl-0 = <&spi3_sck_pc10 &spi3_miso_pc11 &spi3_mosi_pc12>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&timers2 {
|
||||
status = "okay";
|
||||
|
||||
pwm2: pwm {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&tim2_ch1_pa15>;
|
||||
pinctrl-names = "default";
|
||||
};
|
||||
};
|
||||
|
||||
&rtc {
|
||||
clocks = <&rcc STM32_CLOCK_BUS_APB1 0x10000000>,
|
||||
<&rcc STM32_SRC_LSI RTC_SEL(2)>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
zephyr_udc0: &usbotg_fs {
|
||||
pinctrl-0 = <&usb_otg_fs_dm_pa11 &usb_otg_fs_dp_pa12
|
||||
&usb_otg_fs_id_pa10>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&octospi1 {
|
||||
pinctrl-0 = <&octospim_p1_clk_pa3 &octospim_p1_ncs_pa4
|
||||
&octospim_p1_io0_pb1 &octospim_p1_io1_pb0
|
||||
&octospim_p1_io2_pa7 &octospim_p1_io3_pa6>;
|
||||
pinctrl-names = "default";
|
||||
dmas = <&dma1 0 40 0x480>; /* request 40 for OCTOSPI1 */
|
||||
dma-names = "tx_rx";
|
||||
|
||||
status = "okay";
|
||||
|
||||
mx25r6435f: ospi-nor-flash@0 {
|
||||
compatible = "st,stm32-ospi-nor";
|
||||
reg = <0>;
|
||||
ospi-max-frequency = <DT_FREQ_M(26)>; /* for Voltage Range 2 */
|
||||
size = <DT_SIZE_M(64)>; /* 64 Megabits */
|
||||
spi-bus-width = <OSPI_QUAD_MODE>;
|
||||
data-rate = <OSPI_STR_TRANSFER>;
|
||||
writeoc="PP_1_4_4";
|
||||
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
store_partition: partition@0 {
|
||||
label = "store";
|
||||
reg = <0x00000000 DT_SIZE_M(8)>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&fmc {
|
||||
pinctrl-0 = <&fmc_nbl0_pe0 &fmc_nbl1_pe1
|
||||
&fmc_nce_pd7 &fmc_nwe_pd5 &fmc_noe_pd4
|
||||
&fmc_a0_pf0 &fmc_a1_pf1 &fmc_a2_pf2 &fmc_a3_pf3
|
||||
&fmc_a4_pf4 &fmc_a5_pf5 &fmc_a6_pf12 &fmc_a7_pf13
|
||||
&fmc_a8_pf14 &fmc_a9_pf15 &fmc_a10_pg0 &fmc_a11_pg1
|
||||
&fmc_a12_pg2 &fmc_a13_pg3 &fmc_a14_pg4 &fmc_a15_pg5
|
||||
&fmc_a16_pd11 &fmc_a17_pd12 &fmc_a18_pd13 &fmc_a19_pe3
|
||||
&fmc_a20_pe4 &fmc_a21_pe5
|
||||
&fmc_d0_pd14 &fmc_d1_pd15 &fmc_d2_pd0 &fmc_d3_pd1
|
||||
&fmc_d4_pe7 &fmc_d5_pe8 &fmc_d6_pe9 &fmc_d7_pe10
|
||||
&fmc_d8_pe11 &fmc_d9_pe12 &fmc_d10_pe13 &fmc_d11_pe14
|
||||
&fmc_d12_pe15 &fmc_d13_pd8 &fmc_d14_pd9 &fmc_d15_pd10>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
sram {
|
||||
bank@0 {
|
||||
reg = <0x0>;
|
||||
st,control = <STM32_FMC_DATA_ADDRESS_MUX_DISABLE
|
||||
STM32_FMC_MEMORY_TYPE_SRAM
|
||||
STM32_FMC_NORSRAM_MEM_BUS_WIDTH_16
|
||||
STM32_FMC_BURST_ACCESS_MODE_DISABLE
|
||||
STM32_FMC_WAIT_SIGNAL_POLARITY_LOW
|
||||
STM32_FMC_WAIT_TIMING_BEFORE_WS
|
||||
STM32_FMC_WRITE_OPERATION_ENABLE
|
||||
STM32_FMC_WAIT_SIGNAL_DISABLE
|
||||
STM32_FMC_EXTENDED_MODE_DISABLE
|
||||
STM32_FMC_ASYNCHRONOUS_WAIT_DISABLE
|
||||
STM32_FMC_WRITE_BURST_DISABLE
|
||||
STM32_FMC_CONTINUOUS_CLOCK_SYNC_ONLY
|
||||
STM32_FMC_WRITE_FIFO_DISABLE
|
||||
STM32_FMC_PAGE_SIZE_NONE>;
|
||||
st,timing = <4 2 3 0 16 17 STM32_FMC_ACCESS_MODE_A>;
|
||||
};
|
||||
};
|
||||
};
|
21
boards/arm/adi_eval_adin1110ebz/adi_eval_adin1110ebz.yaml
Normal file
21
boards/arm/adi_eval_adin1110ebz/adi_eval_adin1110ebz.yaml
Normal file
|
@ -0,0 +1,21 @@
|
|||
identifier: adi_eval_adin1110ebz
|
||||
name: ADI EVAL-ADIN1110EBZ evaulation board
|
||||
type: mcu
|
||||
arch: arm
|
||||
toolchain:
|
||||
- zephyr
|
||||
- gnuarmemb
|
||||
- xtools
|
||||
ram: 640
|
||||
flash: 2048
|
||||
supported:
|
||||
- arduino_gpio
|
||||
- arduino_i2c
|
||||
- arduino_spi
|
||||
- gpio
|
||||
- i2c
|
||||
- spi
|
||||
- watchdog
|
||||
- memc
|
||||
- octospi
|
||||
vendor: adi
|
|
@ -0,0 +1,21 @@
|
|||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
CONFIG_BOARD_ADI_EVAL_ADIN1110EBZ=y
|
||||
CONFIG_SOC_SERIES_STM32L4X=y
|
||||
CONFIG_SOC_STM32L4S5XX=y
|
||||
|
||||
# enable uart driver
|
||||
CONFIG_SERIAL=y
|
||||
|
||||
# console
|
||||
CONFIG_CONSOLE=y
|
||||
CONFIG_UART_CONSOLE=y
|
||||
|
||||
# enable GPIO
|
||||
CONFIG_GPIO=y
|
||||
|
||||
# Enable Clocks
|
||||
CONFIG_CLOCK_CONTROL=y
|
||||
|
||||
# enable pin controller
|
||||
CONFIG_PINCTRL=y
|
40
boards/arm/adi_eval_adin1110ebz/arduino_r3_connector.dtsi
Normal file
40
boards/arm/adi_eval_adin1110ebz/arduino_r3_connector.dtsi
Normal file
|
@ -0,0 +1,40 @@
|
|||
/*
|
||||
* Copyright (c) 2024 BayLibre
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/ {
|
||||
arduino_header: connector {
|
||||
compatible = "arduino-header-r3";
|
||||
#gpio-cells = <2>;
|
||||
gpio-map-mask = <0xffffffff 0xffffffc0>;
|
||||
gpio-map-pass-thru = <0 0x3f>;
|
||||
gpio-map = <0 0 &gpioc 0 0>, /* A0/D14 */
|
||||
<1 0 &gpioc 1 0>, /* A1/D15 */
|
||||
<2 0 &gpioc 2 0>, /* A2/D16 */
|
||||
<3 0 &gpioc 3 0>, /* A3/D17 */
|
||||
<4 0 &gpioc 4 0>, /* A4/D18 */
|
||||
<5 0 &gpioc 5 0>, /* A5/D19 */
|
||||
<6 0 &gpioa 0 0>, /* D0 */
|
||||
<7 0 &gpioa 1 0>, /* D1 */
|
||||
<8 0 &gpioa 2 0>, /* D2 */
|
||||
<9 0 &gpiod 2 0>, /* D3 */
|
||||
<10 0 &gpiod 6 0>, /* D4 */
|
||||
<11 0 &gpiob 7 0>, /* D5 */
|
||||
<12 0 &gpiob 8 0>, /* D6 */
|
||||
<13 0 &gpiob 9 0>, /* D7 */
|
||||
<14 0 &gpiob 6 0>, /* D8 */
|
||||
<15 0 &gpiob 5 0>, /* D9 */
|
||||
<16 0 &gpiog 12 0>, /* D10 */
|
||||
<17 0 &gpioc 12 0>, /* D11 */
|
||||
<18 0 &gpioc 11 0>, /* D12 */
|
||||
<19 0 &gpioc 10 0>, /* D13 */
|
||||
<20 0 &gpioc 0 0>, /* D14 */
|
||||
<21 0 &gpioc 1 0>; /* D15 */
|
||||
};
|
||||
};
|
||||
|
||||
arduino_i2c: &i2c1 {};
|
||||
arduino_spi: &spi3 {};
|
||||
arduino_serial: &uart4 {};
|
6
boards/arm/adi_eval_adin1110ebz/board.cmake
Normal file
6
boards/arm/adi_eval_adin1110ebz/board.cmake
Normal file
|
@ -0,0 +1,6 @@
|
|||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
board_runner_args(jlink "--device=STM32L4S5QI" "--speed=4000")
|
||||
|
||||
include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake)
|
||||
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)
|
Binary file not shown.
After Width: | Height: | Size: 69 KiB |
183
boards/arm/adi_eval_adin1110ebz/doc/index.rst
Normal file
183
boards/arm/adi_eval_adin1110ebz/doc/index.rst
Normal file
|
@ -0,0 +1,183 @@
|
|||
.. _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
|
2
boards/arm/adi_eval_adin1110ebz/pre_dt_board.cmake
Normal file
2
boards/arm/adi_eval_adin1110ebz/pre_dt_board.cmake
Normal file
|
@ -0,0 +1,2 @@
|
|||
list(APPEND EXTRA_DTC_FLAGS "-Wno-spi_bus_bridge")
|
||||
list(APPEND EXTRA_DTC_FLAGS "-Wno-simple_bus_reg")
|
12
boards/arm/adi_eval_adin1110ebz/support/openocd.cfg
Normal file
12
boards/arm/adi_eval_adin1110ebz/support/openocd.cfg
Normal file
|
@ -0,0 +1,12 @@
|
|||
source [find board/stm32l4discovery.cfg]
|
||||
|
||||
$_TARGETNAME configure -event gdb-attach {
|
||||
echo "Debugger attaching: halting execution"
|
||||
reset halt
|
||||
gdb_breakpoint_override hard
|
||||
}
|
||||
|
||||
$_TARGETNAME configure -event gdb-detach {
|
||||
echo "Debugger detaching: resuming execution"
|
||||
resume
|
||||
}
|
Loading…
Reference in a new issue