Sei sulla pagina 1di 59

Microcontroladores

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

El microcontrolador TM4C123GH6PM tiene 2 encoder


incrementales de 2 canales, los cuales convierte desplazamientos
lineales en pulsos. Monitoreando el número de pulsos y la fase
relativa de las 2 señale, es posible seguir la posición, dirección de
rotación y velocidad de un desplazamiento.

25
PWM.

PWM o Modulación del Ancho del Pulso (Pulse Width Modulation),


son módulos generadores de onda cuadrada, donde una parte de
la onda es controlada (duty cycle) para codificar una señal
análoga. Normalmente se usan en fuentes de potencia (switching
power) y control de motores.

26
ADC.

Un convertidor analógico a digital (ADC) es un periférico que


convierte un voltaje analógico continuo en un número digital
discreto Se incluyen dos módulos convertidores idénticos, que
comparten 12 canales de entrada.
Cada módulo ADC contiene cuatro secuenciadores programables
que permiten el muestreo de múltiples fuentes de entrada
analógica sin intervención del controlador.

27
CAN.

CAN (Controller Area Network) o es un bus serial para conectar a


otros dispositivos, que normalmente leen sensores y controlan
salidas (ECU o Elenctronic Control Unit). Este bus fue
especialmente diseñado para ambientes donde hay ruido
electromagnético.

28
NVIC

NVIC o Controlador de Interrupciones, es un dispositivo que


habilita interrupciones en los pines de entrada del microcontrolador
y en los periféricos, para que tan pronto como ocurra un evento, la
CPU del microcontrolador sea notificada y la respectiva rutina sea
llamada.

29
USB

USB o Bus Serial Universal (Universal Serial Bus), es un bus


usado para comunicación con computadores o dispositivos
portátiles que soporten este bus. Muy útil para configurar
parámetros en el equipo o enviar datos a computadores.

30
SSI

El microcontrolador TM4C123GH6PM incluye cuatro módulos de


interfaz serie síncrona (SSI).
Cada módulo SSI es una interfaz maestra o esclava para la
comunicación serial sincrónica con dispositivos periféricos que
tienen SPI o serie sincrónica.

31
I2C

El bus de circuito integrado (I2C) proporciona transferencia de


datos bidireccional a través de un diseño de dos hilos
(una línea de datos en serie SDA y una línea de reloj en serie
SCL) .
El I2C bus también puede usarse para pruebas de sistema y
propósitos de diagnóstico en el desarrollo de productos y
fabricación.

32
TIMER

Los temporizadores programables se pueden usar para contar o


cronometrar eventos externos que controlan los pines de entrada
del temporizador.
El módulo temporizador de propósito general (GPTM)
TM4C123GH6PM contiene seis bloques GPTM de 16/32 bits
y seis bloques Wide GPTM de 32/64 bits. Cada bloque GPTM de
16/32 bits proporciona dos temporizadores / contadores de 16 bits
(denominado Temporizador A y Temporizador B) que se pueden
configurar para funcionar independientemente como
temporizadores o contadores de eventos, o concatenados para
funcionar como un temporizador de 32 bits o un reloj de tiempo
real (RTC) de 32 bits.
33
GPIO

El módulo GPIO se compone de seis bloques GPIO físicos, cada


uno correspondiente a un Puerto GPIO (Puerto A, Puerto B, Puerto
C, Puerto D, Puerto E, Puerto F). El módulo GPIO admite hasta 43
pines de entrada / salida programables, dependiendo de los
periféricos que se usen.

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

Port A 0x4000.4000 0x4000.4000 ~


0x4000.4FFF
0x4005.8000 0x4005.8000 ~
0x4005.8FFF

Port B 0x4000.5000 0x4000.5000 ~


0x4000.5FFF
0x4005.9000 0x4005.9000 ~
0x4005.9FFF

Port C 0x4000.6000 0x4000.6000 ~


0x4000.6FFF
0x4005.A000 0x4005.A000 ~
0x4005.AFFF

Port D 0x4000.7000 0x4000.7000 ~


0x4000.7FFF
0x4005.B000 0x4005.B000 ~
0x4005.BFFF

Port E 0x4002.4000 0x4002.4000 ~


0x4002.4FFF
0x4005.C000 0x4005.C000 ~
0x4005.CFFF

Port F 0x4002.5000 0x4002.4000 ~


0x4002.5FFF
0x4005.D000 0x4005.D000 ~
0x4005.DFFF

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)

TM4C123 viene con un PLL interno de 400 MHz que


puede generar frecuencias de reloj de 3.12 MHz a 80
MHz. Solo puede ser manejado por dos fuentes:

Oscilador interno de precisión (PIOSC)

Oscilador Principal (MOSC)

59

Potrebbero piacerti anche