Linux on a CH32V006 based emulator: Assembled

I’ve assembled the first three boards. I ordered the PCBs from AISLER, components from LCSC, and a new soldering iron and reflow plate from Aliexpress. The reflow plate has been great - not for the soldering aspect as I don’t have any solder paste yet, but for rework. I initially put the flash and PSRAM on the wrong way around and the plate made it easy to heat up the board and remove the components.

The board had a few minor issues: the regulator EN pin needs to be tied high, the push button footprint is slightly too large, and the UART TX and RX are swapped.

The emulator works and boots through to Linux. It needs work though:

  • The timer interrupt is frequent enough and the emulator is slow enough that it spends all of the time in interrupts. I’ll look at capping the interrupt rate
  • The emulated UART is polled by Linux and has a one character buffer, so you need to press a key; wait for it to process; then do the next. I’ll look at adding a PFIC and buffering.
  • Flash is much slower than the PSRAM

Apart from that the performance isn’t terrible. I think I can make it twice as fast though…

Avatar
Michael Hope
Software Engineer