The STM32F103RBT6 from STMicroelectronics is a mainstream performance line ARM Cortex-M3 microcontroller that offers an excellent balance of processing power, peripheral integration, and cost-effectiveness in a 64-pin LQFP package. With 128 KB of Flash memory and 20 KB of SRAM, it provides sufficient resources for a wide range of embedded applications, from motor control to industrial communication.
The STM32F103RBT6 is part of the medium-density STM32F103xx family, which includes devices with 64 or 128 KB Flash in packages from 36 to 100 pins. The R suffix denotes a 64-pin package, the B suffix denotes 128 KB Flash, and the T6 suffix denotes LQFP package with -40C to +85C industrial temperature range. This positions the STM32F103RBT6 as a step up from the popular STM32F103C8T6 (48-pin LQFP, 64 KB Flash), offering more GPIO (51 vs 37), more Flash (128 KB vs 64 KB), and the addition of CAN and USB interfaces.
The ARM Cortex-M3 core delivers 1.25 DMIPS/MHz at 72 MHz, providing 90 DMIPS of processing power. While significantly less powerful than the Cortex-M4-based STM32F4 series (168 MHz, FPU, DSP), the Cortex-M3 is more than adequate for real-time control, communication protocol processing, and moderate computational workloads. The lack of a hardware FPU means floating-point operations are emulated in software, which is acceptable for many control applications but may be a bottleneck for heavy signal processing.
The dual 12-bit ADCs are a key strength, providing up to 16 external channels with 1 us conversion time. In dual ADC mode, the two ADCs can operate simultaneously, enabling synchronized sampling of multiple channels (e.g., sampling all three phases of a motor simultaneously). The internal temperature sensor provides die temperature monitoring for thermal management. The ADC supports DMA transfers, enabling continuous conversion without CPU intervention.
The motor control PWM timer (TIM1) provides six PWM channels with complementary output, dead-time insertion, and break input for emergency stop. This makes the STM32F103RBT6 suitable for 3-phase motor control applications including BLDC, PMSM, and AC induction motor drives. The quadrature encoder interface in the general-purpose timers simplifies connection to incremental encoders for position feedback.
The USB 2.0 full-speed device interface includes an on-chip PHY, requiring only an external 1.5 kOhm pull-up resistor on the DP line. The USB peripheral supports all standard USB device classes (CDC, HID, MSC, custom) and includes dedicated USB SRAM buffers. The CAN 2.0B interface supports both standard (11-bit) and extended (29-bit) identifiers with three transmit mailboxes, two receive FIFOs, and loop-back/silent modes for diagnostics.
The 7-channel DMA controller offloads data transfer tasks from the CPU, enabling high-throughput communication (SPI, I2C, USART), continuous ADC sampling, and memory-to-memory transfers without CPU intervention. Each DMA channel can be configured for peripheral-to-memory, memory-to-peripheral, or memory-to-memory transfers with configurable priority levels.
The LQFP-64 package exposes 51 of the possible 80 GPIO pins, providing a good balance between I/O availability and board space. The exposed pins include all of Port A (16 pins), Port B (16 pins), most of Port C (13 pins), and a few Port D pins. This is sufficient for most medium-complexity applications while keeping the PCB layout manageable.