{"id":1940,"date":"2026-05-13T07:11:05","date_gmt":"2026-05-13T07:11:05","guid":{"rendered":"https:\/\/materialparts.com\/stm32f103rbt6\/"},"modified":"2026-05-13T07:11:05","modified_gmt":"2026-05-13T07:11:05","slug":"stm32f103rbt6","status":"publish","type":"post","link":"https:\/\/materialparts.com\/es\/stm32f103rbt6\/","title":{"rendered":"STM32F103RBT6"},"content":{"rendered":"<p>The STM32F103RBT6 from STMicroelectronics is a mainstream performance line ARM Cortex-M3 32-bit RISC microcontroller operating at up to 72 MHz in a 64-pin LQFP package (10 x 10 x 1.4 mm). Key specifications: 128 Kbytes Flash memory; 20 Kbytes SRAM; 51 programmable I\/O pins (most 5V tolerant). Two 12-bit ADCs with up to 16 external channels (1 us conversion time), dual sample-and-hold, and internal temperature sensor. Seven timers: three 16-bit general-purpose timers with up to 4 IC\/OC\/PWM channels and quadrature encoder input; one 16-bit motor control PWM timer with dead-time generation and emergency stop; two watchdog timers (independent and window); one 24-bit SysTick downcounter. Nine communication interfaces: up to two I2C (SMBus\/PMBus, 400 kHz); up to three USARTs (ISO 7816, LIN, IrDA, modem control); up to two SPI (18 Mbit\/s); one USB 2.0 full-speed device with on-chip PHY; one CAN 2.0B Active. 7-channel DMA controller supporting timers, ADC, SPI, I2C, and USART. Clock management: 4-16 MHz external crystal, internal 8 MHz RC (trimmed), internal 40 kHz RC, 32 kHz RTC oscillator with calibration, PLL for CPU clock. Power: 2.0-3.6V; low-power modes (Sleep, Stop, Standby); VBAT for RTC and backup registers. Debug: SWD and JTAG. CRC calculation unit. 96-bit unique ID. Operating temperature -40C to +85C. ECOPACK2, ECCN 3A991.a.2. Active product.<\/p>","protected":false},"excerpt":{"rendered":"<p>The STM32F103RBT6 from STMicroelectronics is a mainstream performance line ARM Cortex-M3 32-bit RISC microcontroller operating at up to 72 MHz in a 64-pin LQFP package (10 x 10 x 1.4 mm). Key specifications: 128 Kbytes Flash memory; 20 Kbytes SRAM; 51 programmable I\/O pins (most 5V tolerant). Two 12-bit ADCs with up to 16 external [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":2911,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[13],"tags":[],"chip_brand":[142],"class_list":["post-1940","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-integrated-circuits-ics","chip_brand-st"],"acf":{"brief_explanation":"ARM Cortex-M3, 72MHz, 128KB Flash, 20KB SRAM, 2xADC 12-bit, 3xUSART, 2xSPI, 2xI2C, USB FS, CAN, LQFP-64, 51 I\/O, 2.0-3.6V, -40~85C","date_code":"","package_case":"LQFP-64 (10 x 10 x 1.4 mm, 0.5mm pitch)","in_stock":15000,"datasheet":"https:\/\/www.st.com\/en\/microcontrollers-microprocessors\/stm32f103rb.html","price":"$4.50 (1K+ pcs)","product_introduction":"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.\n\nThe 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.\n\nThe 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.\n\nThe 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.\n\nThe 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.\n\nThe 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.\n\nThe 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.\n\nThe 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.","working_principle":"The STM32F103RBT6 operates as a 32-bit ARM Cortex-M3 microcontroller with on-chip Flash, SRAM, and an extensive peripheral set connected through a multi-bus matrix.\n\nARM Cortex-M3 Core: The Cortex-M3 implements the ARMv7-M architecture with a 3-stage pipeline (fetch, decode, execute). It supports 56 base instructions plus additional DSP extensions including saturated arithmetic, multiply-accumulate (MAC), and hardware divide. The NVIC (Nested Vectored Interrupt Controller) supports up to 43 maskable interrupt channels plus the non-maskable interrupt (NMI), with 16 programmable priority levels. The interrupt latency is deterministic at 12 cycles (6 cycles tail-chaining). The processor includes a Memory Protection Unit (MPU) with 8 regions for privilege separation and memory access control.\n\nBus Matrix: The multi-AHB bus matrix connects the Cortex-M3 core, DMA controller, and peripherals through three AHB buses: I-bus (instruction fetch from Flash\/SRAM), D-bus (data access from Flash\/SRAM), and S-bus (system bus for peripheral register access). The DMA controller shares access to SRAM and peripherals through the bus matrix, enabling concurrent CPU and DMA operations when they access different targets. The AHB is clocked at up to 72 MHz, with the APB1 bus at up to 36 MHz and the APB2 bus at up to 72 MHz.\n\nFlash Memory with Prefetch: The Flash memory has a native access time that requires wait states at 72 MHz (typically 2 wait states). The prefetch buffer (2 x 64-bit lines) fetches the next instruction ahead of the current execution, mitigating the wait-state penalty for linear code execution. Branches and random accesses still incur the full wait-state penalty.\n\nClock System: The clock tree provides flexible clock configuration. The System Clock (SYSCLK) can be sourced from HSI (8 MHz internal RC), HSE (4-16 MHz external crystal), or PLL. The PLL can multiply the HSE or HSE\/2 to generate up to 72 MHz. The AHB prescaler divides SYSCLK for the AHB bus, and the APB1\/APB2 prescalers further divide the AHB clock for the peripheral buses. The RTC can use LSE (32.768 kHz crystal) or LSI (40 kHz internal RC) for independent timekeeping.\n\nADC Dual Mode: The two ADCs can operate independently or in combined modes. In regular simultaneous mode, both ADCs convert different channels at the same time. In fast interleaved mode, both ADCs alternate conversions on the same channel to double the sampling rate. In slow interleaved mode, ADC1 and ADC2 alternate conversions with a delay for higher precision. The dual sample-and-hold circuits allow simultaneous sampling of two channels, which is essential for power metering and motor control where phase relationships must be preserved.\n\nMotor Control Timer: TIM1 is an advanced-control timer specifically designed for motor drive applications. It provides up to 6 PWM outputs arranged as 3 complementary pairs (CH1\/CH1N, CH2\/CH2N, CH3\/CH3N), with programmable dead-time insertion between complementary outputs to prevent shoot-through in half-bridge configurations. The break input (BKIN) provides emergency shutdown capability, immediately forcing all PWM outputs to a safe state. The repetition counter reduces the update event rate for slower control loops.\n\nDMA Controller: The 7-channel DMA1 controller supports circular mode for continuous data acquisition (e.g., ADC samples streaming to SRAM), and normal mode for one-shot transfers. Each channel has configurable source and destination addresses, transfer width (byte\/half-word\/word), and transfer count. Interrupts on transfer complete, half-transfer, and transfer error allow the CPU to process data without polling.","pin_description":"<table><thead><tr><th>Pin Range<\/th><th>Name<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td>1<\/td><td>VBAT<\/td><td>Power<\/td><td>Battery backup supply for RTC, backup registers, and backup SRAM; connect to VDD or a battery\/supercap; maintains time and data when main power is removed; current consumption in backup mode approximately 1 uA<\/td><\/tr><tr><td>2<\/td><td>PC13-TAMPER-RTC<\/td><td>I\/O<\/td><td>Port C bit 13; alternate: Tamper detection input for backup domain, RTC output (alarm, calibration); not 5V tolerant; maximum output speed 2 MHz; primarily used for RTC functions rather than general I\/O<\/td><\/tr><tr><td>3-4<\/td><td>PC14-OSC32_IN \/ PC15-OSC32_OUT<\/td><td>I\/O<\/td><td>Port C bits 14-15; alternate: 32.768 kHz low-speed external crystal (LSE) oscillator pins; when LSE is not used, these pins can be GPIO but with limited output speed (2 MHz); not 5V tolerant<\/td><\/tr><tr><td>5-6<\/td><td>PD0-OSC_IN \/ PD1-OSC_OUT<\/td><td>I\/O (FT)<\/td><td>Port D bits 0-1; default function after reset: 4-16 MHz high-speed external crystal (HSE) oscillator pins; when HSE is not used, PD0\/PD1 can be remapped as general-purpose I\/O via AFIO; 5V tolerant; PD0 also serves as FSMC_D2 in 100-pin devices<\/td><\/tr><tr><td>7<\/td><td>NRST<\/td><td>I\/O (Reset)<\/td><td>Active-low reset input with built-in pull-up; a low pulse longer than the minimum width generates a system reset; connect 10k pull-up to VDD and 100nF cap to VSS for noise filtering; optional reset button to GND; reset also generated internally by POR, PDR, WWDG, IWDG, and SWD command<\/td><\/tr><tr><td>8<\/td><td>PC0-PC5<\/td><td>I\/O (FT)<\/td><td>Port C bits 0-5; alternate: ADC1\/2 channels 10-15 (12-bit); also TIM3\/4 capture\/compare, I2C2, SPI2 in remapped configurations; all 5V tolerant; commonly used for analog sensor inputs due to ADC availability<\/td><\/tr><tr><td>9-16<\/td><td>PA0-PA7<\/td><td>I\/O (FT)<\/td><td>Port A bits 0-7; PA0=WKUP\/ADC1_IN0\/TIM2_CH2\/TIM5_CH1; PA1=ADC1_IN1\/TIM5_CH2; PA2=ADC1_IN2\/USART2_TX; PA3=ADC1_IN3\/USART2_RX; PA4=ADC1_IN4\/SPI1_NSS; PA5=ADC1_IN5\/SPI1_SCK; PA6=ADC1_IN6\/SPI1_MISO\/TIM3_CH1; PA7=ADC1_IN7\/SPI1_MOSI\/TIM3_CH2; all 5V tolerant<\/td><\/tr><tr><td>17-24<\/td><td>PA8-PA15<\/td><td>I\/O (FT)<\/td><td>Port A bits 8-15; PA8=MCO\/TIM1_CH1; PA9=USART1_TX\/TIM1_CH2; PA10=USART1_RX\/TIM1_CH3; PA11=USBDM\/CAN_RX\/TIM1_CH4; PA12=USBDP\/CAN_TX\/TIM1_ETR; PA13=SWDIO\/JTMS; PA14=SWCLK\/JTCK; PA15=JTDI\/SPI1_NSS(remap); PA13\/PA14 are debug pins by default<\/td><\/tr><tr><td>25-32<\/td><td>PB0-PB7<\/td><td>I\/O (FT)<\/td><td>Port B bits 0-7; PB0=ADC1_IN8\/TIM3_CH3\/TIM1_CH2N; PB1=ADC1_IN9\/TIM3_CH4\/TIM1_CH3N; PB2=BOOT1; PB3=JTDO\/TIM2_CH2\/SPI1_SCK(remap); PB4=NJTRST\/TIM3_CH1\/SPI1_MISO(remap); PB5=I2C1_SMBA\/TIM3_CH2\/SPI1_MOSI(remap); PB6=I2C1_SCL\/TIM4_CH1\/USART1_TX(remap); PB7=I2C1_SDA\/TIM4_CH2\/USART1_RX(remap)<\/td><\/tr><tr><td>33-40<\/td><td>PB8-PB15<\/td><td>I\/O (FT)<\/td><td>Port B bits 8-15; PB8=TIM4_CH3\/CAN_RX\/I2C1_SCL(remap)\/SDIO_D4; PB9=TIM4_CH4\/CAN_TX\/I2C1_SDA(remap)\/SDIO_D5; PB10=I2C2_SCL\/USART3_TX; PB11=I2C2_SDA\/USART3_RX; PB12=SPI2_NSS\/I2C2_SMBA\/USART3_CK\/TIM1_BKIN; PB13=SPI2_SCK\/USART3_CTS\/TIM1_CH1N; PB14=SPI2_MISO\/USART3_RTS\/TIM1_CH2N; PB15=SPI2_MOSI\/TIM1_CH3N<\/td><\/tr><tr><td>41<\/td><td>PC6-PC12<\/td><td>I\/O (FT)<\/td><td>Port C bits 6-12; alternate: TIM3\/4\/8 channels, USART3\/6, I2C, SDIO, TIM5 (remap); commonly used for timer PWM and USART communication<\/td><\/tr><tr><td>42<\/td><td>PC13\/PC14\/PC15<\/td><td>I\/O<\/td><td>See pins 2-4 above; limited GPIO capability; not 5V tolerant<\/td><\/tr><tr><td>43<\/td><td>PD2<\/td><td>I\/O (FT)<\/td><td>Port D bit 2; alternate: USART3_RTS\/TIM3_ETR\/SDIO_CMD; 5V tolerant; one of the few Port D pins exposed in LQFP-64<\/td><\/tr><tr><td>44<\/td><td>BOOT0<\/td><td>Input<\/td><td>Boot mode selection pin; LOW = boot from Main Flash (normal operation); HIGH = boot from System Memory (built-in bootloader for UART\/USB\/SWD programming); connect with 10k pull-down to GND; add jumper or switch to VDD for ISP programming mode; do not leave floating<\/td><\/tr><\/tbody><\/table>","application_scenarios":"<table><thead><tr><th>Application<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td>3-Phase Motor Drive<\/td><td>Use TIM1 motor control PWM timer for 6-channel complementary PWM with dead-time generation; dual ADC for simultaneous 3-phase current sampling; quadrature encoder interface on TIM3\/4 for position feedback; CAN bus for drive communication; 128KB Flash stores FOC algorithm, communication stack, and protection logic; 20KB SRAM buffers ADC data and control variables; 72MHz provides sufficient headroom for 10-20kHz control loop<\/td><\/tr><tr><td>USB-CAN Gateway<\/td><td>Bridge between USB and CAN networks; USB FS device for PC connection; CAN 2.0B for industrial bus; 128KB Flash stores USB and CAN protocol stacks plus application code; DMA offloads data transfer between USB and CAN buffers; dual ADC for monitoring bus voltages; multiple USARTs for debug and auxiliary communication<\/td><\/tr><tr><td>Industrial Data Acquisition<\/td><td>16-channel 12-bit ADC with dual simultaneous sampling for synchronized multi-sensor acquisition; DMA streams ADC data to SRAM without CPU overhead; 7-channel DMA handles concurrent ADC, SPI, and USART transfers; TIM1\/2\/3 generate precise timing for sample-and-hold circuits; I2C for digital sensors; SPI for external ADC expansion; 128KB Flash stores acquisition parameters and data processing algorithms<\/td><\/tr><tr><td>Smart Meter \/ Power Monitor<\/td><td>Dual ADC simultaneously samples voltage and current waveforms for power calculation; 72MHz Cortex-M3 computes RMS, power factor, and harmonics in real time; 20KB SRAM buffers waveform data; USART for Modbus RTU communication; CAN for fieldbus integration; RTC with backup battery for time-stamping; 128KB Flash stores metering firmware and calibration tables<\/td><\/tr><tr><td>Embedded Web Server (with external MAC)<\/td><td>Use SPI to connect external Ethernet controller (e.g., W5100, ENC28J60); 128KB Flash stores HTTP server, TCP\/IP stack, and application logic; 20KB SRAM for network buffers; USART for debug console; USB for configuration interface; multiple timers for scheduling and watchdog; 51 GPIO pins for control outputs and status inputs<\/td><\/tr><\/tbody><\/table>","alternative_models":"<table><thead><tr><th>Model<\/th><th>Manufacturer<\/th><th>Compatibility<\/th><th>Key Difference<\/th><\/tr><\/thead><tbody><tr><td>STM32F103R8T6<\/td><td>ST<\/td><td>Same Package, Less Flash<\/td><td>Same LQFP-64 pinout and peripherals; 64KB Flash instead of 128KB; same 20KB SRAM; same USB, CAN, ADC, timers; use when 64KB Flash is sufficient; lower cost; drop-in replacement with reduced program space<\/td><\/tr><tr><td>STM32F103C8T6<\/td><td>ST<\/td><td>Smaller Package<\/td><td>LQFP-48 (7x7mm) vs LQFP-64; 64KB Flash (originally, now generally 128KB in production); 37 I\/O vs 51; same Cortex-M3 at 72MHz; same peripherals but fewer exposed pins; no CAN or USB in all pin configurations; the most popular and lowest-cost STM32F1 variant; use for cost-sensitive designs with fewer I\/O requirements<\/td><\/tr><tr><td>STM32F103VET6<\/td><td>ST<\/td><td>Larger Package, More Features<\/td><td>LQFP-100 (14x14mm); 512KB Flash, 64KB SRAM; 80 I\/O; adds FSMC for external memory, more timers, DAC; more GPIO ports (D, E); use when more memory, more I\/O, or FSMC is needed; higher cost but much more capability<\/td><\/tr><tr><td>STM32F401RBT6<\/td><td>ST<\/td><td>Same Package, Newer Core<\/td><td>Same LQFP-64 footprint; Cortex-M4 with FPU at 84MHz; 128KB Flash, 64KB SRAM; no CAN or Ethernet; USB FS; higher performance CPU with floating-point hardware; use for new designs needing FPU without changing PCB layout<\/td><\/tr><tr><td>LPC1758FBD80<\/td><td>NXP<\/td><td>Competitive Alternative<\/td><td>Cortex-M3 at 100MHz; 512KB Flash, 64KB SRAM; LQFP-80; Ethernet MAC, USB, CAN, I2S; higher clock speed and more memory; different tool chain and peripheral register set; use as ARM Cortex-M3 alternative with more headroom<\/td><\/tr><\/tbody><\/table>"},"_links":{"self":[{"href":"https:\/\/materialparts.com\/es\/wp-json\/wp\/v2\/posts\/1940","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/materialparts.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/materialparts.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/materialparts.com\/es\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/materialparts.com\/es\/wp-json\/wp\/v2\/comments?post=1940"}],"version-history":[{"count":0,"href":"https:\/\/materialparts.com\/es\/wp-json\/wp\/v2\/posts\/1940\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/materialparts.com\/es\/wp-json\/wp\/v2\/media\/2911"}],"wp:attachment":[{"href":"https:\/\/materialparts.com\/es\/wp-json\/wp\/v2\/media?parent=1940"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/materialparts.com\/es\/wp-json\/wp\/v2\/categories?post=1940"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/materialparts.com\/es\/wp-json\/wp\/v2\/tags?post=1940"},{"taxonomy":"chip_brand","embeddable":true,"href":"https:\/\/materialparts.com\/es\/wp-json\/wp\/v2\/chip_brand?post=1940"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}