Sie sind auf Seite 1von 4

Acerca del Microcontrolador STM32F103C8T6

El microcontrolador STM32F103C8T6 es de 32 bits, muy econmico y adecuado para uso


acadmico. Se vende como una tarjeta de desarrollo que incluye un uC (1) STM32F103C8T6 con un
interface para programar tipo SWD. Se puede programar con un ST-Link v2 (115 pesos al 20 de
Enero del 2017) que se conecta a un puerto USB de una PC como es lo usual en estos das.

Adems se puede programar sin usar un programador, ya que cuenta internamente en memoria
ROM con un bootloader a travs del puerto serie USART1. Por esto resulta econmico usarlo.

No es la versin mas rpida del STM32 ya que corre mximo a 72 MIPs, pero recordemos con
un costo cercano a los 149 pesos en Mercado Libre Mexico (20 de Enero del 2017) resulta mucho
mas econmico que usar cualquier uC PIC o AVR + un Programador y extremadamente mas rpido.
Cuenta con una memoria de programa de 64 Kbytes y una memoria RAM de 20 Kbytes, que son
excelentes para aprender un primer uC. Adems para lograr un conexionado fcil con el protoboard
viene en un paquete tipo DIP40.

Programar este tipo de uC en lenguaje ensamblador ya no es prctico, o al menos no muy


simple. Se recomienda usar lenguaje C o C++. Hay software gratis y pagado para su desarrollo. De los
ms fciles de usar es el mikroC Pro for ARM, que en su versin libre programa hasta 8 Kbytes de su
memoria de programa. Otra opcin es el compilador Keil que a mi me resulta mucho mas complicado
de usar. Por el lado libre esta el Compilador CooCox que es gratis, pero igual que el Keil me parece
muy latoso su uso de libreras. Por lo anteriormente mencionado, en nuestro curso usaremos la versin
4.9.0 de mikroC Pro for ARM que funciona correctamente en Windows XP 32 bits y Windows 7, 8.x,
10 en sus versiones de 32 y 64 bits.

Este material trata de ser unas notas u observaciones breves que ayuden sobre todo al inicio a
utilizar el uC STM32F103C8T6, en ningn momento pretenden ser un sustituto de los manuales de
STMicroelectronics como son:

RM0008 Manual de Referencia (Probablemente el Manual Principal)


CD00161566 Hoja de Datos del STM32F103C8T6.

Estos manuales los consultaremos conforme sea necesario.

(1) uC = Abreviatura de microcontrolador que usaremos en el presente documento.


En los uCs STM32 todo es sncrono, es decir hasta los puertos de E/S requieren un reloj, esto se
habilita en los registros:

RCC_APB1
RCC_APB2

En dichos registros hay bits para habilitar cada perifrico y puerto.


Ademas por cada puerto hay varios registros de configuracin:

GPIOx_CRL
GPIOx_CRH
GPIOx_AFRL
GPIOx_AFRH
GPIOx_IDR Al leerlo se leen las terminales fsicas del uC
GPIOx_ODR Es el Flip-Flop de salida (y es sncrono)
GPIOx_BSRR
GPIOx_BRR
GPIOx_LCKR

Note la diferencia con un uC PIC18F o AVR ATmega en los cuales hay bsicamente 3 registros
de configuracin de puertos:

En un PIC18F:

TRISx Configura cada bit para ser E/S


PORTx Al leerlo se leen las terminales fsicas del uC
LATx Es el LATCH de salida

En un uC AVR ATmega:

DDRx Configura cada bit para ser E/S


PINx Al leerlo se leen las terminales fsicas del uC
PORTX Es el LATCH de salida
Realizamos un programa prueba.c a fin de probar como salida todos los puertos que estn en
la tarjeta de desarrollo, pues como en todo uC las terminales tienen normalmente ms de una funcin y
es conveniente saber cuales puertos funcionan por decirlo de alguna manera con la tarjeta de desarrollo
recin desempacada.

En seguida mostramos los resultados encontrados:

PA0 OK PB0 OK
PA1 OK PB1 OK
PA2 OK PB2 es BOOT1
PA3 OK PB3 led apagado(3)
PA4 OK PB4 led ligeramente encendido(4)
PA5 OK PB5 OK
PA6 OK PB6 OK
PA7 OK PB7 OK
PA8 OK PB8 OK
PA9 OK PB9 OK
PA10 OK PB10 OK
PA11 OK, es USB D- PB11 OK
PA12 OK(1) es USB D+ PB12 OK
PA13 es SWDIO PB13 OK PC13 OK
PA14 es SWCLK PB14 OK PC14 OK
PA15 led ligeramente encendido(2) PB15 OK PC15 OK

(1) Antes de programarlo se ilumina ligeramente, pero al programarlo esta bien. Esto se debe a una
resistencia de pull-up de 4.7K (R10 en diagrama).
(2) Es la seal JTDI del interface JTAG.
(3) Es la seal JTDO del interface JTAG.
(4) Es la seal NJTRST del interface JTAG

Por los puntos (1), (2), (3) y (4) hay que recordar que los interfaces SWD y JTAG usan las
terminales siguientes:

INTERFACE PA13 PA14 PA15 PB3 PB4


JTAG JTMS JTCK JTDI JTDO NJTRST
SWD SWDIO SWCLK

Si se usa el interface SWD se pueden usar las terminales PA15, PB3 y PB4 como E/S de
propsito general, pero hay que reconfigurarlas.
Observaciones encontradas:

La palabra busy es palabra reservada, es el bit 1 del registro I2C_SR2. Si lo intentamos usar nos
indicara un intento de re-definir una variable, en este caso BUSY. Esto ocurre aun en el compilador
mikroC Pro for ARM v4.9.0 .

Adems hay otras palabras que no podemos usar como identificadores de uso general, por ejemplo
scan y cont que se usan en el convertidor A/D.

El Compilador mikroC Pro for ARM v4.9.0 por defecto tiene deshabilitada la sensibilidad
maysculas/minsculas, aunque puede ser habilitada.

Das könnte Ihnen auch gefallen