Renesas RA8M1
The RA8M1 is a Renesas RA family MCU built around an Arm Cortex-M85 core (Armv8.1-M, Helium/MVE, running at up to 480 MHz), with TrustZone for Armv8-M support in hardware. This NuttX port is a flat, no-TrustZone image: it always runs in the secure state and uses the secure memory and register aliases (see the flat/secure model note in the port’s board documentation).
Supported MCUs
The following list includes MCUs from the RA8M1 series and indicates whether they are supported in NuttX. Only R7FA8M1AHECBD (BGA224, on the EK-RA8M1) has been tested; the others are selectable but untested.
MCU |
Support |
Note |
|---|---|---|
R7FA8M1AFECAM |
No |
Selectable, untested |
R7FA8M1AFECBD |
No |
Selectable, untested |
R7FA8M1AFECFB |
No |
Selectable, untested |
R7FA8M1AFECFC |
No |
Selectable, untested |
R7FA8M1AFECFP |
No |
Selectable, untested |
R7FA8M1AHECAM |
No |
Selectable, untested |
R7FA8M1AHECBD |
Yes |
Tested on the EK-RA8M1 |
R7FA8M1AHECFB |
No |
Selectable, untested |
R7FA8M1AHECFC |
No |
Selectable, untested |
R7FA8M1AHECFP |
No |
Selectable, untested |
Peripheral Support
The following list indicates peripherals supported in NuttX:
Peripheral |
Support |
Notes |
|---|---|---|
FLASH |
No |
|
CLOCK |
Yes |
MOCO, HOCO, MOSC, PLL1, PLL2, SCICLK |
ICU |
Yes |
|
KINT |
No |
|
ELC |
No |
|
DTC |
No |
|
DMAC |
No |
|
GPT |
No |
|
AGT |
No |
|
RTC |
No |
|
WDT |
No |
|
IWDT |
No |
|
SCI |
Yes |
Just UART (SCI_B0-4, SCI_B9) |
IIC |
No |
|
SPI |
No |
|
SSIE |
No |
|
QSPI |
No |
|
SDHI |
No |
|
CAN |
No |
|
USBFS |
No |
|
ADC12 |
No |
|
DAC12 |
No |
|
ACMPLP |
No |
|
OPAMP |
No |
|
CRC |
No |
|
GPIO |
Yes |
CLOCK
The board’s include/board.h defines BOARD_* macros that select the clock
sources, PLL settings and dividers, and arch/arm/src/ra8m1/ra_clockconfig.h
derives every clock frequency from them and checks it against the limits in
the RA8M1 User’s Manual (chapter 8) at build time. See the board’s own
documentation for the specific clock tree it configures.
The RA8M1 has two PLLs. PLL1 can feed the system clock or a peripheral dedicated clock (SCICLK); PLL2 can only feed a dedicated clock. SCICLK is enabled automatically whenever an SCI UART is enabled, since it is the clock of the SCI baud rate generator.
SCI
The Serial Communications Interface, Type B (SCI_B) is configurable to support several serial communication modes: Asynchronous (UART), Clock synchronous, Simple SPI, Smart card interface, Simple IIC (master-only). NuttX driver support covers UART mode. RA8M1 has SCI_B0-4 and SCI_B9 (no SCI_B5-8); each channel’s baud rate generator runs from SCICLK.
GPIO
Pins can be configured/operated using ra_gpio_* functions.
ICU
The Interrupt Controller Unit routes peripheral events to NVIC vectors:
any event can be routed to any of its IELSR slots. NuttX assigns SCI_B
events to fixed slots (four per channel) and calls ra_attach_icu() at
start-up to route the enabled channels’ events into them.