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 @@ |
|||||||
|
.. _boards-fysetc: |
||||||
|
|
||||||
|
FYSETC |
||||||
|
###### |
||||||
|
|
||||||
|
.. toctree:: |
||||||
|
:maxdepth: 1 |
||||||
|
:glob: |
||||||
|
|
||||||
|
**/* |
@ -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 @@ |
|||||||
|
# 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 @@ |
|||||||
|
board: |
||||||
|
name: ucan |
||||||
|
full_name: UCAN |
||||||
|
vendor: fysetc |
||||||
|
socs: |
||||||
|
- name: stm32f072xb |
@ -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 @@ |
|||||||
|
/* |
||||||
|
* 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 @@ |
|||||||
|
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