1. <COMPUTACION FISICA>
Teoría – Programación - Proyectos
Ing. Otoniel Flores
ooflores@gmail.com
http://microcontroladores2utec.wordpress.com
2. Objetivo General
Capacitar en la filosofía de solución de problemas
reales, basándose en el uso de sistemas
microcontrolados, desde el punto de vista del Hardware como
del Firmware que lo compone.
3. Objetivos Específicos
Fomentar en el
estudiante la
exploración de sistemas
embebidos para el
desarrollo de
aplicaciones.
4. Objetivos Específicos
Generar un ambiente de diseño real donde los
estudiantes se enfrenten a limitaciones de
costo, tiempo de desarrollo, consumo de
potencia, desempeño, necesidad de trabajo en
equipo y divulgación de resultados.
5. Objetivos Específicos
Realizar la programación de microcontroladores
utilizando un lenguaje de alto nivel.
6. Objetivos Específicos
Llevar a cabo la realización de prácticas y proyectos
de laboratorio que refuercen los conocimientos
teóricos adquiridos en el curso.
7. Conocimientos previos al curso
GANAS DE
TRABAJAR
PROGRAMACIÓN
ELECTRÓNICA
Programación de
Microcontroladores
ALGORITMOS
ARQUITECTURA DE
COMPUTADORES
LÓGICA DIGITAL
8. Metodología y Recursos
Fundamentación Teórica por parte del profesor.
Lecturas por parte del estudiante.
Invitación a ser Autodidáctas.
Requisitos Técnicos del curso (estudiante):
Un programador para ATMEGAx8 (practica1)
Breadboard
Herramientas básicas
Microcontrolador ATMEGAx8
Proyecto de curso
9. Contenido del curso
1. Sistemas Embebidos 3. Programacion del
Definición. ATMEGAx8
Características. Interfaz programacion
Estructura General. IDE BascomAVR.
Algoritmos/Flujograma.
2. Microcontroladores Instruccion - Estructuras.
Definición.
Estructura. 4. Aplicaciones
Características. Circuitos para el manejo de
Familias y fabricantes. dispositivos de entrada y de
El ATMEGAx8
salida análogos y digitales:
LED, Buzzer, Display, LCD, Inte
rruptores, motores, sensores
, etc.
10. Sistema Embebido <SE>
Un sistema embebido es un sistema que combina
electrónica, informática y a veces mecánica, el cual
es diseñado para realizar una o pocas funciones
dedicadas.-
sistema digital cuya función es controlar el
procesamiento, almacenamiento o comunicación
digital de un sistema, dispositivo o aplicación
particular; con el fin de ser portable, confiable y
contener en sí mismo todas las capacidades de
computo .
11. Sistemas Embebidos
•Equipos electrónicos que incluyen un procesamiento de datos, pero
que, a diferencia de una computadora personal, están diseñados para
satisfacer una función específica, como en el caso de un reloj, un
reproductor de MP3, un teléfono celular, un router, el sistema de
control de un automóvil (ECU), de un satélite o de una planta nuclear.
• Es un sistema electrónico que puede o no estar contenido
(“embebido”) dentro de un equipo completo que incluye, por
ejemplo, partes mecánicas y electromecánicas.
12. Aplicaciones.-
AUTOMOTRIZ
Frenos. Aviones
Motor. Control vuelo.
Aire acondicionado. Anti-Colisión.
Sistema GPS. Información.
Marchas.
Control Tracción.
Sistema
Embebido
CONSUMO
Lavadoras. S. MÉDICOS
Neveras. Marcapasos.
Microondas. ECG.
Relojes. Diálisis.
Video Juegos. Fiabilidad 100%.
Cámaras de Video.
Y muchos mas….
13. •Industria de Procesos
•Robótica
•Alarmas de seguridad
•Equipo de medición
•Industria automotriz
•Electrónicos domésticos como horno
de microondas , lavadoras, etc.
•Medidores de Presión, glucosa, etc.
•Juguetes
•Etc.
14. Características
•Estos sistemas realizan un única función o un conjunto muy limitado
de funciones (no suelen ser de propósito general).
•Capacidad de procesamiento y programable, dotados de memoria
electrónica interna.
•Deben operan en tiempo real, es decir los satos se deben de procesar
al momento de ingresar al SE
•Interacción con dispositivos físicos. Los sistemas empotrados
interaccionan con el entorno a través de dispositivos E/S no
usuales, por lo que suele ser necesario un acondicionamiento de las
diferentes señales.
15. Características
•Capaz de interactuar con su entorno físico, es decir sensar y producir a
señales físicas:
sonido, presión, tacto, posición, luz, temperatura, presencia, distancia,
movimiento, etc.
•Capaz de transferencia de datos binarios con otros SE o PC. Capacidad
de conexión.
•Bajo consumo. Debe consumir poca potencia, es posible no depender
del sistema eléctrico, operación con baterías.
•Precio reducido. Realizar le mejor diseño tomando en cuenta aspectos
económicos y de mercadeo.
16. Clasificación.-
•Sistemas reactivos.- son aquellos sistemas que siempre interactúan con el
exterior, de tal forma que la velocidad de operación del sistema debe ser la
velocidad del entorno exterior. Lavamanos automático.
•Sistemas interactivos.- son aquellos sistemas que siempre interactúan con
el exterior, de tal forma que la velocidad de operación del sistema deber ser la
velocidad del propio sistema empotrado. Videojuego, Cajero automatico.
•Sistemas transformacionales.- son aquellos sistemas que no interactúan
con el exterior, únicamente toma un bloque de datos de entrada y lo
transforma en un bloque de datos de salida, que no es necesario en el
entorno. Pantalla electrónica
17. SE no es un PC
•La interface humana (que en un computador es generalmente la
pantalla y el teclado) puede ser tan simple como un diodo led o tan
compleja como el sistema de visión de un robot.
•El SE se diseña para funciones especificas y un PC es mas general, esto
tanto en software como en hardware.
18. Estructura de un SE
Bloques funcionales
Aceptar información / Procesar datos / Producir Salidas / Almacenar
22. •Hoy en día un SE puede ser
implementado usando Sistemas
Digitales Programables:
Microprocesador o
Microcontrolador.
23. Microprocesador.-
Un Microprocesador es un circuito integrado capaz de realizar o procesar
información binaria, dentro posee únicamente un CPU , que ha su vez se
divide en: Unidad de control, ALU y registros. El microprocesador se
comunica con su exterior por medio de buses de comunicación binaria:
datos y direcciones. Es necesario dotar al uP de memoria y periféricos
externos para formar un SE.
24.
25.
26. Microcontrolador.-
Un Microcontrolador es un circuito integrado en cuyo interior ya se
encuentra los bloques básicos necesarios para formar un SE, es decir
posee un CPU, una Memoria y Periféricos con los que puede interactuar
con el exterior. La comunicación con el exterior es a través de pines o
terminales de entrada/salida de los periféricos y esta puede ser digital o
análoga.
27. Que es un microcontrolador
•Básicamente es un sistema embebido que consta de diversos
componentes digitales como son los mostrados en la figura
La función de un microcontrolador será
la de controlar, digitalmente, el
comportamiento dinámico o estático de
un sistema
El microcontrolador siempre contiene:
1.Un CPU
2.Memoria (ROM, RAM)
3.Entradas y salidas
digitales/analogicaspara comunicarse al
exterior (perifericos)
4. Reloj
32. Ventajas del uso de
microcontroladores
Reducción de la cantidad de espacio en la implementación de
un diseño dado.
Reduce el costo de implementación.
Permite desarrollo de aplicaciones especificas de manera mas
rápida y eficiente.
Los fabricantes dan mucho soporte sobre las aplicaciones más
comunes.
Se adaptan mejor a aplicaciones especificas
33. µC ≠ µP
•El µP consiste de un CPU al cual debemos de agregar dispositivos de manera externa. Se debe
programar el CPU para que se comunique de forma correcta con tales dispositivos externos. El
sistema obtenido es definido por el usuario permitiendo cierta flexibilidad de diseño
•El µC ya tiene integrado todos los dispositivos para constituir un sistema embebido mínimo.
34. Componentes de un µC
CPU (unidad central de proceso)
La función de la CPU es ejecutar las instrucciones de un programa. La
CPU controla el funcionamiento de todos los elementos del
sistema, en función de las instrucciones del programa. Se dice que es
un µP de menor potencia.
Reloj (CLK)
Es un oscilador de onda cuadrada, sirve de referencia para sincronizar
todo el sistema, es utilizado para activar la CPU, para mover de un
paso a la secuencia siguiente, la frecuencia de CLK determina la
velocidad de trabajo del sistema.
Puede ser interno o externo al encapsulado.
35. Componentes de un µC:
MEMORIA
La memoria se encarga de almacenar los programas y los datos de
trabajo del Microcontrolador.
Se divide en dos bloques:
Memoria de Programa.
Se utilizan memorias no volátiles, del tipo de sólo lectura como las
ROM (Read Only Memory), EEPROM (ElectricalErasable
Programmable ROM), OTP (One Time Programmable) y FLASH.
Memoria de Datos:
Para el almacenamiento temporal de datos y el cálculo intermedio de
los resultados durante las operaciones se utiliza la RAM (Random
Access Memory). Es de lectura/escritura y pierde los datos cuando se
queda sin alimentación (volátil).
36. Arquitectura de un uC.
Se refiere a la disposición física y de comunicación interna entre el CPU
y la memoria del dispositivo. Existen dos tipos: Von Neumann y Harvard
Los microcontroladores poseen una arquitectura HARVARD : que
dispone de dos bloques de memoria independientes y dos vías de
comunicación (bus) para cada memoria. El # de bits que comunican
estos buses, se denomina Ancho de Bus del uC, normalmente 8 bits.
37. Componentes de un µC:
PERIFERICOS
Los periféricos de entrada/salida son los sistemas
(bloques) que emplea el µC para comunicarse con el
exterior.
Imaginemos una televisión: por un lado tiene un
dispositivo de salida, como es la pantalla, y por otro
lado, de entrada, como son los botones de subir o bajar
volumen y de cambio de canal.
Así, los dispositivos de entrada nos permitirán introducir
información hacia el µC y los de salida nos servirán para
que éste envié datos al exterior.
38. Componentes de un µC:
PERIFERICOS
Algunos de los periféricos que se encuentran dentro de un uC son:
Entradas y salidas de propósito general (pines digitales)
También conocidos como puertos de E/S, generalmente agrupadas en puertos
de 8 bits de longitud, permiten leer datos del exterior o escribir en ellos
desde el interior del Microcontrolador, estos datos son digitales (0 y 1 - 0 y 5
Vdc).
La función habitual de los puertos es el trabajo con dispositivos simples como
relés, displays, LED, buzzer, teclados o cualquier otro dispositivoi que
requiera un control on/off.
Típicamente cualquier pin de E/S puede ser considerada E/S de propósito
general, pero como los microcontroladores no pueden tener infinitos
pines, ni siquiera todos los pines que queramos, las E/S de propósito
general comparten los pines con otros periféricos. Para usar un pin con
cualquiera de las características a él asignadas debemos configurarlo
mediante el firmware.
39. Componentes de un µC:
PERIFERICOS
Convertido analógico/digital (pines analógicos)
Un uC puede leer señales analógicas, éstas deben ser
convertidas a digital previo interpretación por parte del
CPU, esta función la realiza el periférico ADC.
Es un periférico de entrada que convierte un valor a análogo
(entre 0 y 5Vdc) a su equivalente digital, con el objetivo de
ser procesado adecuadamente.
00110101011001
01010101010110
10101011010101
A/D
01101010
40. Componentes de un µC:
PERIFERICOS
Puertos de comunicación
Periféricos que permiten el intercambio de información
digital entre sistemas (PC, SE o periféricos externos).
Los puertos disponibles pueden ser:
Serial, SPI, I2C, USB, Ethernet entre otros.
Modulador de ancho de pulsos
Periférico de salida análogo que permite obtener una señal de
salida entre 0 y 5Vdc, una señal cuadrada de ancho
variable.
Utilizado en el control de velocidad de motores y/o brillo de
lámparas/leds.
41. Fabricantes de µC
Familias de microcontroladores
8051 (Intel y otros): potente y muy utilizado
MSP430 (Texas).
68HC11 (Motorola y Toshiba): potente y muy utilizado
PIC (Microchip): los primeros de tipo RISC. Muy utilizados
AVR (Atmel): gran auge actual, 8 bits.
Criterios de Selección:
- Requisitos de la aplicación
rapidez (frecuencia)
nº de bits
necesidades de E/S
consumo → modo de reposo
necesidades de memoria
bloques funcionales periféricos para la aplicación
coste
herramientas de desarrollo
42. El µC ATMEGAx8
ATMEL fabrica los microcontroladores de la familia AVR: arquitectura Harvard, RISC
, memoria flash, 8 bits, reloj interno hasta 20Mhz, 28 pines.
Característica de los periféricos internos:
6 canales ADC y 2 canales PWM
1 USART,1 módulo SPI, I2C.
Memoria flash: 4,8,16 o 32 kb.
Memoria Ram: 512 bytes
3 Puertos programables de entrada/salida digital
Puerto B 8 líneas •Puerto C 7 líneas• Puerto D 8 líneas
3.5 a 5 Vdc@50mA por pin.
44. Puerto B(PB7 .. PB0). Compuesto de 8 bits, a cada pin le corresponde un bit, son bidireccionales.
Alternativamente, cada pin tiene otras funciones alternativas
Puerto C(PC0 .. PC5). Tiene 7 bits, bidireccionales con resistencias internas pull up, para cada bit.
Puerto D (PD0..PD7). Compuesto de 8 bits, a cada pin le corresponde un bit, son bidireccionales.
Alternativamente, cada pin tiene otras funciones alternativas
45. Programación del Atmegax8
El poder del microcontrolador radica en la capacidad de programarlo
para que controle estados de dispositivos conectados a sus salidas a
partir de los estados de sensores conectados a sus entradas.
46. Programación del Atmegax8
El programa o firmware realiza utilizando un lenguaje de
programación especifico para el uC a usar, a través de un
IDE que permita editar y compilar el listado del
programa. (p.e. Basic y Bascom-Avr).
Escribir programadas será conocer el uso y sintaxis de
instrucciones especificas del Basic para el manejo de
sensores y actuadores a través de los periféricos del uC.
47. Programación del Atmegax8
El proceso de diseño de un SE implica
Idea de solución de una necesidad.
Diseño del hardware o ckto electrónico del SE
Elección de elementos electrónicos
Diseño electrónico
Implementación
Diseño del firmware basado en HW (programación)
Análisis
Diseño
Codificación
Descarga al uC. (programar el uC)
Integración y pruebas
48.
49. Programación del Atmegax8
Descargar el firmware al la memoria del uC
Implica grabar la flash por medio de una interface
“programador” para el uC.
El Atmegax8 posee pines específicos a los cuales se conecta
el programador para acceder a la Flash interna.
(miso, mosi, sck, reset) puerto ISP.
El programador se conecta a la PC por medio de un puerto de
comunicación (serie, paralelo o usb) dependiendo del modelo
usado.
Existen muchos modelos de programadores: stk200, simple
electronic programer, usbtiny, usbasp. Se pueden adquirir o
fabricar a un costo menor a 20$.
52. Programando el Atmegax8
El firmware sera desarrollado usando el BASCOM-AVR.
Se puede descargar la version demo www.mcselec.com
Es un IDE: editor – compilador
53. Estructura general del un
programa en BASCOM-AVR
Comentarios iniciales
Directivas
Configuraciones
Dimensionamiento de variables
Inicializaciones
Programa principal
Estructura de control repetitiva
Instrucciones para manejo de entradas y salidas
Estructura de control repetitiva
Subrutinas
54. Estructura general del un
programa en BASCOM-AVR
Comentarios iniciales
Lineas de texto con info sobre el codigo: autor, fecha, descripcion, hardware, etc.
Directivas
Instrucciones que indican al compilador el uC a usar.
Configuraciones
Instrucciones que determinan la funcion a desempeñar por los pines a usar. (entrada o
salida)
Dimensionamiento de variables [opcional]
Instrucciones para declarar variables a usar dentro del programa principal
Inicializaciones
Instrucciones para indicar el estado inicial de los pines de salida
Programa principal
Instrucciones para manejo de entradas y salidas
Subrutinas [opcional]
Bloque de instrucciones que se usan repetidamente dentro del programa principal.
55. Manejo de Salidas Digitales del
AtmegaX8
Las salidas digitales del ATx8 pueden brindar
5Vdc@30mA, sirven para controlar el estado on/off de
dispositivos tales como:
Led, Display, LCD, Buzzer, Matriz de Led, y hasta
dispositivos de 110VAc (p.e. luminaria o ventilador).
Por lo tanto, la programacion del uC implica el
conocimiento de las instrucciones especificas para el
dispositivo externo a manejar.
56. Manejo de Salidas Digitales –
Parpadeo de Led (hola mundo)
'---------------------------
'Programa Principal
'---------------------------
Do
Portb.0 = 1
Waitms 500
Portb.0 = 0
Waitms 500
Loop
End
'---Fin del programa principal