Skip to content

Commit ddf059a

Browse files
committed
ch32x035
1 parent 143eb3b commit ddf059a

File tree

5 files changed

+20
-6
lines changed

5 files changed

+20
-6
lines changed

src/arduino/ports/ch32/Adafruit_TinyUSB_ch32.cpp

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@
2525
#include "tusb_option.h"
2626

2727
#if CFG_TUD_ENABLED && (defined(ARDUINO_ARCH_CH32) || defined(CH32V20x) || \
28-
defined(CH32V30x) || defined(CH32L10x))
28+
defined(CH32V30x) || defined(CH32X035) || \
29+
defined(CH32L10x))
2930

3031
#include "Arduino.h"
3132
#include "arduino/Adafruit_USBD_Device.h"
@@ -64,7 +65,7 @@ USBWakeUp_IRQHandler(void) {
6465

6566
#if defined(CH32V10x)
6667
#define USBHDWakeUp_IRQHandler USBWakeUp_IRQHandler
67-
#elif defined(CH32L10x)
68+
#elif defined(CH32X035) || defined(CH32L10x)
6869
#define USBHD_IRQHandler USBFS_IRQHandler
6970
#define USBHDWakeUp_IRQHandler USBFSWakeUp_IRQHandler
7071
#endif
@@ -115,6 +116,8 @@ void TinyUSB_Port_InitDevice(uint8_t rhport) {
115116
EXTEN->EXTEN_CTR &= ~EXTEN_USB_5V_SEL;
116117

117118
#define RCC_AHBPeriph_OTG_FS RCC_AHBPeriph_USBHD
119+
#elif defined(CH32X035)
120+
#define RCC_AHBPeriph_OTG_FS RCC_AHBPeriph_USBFS
118121
#elif defined(CH32L10x)
119122
#define RCC_AHBPeriph_OTG_FS RCC_HBPeriph_USBFS
120123
#define RCC_AHBPeriphClockCmd RCC_HBPeriphClockCmd
@@ -139,6 +142,9 @@ void TinyUSB_Port_InitDevice(uint8_t rhport) {
139142
case 72000000:
140143
usb_div = RCC_USBCLKSource_PLLCLK_1Div5;
141144
break;
145+
#elif defined(CH32X035)
146+
case 48000000:
147+
break;
142148
#elif defined(CH32L10x)
143149
case 48000000:
144150
usb_div = RCC_USBCLKSource_PLLCLK_Div1;
@@ -156,7 +162,7 @@ void TinyUSB_Port_InitDevice(uint8_t rhport) {
156162

157163
#if defined(CH32V30x)
158164
RCC_OTGFSCLKConfig(usb_div);
159-
#else
165+
#else !defined(CH32X035)
160166
RCC_USBCLKConfig(usb_div);
161167
#endif
162168

src/arduino/ports/ch32/tusb_config_ch32.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ extern "C" {
3939
#define CFG_TUSB_MCU OPT_MCU_CH32V20X
4040
#elif defined(CH32V30x)
4141
#define CFG_TUSB_MCU OPT_MCU_CH32V307
42+
#elif defined(CH32X035)
43+
#define CFG_TUSB_MCU OPT_MCU_CH32X035
4244
#elif defined(CH32L10x)
4345
#define CFG_TUSB_MCU OPT_MCU_CH32L10X
4446
#warning "CH32L103 is not working yet"

src/common/tusb_mcu.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -473,8 +473,8 @@
473473
#define TUP_RHPORT_HIGHSPEED CFG_TUD_WCH_USBIP_USBHS
474474
#define TUP_DCD_ENDPOINT_MAX (CFG_TUD_WCH_USBIP_USBHS ? 16 : 8)
475475

476-
#elif TU_CHECK_MCU(OPT_MCU_CH32L10X)
477-
// l103 support USBFS only
476+
#elif TU_CHECK_MCU(OPT_MCU_CH32X035) || TU_CHECK_MCU(OPT_MCU_CH32L10X)
477+
// x035 and l103 support USBFS only
478478
#define TUP_USBIP_WCH_USBFS
479479

480480
#if !defined(CFG_TUD_WCH_USBIP_USBFS)

src/portable/wch/ch32_usbfs_reg.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,11 @@
9797
#elif CFG_TUSB_MCU == OPT_MCU_CH32V307
9898
#include <ch32v30x.h>
9999
#define USBHD_IRQn OTG_FS_IRQn
100+
#elif CFG_TUSB_MCU == OPT_MCU_CH32X035
101+
#include <ch32x035.h>
102+
#define USBOTG_FS USBFSD
103+
#define USBHD_IRQn USBFS_IRQn
104+
#endif
100105
#elif CFG_TUSB_MCU == OPT_MCU_CH32L10X
101106
#include <ch32l103.h>
102107
#define USBOTG_FS USBFSD

src/tusb_option.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,8 @@
183183
#define OPT_MCU_CH32F20X 2210 ///< WCH CH32F20x
184184
#define OPT_MCU_CH32V20X 2220 ///< WCH CH32V20x
185185
#define OPT_MCU_CH32V103 2230 ///< WCH CH32V103
186-
#define OPT_MCU_CH32L10X 2240 ///< WCH CH32L10x
186+
#define OPT_MCU_CH32X035 2240 ///< WCH CH32X035
187+
#define OPT_MCU_CH32L10X 2250 ///< WCH CH32L10x
187188

188189
// NXP LPC MCX
189190
#define OPT_MCU_MCXN9 2300 ///< NXP MCX N9 Series

0 commit comments

Comments
 (0)