   Este taller presenta una introducción al
    panorama actual tecnológico en
    referencia a los microcontroladores;
 ...
   ¿Qué son los microcontroladores?
    › Características de los microcontroladores
       uC vs uP.
       Clasificaci...
   Programando microcontroladores.
    › Formas de programar un micro controlador
       Lenguaje ensamblador.
       L...
Objetivos:
 Describir la función de un
  microcontrolador.
 Características generales de
  arquitectura.
 Diferentes ti...
   También llamados:
    SoC, controlador embebido, micro
    computadora, etc...
   Electrodomesticos.
    › Microondas, Lavadoras, Refrigeradores.
   Entretenimiento.
    › Dispositivos portátiles mul...
 Un solo chip (hardware necesario para
  funcionar minimo).
 Utilizados para control.
 Sus componentes son:
    › Memor...
   ROM:
    › Programa, Constantes.
   RAM
    › Programa en ejecución, Variables.
   Algunos de los periféricos mas comunes
    en un microcontrolador son los
    siguientes:
    › Timer, GPIO, A/D, D/A,...
 Conexión entre los periféricos y el
  exterior.
 Pueden tener múltiples funciones de
  manera que se debe configurar cu...
   Lee y almacena datos.
   Realiza operaciones matemáticas básicas.
   Realiza operaciones lógicas (AND, OR, etc).
  ...
 MPU.            •   MCU.
 Uso general.    •   Uso especifico.
 Mas potentes.   •   Todo en un chip.
                  ...
   Por tamaño del bus de datos:
    › 4, 8, 16, 32 bits.
   Por el conjunto de instrucciones:
    › CISC, RISC.
   Por ...
 4-32 bits.
 Típicamente el tamaño del bus de datos
  es también el tamaño de las
  operaciones.
 El tamaño del bus de ...
   CISC (Complex Instruction Set Computer).
    ›   Instrucciones mas complejas.
    ›   Instrucciones de tamaño variable...
   Harvard:
               Instruction                     Data
                memory             CPU        memory




...
 Bajo consumo de potencia.
 Mayor integracion.
 Grandes cantidades de memoria Flash.
 Mayor tamaño de bus.
 Multiples...
 Aplicaciones con baja demanda de
  procesamiento.
 Ejemplo: Freescale HCS08ac60
    › 40 MHz.
    › Ahorro de potencia:...
 Aplicaciones mas demandantes:
 Automotriz, Industrial.
 Mayor gama de protocolos de
  comunicación:
    › CAN, FlexRay...
 S12X max frequency 50 Mhz
 Prioridad de interrupciones
  programable.
 XGATE operando al doble de la
  frecuencia del ...
   Aplicaciones altamente demandantes.
    › Power train (automotriz).
    › Voice recognition.
    › Networking.
    › M...
 Se estima que en el 2012 los dispositivos
  con nucleos ARM desplazaran a intel del
  mercado de las netbooks.
 http://...
 Procesador digital de señales.
 Se puede definir como un
  microcontrolador cuyo modelo de
  programacion esta optimiza...
   6 megamodulos los cuales cuentan con:
    › 32 Kbytes de cache L1 para datos.
    › 32 Kbytes de cache L1 para program...
 Freescale.           • Zilog
 Texas Instruments.   • ST
 Microchip.
                         microelectronics.
 Atmel...
 Periféricos e interfaces disponibles.
 Roadmap.
 Caracterizticas del microcontrolador:
    › Consumo de potencia.
    ...
 Lenguaje ensamblador.
 Lenguaje de alto nivel.
 Cargando un SO y programando sobre
  este.
 El lenguaje ensamblador es un lenguaje de bajo nivel por
  que hay una relación directa entre las instrucciones en
  ens...
 Código sencillo de comprender y
  codificar aun cuando no se ha
  trabajado con el microcontrolador.
 Sencillo de migra...
 Se recomienda cuando se tienen aplicaciones
  demasiado grandes o cuya administración es
  complicada.
 Se programa com...
 C es el lenguaje por excelencia para programación de
  sistemas embebidos.
 Es un lenguaje de nivel medio-alto.
 Exist...
 El codigo en C es compilado para
  generar un codigo objeto.
 Todos los codigos objeto que se
  compilan junto con un p...
 Se debe evitar usar tamaños de datos
  mayores al tamaño del bus de datos.
 Procurar usar unsigned.
 El punto flotante...
 Las variables volátiles (volatile) son
  aquellas que se pueden modificar fuera
  de la ejecución normal del programa
  ...
Las herramientas a usarse en
este taller son:
Development kit
DEMO9S08AC60
IDE
Code warrior
 Evaluation kit
 Development kit
 Reference Design kit
 VirtuaLab
 Editor
 Compilador
 Ensamblador
 Linker
 Simulador
 Debugger
 Descargar la siguiente hoja de datos:
http://www.freescale.com/files/microcontr
  ollers/doc/data_sheet/MC9S08AC60.pdf
 ...
 Descargue la siguiente guía de usuario:
http://www.freescale.com/files/microcontr
  ollers/doc/user_guide/DEMO9S08AC60E_...
1. Desactivar el watchdog.
2. Configurar los pins donde están
   conectados los LEDs como salidas.
3. Configurar los switc...
   Existen dos métodos para esperar a que
    externamente se modifique el valor de un
    registro:
    › Polling: se po...
   Configurar el ADC para que trabaje con
    el potenciometro de la tarjeta y que
    modifique el valor que se muestra ...
 Configurar el clk para que trabaje a
  20Mhz.
 Configurar los timer para que trabajen
  con un tiempo de aproximadament...
 Configurar un canal del timer para
  trabajar como PWM conectado a un
  LED.
 Modificar la intensidad de la iluminación...
 Configurar el SCI para un baud rate de
  9600.
 Configurar las interrupciones de manera
  que cuando se reciba un dato ...
Microcontroladores Ciscx
Microcontroladores Ciscx
Microcontroladores Ciscx
Microcontroladores Ciscx
Microcontroladores Ciscx
Microcontroladores Ciscx
Microcontroladores Ciscx
Microcontroladores Ciscx
Microcontroladores Ciscx
Microcontroladores Ciscx
Upcoming SlideShare
Loading in …5
×

Microcontroladores Ciscx

3,321 views
3,219 views

Published on

Presentacion utilizada para el taller "Programacion de microcontroladores con lenguaje c" del decimo Congreso Internacional de Sistemas Computacionales (CISC X)

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,321
On SlideShare
0
From Embeds
0
Number of Embeds
40
Actions
Shares
0
Downloads
79
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Microcontroladores Ciscx

  1. 1.  Este taller presenta una introducción al panorama actual tecnológico en referencia a los microcontroladores; arquitecturas, aplicaciones, modos de programación, etc. La parte practica se enfoca en la programación de microcontroladores de 8 bits utilizando el lenguaje de programación C (brevemente se presentan otras opciones de programación). Se utilizaran microcontroladores y herramientas de Freescale.
  2. 2.  ¿Qué son los microcontroladores? › Características de los microcontroladores  uC vs uP.  Clasificacion de arquitecturas. › Tipos de microcontroladores (y similares).  8, 16, 32 bits.  DSPs.
  3. 3.  Programando microcontroladores. › Formas de programar un micro controlador  Lenguaje ensamblador.  Lenguajes de nivel medio a alto.  Software corriendo sobre OS embebido. › Conociendo el HCS08AC › Practicas:  Practica 1: GPIO.  Practica 2: ADC.  Practica 3: Timers.  Practica 4: Puerto serial (SCI).
  4. 4. Objetivos:  Describir la función de un microcontrolador.  Características generales de arquitectura.  Diferentes tipos de microcontroladores.
  5. 5.  También llamados: SoC, controlador embebido, micro computadora, etc...
  6. 6.  Electrodomesticos. › Microondas, Lavadoras, Refrigeradores.  Entretenimiento. › Dispositivos portátiles multimedia. › Televisores, Blue-Ray, Equipos de sonido, etc.  Automotriz. › Monitoreo y control de subsistemas. › Infotainment.  Industrial. › Control de procesos.
  7. 7.  Un solo chip (hardware necesario para funcionar minimo).  Utilizados para control.  Sus componentes son: › Memoria. › I/O. › Nucleo de procesamiento. › Perifericos.
  8. 8.  ROM: › Programa, Constantes.  RAM › Programa en ejecución, Variables.
  9. 9.  Algunos de los periféricos mas comunes en un microcontrolador son los siguientes: › Timer, GPIO, A/D, D/A, Comparador, PWM › Controladores:  LCD, Touchscreen, Teclado, comunicación serial.
  10. 10.  Conexión entre los periféricos y el exterior.  Pueden tener múltiples funciones de manera que se debe configurar cual será la función de cada pin del chip.
  11. 11.  Lee y almacena datos.  Realiza operaciones matemáticas básicas.  Realiza operaciones lógicas (AND, OR, etc).  Controla el flujo del programa.  Conjunto de Instrucciones especifico.  Modelo de programación especifico: › Bits de status. › Registros. › Program Counter. › Stack pointer.  Núcleos propios (PPC, S12, XGATE,) o con licencia (ARM, 8051).
  12. 12.  MPU. • MCU.  Uso general. • Uso especifico.  Mas potentes. • Todo en un chip. • Módulos “ayudan” al nucleo.
  13. 13.  Por tamaño del bus de datos: › 4, 8, 16, 32 bits.  Por el conjunto de instrucciones: › CISC, RISC.  Por el acceso a memoria: › Harvard › Von Neumann
  14. 14.  4-32 bits.  Típicamente el tamaño del bus de datos es también el tamaño de las operaciones.  El tamaño del bus de datos también es relevante por que en combinación con el modelo de programación nos dirá cuanta memoria se puede accesar.
  15. 15.  CISC (Complex Instruction Set Computer). › Instrucciones mas complejas. › Instrucciones de tamaño variable. › Se necesitan convertir primero a micro instrucciones. › Mayor numero de ciclos por instrucción. › Programas cortos.  RISC (Reduced Instruction Set Computer). › Instrucciones mas sencillas. › Menos instrucciones. › Idealmente un ciclo por instrucción. › Pocos formatos de instrucciones con tamaño fijo. › Programas largos.
  16. 16.  Harvard: Instruction Data memory CPU memory  Von Neumann CPU Data and instruction memory
  17. 17.  Bajo consumo de potencia.  Mayor integracion.  Grandes cantidades de memoria Flash.  Mayor tamaño de bus.  Multiples nucleos (Cortex A9, XGATE).
  18. 18.  Aplicaciones con baja demanda de procesamiento.  Ejemplo: Freescale HCS08ac60 › 40 MHz. › Ahorro de potencia: wait mode, stop mode. › 60KB Flash. › 2KB RAM.
  19. 19.  Aplicaciones mas demandantes:  Automotriz, Industrial.  Mayor gama de protocolos de comunicación: › CAN, FlexRay, etc.  Ejemplo: Freescale HCS12XEP100.
  20. 20.  S12X max frequency 50 Mhz  Prioridad de interrupciones programable.  XGATE operando al doble de la frecuencia del bus (hasta 100Mhz).  1MB Flash.  64KB RAM.
  21. 21.  Aplicaciones altamente demandantes. › Power train (automotriz). › Voice recognition. › Networking. › Multimedia. › PDA.  Ejemplo: OMAP44xx › Full HD. › 1 Ghz.
  22. 22.  Se estima que en el 2012 los dispositivos con nucleos ARM desplazaran a intel del mercado de las netbooks.  http://www.youtube.com/watch?v=lrLa 1qTVf34
  23. 23.  Procesador digital de señales.  Se puede definir como un microcontrolador cuyo modelo de programacion esta optimizado para realizar un alto numero de MACs (Multiply and Accumulate)  Ejemplo: › Texas Instruments TMS320C6472-700.
  24. 24.  6 megamodulos los cuales cuentan con: › 32 Kbytes de cache L1 para datos. › 32 Kbytes de cache L1 para programa. › 608 Kbytes de cache L2 (unificado para datos y programa). › Un núcleo de DSP de alto rendimiento C64x+. › DMA interno.  64 canales de EDMA.  Un controlador de memoria DDR2.  768 Kbytes de RAM interna.  33600 MMACS (Mega MAC por segundo)!!!!!!!!!
  25. 25.  Freescale. • Zilog  Texas Instruments. • ST  Microchip. microelectronics.  Atmel. • NEC.  Samsung. • Fujitsu. • NXP.  Renesas. • Toshiba.  Infineon. • Analog Devices.
  26. 26.  Periféricos e interfaces disponibles.  Roadmap.  Caracterizticas del microcontrolador: › Consumo de potencia. › Capacidades de procesamiento. › Memorias.
  27. 27.  Lenguaje ensamblador.  Lenguaje de alto nivel.  Cargando un SO y programando sobre este.
  28. 28.  El lenguaje ensamblador es un lenguaje de bajo nivel por que hay una relación directa entre las instrucciones en ensamblador y opcodes del lenguaje maquina.  Cada núcleo tiene su propio conjunto de instrucciones y modelo de programacion.  Se recomienda utilizar lenguaje ensamblador cuando: › Se quiere tener una relación directa entre software y hardware. › Se tiene memoria de programa muy limitada. › Aplicaciones criticas. Desventajas: curva de aprendizaje pronunciada, dificil de comprender, dificil de portar.
  29. 29.  Código sencillo de comprender y codificar aun cuando no se ha trabajado con el microcontrolador.  Sencillo de migrar (si se codifica adecuadamente).  Se puede combinar con ensamblador (si el compilador lo permite). Desventajas: Entre mayor sea el nivel del lenguaje mayor sera el overhead.
  30. 30.  Se recomienda cuando se tienen aplicaciones demasiado grandes o cuya administración es complicada.  Se programa como si se estuviera programando una PC.  Se utiliza el toolchain especifico de la plataforma para compilar las aplicaciones (cross-compile).  Se puede utilizar un NFS (Network File System) para facilitar el debugeo.  Algunos ejemplos: WinCE, Linux (varias distribuciones), Android, ChromeOS, sistemas operativos en tiempo real. Desventaja: El sistema operativo consume recursos adicionales, se necesita contar con una version del sistema operativo compatible con la plataforma (o adaptarlo de otra).
  31. 31.  C es el lenguaje por excelencia para programación de sistemas embebidos.  Es un lenguaje de nivel medio-alto.  Existen recomendaciones a seguir para programar sistemas embebidos, es decir se recomienda solo usar un subconjunto del lenguaje C.  Ventajas: › Al compilarse no dará un overhead demasiado grande. › Soportado por la mayoría de las plataformas y compiladores. › Es mas fácil programar código eficiente en c (que se convierta en código eficiente en ensamblador) que ensamblador eficiente. › Altamente conocido.  Desventajas: › Los estándares del lenguaje (ANSI C, ISO 9899) no especifican algunos detalles, estos pueden traer problemas.
  32. 32.  El codigo en C es compilado para generar un codigo objeto.  Todos los codigos objeto que se compilan junto con un proyecto se “acomodan” en memoria de acuerdo a la informacion del Linker.
  33. 33.  Se debe evitar usar tamaños de datos mayores al tamaño del bus de datos.  Procurar usar unsigned.  El punto flotante se debe utilizar solo cuando sea estrictamente necesario.  Los tamaños de datos NO están completamente estandarizados se recomienda definir nuevos tipos de datos.
  34. 34.  Las variables volátiles (volatile) son aquellas que se pueden modificar fuera de la ejecución normal del programa como es el caso de los registros.  Las variables volatile no son suceptibles a las optimizaciones del compilador, se debe tener en cuenta cuando se realizan operaciones que no tienen efecto sobre ninguna parte del programa.
  35. 35. Las herramientas a usarse en este taller son: Development kit DEMO9S08AC60 IDE Code warrior
  36. 36.  Evaluation kit  Development kit  Reference Design kit  VirtuaLab
  37. 37.  Editor  Compilador  Ensamblador  Linker  Simulador  Debugger
  38. 38.  Descargar la siguiente hoja de datos: http://www.freescale.com/files/microcontr ollers/doc/data_sheet/MC9S08AC60.pdf ?fpsp=1  Revisar el overview ubicado al principio.  Analizar el mapa de memoria.
  39. 39.  Descargue la siguiente guía de usuario: http://www.freescale.com/files/microcontr ollers/doc/user_guide/DEMO9S08AC60E_ UG.pdf?fpsp=1  Ubicar donde están las conexiones de los leds los push buttons y los switches.
  40. 40. 1. Desactivar el watchdog. 2. Configurar los pins donde están conectados los LEDs como salidas. 3. Configurar los switches y los push buttons como entradas. 4. Programar que los LED prendan cuando se presionen los switches y/o push button.
  41. 41.  Existen dos métodos para esperar a que externamente se modifique el valor de un registro: › Polling: se pone una condicion en espera hasta que el valor monitoreado cambie: while (flag); /*cuando la bandera cambie a 1 continuara la ejecucion */ › Interrupciones: Se configura el sistema de manera que cuando haya suceda el evento esperado se llame la interrupción que le corresponda a dicho evento.  Cuando el evento esperado sucede se guarda el contexto y se carga la dirección del vector de interrupciones correspondiente en el PC.
  42. 42.  Configurar el ADC para que trabaje con el potenciometro de la tarjeta y que modifique el valor que se muestra en los LEDs (toda la barra de LEDs).
  43. 43.  Configurar el clk para que trabaje a 20Mhz.  Configurar los timer para que trabajen con un tiempo de aproximadamente 1 micro segundo (primero manejar por polling y después por interrupciones).  Utilizando el timer configurado hacer que un LED parpadee cada segundo.
  44. 44.  Configurar un canal del timer para trabajar como PWM conectado a un LED.  Modificar la intensidad de la iluminación del LED de acuerdo a la posición del potenciómetro.
  45. 45.  Configurar el SCI para un baud rate de 9600.  Configurar las interrupciones de manera que cuando se reciba un dato se envie y cada que se envie dicho dato se prenda o apague un LED.  Conectar el puerto serial del microcontrolador al puerto serial de la computadora.

×