From 84b62aa12b42bc1e46f5fe29aa0c3fc635204cef Mon Sep 17 00:00:00 2001 From: Benjamin Valentin Date: Thu, 8 Oct 2020 20:56:00 +0200 Subject: [PATCH] boards/weact-f401ce: add WeAct-f401ce --- boards/weact-f401ce/Kconfig | 17 +++++++ boards/weact-f401ce/Makefile | 5 ++ boards/weact-f401ce/Makefile.dep | 3 ++ boards/weact-f401ce/Makefile.features | 3 ++ boards/weact-f401ce/Makefile.include | 5 ++ boards/weact-f401ce/doc.txt | 70 +++++++++++++++++++++++++++ 6 files changed, 103 insertions(+) create mode 100644 boards/weact-f401ce/Kconfig create mode 100644 boards/weact-f401ce/Makefile create mode 100644 boards/weact-f401ce/Makefile.dep create mode 100644 boards/weact-f401ce/Makefile.features create mode 100644 boards/weact-f401ce/Makefile.include create mode 100644 boards/weact-f401ce/doc.txt diff --git a/boards/weact-f401ce/Kconfig b/boards/weact-f401ce/Kconfig new file mode 100644 index 0000000000..c5a2bf848d --- /dev/null +++ b/boards/weact-f401ce/Kconfig @@ -0,0 +1,17 @@ +# Copyright (c) 2020 Benjamin Valentin +# +# This file is subject to the terms and conditions of the GNU Lesser +# General Public License v2.1. See the file LICENSE in the top level +# directory for more details. +# + +config BOARD + default "weact-f401ce" if BOARD_WEACT_F401CE + +config BOARD_WEACT_F401CE + bool + default y + select BOARD_COMMON_WEACT_F41XCX + select CPU_MODEL_STM32F401CE + +source "$(RIOTBOARD)/common/weact-f4x1cx/Kconfig" diff --git a/boards/weact-f401ce/Makefile b/boards/weact-f401ce/Makefile new file mode 100644 index 0000000000..82b562c121 --- /dev/null +++ b/boards/weact-f401ce/Makefile @@ -0,0 +1,5 @@ +MODULE = board + +DIRS = $(RIOTBOARD)/common/weact-f4x1cx + +include $(RIOTBASE)/Makefile.base diff --git a/boards/weact-f401ce/Makefile.dep b/boards/weact-f401ce/Makefile.dep new file mode 100644 index 0000000000..1087582e39 --- /dev/null +++ b/boards/weact-f401ce/Makefile.dep @@ -0,0 +1,3 @@ +USEMODULE += boards_common_weact-f4x1cx + +include $(RIOTBOARD)/common/weact-f4x1cx/Makefile.dep diff --git a/boards/weact-f401ce/Makefile.features b/boards/weact-f401ce/Makefile.features new file mode 100644 index 0000000000..1417cb4e9d --- /dev/null +++ b/boards/weact-f401ce/Makefile.features @@ -0,0 +1,3 @@ +CPU_MODEL = stm32f401ce + +include $(RIOTBOARD)/common/weact-f4x1cx/Makefile.features diff --git a/boards/weact-f401ce/Makefile.include b/boards/weact-f401ce/Makefile.include new file mode 100644 index 0000000000..67070fd104 --- /dev/null +++ b/boards/weact-f401ce/Makefile.include @@ -0,0 +1,5 @@ +# Product & Vendor ID taken from example firmware that the board was shipped with. +CFLAGS += -DINTERNAL_PERIPHERAL_VID=0x0483 +CFLAGS += -DINTERNAL_PERIPHERAL_PID=0x572a + +include $(RIOTBOARD)/common/weact-f4x1cx/Makefile.include diff --git a/boards/weact-f401ce/doc.txt b/boards/weact-f401ce/doc.txt new file mode 100644 index 0000000000..ea8fbf3df3 --- /dev/null +++ b/boards/weact-f401ce/doc.txt @@ -0,0 +1,70 @@ +/** +@defgroup boards_weact-f401ce WeAct-F401CE board +@ingroup boards +@brief Support for the WeAct-F401CE Board + +## Overview + +WeAct-F401CE is a board with the same form-factor as the blue/blackpill, +but with an STM32F401CEU6 and a USB-C connector. + +It is available on sites like AliExpress for less than 3€. + +## Hardware + +![WeAct-F401CE](https://user-images.githubusercontent.com/1301112/69389644-eb5fb080-0ccc-11ea-8002-67d3db851250.png) + +### MCU +| MCU | STM32F401CEU6 | +|:---------------- |:--------------------- | +| Family | ARM Cortex-M4F | +| Vendor | ST Microelectronics | +| RAM | 96KiB | +| Flash | 512KiB | +| Frequency | up to 84MHz | +| FPU | yes | +| Timers | 8 (2x watchdog, 1 SysTick, 6x 16-bit, 2x 32-bit) | +| ADCs | 1x 12-bit | +| UARTs | 3 | +| SPIs | 4 | +| I2Cs | 3 | +| RTC | 1 | +| Vcc | 2.0V - 3.6V | +| Datasheet | [Datasheet](https://www.st.com/resource/en/datasheet/stm32f401ce.pdf) | +| Reference Manual | [Reference Manual](https://www.st.com/content/ccc/resource/technical/document/reference_manual/9b/53/39/1c/f7/01/4a/79/DM00119316.pdf/files/DM00119316.pdf/jcr:content/translations/en.DM00119316.pdf) | + +## Flashing the device +The device comes with a bootloader that allows flashing via `dfu-util`. + +If RIOT is already running on the board, you can upload your RIOT-firmware by typing + +``` +make BOARD=weact-f401ce flash +``` + +RIOT will make sure to enter the bootloader automatically. + +If RIOT crashed or you have the plain board with the stock firmware, you have to enter +the bootloader manually. + +There are two buttons on the board labeled `BOOT0` and `NRST`. + + - Hold down `BOOT0` + - Shortly press `NRST` to reset the CPU while keeping `BOOT0` held down + +The board will now show up as `0483:df11` - `STM32 BOOTLOADER` and will accept +firmware using the DFU protocol. + +*Note:* You need to have write permissions to the device. +On Linux you could add yourself to the `plugdev` group and store the following as `/etc/udev/rules.d/99-weact-f401ce.rules`: + +``` +SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", GROUP="plugdev", MODE="660" +``` + +## UART + +stdio is provided through USB CDC ACM so the board can be used +without any extra hardware, save for a USB-C cable. + + */