I locked myself into the basement with a couple of PCBs, chips and fresh flux for a couple of days. For the STM32F103 vs GD32F103 challenge I needed to have two identical boards with a different microcontroller. As far as I could judge both chips are legit and not counterfeits as we bought both chips from (different) reputable sellers. The used chips are GD32F103CBT6 and STm32F103CBT7. The STM32F103CBT7 is the industrial rated part of the STM32F103CBT6 and is identical except for the temperature range.
In the picture there is a breakout I designed for 48 pin STM32 microcontrollers, which also happen to be compatible with the GD32. The breakout board is very barebone and has (on the microcontroller part of the PCB) no fancy stuff like a user button or (blue) LED. Besides every pin is broken out, It only has an USB connector, SWD connector, boot jumpers and a reset button. There is room for 32.768 KHz crystal and the USB pull-up resistor can be connected to either Vcc or a any pin by small soldering. As an extra to make good use of the cheap offerings on China PCB manufacturing I added a couple extras. The remaining space is occupied with a couple other small breakout boards containing 4 LEDs, 4 switches and a SOIC16 prototype area.
All code wil use the libopencm3 library whenever possible. Probably some things needs to be tweaked (clock dividers and stuff) to make it run on the GD32. We hope to run all test with the GD32 at maximum speed and 0 waitstates. All code will be added to my GitHub and can be found here.
As expected both chips soldered equally the same, so I can’t call a winner (yet) ,)
This post is part of a series where the STM32 is compared to the GD32: