boards: Add support for the Ambiq Apollo3 EVB board
This commit adds support for the Ambiq Apollo3 EVB board (AMA3B1EVB). Signed-off-by: Hao Luo <hluo@ambiq.com>
This commit is contained in:
parent
362bed8902
commit
2999a28812
9 changed files with 322 additions and 0 deletions
6
boards/ambiq/apollo3_evb/Kconfig.apollo3_evb
Normal file
6
boards/ambiq/apollo3_evb/Kconfig.apollo3_evb
Normal file
|
@ -0,0 +1,6 @@
|
|||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
# Copyright (c) 2023 Ambiq Micro Inc. <www.ambiq.com>
|
||||
|
||||
config BOARD_APOLLO3_EVB
|
||||
select SOC_APOLLO3_BLUE
|
151
boards/ambiq/apollo3_evb/apollo3_evb-pinctrl.dtsi
Normal file
151
boards/ambiq/apollo3_evb/apollo3_evb-pinctrl.dtsi
Normal file
|
@ -0,0 +1,151 @@
|
|||
/*
|
||||
* Copyright (c) 2023 Ambiq Micro Inc. <www.ambiq.com>
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#include <dt-bindings/pinctrl/ambiq-apollo3-pinctrl.h>
|
||||
|
||||
&pinctrl {
|
||||
uart0_default: uart0_default {
|
||||
group1 {
|
||||
pinmux = <UART0TX_P22>;
|
||||
};
|
||||
group2 {
|
||||
pinmux = <UART0RX_P23>;
|
||||
input-enable;
|
||||
};
|
||||
};
|
||||
i2c0_default: i2c0_default {
|
||||
group1 {
|
||||
pinmux = <M0SCL_P5>, <M0SDAWIR3_P6>;
|
||||
drive-open-drain;
|
||||
drive-strength = "0.5";
|
||||
bias-pull-up;
|
||||
};
|
||||
};
|
||||
i2c1_default: i2c1_default {
|
||||
group1 {
|
||||
pinmux = <M1SCL_P8>, <M1SDAWIR3_P9>;
|
||||
drive-open-drain;
|
||||
drive-strength = "0.5";
|
||||
bias-pull-up;
|
||||
};
|
||||
};
|
||||
i2c2_default: i2c2_default {
|
||||
group1 {
|
||||
pinmux = <M2SCL_P27>, <M2SDAWIR3_P25>;
|
||||
drive-open-drain;
|
||||
drive-strength = "0.5";
|
||||
bias-pull-up;
|
||||
};
|
||||
};
|
||||
i2c3_default: i2c3_default {
|
||||
group1 {
|
||||
pinmux = <M3SCL_P42>, <M3SDAWIR3_P43>;
|
||||
drive-open-drain;
|
||||
drive-strength = "0.5";
|
||||
bias-pull-up;
|
||||
};
|
||||
};
|
||||
i2c4_default: i2c4_default {
|
||||
group1 {
|
||||
pinmux = <M4SCL_P39>, <M4SDAWIR3_P40>;
|
||||
drive-open-drain;
|
||||
drive-strength = "0.5";
|
||||
bias-pull-up;
|
||||
};
|
||||
};
|
||||
i2c5_default: i2c5_default {
|
||||
group1 {
|
||||
pinmux = <M5SCL_P48>, <M5SDAWIR3_P49>;
|
||||
drive-open-drain;
|
||||
drive-strength = "0.5";
|
||||
bias-pull-up;
|
||||
};
|
||||
};
|
||||
|
||||
spi0_default: spi0_default {
|
||||
group1 {
|
||||
pinmux = <M0SCK_P5>, <M0MISO_P6>, <M0MOSI_P7>;
|
||||
};
|
||||
group2 {
|
||||
pinmux = <NCE11_P11>;
|
||||
drive-push-pull;
|
||||
ambiq,iom-nce-module = <0>;
|
||||
ambiq,iom-num = <0>;
|
||||
};
|
||||
};
|
||||
spi1_default: spi1_default {
|
||||
group1 {
|
||||
pinmux = <M1SCK_P8>, <M1MISO_P9>, <M1MOSI_P10>;
|
||||
};
|
||||
group2 {
|
||||
pinmux = <NCE14_P14>;
|
||||
drive-push-pull;
|
||||
ambiq,iom-nce-module = <1>;
|
||||
ambiq,iom-num = <1>;
|
||||
};
|
||||
};
|
||||
spi2_default: spi2_default {
|
||||
group1 {
|
||||
pinmux = <M2SCK_P27>, <M2MISO_P25>, <M2MOSI_P28>;
|
||||
};
|
||||
group2 {
|
||||
pinmux = <NCE15_P15>;
|
||||
drive-push-pull;
|
||||
ambiq,iom-nce-module = <3>;
|
||||
ambiq,iom-num = <2>;
|
||||
};
|
||||
};
|
||||
spi3_default: spi3_default {
|
||||
group1 {
|
||||
pinmux = <M3SCK_P42>, <M3MISO_P43>, <M3MOSI_P38>;
|
||||
};
|
||||
group2 {
|
||||
pinmux = <NCE12_P12>;
|
||||
drive-push-pull;
|
||||
ambiq,iom-nce-module = <0>;
|
||||
ambiq,iom-num = <3>;
|
||||
};
|
||||
};
|
||||
spi4_default: spi4_default {
|
||||
group1 {
|
||||
pinmux = <M4SCK_P39>, <M4MISO_P40>, <M4MOSI_P44>;
|
||||
};
|
||||
group2 {
|
||||
pinmux = <NCE13_P13>;
|
||||
drive-push-pull;
|
||||
ambiq,iom-nce-module = <1>;
|
||||
ambiq,iom-num = <4>;
|
||||
};
|
||||
};
|
||||
spi5_default: spi5_default {
|
||||
group1 {
|
||||
pinmux = <M5SCK_P48>, <M5MISO_P49>, <M5MOSI_P47>;
|
||||
};
|
||||
group2 {
|
||||
pinmux = <NCE16_P16>;
|
||||
drive-push-pull;
|
||||
ambiq,iom-nce-module = <0>;
|
||||
ambiq,iom-num = <5>;
|
||||
};
|
||||
};
|
||||
|
||||
mspi0_default: mspi0_default{
|
||||
group1 {
|
||||
pinmux = <MSPI0_0_P22>,
|
||||
<MSPI0_1_P26>,
|
||||
<MSPI0_2_P4>,
|
||||
<MSPI0_3_P23>,
|
||||
<MSPI0_8_P24>;
|
||||
};
|
||||
group2 {
|
||||
pinmux = <NCE19_P19>;
|
||||
drive-push-pull;
|
||||
drive-strength = "0.5";
|
||||
ambiq,iom-nce-module = <0>;
|
||||
ambiq,iom-num = <6>;
|
||||
};
|
||||
};
|
||||
};
|
29
boards/ambiq/apollo3_evb/apollo3_evb.dts
Normal file
29
boards/ambiq/apollo3_evb/apollo3_evb.dts
Normal file
|
@ -0,0 +1,29 @@
|
|||
/dts-v1/;
|
||||
#include <ambiq/ambiq_apollo3_blue.dtsi>
|
||||
|
||||
#include "apollo3_evb-pinctrl.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Ambiq Apollo3 Blue evaluation board";
|
||||
compatible = "ambiq,apollo3_evb";
|
||||
|
||||
chosen {
|
||||
zephyr,itcm = &tcm;
|
||||
zephyr,sram = &sram0;
|
||||
zephyr,flash = &flash0;
|
||||
zephyr,console = &uart0;
|
||||
zephyr,shell-uart = &uart0;
|
||||
zephyr,uart-pipe = &uart0;
|
||||
};
|
||||
|
||||
aliases {
|
||||
watchdog0 = &wdt0;
|
||||
};
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
current-speed = <115200>;
|
||||
pinctrl-0 = <&uart0_default>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
};
|
15
boards/ambiq/apollo3_evb/apollo3_evb.yaml
Normal file
15
boards/ambiq/apollo3_evb/apollo3_evb.yaml
Normal file
|
@ -0,0 +1,15 @@
|
|||
identifier: apollo3_evb
|
||||
name: Apollo3 Blue EVB
|
||||
type: mcu
|
||||
arch: arm
|
||||
ram: 384
|
||||
flash: 976
|
||||
toolchain:
|
||||
- zephyr
|
||||
- gnuarmemb
|
||||
supported:
|
||||
- uart
|
||||
testing:
|
||||
ignore_tags:
|
||||
- net
|
||||
vendor: ambiq
|
8
boards/ambiq/apollo3_evb/apollo3_evb_defconfig
Normal file
8
boards/ambiq/apollo3_evb/apollo3_evb_defconfig
Normal file
|
@ -0,0 +1,8 @@
|
|||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
# Copyright (c) 2023 Ambiq Micro Inc. <www.ambiq.com>
|
||||
|
||||
CONFIG_CONSOLE=y
|
||||
CONFIG_UART_CONSOLE=y
|
||||
CONFIG_SERIAL=y
|
||||
CONFIG_UART_INTERRUPT_DRIVEN=y
|
6
boards/ambiq/apollo3_evb/board.cmake
Normal file
6
boards/ambiq/apollo3_evb/board.cmake
Normal file
|
@ -0,0 +1,6 @@
|
|||
# Copyright (c) 2023 Ambiq Micro Inc. <www.ambiq.com>
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
board_runner_args(jlink "--device=AMA3B1KK-KBR" "--iface=swd" "--speed=1000")
|
||||
|
||||
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)
|
5
boards/ambiq/apollo3_evb/board.yml
Normal file
5
boards/ambiq/apollo3_evb/board.yml
Normal file
|
@ -0,0 +1,5 @@
|
|||
board:
|
||||
name: apollo3_evb
|
||||
vendor: ambiq
|
||||
socs:
|
||||
- name: apollo3_blue
|
BIN
boards/ambiq/apollo3_evb/doc/apollo3-blue-soc-eval-board.jpg
Normal file
BIN
boards/ambiq/apollo3_evb/doc/apollo3-blue-soc-eval-board.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 52 KiB |
102
boards/ambiq/apollo3_evb/doc/index.rst
Normal file
102
boards/ambiq/apollo3_evb/doc/index.rst
Normal file
|
@ -0,0 +1,102 @@
|
|||
.. _apollo3_evb:
|
||||
|
||||
Ambiq Apollo3 Blue EVB
|
||||
######################
|
||||
|
||||
Apollo3 Blue EVB is a board by Ambiq featuring their ultra-low power Apollo3 Blue SoC.
|
||||
|
||||
.. image:: ./apollo3-blue-soc-eval-board.jpg
|
||||
:align: center
|
||||
:alt: Apollo3 Blue EVB
|
||||
|
||||
Hardware
|
||||
********
|
||||
|
||||
- Apollo3 Blue SoC with up to 96 MHz operating frequency
|
||||
- ARM® Cortex® M4F core
|
||||
- 16 kB 2-way Associative/Direct-Mapped Cache per core
|
||||
- Up to 1 MB of flash memory for code/data
|
||||
- Up to 384 KB of low leakage / low power RAM for code/data
|
||||
- Integrated Bluetooth 5 Low-energy controller
|
||||
|
||||
For more information about the Apollo3 Blue SoC and Apollo3 Blue EVB board:
|
||||
|
||||
- `Apollo3 Blue Website`_
|
||||
- `Apollo3 Blue Datasheet`_
|
||||
- `Apollo3 Blue EVB Website`_
|
||||
|
||||
Supported Features
|
||||
==================
|
||||
|
||||
The Apollo3 Blue EVB board configuration supports the following hardware features:
|
||||
|
||||
+-----------+------------+-------------------------------------+
|
||||
| Interface | Controller | Driver/Component |
|
||||
+===========+============+=====================================+
|
||||
| MPU | on-chip | memory protection unit |
|
||||
+-----------+------------+-------------------------------------+
|
||||
| NVIC | on-chip | nested vector interrupt controller |
|
||||
+-----------+------------+-------------------------------------+
|
||||
| SYSTICK | on-chip | systick |
|
||||
+-----------+------------+-------------------------------------+
|
||||
| STIMER | on-chip | stimer |
|
||||
+-----------+------------+-------------------------------------+
|
||||
| GPIO | on-chip | gpio |
|
||||
+-----------+------------+-------------------------------------+
|
||||
| UART | on-chip | serial |
|
||||
+-----------+------------+-------------------------------------+
|
||||
| WDT | on-chip | watchdog |
|
||||
+-----------+------------+-------------------------------------+
|
||||
| RADIO | on-chip | bluetooth |
|
||||
+-----------+------------+-------------------------------------+
|
||||
|
||||
The default configuration can be found in the defconfig file:
|
||||
``boards/arm/apollo3_evb/apollo3_evb_defconfig``.
|
||||
|
||||
Programming and Debugging
|
||||
=========================
|
||||
|
||||
Flashing an application
|
||||
-----------------------
|
||||
|
||||
Connect your device to your host computer using the JLINK USB port.
|
||||
The sample application :ref:`hello_world` is used for this example.
|
||||
Build the Zephyr kernel and application, then flash it to the device:
|
||||
|
||||
.. zephyr-app-commands::
|
||||
:zephyr-app: samples/hello_world
|
||||
:board: apollo3_evb
|
||||
:goals: flash
|
||||
|
||||
.. note::
|
||||
`west flash` requires `SEGGER J-Link software`_ and `pylink`_ Python module
|
||||
to be installed on you host computer.
|
||||
|
||||
Open a serial terminal (minicom, putty, etc.) with the following settings:
|
||||
|
||||
- Speed: 115200
|
||||
- Data: 8 bits
|
||||
- Parity: None
|
||||
- Stop bits: 1
|
||||
|
||||
Reset the board and you should be able to see on the corresponding Serial Port
|
||||
the following message:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
Hello World! apollo3_evb
|
||||
|
||||
.. _Apollo3 Blue Website:
|
||||
https://ambiq.com/apollo3-blue/
|
||||
|
||||
.. _Apollo3 Blue Datasheet:
|
||||
https://contentportal.ambiq.com/documents/20123/388390/Apollo3-Blue-SoC-Datasheet.pdf
|
||||
|
||||
.. _Apollo3 Blue EVB Website:
|
||||
https://www.ambiq.top/en/apollo3-blue-soc-eval-board
|
||||
|
||||
.. _SEGGER J-Link software:
|
||||
https://www.segger.com/downloads/jlink
|
||||
|
||||
.. _pylink:
|
||||
https://github.com/Square/pylink
|
Loading…
Add table
Add a link
Reference in a new issue