Browse Source
Add support for the open-source FYSETC UCAN USB to CAN 2.0B board. Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>pull/81485/head
9 changed files with 212 additions and 0 deletions
@ -0,0 +1,10 @@
@@ -0,0 +1,10 @@
|
||||
.. _boards-fysetc: |
||||
|
||||
FYSETC |
||||
###### |
||||
|
||||
.. toctree:: |
||||
:maxdepth: 1 |
||||
:glob: |
||||
|
||||
**/* |
@ -0,0 +1,5 @@
@@ -0,0 +1,5 @@
|
||||
# Copyright (c) 2024 Henrik Brix Andersen <henrik@brixandersen.dk> |
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
|
||||
config BOARD_UCAN |
||||
select SOC_STM32F072XB |
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
# Copyright (c) 2024 Henrik Brix Andersen <henrik@brixandersen.dk> |
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
|
||||
board_runner_args(dfu-util "--pid=0483:df11" "--alt=0" "--dfuse") |
||||
board_runner_args(jlink "--device=STM32F072CB") |
||||
|
||||
include(${ZEPHYR_BASE}/boards/common/dfu-util.board.cmake) |
||||
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake) |
@ -0,0 +1,6 @@
@@ -0,0 +1,6 @@
|
||||
board: |
||||
name: ucan |
||||
full_name: UCAN |
||||
vendor: fysetc |
||||
socs: |
||||
- name: stm32f072xb |
@ -0,0 +1,71 @@
@@ -0,0 +1,71 @@
|
||||
.. zephyr:board:: ucan |
||||
|
||||
Overview |
||||
******** |
||||
|
||||
The FYSETC UCAN is an open-source USB to CAN 2.0B adapter board. More information can be found on |
||||
the `UCAN website`_ and in the `UCAN wiki`_. |
||||
|
||||
Hardware |
||||
******** |
||||
|
||||
The UCAN board is equipped with a STM32F072CB microcontroller and features an USB-C connector, a |
||||
terminal block for connecting to the CAN bus, and two user LEDs. Schematics and component placement |
||||
drawings are available in the `UCAN GitHub repository`_. |
||||
|
||||
Supported Features |
||||
================== |
||||
|
||||
The ``ucan`` board configuration supports the following hardware features: |
||||
|
||||
+-----------+------------+-------------------------------------+ |
||||
| Interface | Controller | Driver/Component | |
||||
+===========+============+=====================================+ |
||||
| NVIC | on-chip | nested vector interrupt controller | |
||||
+-----------+------------+-------------------------------------+ |
||||
| PINMUX | on-chip | pinmux | |
||||
+-----------+------------+-------------------------------------+ |
||||
| FLASH | on-chip | flash memory | |
||||
+-----------+------------+-------------------------------------+ |
||||
| GPIO | on-chip | gpio | |
||||
+-----------+------------+-------------------------------------+ |
||||
| USB | on-chip | USB | |
||||
+-----------+------------+-------------------------------------+ |
||||
| CAN1 | on-chip | CAN controller | |
||||
+-----------+------------+-------------------------------------+ |
||||
|
||||
The default configuration can be found in the defconfig file: |
||||
:zephyr_file:`boards/fysetc/ucan/ucan_defconfig`. |
||||
|
||||
Other hardware features are not currently supported by the port. |
||||
|
||||
System Clock |
||||
============ |
||||
|
||||
The STM32F072CB PLL is driven by an external crystal oscillator (HSE) running at 8 MHz and |
||||
configured to provide a system clock of 48 MHz. |
||||
|
||||
Programming and Debugging |
||||
************************* |
||||
|
||||
Build and flash applications as usual (see :ref:`build_an_application` and |
||||
:ref:`application_run` for more details). |
||||
|
||||
If flashing via USB DFU, short pins ``B0`` and ``3V3`` when applying power to the UCAN board in |
||||
order to enter the built-in DFU mode. |
||||
|
||||
Here is an example for the :zephyr:code-sample:`blinky` application. |
||||
|
||||
.. zephyr-app-commands:: |
||||
:zephyr-app: samples/basic/blinky |
||||
:board: ucan |
||||
:goals: flash |
||||
|
||||
.. _UCAN website: |
||||
https://www.fysetc.com/products/fysetc-ucan-board |
||||
|
||||
.. _UCAN wiki: |
||||
https://wiki.fysetc.com/UCAN/ |
||||
|
||||
.. _UCAN GitHub repository: |
||||
https://github.com/FYSETC/UCAN/ |
After Width: | Height: | Size: 37 KiB |
@ -0,0 +1,96 @@
@@ -0,0 +1,96 @@
|
||||
/* |
||||
* Copyright (c) 2024 Henrik Brix Andersen <henrik@brixandersen.dk> |
||||
* |
||||
* SPDX-License-Identifier: Apache-2.0 |
||||
*/ |
||||
|
||||
/dts-v1/; |
||||
|
||||
#include <st/f0/stm32f072Xb.dtsi> |
||||
#include <st/f0/stm32f072c(8-b)tx-pinctrl.dtsi> |
||||
|
||||
/ { |
||||
model = "FYSETC UCAN board"; |
||||
compatible = "fysetc,ucan"; |
||||
|
||||
chosen { |
||||
zephyr,sram = &sram0; |
||||
zephyr,flash = &flash0; |
||||
zephyr,code-partition = &slot0_partition; |
||||
zephyr,canbus = &can1; |
||||
}; |
||||
|
||||
aliases { |
||||
led0 = &led_rx; |
||||
led1 = &led_tx; |
||||
}; |
||||
|
||||
leds { |
||||
compatible = "gpio-leds"; |
||||
led_rx: led_rx { |
||||
gpios = <&gpioa 0 GPIO_ACTIVE_HIGH>; |
||||
label = "LED RX"; |
||||
}; |
||||
led_tx: led_tx { |
||||
gpios = <&gpioa 1 GPIO_ACTIVE_HIGH>; |
||||
label = "LED TX"; |
||||
}; |
||||
}; |
||||
|
||||
transceiver0: can-phy0 { |
||||
compatible = "can-transceiver-gpio"; |
||||
enable-gpios = <&gpioc 13 GPIO_ACTIVE_LOW>; |
||||
max-bitrate = <1000000>; |
||||
#phy-cells = <0>; |
||||
}; |
||||
}; |
||||
|
||||
&clk_hse { |
||||
status = "okay"; |
||||
clock-frequency = <DT_FREQ_M(8)>; |
||||
}; |
||||
|
||||
&pll { |
||||
prediv = <1>; |
||||
mul = <6>; |
||||
clocks = <&clk_hse>; |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&rcc { |
||||
clocks = <&pll>; |
||||
clock-frequency = <DT_FREQ_M(48)>; |
||||
ahb-prescaler = <1>; |
||||
apb1-prescaler = <1>; |
||||
}; |
||||
|
||||
zephyr_udc0: &usb { |
||||
pinctrl-0 = <&usb_dm_pa11 &usb_dp_pa12>; |
||||
pinctrl-names = "default"; |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&can1 { |
||||
pinctrl-0 = <&can_rx_pb8 &can_tx_pb9>; |
||||
pinctrl-names = "default"; |
||||
phys = <&transceiver0>; |
||||
status = "okay"; |
||||
}; |
||||
|
||||
&flash0 { |
||||
partitions { |
||||
compatible = "fixed-partitions"; |
||||
#address-cells = <1>; |
||||
#size-cells = <1>; |
||||
|
||||
boot_partition: partition@0 { |
||||
label = "mcuboot"; |
||||
reg = <0x00000000 DT_SIZE_K(48)>; |
||||
read-only; |
||||
}; |
||||
slot0_partition: partition@c000 { |
||||
label = "image-0"; |
||||
reg = <0x0000c000 DT_SIZE_K(80)>; |
||||
}; |
||||
}; |
||||
}; |
@ -0,0 +1,15 @@
@@ -0,0 +1,15 @@
|
||||
identifier: ucan |
||||
name: FYSETC UCAN |
||||
type: mcu |
||||
arch: arm |
||||
toolchain: |
||||
- zephyr |
||||
- gnuarmemb |
||||
ram: 16 |
||||
flash: 128 |
||||
supported: |
||||
- can |
||||
- gpio |
||||
- usb_device |
||||
- usbd |
||||
vendor: fysetc |
Loading…
Reference in new issue