ARM

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 54

Universidad Nacional de Ingeniera

Curso Prctico de
Microcontroladores
ARM-CORTEX M4
Sesin 1: Introduccin a
los Microcontroladores
ARM

Universidad Nacional de Ingeniera

Agenda
1. Introduccin a los Microcontroladores STM32F407
ARM CORTEX M4
2. Descripcin del Hardware a usar en Clase: Tarjeta
Discovery
3. Software Coocox IDE
4. Primer proyecto en Coocox IDE
5. Primer programa en los Uc

20/01/2016

Universidad Nacional de Ingeniera

Qu ES ARM?
ARM, originalmente Acorn RISC Machine,
es una familia de Computadoras con
Conjunto de Instrucciones Reducidas
(RISC) arquitecturas para procesadores
de computadores, configurados para
diversos entornos, desarrollado por la
compaa britnica ARM Holdings.

20/01/2016

Universidad Nacional de Ingeniera

VENTAJA DE LA ARQUITECTURA
ARM

20/01/2016

Universidad Nacional de Ingeniera

ARQUITECTURAS ARM

20/01/2016

Universidad Nacional de Ingeniera

CARACTERISTICAS
ARQUITECTURA CORTEX-M
3 STAGE PIPELINE
THUMB
DSP
FPU(Floating Point Unit)
DIRECT MEMORY ACCESS(DMA)
CHROM-ART ACCELERATOR(DMA2D)
Nested
Vectored
Interrupt
Controller
(NVIC)
ADVANCED
MICROCONTROLLER
BUS
ARCHITECTURE (AMBA)

20/01/2016

Universidad Nacional de Ingeniera

TARJETA DE DESARROLLO
STM32F407VG DISCOVERY

20/01/2016

Universidad Nacional de Ingeniera

SOFTWARE COOCOX IDE

20/01/2016

Universidad Nacional de Ingeniera

CONFIGURACION COOCOX IDE

20/01/2016

Universidad Nacional de Ingeniera

SYSTEM CLOCK EN
STM32F407VG
The high speed internal clock (HSI)
The high speed external clock(HSE)
The phase locked loop (PLL) clock.
NOTA: RELOJ SECUNDARIO
LSI clock usado como parte del watch
dog timer.
The LSE usado para el real time clock
(RTC)
10

20/01/2016

Universidad Nacional de Ingeniera

PLL

11

20/01/2016

Universidad Nacional de Ingeniera

CLOCK CONFIGURATION TOOL

12

20/01/2016

Universidad Nacional de Ingeniera

GENERAL PURPOSE I/O


(GPIO)
Input floating
Input pull-up
Input-pull-down
Analog
Output open-drain with pull-up or pulldown Output push-pull with pull-up or pulldown
Alternate function push-pull with pull-up or
pull-down
Alternate function open-drain with pull-up
or pull-down

13

20/01/2016

Universidad Nacional de Ingeniera

ESTRUCTURA BASICA
DE UN I/O

14

20/01/2016

Universidad Nacional de Ingeniera

CIRCUITO PULLUP

15

20/01/2016

Universidad Nacional de Ingeniera

CIRCUITO PULLDOWN

16

20/01/2016

Universidad Nacional de Ingeniera

CIRCUITO DE ENTRADA
FLOTANTE

17

20/01/2016

Universidad Nacional de Ingeniera

CIRCUITO DE SALIDA PUSH


PULL

18

20/01/2016

Universidad Nacional de Ingeniera

SALIDA OPEN DRAIN

19

20/01/2016

Universidad Nacional de Ingeniera

I/O PORT CONTROL REGISTERS


GPIOx_MODER: register is used to select the
I/O direction (input, output, AF, analog).
GPIOx_OTYPER: registers are used to select
the output type (push-pull or open-drain)
GPIOx_OSPEEDR: speed (the I/O speed pins
are directly connected to the corresponding
GPIOx_OSPEEDR register bits whatever the
I/O direction).
GPIOx_PUPDR: register is used to select the
pull-up/pull-down whatever the I/O direction.
20

20/01/2016

Universidad Nacional de Ingeniera

REGISTROS PARA HABILITAR EL


CLOCK DE LOS GPIO
RCC_AHB1ENR

21

20/01/2016

Universidad Nacional de Ingeniera

REGISTROS PARA CONFIGURAR


EL GPIO
GPIOx_MODER

22

20/01/2016

Universidad Nacional de Ingeniera

GPIOx_OTYPER

23

20/01/2016

Universidad Nacional de Ingeniera

GPIOx_OSPEEDR

24

20/01/2016

Universidad Nacional de Ingeniera

GPIOx_PUPDR

25

20/01/2016

Universidad Nacional de Ingeniera

GPIOx_BSRR

26

20/01/2016

Universidad Nacional de Ingeniera

GPIOx_ODR

27

20/01/2016

Universidad Nacional de Ingeniera

GPIOx_IDR

28

20/01/2016

Universidad Nacional de Ingeniera

PROGRAMANDO DESDE LOS


REGISTROS

29

20/01/2016

Universidad Nacional de Ingeniera

MANEJO DE LIBRERIAS EN
COOCOX IDE
AGREGAR LOS SIGUIENTES HEADERS.

30

20/01/2016

Universidad Nacional de Ingeniera

HABILITAR EL CLOCK DE LOS


GPIO
Enables or disables el clock del perifrico
AHB1.

RCC_AHBPeriph: specifies
the
AHB1
peripheral to gates its clock.
NewState: new state of the specified
peripheral clock. This parameter can be:
ENABLE or DISABLE.
31

20/01/2016

Universidad Nacional de Ingeniera

FUNCIONES PARA MANIPULAR


EL GPIO
Inicia el perifrico GPIO de acorde a los
parmetros especificados en GPIO_InitStruct.

Parmetros
GPIOx: donde x puede ser (A..I) para
seleccionar el perifrico GPIO
GPIO_InitStruct:Puntero
a
estructura
GPIO_InitTypeDef
que
contiene
la
configuracin del perifrico GPIO.
32

20/01/2016

Universidad Nacional de Ingeniera

ESTRUCTURA DE
CONFIGURACION STM32F407VG
uint32_t GPIO_Pin

Especifica el PIN a
configurar,
este
parmetro puede ser
cualquier
valor
de GPIO_pins_defi
ne.

33

20/01/2016

Universidad Nacional de Ingeniera

GPIOMode_TypeDef GPIO_Mode

Especifica el modo de operacin el pin


seleccionado.
Este parmetro puede ser:

34

20/01/2016

Universidad Nacional de Ingeniera

GPIOOType_TypeDef GPIO_OType

Especifica la operacin de salida.

GPIOSpeed_TypeDef GPIO_Speed

Especifica
la
seleccionado.

35

20/01/2016

velocidad

del

pin

Universidad Nacional de Ingeniera

GPIOPuPd_TypeDef GPIO_PuPd

Specifies the operating Pull-up/Pull down


for the selected pins.

36

20/01/2016

Universidad Nacional de Ingeniera

PASOS PARA LA
CONFIGURACION DEL GPIO

Habilitar el clock DEL GPIO


Configuracin del modo de trabajo del
GPIO( GPIOx_MODER ).
Configuracin del tipo de salida
( GPIOx_OTYPER ).
Configuracin de la velocidad del GPIO
( GPIOx_OSPEEDR ) .
Configuracin de pullup/pulldown del
GPIO( GPIOx_PUPDR ).
37

20/01/2016

Universidad Nacional de Ingeniera

HABILITAR EL CLOCK DE LOS


GPIO

38

20/01/2016

Universidad Nacional de Ingeniera

SELECCIONAMOS EL PIN DE
CONFIGURACION

39

20/01/2016

Universidad Nacional de Ingeniera

CONFIGURACION FINAL DE LOS


REGISTROS

40

20/01/2016

Universidad Nacional de Ingeniera

FUNCION PARA MANIPULACION


DEL GPIO

Sets el bit del Puerto seleccionado.

Parmetros
GPIOx: donde
x
puede
ser(A..I)
el
perifrico GPIO seleccionado.
GPIO_Pin: Especifica el bit del Puerto a
ser escrito. Este parmetro puede ser
cualquier combinacin de GPIO_Pin_x
donde x puede ser(0..15).
41

20/01/2016

Universidad Nacional de Ingeniera

FUNCION PARA MANIPULACION


DEL GPIO

Sets los bits del Puerto seleccionado.

Parmetros
GPIOx: donde
x
puede
ser(A..I)
el
perifrico GPIO seleccionado.
GPIO_Pin: Especifica el bit del Puerto a
ser escrito. Este parmetro puede ser
cualquier combinacin de GPIO_Pin_x
donde x puede ser(0..15).
42

20/01/2016

Universidad Nacional de Ingeniera

Clears los bits del Puerto seleccionado

Parmetros
GPIOx:
donde x puede ser(A..I)
el perifrico GPIO seleccionado.
GPIO_Pin:Especifica el bit del
Puerto a ser escrito. Este parmetro
puede ser cualquier combinacin de
GPIO_Pin_x
donde
x
puede
ser(0..15).
43

20/01/2016

Universidad Nacional de Ingeniera

Reads the specified input port pin.

Parmetros
GPIOx: donde x puede ser(A..I) el perifrico
GPIO seleccionado.
GPIO_Pin: Especifica el bit del Puerto a
ser escrito. Este parmetro puede ser
cualquier combinacin de GPIO_Pin_x donde
x puede ser(0..15).
Valor de retorno
El valor de pin en el Puerto de entrada.
44

20/01/2016

Universidad Nacional de Ingeniera

SYSTICK

SysTick
Se trata de un temporizador de 24
bits de cuenta descendente, que
produce una Interrupcin cuando el
registro interno llega a cero desde el
valor de recarga inicial

45

20/01/2016

Universidad Nacional de Ingeniera

FUNCION PARA LA
MANIPULACION DEL SYSTICK

46

20/01/2016

Universidad Nacional de Ingeniera

CONFIGURACION DEL SYSTICK

Entonces la funcin debe quedar de


la siguiente manera:

Cada vez que ocurre la interrupcin


se ejecuta la funcin

47

20/01/2016

Universidad Nacional de Ingeniera

Configuramos la funcin de la siguiente


manera:

Ahora creamos otra funcin donde


ingresaremos el tiempo en milisegundos:

48

20/01/2016

Universidad Nacional de Ingeniera

PROGRAMACION

49

20/01/2016

Universidad Nacional de Ingeniera

LIBRERIAS PARA MANEJO DEL


LCD
FUNCION PARA INIAR EL LCD.

FUNCION PARA POSICIONAR EL


CARCTER A MOSTRAR:

50

20/01/2016

Universidad Nacional de Ingeniera

FUNCION PARA MOSTRAR UN


CARCTER EN EL LCD

FUNCION PARA ENVIAR UN MENSAJE


AL LCD

51

20/01/2016

Universidad Nacional de Ingeniera

FUNCION PARA DEFINIR UN NUEVO


CARACTER

Ejemplo:

52

20/01/2016

Universidad Nacional de Ingeniera

LIBRERIAS PARA MANEJO DEL


TECLADO MATRICIAL
FUNCION PARA INIAR EL TECLADO
MATRICIAL.

FUNCION PARA RECEPCIONAR LA


TECLA PRESIONADA

53

20/01/2016

Universidad Nacional de Ingeniera

Muchas Gracias
Robert Ramrez
Docente - Centro de Entrenamiento
RMJ Electronics SAC
Correo
[email protected]

54

20/01/2016

También podría gustarte