todas las categorias

Carro 0 artículo

Carrito de compras 0 artículo

Parte de MFR # Cantidad
ENVIAR (0)

Seleccione el idioma

Idioma actual

español

  • English
  • Deutsch
  • Italia
  • Français
  • 한국의
  • русский
  • Svenska
  • Nederland
  • español
  • Português
  • polski
  • Suomi
  • Gaeilge
  • Slovenská
  • Slovenija
  • Čeština
  • Melayu
  • Magyarország
  • Hrvatska
  • Dansk
  • românesc
  • Indonesia
  • Ελλάδα
  • Български език
  • Afrikaans
  • IsiXhosa
  • isiZulu
  • lietuvių
  • Maori
  • Kongeriket
  • Монголулс
  • O'zbek
  • Tiếng Việt
  • हिंदी
  • اردو
  • Kurdî
  • Català
  • Bosna
  • Euskera
  • العربية
  • فارسی
  • Corsa
  • Chicheŵa
  • עִבְרִית
  • Latviešu
  • Hausa
  • Беларусь
  • አማርኛ
  • Republika e Shqipërisë
  • Eesti Vabariik
  • íslenska
  • မြန်မာ
  • Македонски
  • Lëtzebuergesch
  • საქართველო
  • Cambodia
  • Pilipino
  • Azərbaycan
  • ພາສາລາວ
  • বাংলা ভাষার
  • پښتو
  • malaɡasʲ
  • Кыргыз тили
  • Ayiti
  • Қазақша
  • Samoa
  • සිංහල
  • ภาษาไทย
  • Україна
  • Kiswahili
  • Cрпски
  • Galego
  • नेपाली
  • Sesotho
  • Тоҷикӣ
  • Türk dili
  • ગુજરાતી
  • ಕನ್ನಡkannaḍa
  • मराठी
CasaBlogPinout, Arquitectura, Especificaciones y Programación de STM32F103C6T6

COMPONENTES ELECTRÓNICOS EN STOCK.
COTIZACIONES RÁPIDAS.

Circuitos integrados, dispositivos de potencia y componentes pasivos
Soporte de abastecimiento inmediato

COTIZAR AHORA

Pinout, Arquitectura, Especificaciones y Programación de STM32F103C6T6

Tiempo: 28/08/2026

Navegar: 623

El STM32F103C6T6 es un microcontrolador STM32F1 de baja densidad construido en torno a un núcleo Arm Cortex-M3 de 72 MHz. Su configuración LQFP-48 proporciona 32 KB de Flash, 10 KB de SRAM, 37 GPIOs, 10 canales externos compartidos por dos ADC de 12 bits, un temporizador de control avanzado, dos temporizadores de uso general, siete canales DMA, y interfaces USB, CAN, USART, SPI e I²C. Es adecuado para adquisición de sensores compactos, control de PWM y motores, y sistemas de comunicación embebida. ST lista a la familia STM32F103C6 como activa e identifica STM32F103C6T6A y STM32F103C6T6ATR como códigos de pedido actuales LQFP-48.

Catálogo

 STM32F103C6T6

Figura 1. STM32F103C6T6

Funciones del Pinout de STM32F103C6T6

El STM32F103C6T6 utiliza un paquete LQFP de 48 pines y proporciona 37 pines GPIO. Muchos pines GPIO admiten funciones alternas, incluyendo entradas de ADC, salidas de PWM, USART, SPI, I²C, CAN, USB, señales de reloj y depuración. Estas funciones se seleccionan configurando el periférico relevante, el modo GPIO y los registros AFIO cuando es necesario el remapeo. Las funciones asignadas al mismo pin físico no pueden ser utilizadas al mismo tiempo.

LQFP48 Pinout for STM32F103x4/x6 Low-Density Devices

Figura 2. Pinout LQFP48 para Dispositivos de Baja Densidad STM32F103x4/x6

Pin
Nombre del Pin
Funciones Principales y Alternativas
1
VBAT
Entrada de alimentación de respaldo para el RTC, oscilador de 32.768 kHz y registros de respaldo cuando VDD no está disponible.
2
PC13-TAMPER-RTC
GPIO PC13; entrada de manipulación del RTC o salida de reloj del RTC.
3
PC14-OSC32_IN
GPIO PC14; entrada para el cristal LSE de 32.768 kHz o reloj externo.
4
PC15-OSC32_OUT
GPIO PC15; salida para el cristal LSE de 32.768 kHz.
5
PD0-OSC_IN
Entrada de cristal HSE o reloj externo de alta velocidad después del reinicio; se puede remapear como GPIO PD0.
6
PD1-OSC_OUT
Salida de cristal HSE después del reinicio; se puede remapear como GPIO PD1.
7
NRST
Entrada de reinicio externo de nivel bajo activo y salida de reinicio.
8
VSSA
Tierra analógica para el ADC y circuitos analógicos internos.
9
VDDA
Suministro analógico para el ADC, circuitos de reinicio, osciladores RC internos y PLL.
10
PA0-WKUP
GPIO; entrada de despertar en modo espera; USART2_CTS; canal 0 de ADC1/ADC2; TIM2_CH1 o disparador externo.
11
PA1
GPIO; USART2_RTS; canal 1 de ADC1/ADC2; TIM2_CH2.
12
PA2
GPIO; USART2_TX; canal 2 de ADC1/ADC2; TIM2_CH3.
13
PA3
GPIO; USART2_RX; canal 3 de ADC1/ADC2; TIM2_CH4.
14
PA4
GPIO; SPI1_NSS; USART2_CK; canal 4 de ADC1/ADC2.
15
PA5
GPIO; SPI1_SCK; canal 5 de ADC1/ADC2.
16
PA6
GPIO; SPI1_MISO; canal 6 de ADC1/ADC2; TIM3_CH1; TIM1_BKIN remapeado.
17
PA7
GPIO; SPI1_MOSI; canal 7 de ADC1/ADC2; TIM3_CH2; TIM1_CH1N remapeado.
18
PB0
GPIO; canal 8 de ADC1/ADC2; TIM3_CH3; TIM1_CH2N remapeado.
19
PB1
GPIO; canal 9 de ADC1/ADC2; TIM3_CH4; TIM1_CH3N remapeado.
20
PB2-BOOT1
GPIO PB2; entrada BOOT1 utilizada con BOOT0 para seleccionar la memoria de arranque.
21
PB10
GPIO; TIM2_CH3 remapeado.
22
PB11
GPIO; TIM2_CH4 remapeado.
23
VSS_1
Tierra digital.
24
VDD_1
Suministro digital para los circuitos de I/O y regulador de voltaje interno.
25
PB12
GPIO; entrada de ruptura TIM1, TIM1_BKIN.
26
PB13
GPIO; salida de canal complementario 1 de TIM1, TIM1_CH1N.
27
PB14
GPIO; salida de canal complementario 2 de TIM1, TIM1_CH2N.
28
PB15
GPIO; salida de canal complementario 3 de TIM1, TIM1_CH3N.
29
PA8
GPIO; USART1_CK; TIM1_CH1; salida de reloj del microcontrolador, MCO.
30
PA9
GPIO; USART1_TX; TIM1_CH2.
31
PA10
GPIO; USART1_RX; TIM1_CH3.
32
PA11
GPIO; USART1_CTS; CAN_RX; TIM1_CH4; USB_DM.
33
PA12
GPIO; USART1_RTS; CAN_TX; disparador externo TIM1; USB_DP.
34
PA13
Señal de depuración JTMS/SWDIO después del reinicio; utilizable como GPIO cuando la configuración de depuración lo permite.
35
VSS_2
Tierra digital.
36
VDD_2
Suministro digital.
37
PA14
Reloj de depuración JTCK/SWCLK después del reinicio; utilizable como GPIO cuando la configuración de depuración lo permite.
38
PA15
JTDI después del reinicio; GPIO cuando JTAG está deshabilitado; TIM2_CH1/ETR remapeado o SPI1_NSS.
39
PB3
JTDO/TRACESWO después del reinicio; GPIO; TIM2_CH2 remapeado o SPI1_SCK.
40
PB4
NJTRST después del reinicio; GPIO; TIM3_CH1 remapeado o SPI1_MISO.
41
PB5
GPIO; I²C1_SMBA; TIM3_CH2 remapeado o SPI1_MOSI.
42
PB6
GPIO; I²C1_SCL; USART1_TX remapeado.
43
PB7
GPIO; I²C1_SDA; USART1_RX remapeado.
44
BOOT0
Entrada de selección de modo de arranque. Se utiliza con PB2/BOOT1 para seleccionar Flash de usuario, memoria del sistema o SRAM al inicio.
45
PB8
GPIO; I²C1_SCL remapeado o CAN_RX.
46
PB9
GPIO; I²C1_SDA remapeado o CAN_TX.
47
VSS_3
Tierra digital.
48
VDD_3
Suministro digital.

Arquitectura y Principios de Funcionamiento

Arquitectura STM32F103C6T6

El STM32F103C6T6 pertenece a la familia de línea de rendimiento de baja densidad STM32F103x4/x6 y utiliza un núcleo Arm Cortex-M3 de 32 bits que opera a hasta 72 MHz. La Figura 3 es el diagrama de bloques oficial a nivel de familia; por lo tanto, algunos I/O y cuentas de ADC mostradas en el diagrama representan el máximo disponible en variantes de paquetes más grandes en lugar de los recursos exactos del dispositivo C6 LQFP48.

Official STM32F103x4/x6 Family-Level Block Diagram

Figura 3. Diagrama de Bloques de Nivel Familiar Oficial STM32F103x4/x6

La arquitectura del bus interno conecta el procesador, las memorias, el controlador DMA y los buses periféricos. El dominio AHB conecta el núcleo Cortex-M3, la memoria Flash, SRAM y el controlador DMA de siete canales y puede operar a hasta 72 MHz. Las funciones periféricas se dividen entre los dos dominios APB. APB1 está limitado a 36 MHz, mientras que APB2 puede operar a hasta 72 MHz. El controlador DMA puede transferir datos entre periféricos soportados y SRAM sin que la CPU tenga que mover cada elemento de datos, reduciendo la carga de trabajo del procesador durante transferencias de datos repetitivas.

Principio de Funcionamiento del STM32F103C6T6

Simplified STM32F103C6T6 Working Flow Showing Startup, Data Processing, Interrupts, DMA, Output Control, and Low-Power Modes

Figura 4. Flujo de Trabajo Simplificado del STM32F103C6T6 Mostrando Arranque, Procesamiento de Datos, Interrupciones, DMA, Control de Salida y Modos de Bajo Consumo

El STM32F103C6T6 arranca después de encenderse o reiniciarse, selecciona la fuente de arranque y utiliza inicialmente el reloj HSI de 8 MHz. Luego, el firmware configura el reloj del sistema, los GPIO y los periféricos requeridos.

Durante la operación, el Cortex-M3 procesa datos de entrada y controla salidas. El DMA puede transferir datos entre periféricos soportados y SRAM con menor involucramiento de la CPU, mientras que el NVIC maneja y prioriza interrupciones.

Cuando está inactivo, el dispositivo puede entrar en modo Sueño, Parada o Espera. Después de la reactivación en modo Parada, el firmware puede necesitar restaurar el PLL y el reloj del sistema seleccionado. La reactivación de la Espera provoca un reinicio estilo reset.

Especificaciones Técnicas

Especificación
STM32F103C6T6
Fabricante
STMicroelectronics
Núcleo de CPU
Arm Cortex-M3 de 32 bits
Frecuencia máxima de CPU
72 MHz
Memoria Flash
32 KB
SRAM
10 KB
Tensión de alimentación principal
VDD = 2.0–3.6 V
Alimentación analógica con ADC en funcionamiento
VDDA = 2.4–3.6 V
Alimentación de respaldo
VBAT = 1.8–3.6 V
Pines GPIO
37
ADC
Dos ADC de 12 bits compartiendo 10 canales externos; máximo 1 MS/s por ADC con un reloj ADC de 14 MHz y un tiempo de muestreo mínimo de 1.5 ciclos
Sensor de temperatura
Integrado y conectado internamente a un canal ADC
DMA
Controlador DMA de siete canales
Temporizadores
Temporizador de control avanzado TIM1 y temporizadores de propósito general TIM2/TIM3; todos son de 16 bits
Otros temporizadores
Temporizador SysTick de 24 bits, watchdog independiente y watchdog con ventana
SPI
Una interfaz SPI, hasta 18 Mbit/s
I²C
Una interfaz I²C que soporta operación en modo estándar y modo rápido hasta 400 kHz, con soporte SMBus/PMBus
USART
USART1 hasta 4.5 Mbit/s; USART2 hasta 2.25 Mbit/s; modo síncrono, soporte LIN, IrDA y tarjeta inteligente
CAN
Controlador activo CAN 2.0B, hasta 1 Mbit/s
USB
Dispositivo USB 2.0 de velocidad completa a 12 Mbit/s; requiere un reloj USB de 48 MHz. El funcionamiento eléctrico conforme a USB requiere VDD = 3.0–3.6 V y una resistencia pull-up externa de 1.5 kΩ en D+.
Fuentes de reloj
HSI de 8 MHz, cristal HSE de 4–16 MHz, LSI de aproximadamente 40 kHz y LSE de 32.768 kHz
RTC
RTC integrado con registros de respaldo y operación VBAT
Interfaces de depuración
Depuración Serial Wire y JTAG
Modos de bajo consumo
Sueño, Parada y Espera
Hardware adicional
Unidad de cálculo CRC y ID de dispositivo único de 96 bits
Paquete
LQFP-48, cuerpo de 7 × 7 mm, 0.5 mm de paso de pines
Temperatura de funcionamiento
−40 a +85 °C para el sufijo de temperatura 6

Nota: ST actualmente clasifica a la familia STM32F103C6 como activa e identifica a STM32F103C6T6A y STM32F103C6T6ATR como códigos de pedido LQFP-48 actuales. Para dispositivos STM32F103C6 heredados con un código interno en blanco después del sufijo de temperatura 6 o 7, incluyendo STM32F103C6T6, la nota 1 de DS5936 Rev. 7, Figura 3, dirige a los lectores a DS5319 para características eléctricas. La memoria del dispositivo, el conteo de periféricos y el pinout permanecen definidos por DS5936.

Configuración del proyecto, programación y depuración

El STM32F103C6T6 se programa y depura normalmente a través de su interfaz Serial Wire Debug (SWD) utilizando una sonda ST-LINK. STM32CubeMX independiente se utiliza para configurar pines, relojes y periféricos y generar el proyecto, mientras que STM32CubeIDE proporciona edición de código, construcción, programación Flash y depuración.

Las rutas de menú en esta sección describen STM32CubeIDE 2.2.0, basado en Eclipse/CDT, lanzado el 30 de junio de 2026. No se aplican al producto STM32CubeIDE separado para VS Code.

Conexiones SWD de ST-LINK

Señal ST-LINK
Conexión STM32F103C6T6
Pin LQFP-48
SWDIO
PA13/JTMS/SWDIO
34
SWCLK
PA14/JTCK/SWCLK
37
NRST
NRST — recomendado
7
GND
VSS/GND
Cualquier tierra
VAPP/VTref
Raíl de 3.3 V del objetivo
Referencia de voltaje

Utilice una fuente regulada de 3.3 V para el objetivo. En un ST-LINK/V2 genuino, VAPP/VTref detecta el voltaje del objetivo en lugar de suministrar energía al MCU. Mantenga BOOT0 bajo para el inicio normal desde la memoria Flash del usuario; elevar BOOT0 no es necesario para la programación ST-LINK.

Procedimiento de programación

• Abra STM32CubeMX independiente y seleccione el dispositivo STM32F103C6Tx exacto. Configure el reloj, los GPIO, los periféricos y la depuración Serial Wire bajo Núcleo del sistema → SYS.

• Abra el Administrador de proyectos, seleccione STM32CubeIDE bajo Toolchain/IDE y genere el código. STM32CubeMX documenta la selección de Toolchain/IDE como parte de la configuración de generación de proyectos.

• En STM32CubeIDE basado en Eclipse, seleccione Archivo → Importar → Importar proyecto STM32 → Proyecto STM32CubeMX/STM32CubeIDE. Seleccione el proyecto generado y complete la importación.

• Agregue el código de la aplicación dentro de las secciones designadas de CÓDIGO DE USUARIO, construya el proyecto, conecte la sonda ST-LINK a través de SWD y comience el depurador. Utilice puntos de interrupción, paso a paso, vistas de registro y monitoreo de variables para verificar el funcionamiento.

Para un desarrollo y pruebas reproducibles, registre la versión de STM32CubeIDE, la versión de STM32CubeMX, la versión del paquete de firmware STM32CubeF1, la versión del compilador y la versión de la herramienta, la versión del firmware ST-LINK y la versión del proyecto utilizada para cada compilación.

Lista de Verificación de Diseño y Validación de Hardware STM32F103C6T6

Este es un procedimiento de validación propuesto, no datos experimentales del autor. Informe el hardware de prueba, las condiciones de operación, las lecturas en bruto, los instrumentos y la incertidumbre en la medición.

Lista de Verificación de Hardware Mínimo

• Conecte los pines VDD 24, 36 y 48 a 3.3 V y los pines VSS 23, 35 y 47 a tierra. Coloque un capacitor de 100 nF en cada par VDD/VSS y al menos 4.7 µF de capacitancia de bultos en el riel de 3.3 V.

• Conecte el pin VDDA 9 a 3.3 V y el pin VSSA 8 a tierra. Desacople VDDA con 100 nF + 1 µF.

• Si VBAT no se usa, conecte el pin 1 a VDD y desacópelo con 100 nF.

• Mantenga el pin BOOT0 44 bajo con una resistencia de 10 kΩ a tierra para un arranque normal de Flash.

• Conecte el pin NRST 7, el pin PA13/SWDIO 34 y el pin PA14/SWCLK 37 a la interfaz SWD. Agregue 100 nF desde NRST a tierra.

• Use HSI para el arranque básico. Agregue el circuito HSE/LSE apropiado cuando sea necesario según la configuración final del reloj.

Esquema de Sistema Mínimo

 STM32F103C6T6 Minimum-System Schematic

Figura 5. Esquema de Sistema Mínimo STM32F103C6T6

La Figura 5 debe mostrar todos los pines de alimentación, capacitores de desacoplo, VDDA/VSSA, VBAT, BOOT0, NRST y conexiones SWD.

Condiciones de Prueba a Registrar

Registre la revisión de la placa, el número de muestras n, repeticiones, voltaje de alimentación y rizado, temperatura ambiente, configuración del reloj, cargas, configuración de la sonda, precisión del instrumento y estado de calibración, versión del firmware, versiones de STM32Cube, versión del compilador y versión del firmware ST-LINK.

Lista de Verificación de Cálculo y Validación

Verificar
Validación
Informe
Alimentación
Mida VDD y VDDA bajo carga y durante el arranque.
Voltaje min/máx, rizado, incertidumbre
Reiniciar/arrancar
Ciclo de energía, active NRST y verifique el estado de BOOT0.
Resultado de reinicio y arranques fallidos
SWD
Borrar, programar, verificar, reiniciar y depurar.
Pasar/fallar y fallos de conexión
ADC
Aplique voltajes de entrada calibrados y repita las mediciones.
Código esperado, código medio, dispersión, error
PWM/temporalización
Mida la frecuencia y el ciclo de trabajo.
Valor calculado, valor medido, error
Comunicación
Pruebe con un nodo conocido o loopback.
Tasa de bits, recuento de tramas, errores, duración

Para el ADC de 12 bits, donde VSSA ≈ 0 V:

LSB=V_DDA/4096

N_ideal= min (4095, [ (4096 x V_IN)/V_DDA ] )

donde:

• Nideal = código ADC ideal

• VIN = voltaje de entrada ADC aplicado

• VDDA = voltaje de alimentación/referencia analógica medido

El resultado del ADC debe permanecer dentro de 0 a 4095.

Error de código = Nmedido − Nideal

Para un temporizador alineado al borde y en aumento:

fTIM = PCLKx, cuando el prescaler APB = 1

fTIM = 2 × PCLKx, cuando el prescaler APB > 1

Entonces:

fPWM = fTIM/([(PSC + 1) × (ARR + 1)])

Para el modo PWM 1, operación de alto activo:

Ciclo de trabajo (%) = CCRx/(ARR + 1) x 100

donde PSC es el prescaler del temporizador, ARR es el valor de auto-rellenado y CCRx es el valor de captura/comparación.

Para resultados medidos de ADC, PWM o temporización:

Error (%) = (Medido - Esperado)/Esperado x 100

Informe el error firmado o absoluto junto con la incertidumbre de medición y las condiciones de prueba.

Estudios de Caso de Investigación de Terceros

Estos estudios de caso resumen investigaciones de terceros utilizando el STM32F103C6T6. No fueron completados ni medidos por el autor de este artículo.

Control de Cápsula Magnética

Wang et al. (2023) utilizaron PWM generado por STM32 para controlar tres pares de bobinas de Helmholtz ortogonales a través de tres módulos en puente H clasificados en 450 W cada uno y suministrados a 30 V. El valor de 450 W era una clasificación del módulo, no el consumo de energía medido. El sistema utilizó control de lazo abierto en lugar de retroalimentación de corriente o orientación de lazo cerrado.

Las pruebas utilizaron una cápsula Ø25 × 58 mm en un cubo de agua de 100 mm. Dos cámaras registraron el movimiento a 640 × 480 píxeles y 60–900 fps. La cápsula demostró rotaciones de 90°. A 5 mT, la estimación máxima reportada del par de magneto blando fue de 6 × 10⁻⁵ N·m, en comparación con 5.4 × 10⁻³ N·m para el imán permanente. El par se estimó a partir del comportamiento de rotación en lugar de medirse con un sensor de par. El conteo de especímenes independientes, el conteo de ensayos, la incertidumbre y el error de orientación numérica no fueron informados.

Fuente: Wang, Cui, Tian y Han (2023).

Control de Pantalla Táctil Háptica

Kim et al. (2022) utilizaron un STM32F103C6T6 para controlar un actuador resonante electrostático. Un prototipo adjunto a un bloque de 125 g fue medido con un acelerómetro 352C66 durante una barrido de 50–200 Hz, alcanzando 2.5 g a 99 Hz, donde g denota aceleración.

Cuatro actuadores fueron probados en un panel de 17 pulgadas en 25 ubicaciones y a 90, 117 y 150 Hz, lo que da 75 condiciones de ubicación-frecuencia en lugar de 75 muestras independientes. Los picos reportados fueron de 1.4 g, 2.6 g y 1.5 g, respectivamente. El documento identifica el osciloscopio como DPO2012B en una figura pero DPO2021B en el texto. No se reportaron repeticiones, incertidumbre, pruebas humanas, vida útil ni consumo de energía.

Fuente: Kim et al. (2022).

Problemas Comunes y Pasos de Solución Documentados

Problema común
Causa probable
Acción documentada
ST-LINK no puede detectar el MCU
Sin alimentación del objetivo, cableado SWD incorrecto, falta de tierra o frecuencia SWD inadecuada
Confirme la alimentación del objetivo y las conexiones SWDIO, SWCLK, GND, NRST y voltaje del objetivo. Reduzca la frecuencia de depuración si es necesario.
ST-LINK dejó de conectarse después de programar
El firmware deshabilitó o reasignó la interfaz de depuración
Utilice Conectar Bajo Reinicio con NRST conectado a ST-LINK, luego borre o reemplace el firmware defectuoso. El UM2237 identifica específicamente este modo como útil cuando el código de aplicación desactiva JTAG/SWD.
El firmware se descarga pero no arranca
BOOT0 está alto o se utiliza una configuración de objetivo incorrecta
Baje BOOT0 para arrancar desde Flash principal, verifique el objetivo STM32F103C6Tx y reinicie el MCU.
Reinicios aleatorios u operación inestable
Caídas de suministro, desacoplamiento inadecuado, ruido eléctrico o eventos de watchdog/reinicio
Mida VDD durante el funcionamiento e inspeccione las banderas de fuente de reinicio. Verifique los requisitos de suministro, desacoplamiento, aterrizaje y protección de carga descritos en la Sección 5 en lugar de duplicarlos aquí.
El MCU falla después de la configuración del reloj
Configuración incorrecta de HSE/PLL, latencia de Flash o preescaladores de bus
Para 72 MHz SYSCLK, configure dos estados de espera de Flash, mantenga APB1 en 36 MHz o menos, confirme las banderas del oscilador y PLLRDY antes de seleccionar la PLL como SYSCLK, y verifique la fuente de reloj seleccionada después.
La frecuencia de UART, PWM o temporizador es incorrecta
Cálculo incorrecto del árbol de reloj
Verifique los preescaladores RCC y APB y calcule el reloj del temporizador utilizando el método en la Sección 5.4.
Las lecturas de ADC son ruidosas o inexactas
Suministro de VDDA deficiente, tiempo de muestreo inadecuado, alta impedancia de fuente o falta de calibración
Verifique la integridad de VDDA/VSSA, realice la calibración de ADC, seleccione un tiempo de muestreo suficiente para la impedancia de la fuente y mantenga la entrada dentro del rango permitido de ADC.
PA15, PB3 o PB4 no funcionan como GPIO
Los pines están asignados a JTAG después del reinicio
Configure AFIO para deshabilitar JTAG mientras retiene SWD si se requiere depuración.
El programa excede la memoria disponible
El proyecto está configurado para una variante más grande de STM32F103
Use la configuración de memoria STM32F103C6 de 32 KB Flash y 10 KB SRAM y revise el informe de memoria del enlazador.
El dispositivo I²C no reconoce
Error de cableado, dirección incorrecta, pull-ups inadecuados, voltaje lógico incompatible o temporización incorrecta
Verifique el cableado SDA/SCL, la dirección del dispositivo, los pull-ups externos, los niveles de voltaje lógico y la temporización de I²C con un osciloscopio o analizador lógico.
La bandera I²C BUSY permanece activa después de encender o una perturbación eléctrica
Limitación del filtro analógico I²C documentada para STM32F103x4/x6
Aplique la secuencia de recuperación ES0348 §2.8.7: desactive I²C; establezca SCL/SDA como GPIO de drenaje abierto alto y verifique que ambos estén en alto; lleve SDA a bajo y verifique; lleve SCL a bajo y verifique; lleve SCL a alto y verifique; lleve SDA a alto y verifique; restaure ambos pines a función alterna de drenaje abierto; configure y luego limpie SWRST; finalmente vuelva a habilitar I²C. Los pull-ups por sí solos no corrigen esta condición de BUSY bloqueado.
Una señal de 5 V daña o interrumpe GPIO
Se aplicó voltaje a un pin no FT o analógico
Solo los pines digitales marcados como FT pueden aceptar voltajes de entrada por encima de VDD dentro de los límites de DS5936. Para voltajes superiores a VDD + 0.3 V, desactive las resistencias pull-up/pull-down internas. Utilice adaptación de nivel o división para entradas no FT y analógicas.
Protección de lectura habilitada
Estado de protección de bytes de opción
Inspeccione los bytes de opción utilizando STM32CubeProgrammer. Cambiar del estado protegido al estado no protegido restaurando el valor RDP causa un borrado masivo de Flash principal. STM32F1 no utiliza el esquema posterior de RDP Nivel 2 irreversible.

STM32F103C6T6 vs STM32F103C8T6

Las principales diferencias entre el STM32F103C6T6 y el STM32F103C8T6 son la capacidad de memoria y el número de temporizadores y periféricos de comunicación disponibles.

Característica
STM32F103C6T6
STM32F103C8T6
Densidad del dispositivo
Baja densidad
Densidad media
Memoria Flash
32 KB
64 KB
SRAM
10 KB
20 KB
Temporizadores de uso general
2: TIM2–TIM3
3: TIM2–TIM4
Interfaces I²C
1
2
Interfaces USART
2
3
Interfaces SPI
1
2

Los C6T6 y C8T6 comparten el formato LQFP48 y la arquitectura STM32F103, pero la migración aún requiere la verificación del script de enlace exacto, archivos de inicio, funciones alternativas, disponibilidad de periféricos, límites eléctricos y erratas aplicables. El firmware C8 no se puede mover al C6 sin cambios cuando excede 32 KB de Flash o 10 KB de SRAM, o utiliza TIM4, I²C2, USART3 o SPI2.

Dimensiones mecánicas de LQFP48

LQFP48 7 × 7 mm package outline and mechanical data

Figura 6. Contorno del paquete LQFP48 de 7 × 7 mm y datos mecánicos

El STM32F103C6T6 utiliza un paquete LQFP de 48 pines con un tamaño típico del cuerpo de 7 × 7 mm. Su ancho total típico, incluyendo los pines, es de 9 × 9 mm, con un paso de pin de 0.50 mm y una altura máxima del paquete de 1.60 mm. Cada pin tiene típicamente 0.60 mm de largo, con un rango permitido de 0.45 a 0.75 mm.

Nota: Todas las dimensiones están en milímetros, y el dibujo no está a escala. Los valores mínimos y máximos muestran tolerancias de fabricación. Use el formato de PCB recomendado por ST en lugar de calcular las almohadillas de soldadura directamente del contorno del paquete. El pin 1 también debe coincidir con la marca de identificación en el dispositivo.




Referencias técnicas

• STMicroelectronics. STM32F103x4, STM32F103x6: línea de rendimiento de baja densidad, MCU de 32 bits basada en ARM con 16 o 32 KB de Flash, USB, CAN, 6 temporizadores, 2 ADC, 6 interfaces de comunicación. DS5936/DocID15060, Rev. 7, junio de 2015.

• STMicroelectronics. STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx y STM32F107xx MCUs avanzados basados en ARM de 32 bits. RM0008, Rev. 21, febrero de 2021.

• STMicroelectronics. Manual de programación Cortex-M3 STM32F10xxx/20xxx/21xxx/L1xxxx. PM0056, Rev. 7, diciembre de 2024.

• STMicroelectronics. Microcontroladores STM32F10xxx de memoria Flash. PM0075, Rev. 2, agosto de 2012.

• STMicroelectronics. Introducción al desarrollo de hardware STM32F10xxx. AN2586, Rev. 8, diciembre de 2022.

• STMicroelectronics. STM32F103x8, STM32F103xB: línea de rendimiento de densidad media. DS5319, Rev. 20, julio de 2025.






Preguntas frecuentes [FAQ]

1. ¿El STM32F103C6T6 requiere un cristal externo para USB?

Un cristal no es un requisito lógico, pero un diseño de USB conforme a la norma necesita un reloj PLL de 48 MHz preciso normalmente derivado de un cristal HSE, resonador o fuente de reloj externa. También requiere una resistencia de pull-up D+ de 1.5 kΩ externa y el rango de suministro de USB documentado.

2. ¿Se puede programar el STM32F103C6T6 sin ST-LINK?

Sí. Establezca BOOT0 alto y BOOT1 bajo para iniciar el bootloader de memoria del sistema de fábrica. Admite programación a través de USART1 en PA9 y PA10. El bootloader de fábrica no proporciona USB DFU para este dispositivo, según AN2606.

3. ¿Pueden USB y CAN operar simultáneamente?

No. USB y CAN comparten un área de memoria dedicada de 512 bytes, por lo que no pueden operar simultáneamente. Pueden incluirse en el mismo firmware, pero deben utilizarse en diferentes momentos, como se explica en RM0008.

4. ¿Incluye el STM32F103C6T6 un DAC de hardware?

No. Se puede producir una salida análoga utilizando PWM y un filtro de paso bajo. Use un DAC externo cuando el proyecto requiera mejor precisión, una velocidad de asentamiento más rápida o un voltaje estable sin ondulación de PWM.

5. ¿Puede el STM32F103C6T6 ejecutar FreeRTOS?

Sí. El soporte de FreeRTOS se proporciona a través del paquete de software STM32CubeF1. Sin embargo, el C6T6 tiene solo 10 KB de SRAM, por lo que las pilas de tareas, colas, búferes y middleware deben caber dentro de este límite. Utilizar pilas de tareas pequeñas, asignación estática y monitoreo del uso de la pila son recomendaciones de ingeniería más que requisitos del dispositivo.

Envíos de RFQ en línea: Respuestas rápidas, mejores precios!

RFQ