EWS/firmware/canfd_cdc_composite
Eduard Iten 8051f18b9b Fix USB configuration for Zephyr 4.2.0
- Use CONFIG_USB_DEVICE_STACK_NEXT (new USB stack)
- Replace CONFIG_USB_CDC_ACM with CONFIG_USBD_CDC_ACM_CLASS
- Remove deprecated CONFIG_USB_DEVICE_COMPOSITE
- Add CONFIG_HAS_STM32CUBE=y to defconfig (required for USB)
- Remove networking configs (not needed for basic USB CDC)
- Based on actual Zephyr 4.2.0 samples
2025-12-08 12:01:41 +01:00
..
boards/arm/ews Fix USB configuration for Zephyr 4.2.0 2025-12-08 12:01:41 +01:00
src Add initial CAN FD CDC composite firmware 2025-12-08 11:27:15 +01:00
CMakeLists.txt Rename board from ews_board to ews and fix board discovery 2025-12-08 11:32:22 +01:00
README.md Rename board from ews_board to ews and fix board discovery 2025-12-08 11:32:22 +01:00
prj.conf Fix USB configuration for Zephyr 4.2.0 2025-12-08 12:01:41 +01:00

README.md

CAN FD CDC Composite Firmware

A Zephyr-based firmware for the EWS board that provides:

  • CAN FD to gs_usb interface (similar to candlelight)
  • USB CDC interface for PFET control
  • USB composite device functionality

Features

  • CAN FD Support: Full CAN FD protocol support via gs_usb interface
  • USB Composite: Single USB device with multiple interfaces:
    • gs_usb interface for CAN communication
    • CDC ACM interface for PFET control and status
  • PFET Control: Control both output PFETs via CDC commands
  • Status LEDs: Control status LEDs for visual feedback
  • Compatible: Works with standard CAN utilities (can-utils, etc.)

Hardware Target

  • MCU: STM32G0B1KBU6 (on EWS board)
  • CAN: CAN FD via FDCAN1 (PB0/PB1) with SN65HVD230 transceiver
  • USB: USB 2.0 Full Speed (PA11/PA12)
  • GPIOs:
    • PFET1 control: PA8
    • PFET2 control: PB2
    • Status LED: PB4

Build Requirements

  • Zephyr RTOS (v3.5+)
  • West build tool
  • ARM GCC toolchain

Building

west build -b ews

CDC Protocol

The CDC interface uses simple text commands:

  • PFET1_ON\n - Turn on PFET1
  • PFET1_OFF\n - Turn off PFET1
  • PFET2_ON\n - Turn on PFET2
  • PFET2_OFF\n - Turn off PFET2
  • STATUS\n - Get current PFET status