boards: arm: gd32a503v_eval: introduce gd32a503v_eval board
introduce gd32a503v_eval board Signed-off-by: YuLong Yao <feilongphone@gmail.com>
This commit is contained in:
parent
aed1f1ac5b
commit
50e13ab3d2
9 changed files with 420 additions and 0 deletions
6
boards/arm/gd32a503v_eval/Kconfig.board
Normal file
6
boards/arm/gd32a503v_eval/Kconfig.board
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
# Copyright (c) 2022 YuLong Yao <feilongphone@gmail.com>
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
config BOARD_GD32A503V_EVAL
|
||||||
|
bool "GigaDevice GD32A503V-EVAL"
|
||||||
|
depends on SOC_GD32A503
|
9
boards/arm/gd32a503v_eval/Kconfig.defconfig
Normal file
9
boards/arm/gd32a503v_eval/Kconfig.defconfig
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
# Copyright (c) 2022 YuLong Yao <feilongphone@gmail.com>
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
if BOARD_GD32A503V_EVAL
|
||||||
|
|
||||||
|
config BOARD
|
||||||
|
default "gd32a503v_eval"
|
||||||
|
|
||||||
|
endif # BOARD_GD32A503V_EVAL
|
8
boards/arm/gd32a503v_eval/board.cmake
Normal file
8
boards/arm/gd32a503v_eval/board.cmake
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
# Copyright (c) 2022 YuLong Yao <feilongphone@gmail.com>
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
board_runner_args(pyocd "--target=gd32a503vd" "--tool-opt=--pack=${ZEPHYR_HAL_GIGADEVICE_MODULE_DIR}/${CONFIG_SOC_SERIES}/support/GigaDevice.GD32A50x_DFP.1.0.0.pack")
|
||||||
|
include(${ZEPHYR_BASE}/boards/common/pyocd.board.cmake)
|
||||||
|
|
||||||
|
board_runner_args(gd32isp "--device=GD32A503VDT3")
|
||||||
|
include(${ZEPHYR_BASE}/boards/common/gd32isp.board.cmake)
|
BIN
boards/arm/gd32a503v_eval/doc/img/gd32a503v_eval.jpg
Normal file
BIN
boards/arm/gd32a503v_eval/doc/img/gd32a503v_eval.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 98 KiB |
223
boards/arm/gd32a503v_eval/doc/index.rst
Normal file
223
boards/arm/gd32a503v_eval/doc/index.rst
Normal file
|
@ -0,0 +1,223 @@
|
||||||
|
.. _gd32a503v_eval:
|
||||||
|
|
||||||
|
GigaDevice GD32A503V-EVAL
|
||||||
|
#########################
|
||||||
|
|
||||||
|
|
||||||
|
Overview
|
||||||
|
********
|
||||||
|
|
||||||
|
The GD32A503V-EVAL board is a hardware platform that enables design and debug
|
||||||
|
of the GigaDevice A503 Cortex-M4F High Performance MCU.
|
||||||
|
|
||||||
|
The GD32A503VD features a single-core ARM Cortex-M4F MCU which can run up
|
||||||
|
to 120-MHz with flash accesses zero wait states, 384kiB of Flash, 48kiB of
|
||||||
|
SRAM and 88 GPIOs.
|
||||||
|
|
||||||
|
.. image:: img/gd32a503v_eval.jpg
|
||||||
|
:align: center
|
||||||
|
:alt: gd32a503v_eval
|
||||||
|
|
||||||
|
|
||||||
|
Hardware
|
||||||
|
********
|
||||||
|
|
||||||
|
- 2 user LEDs
|
||||||
|
- 2 user push buttons
|
||||||
|
- Reset Button
|
||||||
|
- ADC connected to a potentiometer
|
||||||
|
- 1 DAC channels
|
||||||
|
- GD25Q16 2Mib SPI Flash
|
||||||
|
- AT24C02C 2KiB EEPROM
|
||||||
|
- CS4344 Stereo DAC with Headphone Amplifier
|
||||||
|
- GD-Link interface
|
||||||
|
|
||||||
|
- CMSIS-DAP swd debug interface over USB HID.
|
||||||
|
|
||||||
|
- 2 CAN port(support CAN-FD)
|
||||||
|
|
||||||
|
For more information about the GD32A503 SoC and GD32A503V-EVAL board:
|
||||||
|
|
||||||
|
- `GigaDevice Cortex-M33 High Performance SoC Website`_
|
||||||
|
- `GD32A503 Datasheet`_
|
||||||
|
- `GD32A503 Reference Manual`_
|
||||||
|
- `GD32A503V Eval Schematics`_
|
||||||
|
- `GD32 ISP Console`_
|
||||||
|
|
||||||
|
|
||||||
|
Supported Features
|
||||||
|
==================
|
||||||
|
|
||||||
|
The board configuration supports the following hardware features:
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:header-rows: 1
|
||||||
|
|
||||||
|
* - Peripheral
|
||||||
|
- Kconfig option
|
||||||
|
- Devicetree compatible
|
||||||
|
* - EXTI
|
||||||
|
- :kconfig:option:`CONFIG_GD32_EXTI`
|
||||||
|
- :dtcompatible:`gd,gd32-exti`
|
||||||
|
* - GPIO
|
||||||
|
- :kconfig:option:`CONFIG_GPIO`
|
||||||
|
- :dtcompatible:`gd,gd32-gpio`
|
||||||
|
* - NVIC
|
||||||
|
- N/A
|
||||||
|
- :dtcompatible:`arm,v8m-nvic`
|
||||||
|
* - PWM
|
||||||
|
- :kconfig:option:`CONFIG_PWM`
|
||||||
|
- :dtcompatible:`gd,gd32-pwm`
|
||||||
|
* - SYSTICK
|
||||||
|
- N/A
|
||||||
|
- N/A
|
||||||
|
* - USART
|
||||||
|
- :kconfig:option:`CONFIG_SERIAL`
|
||||||
|
- :dtcompatible:`gd,gd32-usart`
|
||||||
|
* - PINMUX
|
||||||
|
- :kconfig:option:`CONFIG_PINCTRL`
|
||||||
|
- :dtcompatible:`gd,gd32-pinctrl-af`
|
||||||
|
* - ADC
|
||||||
|
- :kconfig:option:`CONFIG_ADC`
|
||||||
|
- :dtcompatible:`gd,gd32-adc`
|
||||||
|
* - DAC
|
||||||
|
- :kconfig:option:`CONFIG_DAC`
|
||||||
|
- :dtcompatible:`gd,gd32-dac`
|
||||||
|
* - FMC
|
||||||
|
- N/A
|
||||||
|
- :dtcompatible:`gd,gd32-flash-controller`
|
||||||
|
* - SPI
|
||||||
|
- :kconfig:option:`CONFIG_SPI`
|
||||||
|
- :dtcompatible:`gd,gd32-spi`
|
||||||
|
|
||||||
|
Serial Port
|
||||||
|
===========
|
||||||
|
|
||||||
|
The GD32A503V-EVAL board has 3 serial communication ports. The default port
|
||||||
|
is UART0 at PIN-72 and PIN-73.
|
||||||
|
|
||||||
|
Programming and Debugging
|
||||||
|
*************************
|
||||||
|
|
||||||
|
Before program your board make sure to configure boot setting and serial port.
|
||||||
|
The default serial port is USART0.
|
||||||
|
|
||||||
|
+--------+--------+------------+
|
||||||
|
| Boot-0 | Boot-1 | Function |
|
||||||
|
+========+========+============+
|
||||||
|
| 1-2 | 1-2 | SRAM |
|
||||||
|
+--------+--------+------------+
|
||||||
|
| 1-2 | 2-3 | Bootloader |
|
||||||
|
+--------+--------+------------+
|
||||||
|
| 2-3 | Any | Flash |
|
||||||
|
+--------+--------+------------+
|
||||||
|
|
||||||
|
Using GD-Link
|
||||||
|
=============
|
||||||
|
|
||||||
|
The GD32A503V-EVAL includes an onboard programmer/debugger (GD-Link) which
|
||||||
|
allow flash programming and debug over USB. There are also program and debug
|
||||||
|
headers J2 and J100 that can be used with any ARM compatible tools.
|
||||||
|
|
||||||
|
#. Build the Zephyr kernel and the :ref:`hello_world` sample application:
|
||||||
|
|
||||||
|
.. zephyr-app-commands::
|
||||||
|
:zephyr-app: samples/hello_world
|
||||||
|
:board: gd32a503v_eval
|
||||||
|
:goals: build
|
||||||
|
:compact:
|
||||||
|
|
||||||
|
#. Run your favorite terminal program to listen for output. Under Linux the
|
||||||
|
terminal should be :code:`/dev/ttyUSB0`. For example:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
$ minicom -D /dev/ttyUSB0 -o
|
||||||
|
|
||||||
|
The -o option tells minicom not to send the modem initialization
|
||||||
|
string. Connection should be configured as follows:
|
||||||
|
|
||||||
|
- Speed: 115200
|
||||||
|
- Data: 8 bits
|
||||||
|
- Parity: None
|
||||||
|
- Stop bits: 1
|
||||||
|
|
||||||
|
#. To flash an image:
|
||||||
|
|
||||||
|
.. zephyr-app-commands::
|
||||||
|
:zephyr-app: samples/hello_world
|
||||||
|
:board: gd32a503v_eval
|
||||||
|
:goals: flash
|
||||||
|
:compact:
|
||||||
|
|
||||||
|
You should see "Hello World! gd32a503v_eval" in your terminal.
|
||||||
|
|
||||||
|
#. To debug an image:
|
||||||
|
|
||||||
|
.. zephyr-app-commands::
|
||||||
|
:zephyr-app: samples/hello_world
|
||||||
|
:board: gd32a503v_eval
|
||||||
|
:goals: debug
|
||||||
|
:compact:
|
||||||
|
|
||||||
|
|
||||||
|
Using ROM bootloader
|
||||||
|
====================
|
||||||
|
|
||||||
|
The GD32A503 MCU have a ROM bootloader which allow flash programming. User
|
||||||
|
should install `GD32 ISP Console`_ software at some Linux path. The recommended
|
||||||
|
is :code:`$HOME/.local/bin`.
|
||||||
|
|
||||||
|
#. Build the Zephyr kernel and the :ref:`hello_world` sample application:
|
||||||
|
|
||||||
|
.. zephyr-app-commands::
|
||||||
|
:zephyr-app: samples/hello_world
|
||||||
|
:board: gd32a503v_eval
|
||||||
|
:goals: build
|
||||||
|
:compact:
|
||||||
|
|
||||||
|
#. Enable board bootloader:
|
||||||
|
|
||||||
|
- Remove boot-0 jumper
|
||||||
|
- press reset button
|
||||||
|
|
||||||
|
#. To flash an image:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
west flash -r gd32isp [--port=/dev/ttyUSB0]
|
||||||
|
|
||||||
|
#. Run your favorite terminal program to listen for output. Under Linux the
|
||||||
|
terminal should be :code:`/dev/ttyUSB0`. For example:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
$ minicom -D /dev/ttyUSB0 -o
|
||||||
|
|
||||||
|
The -o option tells minicom not to send the modem initialization
|
||||||
|
string. Connection should be configured as follows:
|
||||||
|
|
||||||
|
- Speed: 115200
|
||||||
|
- Data: 8 bits
|
||||||
|
- Parity: None
|
||||||
|
- Stop bits: 1
|
||||||
|
|
||||||
|
Press reset button
|
||||||
|
|
||||||
|
You should see "Hello World! gd32a503v_eval" in your terminal.
|
||||||
|
|
||||||
|
|
||||||
|
.. _GigaDevice Cortex-M33 High Performance SoC Website:
|
||||||
|
https://www.gigadevice.com.cn/product/mcu/arm-cortex-m33/gd32a503vdt3
|
||||||
|
|
||||||
|
.. _GD32A503 Datasheet:
|
||||||
|
https://www.gd32mcu.com/download/down/document_id/401/path_type/1
|
||||||
|
|
||||||
|
.. _GD32A503 Reference Manual:
|
||||||
|
https://www.gd32mcu.com/download/down/document_id/402/path_type/1
|
||||||
|
|
||||||
|
.. _GD32A503V Eval Schematics:
|
||||||
|
https://www.gd32mcu.com/download/down/document_id/404/path_type/1
|
||||||
|
|
||||||
|
.. _GD32 ISP Console:
|
||||||
|
http://www.gd32mcu.com/download/down/document_id/175/path_type/1
|
35
boards/arm/gd32a503v_eval/gd32a503v_eval-pinctrl.dtsi
Normal file
35
boards/arm/gd32a503v_eval/gd32a503v_eval-pinctrl.dtsi
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2022 YuLong Yao <feilongphone@gmail.com>
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <dt-bindings/pinctrl/gd32a503v(b-c-d)xx-pinctrl.h>
|
||||||
|
|
||||||
|
&pinctrl {
|
||||||
|
usart0_default: usart0_default {
|
||||||
|
group1 {
|
||||||
|
pinmux = <USART0_TX_PA10>, <USART0_RX_PA11>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
adc0_default: adc0_default {
|
||||||
|
group1 {
|
||||||
|
pinmux = <ADC0_IN1_PC10>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
dac_default: dac_default {
|
||||||
|
group1 {
|
||||||
|
pinmux = <DAC_OUT_PA7>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
spi0_default: spi0_default {
|
||||||
|
group1 {
|
||||||
|
pinmux = <SPI0_SCK_PE14>, <SPI0_MOSI_PA2>,
|
||||||
|
<SPI0_MISO_PE13>,
|
||||||
|
/* Use pinmux to pullup pg10 and pg11. */
|
||||||
|
<SPI0_IO2_PE15>, <SPI0_IO3_PB10>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
103
boards/arm/gd32a503v_eval/gd32a503v_eval.dts
Normal file
103
boards/arm/gd32a503v_eval/gd32a503v_eval.dts
Normal file
|
@ -0,0 +1,103 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2022 YuLong Yao <feilongphone@gmail.com>
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
#include <gigadevice/gd32a50x/gd32a503vdt3.dtsi>
|
||||||
|
#include "gd32a503v_eval-pinctrl.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "GigaDevice GD32A503V-EVAL";
|
||||||
|
compatible = "gd,gd32a503v-eval";
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
zephyr,sram = &sram0;
|
||||||
|
zephyr,flash = &flash0;
|
||||||
|
zephyr,console = &usart0;
|
||||||
|
zephyr,shell-uart = &usart0;
|
||||||
|
zephyr,flash-controller = &fmc;
|
||||||
|
};
|
||||||
|
|
||||||
|
leds {
|
||||||
|
compatible = "gpio-leds";
|
||||||
|
led1: led1 {
|
||||||
|
gpios = <&gpioc 0 GPIO_ACTIVE_LOW>;
|
||||||
|
label = "LED1";
|
||||||
|
};
|
||||||
|
led2: led2 {
|
||||||
|
gpios = <&gpioc 1 GPIO_ACTIVE_LOW>;
|
||||||
|
label = "LED2";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
aliases {
|
||||||
|
led0 = &led1;
|
||||||
|
led1 = &led2;
|
||||||
|
spi-flash0 = &nor_flash;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpioa {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpiob {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpioc {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpiod {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpioe {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpiof {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usart0 {
|
||||||
|
status = "okay";
|
||||||
|
current-speed = <115200>;
|
||||||
|
pinctrl-0 = <&usart0_default>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
};
|
||||||
|
|
||||||
|
&adc0 {
|
||||||
|
status = "okay";
|
||||||
|
pinctrl-0 = <&adc0_default>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
};
|
||||||
|
|
||||||
|
&dac {
|
||||||
|
status = "okay";
|
||||||
|
pinctrl-0 = <&dac_default>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
};
|
||||||
|
|
||||||
|
&fwdgt {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&spi0 {
|
||||||
|
status = "okay";
|
||||||
|
pinctrl-0 = <&spi0_default>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
cs-gpios = <&gpioa 1 GPIO_ACTIVE_LOW>;
|
||||||
|
|
||||||
|
nor_flash: gd25q16@0 {
|
||||||
|
compatible ="jedec,spi-nor";
|
||||||
|
size = <0x1000000>;
|
||||||
|
reg = <0>;
|
||||||
|
spi-max-frequency = <4000000>;
|
||||||
|
status = "okay";
|
||||||
|
jedec-id = [c8 40 15];
|
||||||
|
};
|
||||||
|
};
|
13
boards/arm/gd32a503v_eval/gd32a503v_eval_defconfig
Normal file
13
boards/arm/gd32a503v_eval/gd32a503v_eval_defconfig
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
# Copyright (c) 2022 YuLong Yao <feilongphone@gmail.com>
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
CONFIG_SOC_SERIES_GD32A50X=y
|
||||||
|
CONFIG_SOC_GD32A503=y
|
||||||
|
CONFIG_BOARD_GD32A503V_EVAL=y
|
||||||
|
|
||||||
|
CONFIG_ARM_MPU=y
|
||||||
|
CONFIG_HW_STACK_PROTECTION=y
|
||||||
|
|
||||||
|
CONFIG_CONSOLE=y
|
||||||
|
CONFIG_UART_CONSOLE=y
|
||||||
|
CONFIG_SERIAL=y
|
23
boards/arm/gd32a503v_eval/gd32f450z_eval.yaml
Normal file
23
boards/arm/gd32a503v_eval/gd32f450z_eval.yaml
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
# Copyright (c) 2022 YuLong Yao <feilongphone@gmail.com>
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
identifier: gd32a503v_eval
|
||||||
|
name: GigaDevice GD32A503V-EVAL
|
||||||
|
type: mcu
|
||||||
|
arch: arm
|
||||||
|
ram: 48
|
||||||
|
flash: 384
|
||||||
|
toolchain:
|
||||||
|
- zephyr
|
||||||
|
- gnuarmemb
|
||||||
|
- xtools
|
||||||
|
supported:
|
||||||
|
- adc
|
||||||
|
- counter
|
||||||
|
- dac
|
||||||
|
- dma
|
||||||
|
- gpio
|
||||||
|
- pwm
|
||||||
|
- spi
|
||||||
|
- uart
|
||||||
|
- watchdog
|
Loading…
Add table
Add a link
Reference in a new issue