Académique Documents
Professionnel Documents
Culture Documents
Ingeniería Biomedica
Arquitectura Cortex ARM
Existe una clasificación para los microcontroladores Cortex
ARM
●
Cortex-A es un grupo de núcleos de procesador ARM RISC de 32 y 64 bits.
Destinados al uso en aplicaciones robustas que requieran un sistema operativo,
celulares, tabletas, computadoras, etc.
●
Cortex-R utilizados principalmente en aplicaciones que ocupen procesos en tiempo
real, banda movil, drivers de discos duros, etc.
●
Cortex-M usados en aplicaciones típicas de control y procesamiento de señales, la
principal característica es poder ejecutar operaciones de punto flotante.
2
Cortex-M
●
M0, M0+ bajo costo y consume poca energia.
●
M1, orientados a diseños con FPGA
●
M3, Microcontroladores de propósito general.
●
M4, Instrucciones de DSP, ejecutan instrucciones de punto flotante.
●
M7, Frecuencia de reloj a alta velocidad , superior a los M4.
3
Cortex-M
4
Cortex-M
5
Principales fabricantes de microcontroladores
Cortex-M
6
Características del Cortex-M
●
Su mayor ventaja es la ejecución instrucciones de DSP(Suma y
multiplicación en un ciclo de instrucción)
●
Capacidad de crear sistemas híbridos entre lenguaje
ensamblador y lenguaje c.
●
Manejo de memoria de datos y memoria de programa de forma
independiente.
7
Arquitectura Cortex-M
●
Tipo Harvard
8
Arquitectura Cortex-M
●
Se puede leer y escribir al mismo
tiempo.
●
La comunicación entre la ROM y la
RAM es independiente.
●
Tiene buses de interrupciones
separados y de comunicación
directa con los perifericos.
9
Buses
Tener múltiples buses significa que el procesador puede
realizar múltiples tareas en paralelo. Las siguientes son
algunas de las tareas que pueden ocurrir en paralelo.
10
Buses
●
ICode bus Fetch opcodes desde la ROM
●
DCode bus Lee constantes de datos desde la ROM
●
System bus Lee y escribe datos desde la RAM o las I/O, fetch
opcode desde la RAM
●
PPB Lee y escribe datos desde perifericos internos como por
ejemplo los NVIC
●
AHB Lee y escribe datos desde periféricos high-speed I/O puertos
paralelos (M4 cortex solamente)
11
Ciclo de instrucción DSP
12
Arquitectura Cortex-M
13
Registros
●
El MCU cuenta con 16 registros, con ellos se puede hacer
instrucciones de direccionamiento inmediato,operaciones entre
ellos, etc.
●
Los Registros del R0 al R12 son de propósito general,
enfocado principalmente en hacer operaciones.
●
Los Registro R13,R14 y R15 son de propósito específico.
14
Registros
15
Registros
16
Registros
●
R13 Stack Pointer, apuntador de pila (para hacer subrutinas).
●
R14 Link Register, instrupciones Push y Pop
●
R15 Program Counter, usado para direccionar a la memoria de
codigo.
17
Registros especiales
●
PSR, indica el estado del microcontrolador.
Al mismo tiempo se pueden subdividir en tres registros
APSR,IPSR y EPSR.
18
Banderas de Estado del MCU
19
Memoria del Cortex-M
Las arquitecturas de memoria en el sistema MCU Cortex-M
proporcionan excelentes flexibilidades al dividir todo el espacio
de memoria en diferentes regiones para diferentes usos. Esta
flexibilidad permite a los usuarios utilizar diferentes
arquitecturas de memoria para satisfacer las necesidades de
sus aplicaciones especiales
20
Mapa de Memoria del Cortex-M4
21
Tarea
TM4C123GH6PM Microcontrolador
●
Su arquitectura.
●
Mapa de memoria del MCU.
●
Hardware del MCU.
●
Software (Code Composer Studio)
●
Set de instrucciones de acuerdo a su arquitectura
●
Hoja de datos
22
Arquitectura Cortex-M4
23
Tiva C EK-TM4C123GXL LAUNCHPAD
24
ENCODER
25
PWM.
26
ADC.
27
CAN.
28
NVIC
29
USB
30
SSI
31
I2C
32
TIMER
34
35
36
37
General-Purpose Input/Output
(GPIO)
Los puertos de I/O comparten el mismo espacio de
direcciones con la memoria. Eso significa que el software
puede acceder a un puerto de I/O simplemente leyendo
o escribiendo en la dirección apropiada, y estas
direcciones generalmente se denominan "Registros". La
mayoría de los puertos de I/O se pueden configurar en
diferentes funciones de I/O a través de los registros.
38
GPIO
Los pines GPIO no tienen un propósito predefinido y
pueden funcionar como interfaz paralela, ya que
permiten que el microcontrolador intercambie
información digital con los dispositivos externos. Por
ejemplo, GPIO se puede usar para leer desde el
sensor de temperatura y para escribir la salida en el
módulo LCD o LED para el estado.
39
Capacidades GPIO
●
Los pines GPIO se pueden configurar para ser de entrada o salida
●
Los pines GPIO se pueden habilitar o deshabilitar
●
Los valores de entrada son legibles (normalmente lógica alta o baja)
●
Los valores de salida se pueden escribir y se pueden volver a leer
●
El pin de entrada se puede usar para activar la función de
interrupción
40
GPIO
En lugar de configurar y controlar directamente
cada pin GPIO individual, configuramos un
grupo de pines GPIO (típicamente 8 pines
GPIO) en un PUERTO. A través de los registros
PORT, podemos controlar y acceder a múltiples
pines GPIO a la vez.
41
GPIO
El GPIO de la familia Tiva TM4C es
extremadamente flexible. Cualquier GPIO
puede configurarse para diferentes funciones:
puede ser una interrupción, activada por el
borde al subir, bajar o ambos; o puede ser
sensible al nivel de valores altos o bajos.
●
42
GPIO
El microcontrolador Tiva C es un microprocesador ARM
Cortex-M4 de baja potencia y funciona típicamente a
3.3V, por lo que los niveles lógicos de los pines de I/O
son 3.3V.
El drive strength del GPIO es programable para ser de
2, 4 o 8 mA. Todos los pines GPIO tienen modos
programables de pull-up, pull-down y de drenaje abierto.
43
GPIO
44
Consideraciones GPIO
●
Nunca exceda el voltaje de la lógica de entrada de ningún pin
más allá del límite VDD a menos que esté seguro de que la
fuente no excederá el voltaje límite.
●
No use voltajes de entrada negativos con ningún pin.
●
No estreses ningún pin GPIO más allá de 10 ~ 15mA, aunque
el límite máximo es de 25mA. Utilice dispositivos de conmutación
externos como FET, BJT y opto-aisladores para manejar cargas
de alta potencia.
45
PUERTOS GPIO
●
El Puerto A, Puerto B, Puerto C y Puerto D
tienen 8 pines I/O en cada puerto;
●
El puerto E tiene 6 pines y el puerto F tiene 5
pines.
46
PUERTOS GPIO
●
Todas las entradas del GPIO son tolerantes a 5 V,
excepto algunos GPIO (PB0, PB1 y PD5).
●
Aunque la mayoría de los pines son tolerantes a 5V, no
necesariamente significa que el nivel lógico se base en un
nivel lógico TTL de 5V.
●
Los límites de voltaje de nivel lógico todavía se realizan
con respecto a VDD(3.3V).
47
GPIO
Los puertos GPIO se pueden conectar al bus avanzado de
periféricos (APB) o al bus avanzado de alto rendimiento
(AHB).
Cada puerto GPIO puede configurarse individualmente para
usar AHB o APB a través del "Registro 9: GPIO High-
Performance Bus Control (GPIOHBCTL), offset 0x06C". El bus
AHB proporciona un mejor rendimiento de acceso continuo
que el bus APB.
48
GPIO Port APB Bus AHB Bus
Base Address Rango Base Address Rango
Cada puerto GPIO tiene 4KB de espacio de memoria, porque cada puerto GPIO tiene una gran cantidad de
registros de funciones especiales asociados, y el registro de datos GPIO admite el direccionamiento específico de
bits para permitir que una sola instrucción acceda a datos de 1 bit a 8 bits. en el mapa de memoria
49
GPIO Port Control Register
(GPIOPCTL)
El registro GPIOPCTL se usa junto con el registro GPIOAFSEL y selecciona la
señal periférica específica para cada pin GPIO cuando se utiliza el modo de
función alternativa. La mayoría de los bits en el registro GPIOAFSEL se borran
al reiniciar, por lo tanto, la mayoría de los pines GPIO están configurados como
GPIO de forma predeterminada. Cuando se establece un bit en el registro
GPIOAFSEL, la señal GPIO correspondiente es controlada por un periférico
asociado. El registro GPIOPCTL selecciona una de un conjunto de funciones
periféricas para cada GPIO, proporcionando flexibilidad adicional en la
definición de la señal. Las siguientes tablas son la información sobre las
codificaciones definidas para los campos de bits en este registro.
50
Configuracion del Reloj del Sistema
Las señales de reloj están conectadas a todos los
componentes dentro de un microcontrolador, como CPU,
sistemas de memoria, periféricos digitales y analógicos.
Gobiernan la velocidad a la que el procesador ejecuta las
instrucciones, la velocidad de transferencia de datos de las
señales de comunicación en serie, la velocidad del
temporizador, la señal síncrona para protocolos de
comunicación paralelos, y mucho más.
51
La fuente del reloj
La mayoría de los microcontroladores tienen osciladores internos y
conexiones opcionales para un oscilador de cristal externo como fuente de
reloj.
●
Los osciladores internos son típicamente un oscilador R-C. Los
osciladores R-C son fáciles de implementar, pero no son precisos y pueden
verse afectados por la temperatura, el ruido y el voltaje. Por lo general, los
osciladores internos se utilizan para producir frecuencias más bajas.
●
Los osciladores externos proporcionan una frecuencia más precisa,
estable y fija en la salida.
52
La fuente del reloj
La mayoría de los microcontroladores tienen circuitos
Phase-Lock-Loop (PLL) para proporcionar frecuencias de
reloj diferentes que pueden ajustarse mediante software.
Existen múltiples fuentes de reloj para usar en el TI
TM4C123GXL Tiva C LaunchPad. Algunas de estas
fuentes son externas, mientras que la mayoría de las
fuentes de reloj son internas.
53
54
Oscilador Principal (MOSC)
●
Fuente externa primaria.
●
Se puede utilizar para conducir el PLL interno de 400 MHz.
●
TI TM4C123GXL Tiva C LaunchPad viene con un cristal
integrado de 16 MHz conectado a MOSC.
●
Necesario para utilizar la unidad USB PLL de 480 MHz.
55
Oscilador interno de precisión
(PIOSC)
●
Este oscilador es un chip de 16 MHz, que es la fuente de
reloj que utiliza el microcontrolador durante y después del
reinicio.
●
Se puede utilizar para conducir el PLL interno de 400MHz.
●
Puede ser utilizado para periféricos internos como
bloques ADC.
56
Low-Frequecncy Internal Oscillator
(LFIOSC)
●
Frecuencia de reloj típica de 30 KHz con un 50% de precisión.
●
Este oscilador está diseñado para usarse durante los modos
de ahorro de energía.
●
Se puede usar cuando uno o ambos MOSC y PIOSC están
apagados.
●
No es adecuado para operaciones precisas basadas en el
tiempo.
57
Hibernation Module Clock Source
●
Este oscilador está destinado a proporcionar al sistema
una fuente de reloj en tiempo real y también puede
proporcionar una fuente precisa de ahorro de energía en
modo de reposo profundo o hibernación.
●
TI TM4C123GXL Tiva C LaunchPad viene con un cristal
RTC de 32.768 KHz a bordo.
●
Este oscilador puede usarse para el reloj del sistema.
58
400 MHz Phase-Lock-Loop (PLL)
59