USBCANFD SOLO
Overview
The USBCANFD SOLO is a high-performance 1-channel USB to CAN FD adapter board supporting data rates up to 8 Mbps. More information can be found on the can-module.com website.
Hardware
The USBCANFD SOLO board is equipped with an STM32G431C8 microcontroller and features galvanic isolation, status LEDs for the CAN channel, and software-configurable boot settings for entering the built-in bootloader mode.
Default Zephyr Peripheral Mapping
CAN_RX/BOOT0 : PB8
CAN_TX : PB9
ledRX : PA6
ledTX : PA5
USB_DN : PA11
USB_DP : PA12
SWDIO : PA13
SWCLK : PA14
NRST : PG10
Supported Features
The usbcanfd_solo board supports the hardware features listed below.
- on-chip / on-board
- Feature integrated in the SoC / present on the board.
- 2 / 2
-
Number of instances that are enabled / disabled.
Click on the label to see the first instance of this feature in the board/SoC DTS files. -
vnd,foo -
Compatible string for the Devicetree binding matching the feature.
Click on the link to view the binding documentation.
usbcanfd_solo/stm32g431xx target
On-target memory for this board target: 32 KiB of RAM, 64 KiB of Flash.
Type |
Location |
Description |
Compatible |
|---|---|---|---|
CPU |
on-chip |
ARM Cortex-M4F CPU1 |
|
ADC |
on-chip |
STM32 ADC2 |
|
CAN |
on-chip |
STM32 FDCAN CAN FD controller1 |
|
Clock control |
on-chip |
STM32 RCC (Reset and Clock controller)1 |
|
on-chip |
STM32 HSE Clock1 |
||
on-chip |
|||
on-chip |
STM32 LSE Clock1 |
||
on-chip |
STM32G4 main PLL1 |
||
Comparator |
on-chip |
STM32G4 series Comparator4 |
|
Counter |
on-chip |
STM32 counters10 |
|
CRC |
on-chip |
STM32 CRC calculation unit1 |
|
DAC |
on-chip |
STM32 family DAC2 |
|
DMA |
on-chip |
STM32 DMA controller (V2)2 |
|
on-chip |
STM32 DMAMUX controller1 |
||
Flash controller |
on-chip |
STM32 Family flash controller1 |
|
GPIO & Headers |
on-chip |
STM32 GPIO Controller7 |
|
I2C |
on-chip |
STM32 I2C V2 controller3 |
|
I2S |
on-chip |
STM32 SAI Block controller1 |
|
Interrupt controller |
on-chip |
ARMv7-M NVIC (Nested Vectored Interrupt Controller)1 |
|
on-chip |
STM32 External Interrupt Controller1 |
||
LED |
on-board |
Group of GPIO-controlled LEDs1 |
|
MTD |
on-chip |
STM32 flash memory1 |
|
NVMEM |
on-chip |
Fixed layout for Non-Volatile memory1 |
|
OPAMP |
on-chip |
STM32G4 OPAMP3 |
|
OTP memory |
on-chip |
||
PHY |
on-chip |
This binding is to be used by all the usb transceivers which are built-in with USB IP1 |
|
Pin control |
on-chip |
STM32 Pin controller1 |
|
PWM |
on-chip |
STM32 PWM8 |
|
Reset controller |
on-chip |
STM32 Reset and Clock Control (RCC) Controller1 |
|
RNG |
on-chip |
STM32 Random Number Generator1 |
|
RTC |
on-chip |
STM32 RTC1 |
|
Sensors |
on-chip |
STM32 quadrature decoder5 |
|
on-chip |
STM32 family TEMP node for production calibrated sensors with two calibration temperatures1 |
||
on-chip |
STM32 VREF+1 |
||
on-chip |
STM32 VBAT1 |
||
Serial controller |
on-chip |
STM32 USART3 |
|
on-chip |
STM32 UART1 |
||
on-chip |
STM32 LPUART1 |
||
SMbus |
on-chip |
STM32 SMBus controller3 |
|
SPI |
on-chip |
STM32 SPI controller with embedded Rx and Tx FIFOs3 |
|
USB Type-C Port Controller |
on-chip |
STM32 USB Type-C / Power Delivery1 |
|
Timer |
on-chip |
ARMv7-M System Tick1 |
|
on-chip |
STM32 low-power timer (LPTIM)1 |
||
on-chip |
STM32 timers10 |
||
USB |
on-chip |
STM32 USB controller1 |
|
Watchdog |
on-chip |
STM32 watchdog1 |
|
on-chip |
STM32 system window watchdog1 |
System Clock
The FDCAN1 peripheral is driven by PLLQ, which has a frequency of 80 MHz.
Programming and Debugging
The usbcanfd_solo board supports the runners and associated west commands listed below.
| flash | debug | attach | rtt | debugserver | |
|---|---|---|---|---|---|
| openocd | ✅ (default) | ✅ (default) | ✅ | ✅ | ✅ |
Build and flash applications as usual (see Building an Application and Run an Application for more details).
Flashing
Flashing via USB DFU requires access to the built-in ROM bootloader. Since the board does not
have a physical BOOT0 pin, entry into DFU mode must be managed via option bytes.
Use an external debugger (such as ST-LINK) to change the nswBoot0 bit to 1 to enter DFU mode.
After flashing the firmware via USB DFU, you must change the nswBoot0 bit back to 0
to ensure normal boot behavior from Flash memory.
Alternatively, you can flash the board directly using an ST-LINK debugger.
Here is an example for the Blinky application.
# From the root of the zephyr repository
west build -b usbcanfd_solo samples/basic/blinky
west flash