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

arm,cortex-m4f

ADC

on-chip

STM32 ADC2

st,stm32-adc

CAN

on-chip

STM32 FDCAN CAN FD controller1

st,stm32-fdcan

Clock control

on-chip

STM32 RCC (Reset and Clock controller)1

st,stm32-rcc

on-chip

STM32 HSE Clock1

st,stm32-hse-clock

on-chip

Generic fixed-rate clock provider12

fixed-clock

on-chip

STM32 LSE Clock1

st,stm32-lse-clock

on-chip

STM32G4 main PLL1

st,stm32g4-pll-clock

Comparator

on-chip

STM32G4 series Comparator4

st,stm32g4-comp

Counter

on-chip

STM32 counters10

st,stm32-counter

CRC

on-chip

STM32 CRC calculation unit1

st,stm32-crc

DAC

on-chip

STM32 family DAC2

st,stm32-dac

DMA

on-chip

STM32 DMA controller (V2)2

st,stm32-dma-v2

on-chip

STM32 DMAMUX controller1

st,stm32-dmamux

Flash controller

on-chip

STM32 Family flash controller1

st,stm32-flash-controller

GPIO & Headers

on-chip

STM32 GPIO Controller7

st,stm32-gpio

I2C

on-chip

STM32 I2C V2 controller3

st,stm32-i2c-v2

I2S

on-chip

STM32 SAI Block controller1

st,stm32-sai

Interrupt controller

on-chip

ARMv7-M NVIC (Nested Vectored Interrupt Controller)1

arm,v7m-nvic

on-chip

STM32 External Interrupt Controller1

st,stm32-exti

LED

on-board

Group of GPIO-controlled LEDs1

gpio-leds

MTD

on-chip

STM32 flash memory1

st,stm32-nv-flash

NVMEM

on-chip

Fixed layout for Non-Volatile memory1

fixed-layout

OPAMP

on-chip

STM32G4 OPAMP3

st,stm32g4-opamp

OTP memory

on-chip

STM32 embedded NVM OTP11

st,stm32-nvm-otp

PHY

on-chip

This binding is to be used by all the usb transceivers which are built-in with USB IP1

usb-nop-xceiv

Pin control

on-chip

STM32 Pin controller1

st,stm32-pinctrl

PWM

on-chip

STM32 PWM8

st,stm32-pwm

Reset controller

on-chip

STM32 Reset and Clock Control (RCC) Controller1

st,stm32-rcc-rctl

RNG

on-chip

STM32 Random Number Generator1

st,stm32-rng

RTC

on-chip

STM32 RTC1

st,stm32-rtc

Sensors

on-chip

STM32 quadrature decoder5

st,stm32-qdec

on-chip

STM32 family TEMP node for production calibrated sensors with two calibration temperatures1

st,stm32-temp-cal

on-chip

STM32 VREF+1

st,stm32-vref

on-chip

STM32 VBAT1

st,stm32-vbat

Serial controller

on-chip

STM32 USART3

st,stm32-usart

on-chip

STM32 UART1

st,stm32-uart

on-chip

STM32 LPUART1

st,stm32-lpuart

SMbus

on-chip

STM32 SMBus controller3

st,stm32-smbus

SPI

on-chip

STM32 SPI controller with embedded Rx and Tx FIFOs3

st,stm32-spi-fifo

USB Type-C Port Controller

on-chip

STM32 USB Type-C / Power Delivery1

st,stm32-ucpd

Timer

on-chip

ARMv7-M System Tick1

arm,armv7m-systick

on-chip

STM32 low-power timer (LPTIM)1

st,stm32-lptim

on-chip

STM32 timers10

st,stm32-timers

USB

on-chip

STM32 USB controller1

st,stm32-usb

Watchdog

on-chip

STM32 watchdog1

st,stm32-watchdog

on-chip

STM32 system window watchdog1

st,stm32-window-watchdog

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

References