Skip to content

Commit f1eca30

Browse files
authored
Board definition for CH32X033F8P6 TSSOP20 #171
At the current stage it works for me. Have fun! Info below is also in the readme of the board definition directory. +------v------+ MISO/A6 D6~ 1-+PA6 PA5+-20 D5 SCK/A5 MOSI/A8/TX4 D7 2-+PA7=PB0 PA4+-19 D4~ CS/A4 A9/RX4 D8 3-+PB1 PC19+-18 D17 SWCLK /RST D9 4-+PB7 PA3+-17 D3~ RX2/A3* USBDM D10 5-+PC16=PC11 PA2+-16 D2~ TX2/A2 USBDP D11 6-+PC17=PC10 PA1+-15 D1~ A1 GND 7-+VSS PA0+-14 D0~ A0 SWDIO D16 8-+PC18 PC3+-13 D15~ A13 VCC 9-+VDD PA10+-12 D14 SCL/TX1 D12 10-+PA9 PA11+-11 D13 SDA/RX1 +-------------+ *A3, VREF and hardware I2C don't work on CH32X033F8P6 0-series (lot number with the penultimate bit 5 being 0). Tested features digitalWrite()/digitalRead() - can use Arduino pin numbers or PAx notation. analogWrite() - 12-bit resolution, pins marked with ~ in pinout above. analogRead() - very stable 12-bit resolution, but issues with A3/A0/PADC_VREF Serial.print() - Tested 115200 bps on Serial2 (PA2/PA3) and Serial1 (PA10/PA11), as set in variant_CH32X033F8P6.h EEPROM library - may need improvement (updated to support 122 bytes). Pin PB7 (Arduino pin 9) can be configured as hardware reset /RST using WCH Link Utility. (See issue Hardware reset pin doesn't work on CH32X033 or CH32X035 #123) Known issues/limitations Pins PA7/PB0, PC16/PC11 and PC17/PC10 cannot be used for output. Any signal on A0 seems to show on other ADC pins when disconnected. A3, PADC_VREF and I2C don't work on CH32X033F8P6 0-series (lot number with the penultimate bit 5 being 0). To counter missing I2C the Software_I2C library by Seeed Studio is a good alternative, although it needs some changes to improve compatibility in I2C scanning. openwch/arduino_core_ch32#171
1 parent 38e60ea commit f1eca30

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
## CH32X033F8P6 ##
2+
3+
### CH32X035/X033 Main Features ###
4+
- 48MHz RC oscillator
5+
- 20KB SRAM
6+
- 62KB Flash + 3328B System Flash
7+
- 256B system config + 256B user storage
8+
- 2x OPA, 3x CMP, 12-bit 14-chn ADC, 14-chn touch
9+
- 3x 16-bit timer, 2x WD timer, systick
10+
- 4x USART, I2C, SPI, USB2, USB PD, 2-wire debug
11+
12+
13+
### TSSOP20 Pinout ###
14+
- See [datasheet](https://www.wch.cn/downloads/CH32X035DS0_PDF.html) for complete pin function list.
15+
```
16+
+------v------+
17+
MISO/A6 D6~ 1-+PA6 PA5+-20 D5 SCK/A5
18+
MOSI/A8/TX4 D7 2-+PA7=PB0 PA4+-19 D4~ CS/A4
19+
A9/RX4 D8 3-+PB1 PC19+-18 D17 SWCLK
20+
/RST D9 4-+PB7 PA3+-17 D3~ RX2/A3*
21+
USBDM D10 5-+PC16=PC11 PA2+-16 D2~ TX2/A2
22+
USBDP D11 6-+PC17=PC10 PA1+-15 D1~ A1
23+
GND 7-+VSS PA0+-14 D0~ A0
24+
SWDIO D16 8-+PC18 PC3+-13 D15~ A13
25+
VCC 9-+VDD PA10+-12 D14/SCL
26+
D12 10-+PA9 PA11+-11 D13/SDA
27+
+-------------+
28+
*A3 and I2C don't work on CH32X033F8P6 0-series (lot number with the penultimate bit 5 being 0).
29+
```
30+
31+
32+
### Tested features ###
33+
- digitalWrite()/digitalRead() - can use Arduino pin numbers or PAx notation.
34+
- analogWrite() - 12-bit resolution, pins marked with ~ in pinout above.
35+
- analogRead() - very stable 12-bit resolution, but issues with A3/A0/PADC_VREF
36+
- Serial.print() - Tested 115200 bps on PA2/PA3 (as set in variant_CH32X033F8P6.h)
37+
- EEPROM library - may need improvement (updated to support 122 bytes).
38+
- Pin PB7 (Arduino pin 9) can be configured as hardware reset /RST using WCH Link Utility. (See issue #123)
39+
40+
### Known issues/limitations ###
41+
- Pins PA7/PB0, PC16/PC11 and PC17/PC10 cannot be used for output.
42+
- Any signal on A0 seems to show on other ADC pins when disconnected.
43+
- A3, PADC_VREF and I2C don't work on CH32X033F8P6 0-series (lot number with the penultimate bit 5 being 0).
44+
- To counter missing I2C the [Software_I2C library](https://github.com/Seeed-Studio/Arduino_Software_I2C) by Seeed Studio is a good alternative, although it needs some changes to improve compatibility in I2C scanning.
45+
46+
### References ###
47+
- [datasheet](https://www.wch.cn/downloads/CH32X035DS0_PDF.html)
48+
- [reference manual](https://www.wch.cn/downloads/CH32X035RM_PDF.html)
49+
- [X033/X035 ](https://github.com/openwch/ch32x035),
50+
- [WCH examples](https://github.com/openwch/ch32x035/blob/main/EVT/EXAM)
51+
- [PIOC](https://github.com/openwch/ch32x035/tree/main/EVT/EXAM/PIOC)
52+
- [User manual](https://github.com/openwch/ch32x035/blob/main/EVT/EXAM/PIOC/PIOC%20UserManual.pdf),
53+
- [Reference manual](https://github.com/openwch/ch32x035/blob/main/EVT/EXAM/PIOC/PIOC-EN.pdf),
54+
- [Instruction set](https://github.com/openwch/ch32x035/blob/main/EVT/EXAM/PIOC/CHRISC8B-EN.pdf)

0 commit comments

Comments
 (0)