We were looking at WCH @Patrick_RISCV for a USB to serial chip to replace the CP210x, when we remembered a lot of chatter a few years ago about the CH552 series of ultra-low-cost 8051 microcontrollers with native USB. you can kinda sorta code these with Arduino https://hackaday.io/project/172143-ch55xduino and we thought it could be an interesting QT Py since it has so few pins but does cover the basic use cases: 4 ADC, UART, SPI and maybe even I2C with a bitbang connection? Still, for very very basic USB projects maybe it would be useful, particularly since it has a ROM USB bootloader. Here’s a simple design we whipped together. Since there isn’t a lot of muxing or IO available, MISO and A2 share the same pin. Some interesting unusual things to watch for: reset is backwards from how we’d expect, and bootloader mode is entered by pulling D+ to 3V? Any CH55x experts out there who want to take a look and see if we got it all wired right? Anything we missed?
Stop breadboarding and soldering – start making immediately! Adafruit’s Circuit Playground is jam-packed with LEDs, sensors, buttons, alligator clip pads and more. Build projects with Circuit Playground in a few minutes with the drag-and-drop MakeCode programming site, learn computer science using the CS Discoveries class on code.org, jump into CircuitPython to learn Python and hardware together, TinyGO, or even use the Arduino IDE. Circuit Playground Express is the newest and best Circuit Playground board, with support for CircuitPython, MakeCode, and Arduino. It has a powerful processor, 10 NeoPixels, mini speaker, InfraRed receive and transmit, two buttons, a switch, 14 alligator clip pads, and lots of sensors: capacitive touch, IR proximity, temperature, light, motion and sound. A whole wide world of electronics and coding is waiting for you, and it fits in the palm of your hand.
Get the only spam-free daily newsletter about wearables, running a "maker business", electronic tips and more! Subscribe at AdafruitDaily.com !
Author of ch55xduino here.
The ch552 uses vcc for USB IO, and it has internal regulator to generate 3.3V for core. If you want a 5V board, ldo is not needed and neopixel should be connected to 5V. If you want a 3.3V board, I need to check how the 3.3v pin should be connected. But VCC should definitely be connected to 3.3V
For ch552, 3.3V voltage limit code speed to 16M
Finally get to access to internet and laptop.
RESET can be repurposed as IO by setting the configuration bit. So the resistors and capacitors may not be needed, there is internal pull-down on reset anyway.
It seems you do want the board to run on 3.3V, then you need to connect 3.3V to VCC. In this way there is no risk to break the external boards. However, I think it is also OK to keep the LDO for external 3.3V boards, and add pull-up resistors to 3.3V. Then the chip can work at 24M with 5V power, and the IO can be configured to open drain and work with 3.3V I2C.