Sjaak writes, “This is part 4 in the series where we compare the STM32F103 with its Chinese counterpart the GD32F103. Both are ARM Cortex M3 microcontrollers which are mostly pin, peripheral and register compatible. Now we compare the SPI master peripheral of both chips.”
Here’s the part 3 of Sjaak’s post comparing the GD32 to the STM32:
Since the GD32F103 can run as fast as 108MHz but has not a proper USB clock divider to provide a 48MHz clock for USB communication we need another way to communicate with the outside world. Since the early days of computing the easiest way to go is a asynchronous serial interface using the UART peripheral. I can try to explain how this protocol works, but here is a better write-up.
The defacto ‘hello world’ for microcontrollers is blink a LED at a steady rate. This is exactly what I’m going to do today. I made a small 5×5 development board, soldered it up and started programming. In this first example we not gonna use fancy IRQs or timers to blink at a steady rate, but we insert NOPsas delay. This would give an idea of the RAW performance of the chip. The used code is simple; set up the maximum available clock available and then toggle RA0 for ever.
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.
Uptill now I used 0603 sized resistors and capacitors but for this project I switched to 0402 to save a few mm on the board. I have soldered many challenging chip packages so I felt confident. The technique is the same as for bigger sized devices: flux the area generous, hold the device with tweezers, solder one pad with fresh soldered iron and move the device into the molten solder puddle, retract the soldering iron and watch the solder joint cool down. If the solder joint is solid solder the other side too. I suggest using a fine (curved) tweezer and lots of lighting on your workarea. If you are a bit older as I am using a loupe or magnifying glass. Still use flux as much as possible. Never expected but the micro USB connector gave me (several) headaches to get it soldered properly.