Documente Academic
Documente Profesional
Documente Cultură
Objetivo
Desarrollar la capacidad de disear y construir
sistemas electrnicos basados en microcontrolador
Conceptos y caractersticas
de los microcontroladores
1.1 El microcontrolador
1.2 Arquitectura Interna
1.3 Organizacin de Memoria
1.4 Software de Desarrollo
Microcontrolador
Fabricantes de Microcontroladores
ARM Cortex-M0
ARM Cortex-M4
"8/16-bit"
applications
"8/16-bit"
applications
"32-bit/DSC"
applications
"16/32-bit"
applications
Efficient digital
signal control
Suites de Desarrollo
https://www.keil.com/download/produ
ct/
Tarjeta de desarrollo
32F401CDISCOVERY
Entorno de Desarrollo
Integrado(IDE)
Tarjeta de Desarrollo
Tarjeta de Desarrollo
El microcontrolador
Diagrama de desarrollo
Descripcin General
Tipo de Procesador
Procesadores ARM Cortex -M
Soportan
un
nmero
de
operaciones relativa a los datos
de
64
bits
(multiplicacin,
acumulacin)
Arquitectura
Los procesadores Cortex-M3 y Cortex-M4 estn basados en la
arquitectura ARMv7-M
Arquitectura
Micro-arquitectura
Seales de interface
Tiempo de ejecucin de
instrucciones
Pipeline
Grupo de Instrucciones
El conjunto de instrucciones es
llamado Thumb
Los procesadores Cortex-M3 y
Cortex-M4 incorporan Thumb-2
que
permite
la
mezcla
de
instrucciones de 16 y 32 bits
Aritmtico-Lgicas
Acceso a memoria
Control
Salto
ADD{S}<c> {Rd,}Rn,<Operand2>
B<c> <label>
Modelo de Programacin
Existen dos estados y dos modos
de operacin.
Estados de operacin
Depuracin (Debug)
Thumb
Modos de operacin
Handler
Thread
Registros
El banco de registros
compone de 16 registros
se
13 de propsito general
3 de funciones especiales
Mapa de Memoria
Direccin
0x5000
FFFF
0x4002
67FF
0x4002
63FF
0x4002
3FFF
0x4002
3BFF
0x4002
33FF
0x4002
1FFF
0x4002
13FF
0x4002
0FFF
0x4002
0BFF
0x4002
07FF
0x4002
03FF
0x4001
4BFF
0000 - 0x5003
6400 - 0x4002
6000 - 0x4002
3C00 - 0x4002
3800 - 0x4002
3000 - 0x4002
1C00 - 0x4002
1000 - 0x4002
0C00 - 0x4002
0800 - 0x4002
0400 - 0x4002
0000 - 0x4002
4800 - 0x4001
Perifrico
USB OTG FS
DMA2
DMA1
Flash interface
register
RCC
CRC
GPIOH
GPIOE
GPIOD
GPIOC
GPIOB
GPIOA
TIM11
Direccin
0x4001
47FF
0x4001
43FF
0x4001
3FFF
0x4001
3BFF
0x4001
37FF
0x4001
33FF
0x4001
2FFF
0x4001
23FF
0x4001
17FF
0x4001
13FF
0x4001
03FF
0x4000
73FF
0x4000
5FFF
4400 - 0x4001
4000 - 0x4001
3C00 - 0x4001
3800 - 0x4001
3400 - 0x4001
3000 - 0x4001
2C00 - 0x4001
2000 - 0x4001
1400 - 0x4001
1000 - 0x4001
0000 - 0x4001
7000 - 0x4000
5C00 - 0x4000
Direccin
Perifric
o
TIM10
TIM9
EXTI
SYSCFG
SPI4
SPI1
SDIO
ADC1
USART6
USART1
TIM1
PWR
I2C3
0x4000
5BFF
0x4000
57FF
0x4000
47FF
0x4000
43FF
0x4000
3FFF
0x4000
3BFF
0x4000
37FF
0x4000
33FF
0x4000
2FFF
0x4000
2BFF
0x4000
0FFF
0x4000
0BFF
0x4000
07FF
0x4000
03FF
5800 - 0x4000
5400 - 0x4000
4400 - 0x4000
4000 - 0x4000
3C00 - 0x4000
3800 - 0x4000
3400 - 0x4000
3000 - 0x4000
2C00 - 0x4000
2800 - 0x4000
0C00 - 0x4000
0800 - 0x4000
0400 - 0x4000
0000 - 0x4000
Perifric
o
I2C2
I2C1
USART2
I2S3ext
SPI3 / I2S3
SPI2 / I2S2
I2S2ext
IWDG
WWDG
RTC & BKP
Registers
TIM5
TIM4
TIM3
TIM2
Puertos de Entrada/Salida de
propsito General (GPIO)
Caractersticas Elctricas
Parmetro
PIC18F4550
STM32F401VC
25mA
25mA
25mA
25mA
200mA
120mA
200mA
120mA
Registros
4 registros de configuracin
GPIOx_MODER
GPIOx_OTYPER
GPIOx_OSPEEDR
GPIOx_BSRR
GPIOx_PUPDR
2 registros de datos
1 registro de set/reset
1 registro de bloqueo
GPIOx_LCKR
GPIOx_IDR
GPIOx_AFRH
GPIOx_ODR
GPIOx_AFRL
(RCC)
Tres tipos de re-inicializacin()
Sistema
Alimentacin
De Reserva
21 Registros
Oscilador HSI
Oscilador HSE
PLL
0: clock disabled
1: clock enabled
Registros de configuracin de
puertos
These bits are written by software to configure the output type of the
I/O port.
0: Output push-pull (reset state)
1: Output open-drain
Reset values:
Registro pull-up/pull-down
(GPIOx_PUPDR)
Reset values:
0x6400 0000 for port A
0x0000 0100 for port B
0x0000 0000 for other ports
These bits are written by software to configure the I/O pull-up or pulldown
00: No pull-up, pull-down
01: Pull-up
10: Pull-down
11: Reserved
Practica 1
LEDs
Instrucciones a Utilizar
MOV32
MOV
STR
de
la
Qu perifricos se utilizan?
Qu registros se utilizan?
Perifric Direccin
o
Registro
Offse Valor
t
GPIOA
GPIOA_MODER
0x00
0x0C00 0000
GPIOA_PUPDR
0x0C
0x6400 0000
GPIOA_IDR
0x10
Slo Lectura
GPIOD_MODER
0x00
0x5500 0000
RCC_AHB1ENR
0x30
0x0000 0009
GPIOD
RCC
0x4002
0000
0x4002
0C00
0x4002
3800
MOV y MOVN
sufijo
cond
condicin
Rd
registro destino
Operand2
constante
es un registro o una
#inm16cualquier nmero de 0
-65535
MOV y MOVN
Ejemplos
LDR y STR
Carga uno o dos registros con un valor de la memoria. Almacena el valor de uno o dos registros en la memoria.
type:
LDR o STR
B unsigned Byte
SB signed Byte
H unsigned Halfword
SH signed Halfword
Rt
Rn
Registro base
offset
Rt2
Desplazamiento
Registro adicional
LDR y STR
Cargar uno o dos registros con un valor de la memoria. Almacena uno o dos valores de registro en la memoria.
Ejemplos
STRH R3, [R4], #4; Store R3 as halfword data into address in R4,
then increment R4 by 4
LDRD R8, R9, [R3, #0x20]; Load R8 from a word 32 bytes above
the address in R3, and load R9 from a word 36 bytes above the
address in R3
STRD R0, R1, [R8], #-16; Store R0 to address in R8, and store R1
to a word 4 bytes above the address in R8; and then decrement
R8 by 16.
Practica 2
Encender de manera secuencial los
LEDs de la tarjeta de Evaluacin.
Apagar los LEDs al presionar el
botn de usuario de la tarjeta.
Volver a encender
secuencial los LEDs.
de
manera
Instrucciones adicionales
B
CBNZ
LDR STR
Perifric Direccin
o
Registro
Offse Valor
t
GPIOA
GPIOA_MODER
0x00
0x0C00 0000
GPIOA_PUPDR
0x0C
0x6400 0000
GPIOA_IDR
0x10
Slo Lectura
GPIOD_MODER
0x00
0x5500 0000
RCC_AHB1ENR
0x30
0x0000 0009
GPIOD
RCC
0x4002
0000
0x4002
0C00
0x4002
3800
Cdigo Condicional
B{cond} label
Sufijo
Bandera
Significado
BL{cond} label
EQ
Z=1
Igual
BX{cond} Rm
NE
Z=0
No igual
BLX{cond} Rm
CS o HS
C=1
Mayor o igual
CC o LO
C=0
Menor
MI
N=1
Negativo
PL
N=0
Positivo o cero
VS
V=1
Sobreflujo
VC
V=0
No sobreflujo
Ejemplos
CBZ y CBNZ
Rn
label
es el registro que se
compara
es el destino del salto
Ejemplo
Reloj
El STM32f401 tiene tres fuentes de
reloj que pueden ser utilizadas para
manejar el reloj del sistema
(SYSCLK):
HSI
HSE
PLL
Despus
de
un
Restablecimiento
del sistema (Reset),
el oscilador HSI es
seleccionado como
reloj del sistema
Los bits del registro
RCC_CR nos indican
que relojes estn
listos y que reloj se
encuentra
como
reloj del sistema
Ciclos Maquina
Un
microcontrolador
es
un
ordenador en miniatura, con su
unidad de proceso, memoria,
dispositivos
y
un
juego
de
instrucciones propio de cada micro
como hemos visto en clase.
Practica 3
Agregar rutinas de
programa anterior.
retardo
al
BL
BNE BX
SUBS
Practica 4
Instrucciones adicionales
LSL LSR
Lenguaje C
Practica 4
Lenguaje C
LCD
No. Pin
Nombre
Funcin
Vss
Tierra
Vdd
Alimentacin
Vee
Contraste
RS
Selector de registro
RS=0 Comando
RS=1 Carcter
R/W
Leer/Escribir
R/W=0 Escribe
R/W=1 Lee
Habilitar
D0
Bit de dato 0
D1
Bit de dato 1
D2
Bit de dato 2
10
D3
Bit de dato 3
11
D4
Bit de dato 4
12
D5
Bit de dato 5
13
D6
Bit de dato 6
14
D7
Bit de dato 7
Modos de Funcionamiento
Comando:
Registro:
Modo Lectura:
Comandos de Control
Practica 5
Mostrar los siguientes mensajes en
el LCD:
IPN ESIME-ZAC
LAB C
Despus
debern
nombre completo:
mostrar
COSME CISNEROS
ISMAEL GABRIEL
Observaciones:
Debern crear una librera que
se llame LCD
su