Author: andre

I²C issues on GigaDevice microcontrollers

When I was looking into microcontrollers with 32F103 peripherals, but with a RISCV-core, I ran the stm32f1xx HAL on them. The assumption was, their peripherals were the same. (Except USB). Using this on a GD32VF103, I was able to communicate with most I²C sensors I connected to the bus, but I ran into issues with…


Wait a microsecond (part 2)

When running some tests regarding delay loops in assembly, I ran across some differences in timing between a CKS32F103 and an STM32F103 based Blue Pill. This lead me to run some tests across my collection of 32F103 chips. All chips involved have implemented the cycle counter in the DWT. We will use this to determine…


Wait a microsecond

Delaying a millisecond on a microcontroller. While, of course, we could use timer peripherals specific to our MCU, I’m looking for a more generic solution. On a Cortex M3 (or better) I’d check for the DWT, and if fitted, check whether it implements the cycle counter. However, on a Cortex M0 or (M0+) we have…


Booting Linux on an OX64 BL808 board

Pine64 introduced the Ox64 recently. This board features a Bouffalo Lab BL808 MCU. Inside this MCU we’ve got 3 different cores. The core referred to as M0 is an RV32IMAFCP T-Head E907 core. The core referred to as D0 is an RV64IMAFCV T-Head C906 core, finally there is a core referred to as LP, which…


Designing some more ucdev baseboards

One of my goals these holidays were to design some new ucdev baseboards. I’m looking at the ESP32C3 and ESP32S3. Now, there are various boards on AliEbay, so which one to design for. When I bought some samples last March. Back then I went for the NodeMCU models. However, looking at AliEbay today, it seems…


The W806 microcontroller

As I’ve discussed the debugger for the W806 microcontroller, let’s now have a look at the microcontroller itself. Apart from the W806, it seems there is also the W801 on sale. These goes for cheaper then the W806, and appear to be the W806 with added 2.4 GHz radio, providing IEEE802.11b/g/n (aka WiFi 1/2/4) and…


WCH-LinkE

The WCH-LinkE is the debugger needed for CH32V0xx microcontrollers. WinChipHead is selling them in 3-packs, and so I’ve ordered a pack. When they arrived, I plugged one in my computer, and, it didn’t enumerate. I tried the others, and nothing happened either. [18612.246110] usb 1-6.2: new full-speed USB device number 26 using xhci_hcd [18612.724335] usb…


W806 debugging (part 1)

A year ago, I wrote about the W806 microcontroller. Back then, I ended with the lack of debugging support. When the CKLink Lite debugger for C-Sky based chips appeared on AliExpress, I wondered whether it might support the W806. However, being priced ~€50 I didn’t want to gamble. Recently an article regarding turning a Blue…


RISC-V ‘clones’ of the STM32F103 (part 5)

Months ago, when I was looking at LCSC, and spotted the CH32V203 in the listing, cheaper then the CH32V103. A higher number implies a better product, right? And when it’s even cheaper. So, I ordered a few, and soldered them to my PCB. (The design I use to compare all the *32?103C?T? chips) Back then,…


RISC-V SBCs

I’ve got some RISC-V SBCs, an AWOL Nezha board, and a Mango Pi MQ Pro. Both are based on the AllWinner D1 SoC. As recently I came across an SD card image builder that generates an Arch Linux image for these type of boards. https://github.com/sehraf/riscv-arch-image-builder This script combines OpenSBI (first stage bootloader), u-boot (second stage…