GigaDevice's new GD32F103RCT6 loaded with 108MHz clock, faster than STM's

STM32F103RCT6 is a high-density performance line, ARM Cortex-M3 32-bit microcontroller in 64 pin LQFP package. It incorporates high completion RISC core with 72MHz operating frequency, high speed embedded memories, an extensive range of enhanced I/Os and peripherals connected to two APB buses. The STM32F103RCT6 features 12-bit ADC, timers, PWM timer, standard and advanced communication interfaces. A comprehensive set of power-saving mode allows the design of low power applications.

This project is sponsored by LCSC. I have been using electronic components from LCSC.com. LCSC has a strong commitment to offering a wide selection of genuine, high-quality electronic components at the best price with a global shipping network to over 200 countries. Sign up today and get $8 off on your first order.

Specifications of STM32F103RCT6

  1. Operating voltage range from 2V to 3.6V
  2. 256 Kbytes of flash memory
  3. 48Kbytes of SRAM
  4. CRC calculation unit, 96-bit unique ID
  5. Three 12-bit, 1µs A/D converter (up to 16 channels) and two 12-bit DAC 92 channel
  6. Four general-purpose, two advanced control, and two basic timers
  7. 51 fast I/O ports
  8. Serial wire debug (SWD) and JTAG interfaces
  9. Three SPI, two I2C, five USART, one USB, one SDIO and one CAN interfaces
  10. Ambient operating temperature range from -40°C to 85°C

These microcontrollers are made by STMicroelectronics, which is a global independent semiconductor company.

F7141079-01.jpg

Faster twin by GigaDevice aka GD32F103RCT6

GigaDevice, the leading provider of Non-Volatile Memory (NVM) devices, is the company engaged in advanced memory and related chip design in Mainland China established in 2005.

20190713_GigaDevice-Semicon-Beijing-GD32F103RCT6_C80687_front.jpg

GD32® series MCUs also bring much advantage to the end-user. The max speed of GD32® MCU has increased 50% than the market competing products. Code execution efficiency of the same frequency has enhanced 30%-40%. Current consumption of the same frequency has reduced 20%-30%. These performances provide maximum capability and bandwidth options for various market requirements.

The above features make the GD32® MCUs suitable for a wide range of applications. It is ideal for use in industrial control, user interface, motor drives, power monitor and alarm systems, consumer and handheld equipment, solar photovoltaic control, touch panel, PC peripherals and so on.

Specifications of GD32F103RCT6

  • Package: LQFP-64_10x10x05P
  • Core Size: 32-Bit
  • Program Memory Type: FLASH
  • Core Processor: ARM® Cortex®-M3
  • Speed: 108MHz
  • Voltage - Supply (Vcc/Vdd): 2.6V ~ 3.6V
  • Program Memory Size: 256KB
  • RAM Size: 48KB
  • EEPROM Size: 0
  • Number of I/O: 51
  • A/D: 16x12bit
  • D/A: 2x12bit
  • PWM: 2
  • UART/USART: 5
  • SPI: 3
  • I2C/SMBUS: 2
  • USB Device: 1
  • USB Host/OTG: 1
  • CAN: 1
  • Ethernet: 0
  • Features: I2S

STM or GD32?

Almost all the specifications and details of both the microcontrollers are same with same flash size, RAM, processor core and pinouts. They are just twins but if you want to have a board with higher operating frequency, then, GD32 is recommended. It is a cheaper alternative of STM32 with a higher operating frequency of 108 MHz as compared to 72 MHz of STM32.

Screenshot from 2019-07-29 00-09-51.png

So, If you are looking for a faster speed for processing the long codes and commands with bit big calculation, GigaDevice has a proper alternative. Although you may need to make some changes when you start programming GigaDevice board so as to make delay() function and other timer related functions. The delay() functions are hard-coded loops of nops which assume 72Mhz, so that would need to be changed as well.

You can go through these changes in stm32.h:

File Path: \IDE\hardware\Arduino_STM32\STM32F1\system\libmaple\stm32f1\include\series

# if STM32_F1_LINE == STM32_F1_LINE_PERFORMANCE

# ifndef STM32_PCLK1

# define STM32_PCLK1 54000000U 

// << from 36000000 # endif

# ifndef STM32_PCLK2

# define STM32_PCLK2 108000000U 

// << from 72000000 

Naman Chauhan