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:
- Part 1: Solderability
- Part 2: Blink a led
- Part 3: UART
- Part 4: SPI Master
GD is half the price of STM. Look forward to real world evaluation! What I see so far is reviews of data sheets, not comparison of function with good open libraries like libopencm3.
Those GigaDevices parts have been around for almost five years now, but apart from the hubbub when they were initially launched I don’t remember hearing anything about them since. I guess they weren’t the runaway success the manufacturer had hoped?
Similarly, I haven’t heard much about the AVR clones made by LogicGreen either.
Gigadevices mostly operate in China, so unless you are in China the chances are slim you hear much.. AFAIK it makes sense for CHina to not have a dependency of foreign chips or at least have a second source.
My hunch is that a part of their chips goes into the shady markets of ebay and aliexpress. Doesn’t necessary be a big problem as I have not very high expectations of ebay stuff. I also came across stuff that uses the GD32 chip as main processor (in a quadcopter and thermal printer). That makes me think the chip isn’t that bad 😀
Some goes for Logicgreen.
When I read about the GD32 on the Olimex blog, I’ve been looking to order some boards. The chips are available on eBay and AliExpress, but boards only seem available on the Chinese market, so I’ve ordered some through yoybuy. I’m into embedded software, but SMD soldering is a bridge too far for me.
I haven’t had the time to play around much, but I’ve run some tests with code I’ve written for the STM32, which so far seems to be working all right.
Furthermore, I’ve discovered that an errata that exists on the STM does not exist on the GD. On the STM32F1 you can only read the chip id/revision when the debugger is attached. On the GD32F1, you can always read the information. So, this would work as a way to detect what chip you’re running on. (And if ST fixes this in a future revision, the GD has a different revision ID so you can still tell the difference)
Nevertheless, since GigaDevices is running for several years now, I would say they have a viable product.
Regarding Logic Green. They’ve changed their domain name. It took me some time to find their website again, but it seems they’re still up and running. Boards with their MCU are available on the western market. However, it seems they’re using their own debugging interface. Do I really need one of their debuggers to flash their chips?