Mostrando entradas con la etiqueta clase 1. Mostrar todas las entradas
Mostrando entradas con la etiqueta clase 1. Mostrar todas las entradas

27 de febrero de 2011

Compiladores para micros

Cuando vas a escribir un programa para un micro, necesitas una placa hardware para conectar físicamente el micro al PC, pero el programa lo escribirás con un programa (compilador).

IDE.
Cuando leas "IDE" (Integrated Development Environment), el término hace referencia a un entorno de desarrollo integrado, vamos, al compilador con todas sus herramientas.

Compilador cruzado.
Un compilador cruzado es capaz de generar código máquina para distintos tipos de microcontroladores, es decir, que puedes escribir tu programa en C y con sólo cambiar el modelo de micro, el compilador es capaz de escribir el código adaptándolo al micro en concreto. Por ejemplo, Keil (más abajo) es un compilador cruzado.

Algunos ejemplos de compiladores:

- MPLAB, es el entorno de desarrollo (IDE) de Microchip. Es potente, tiene prácticamente todas las opciones que puedes necesitar, incluso un simulador que te permitirá comprobar si tu programa funciona correctamente. La ventaja, es totalmente gratuito, pero por contra sólo permite escribir código para los micros de Microchip (no se puede tener todo ;-). Microchip

- Keil, es otro entorno de desarrollo (IDE) pero está abierto a otros micros, no se limita como el caso de MPLAB. Nada más entrar en la web, arriba a la izquierda hay un enlace (supported microcontrollers) donde puedes comprobar los micros para los que es compatible. La ventaja es que puedes elegir muchos micros (es un compilador criuzado) y la desventaja (que no lo es tanto) es que es de pago, pero tienes versiones demo con las que puedes trabajar perfectamente (mientras el tamaño de tu programa no supere un límite). Keil

- IAR, es otro compilador cruzado, puedes consulta aquí la lista de micros para los que es compatible. También ofrecen una versión demo válida para 3o días y completamente funcional, sin limitación en el tamaño del programa como en el caso anterior. IAR

26 de febrero de 2011

Programador de microcontroladores


Como comentamos en clase el martes pasado, para programar un micro, necesitamos una herramienta hardware (el programador) y una herramienta software para escribir el código (el compilador). Aquí podéis ver un programador:



El video está en inglés pero seguro que podéis entenderlo perfectamente..y el que no...cursito de inglés o a ponerse películas en versión original con subtítulos..

En el enlace al pie, otro programador. En este caso el micro tiene funcionalidad USB y permite hacer más cosas. Recordad que ésto es posible porque el micro tiene esta funcionalidad (USB, control gráfico LCD, etc..) como comprobásteis buscando en el ejercicio en clase.

25 de febrero de 2010

Cuestionario Microcontroladores

Puedes descargar la teoría aquí

El objetivo es que lo respondas (en grupos de 5 personas) una vez haya quedado vista la sesión de teoría.
Descargar preguntas

Algunos ejemplos de especificaciones de micros que me habéis preguntado:

- Endurance: 2000 write/erase cycles at 85 degrees.
Hace referencia a la cantidad de veces que puede ser programado, es una magnitud que sirve para compararlo con otros micros. Es indicativo de la durabilidad del dispositivo.


- Tx output power up to 3,5dBm.
Indica la potencia de emisión para dispositivos que incluyen un transmisor de radio para comunicaciones inalámbricas. Se expresa en miliwatios o en dBm, unidades de medida utilizadas principalmente en telecomunicaciones, más información aquí.

- Active Reset from internal sources, ISP, Debug, SPI, PWM, MIPS, Cristal oscillator.


Soluciones:

1. Cita las diferencias entre sistemas basados en microcontrolador y en microprocesador.

Los sistemas basados en microprocesador necesitan placas externas para funcionar, tarjetas de adquisición de datos DAQ (como las vistas en las prácticas), memoria, sistemas gráficos, etc. Para su utilización se hace necesario la utilización de un S.O. (Linux, Windows, MacOS) sobre el que se instala la aplicación. Los sistemas basados en microprocesadores se utilizan en aplicaciones genéricas y en aquellos entornos en los que la potencia de cálculo es prioritaria.

Un ejemplo es el control y clasificación de piezas de fruta en un almacén con ayuda de videocámaras. En este caso hay una gran cantidad de información que debe ser procesada en tiempo real y requiere la utilización de CPU muy potentes, en estos casos es difícil que un microcontrolador pueda competir.

Por otra parte en los sistemas con microprocesador tenemos una gran facilidad en la visualización de la información (salida VGA) y podemos usar periféricos externos estándar. A favor del microprocesador podemos decir que es más flexible en cuanto al hardware (mucha oferta en el mercado) y al software a utilizar (diferentes compiladores).

En contra tenemos el espacio que ocupa un sistema basado en un microprocesador. Si el producto final debe ser comercializado y tener un tamaño reducido, no es una opción trabajar con un PC y debemos pensar en sistemas basados en microcontroladores.

El microcontrolador es un sistema empotrado que contiene todo lo necesario, dispone de la unidad de control, la CPU, el banco de registros, la memoria principal, el módulo de entrada/salida y el sistema de adquisición de datos (DAQ). Debido a su alta integración solemos encontrarlos en sistemas empotrados y de tamaño reducido, principalmente, siendo el bajo coste por unidad uno de los principales argumentos para su elección. Un sistema basado en un microcontrolador no depende del S.O.

Si el objetivo es un hardware que pueda venderse, que sea portable y barato (fabricando cientos o incluso miles de unidades), entonces estará justificado el uso de microcontroladores. Si lo que deseamos es controlar un proceso en una nave industrial, un PC con una tarjeta de adquisición de datos será suficiente. Hay que tener en cuenta que en este caso generalmente los clientes necesitarán una actualización del sistema en el tiempo, algo que no sucede con sistemas desarrollados con microcontrolador como puedes ser mp3, móviles u otros dispositivos que son sistemas cerrados.

Resumiendo podríamos decir que un microcontrolador se utiliza en aplicaciones específicas en las que la potencia de cálculo no es proiritaria y sí lo es el tamaño. Los sistemas basados en microprocesador se utilizan en aplicaciones en las que esté justificado el uso de un PC ya sea por razones de espacio o por costes, pero básicamente el producto final a obtener puede determinar la plataforma a utilizar.

2. Cita dispositivos de tu entorno que utilicen microcontroladores.

Mando a distancia de la televisión, nevera, Xbox, iPod, coche, microondas, reloj digital, coche, móvil, TV, osciloscopio, aparatos de cocina, aire acondicionado, cámaras digitales, lectores de tarjetas.

3. Busca dos fabricantes de microcontroladores y detalla las características de uno de sus micros que integre puertos USB o que pueda transmitir datos vía radiofrecuencia (RF).

Microchip tiene muchos modelos que incluyen interfaz USB. Un ejemplo puede ser el modelo PIC18F13K50.

Atmel por otro lado, también ofrece integrados con USB, otro ejemplo puede ser el modelo AT90USB1286.

4. Describe para los modelos anteriores elegidos, las características principales, velocidad, cantidad de memoria, número de puertos, dispositivos integrados, etc.

Modelo PIC18F13K50.Para empezar puedes ver que utiliza memoria tipo Flash, esto quiere decir que puede programarse muchas veces. Tiene 8KB de espacio para el programa y procesa instrucciones a 12MIPS. Cuenta con 512Bytes de memoria para datos y 256Bytes de EEPROM. Para comunicarse con otros dispositivos cuenta con interfaces USART, SPI e I2C (muy utilizado en sistemas domóticos). Cuenta con 4 temporizadores integrados, uno de 8bits y tres de 16bits. También tiene 9 canales para digitalizar señales analógicas con una resolución de 10bits, esto quiere decir que podríamos utilizar este micro para montar un sistema de alarma con hasta 9 sensores de presencia. Otro dato importante es la tensión de funcionamiento, que está en el rago de 1.8 a 5.5 voltios. Como puedes ver también dispone de interfaz USB. Para datos más específicos puedes consultar la hoja de características mirando en la web del fabricante.
Modelo AT90USB1286.Este micro también dispone de interfaz USB, 128KB de memoria para programa, 8KB para datos y 4KB de EEPROM. Si quisiéramos conectar sensores analógicos podríamos conectar hasta 8 sensores con 10 bits de resolución. Puede ejecutar instrucciones hasta 16MIPS. La tensión de funcionamiento es de 2.7 a 5.5 voltios. Para información detallada, puedes entrar en la web del fabricante y localizar la hoja de características.
5. Si alguna característica de estos microcontroladores es desconocida para ti, apúntala aquí. Detallamos aquellas que nos habéis preguntado (puedes enviar un email si tienes más dudas):
MIPS: Es una forma de medir la potencia de cálculo de un micro. Hace referencia a millones de instrucciones por segundo (Million Instructions Per Second). Puede servir de referencia a la hora de comparar micros pero no es del todo exacto porque depende de las instrucciones de cada micro y de la gestión que hace de la memoria, es decir, puede servir de referencia si tienen el mismo juego de instrucciones pero no será exacto para comparar micros diferentes.
Lee más en Wikipedia.
SPI: Es un estándar de transmisión de datos entre circuitos integrados de equipos electrónicos. Al usar un sistema serie, se reduce el número de pistas, los pines, el tamaño de los circuitos y por lo tanto el coste final. En estos sistemas la velocidad de transmisión no es importante. Si el micro incluye este protocolo, se facilita una rápida integración con otros dispositivos.
Lee más en Wikipedia.
USART: Transmitir la información por un único cable es mucho más efectivo en coste que hacerlo en paralelo utilizando más cables (comunicación serie frente a paralelo). Un dispositivo USART permite transmitir la información de manera secuencial (en serie) entre dispositivos. Por ejemplo cuando un micro tiene esta funcionalidad, transmitir datos desde el micro a un PC por el puerto serie es inmediato.
Lee más en Wikipedia
6. Describe las características del entorno de desarrollo MPLAB IDE de Microchip. ¿Para qué sirve?
Cuando se toma la decisión de utilizar un microcontrolador para un proyecto, necesitamos un software para escribir el código, depurarlo, compilarlo y finalmente grabarlo en el micro, ésta es la finalidad de un entorno de desarrollo (IDE). Los microcontroladores pueden programarse en diferentes lenguajes desde Basic, C, Pascal, ensamblador, etc. Puedes elegir diferentes entornos de desarrollo o compiladores. MPLAB es un IDE fabricado por Microchip y sólo funciona para los micros de esta empresa. También puedes utilizar otros compiladores que pueden programar cualquier microcontrolador (por ello éstos se denominan compiladores cruzados), por ejemplo KEIL es uno de ellos, que precisamente es el que utilizaremos en las prácticas del segundo cuatrimestre.
Página web de KEIL
Lee sobre KEIL en Wikipedia
Lee sobre MPLAB en Wikipedia
Información de MPLAB por Microchip
Tutorial detallado de MPLAB (fuente blog Micropic)
7. ¿Qué es la arquitectura Harvard?
Cuando una máquina tiene arquitectura Harvard, significa que físicamente los datos del programa y las instrucciones se almacenan en lugares diferentes. Por contra en máquinas con arquitectura Von Neumann se almacena juntos los datos y las instrucciones.
Lee sobre la arquitectura Harvard en Wikipedia
8. En un microcontrolador, ¿para qué sirve el registro Watchdog?
También se llama perro guardián. Prácticamente todos los microcontroladores disponen de este sistema. Es un temporizador que decrementa su valor y al llegar a cero hace que el micro se resetee. Si por cualquier motivo, el programa en ejecución falla o se bloquea, este contador hará que el micro se reinicie. Por supuesto en la programación del micro hay que tenerlo en cuenta para ir reiniciando este temporizador se manera periódica para evitar que llegue al valor de disparo. Esta funcionalidad puede deshabilitarse al programarlo, sólo hay que configurar el bit necesario en uno de sus registros.
Lee más en Wikipedia
9. ¿Qué es un ciclo de máquina?
Un ordenador básicamente sólo puede hacer un tarea a la vez. Cada tarea debe desmenuzarse en sus pasos más básicos. La secuencia de pasos desde que lee una instrucción y se ejecuta hasta que se lee la siguiente se llama Ciclo de Máquina. Este ciclo de máquina es igual a un determinado número de tics de reloj, diferente en función del microcontrolador.
Artículo sobre los ciclos de máquina y tiempos de ejecución
10. ¿Qué ventajas puede tener programar en Ensamblador? Cuando diseñas una aplicación para un microcontrolador ¿Es mejor programar en alto nivel o en Ensamblador?
Si va a ser una aplicación compleja, lo mejor es desarrollarla completamente en lenguaje de alto nivel ya que permitirá un mejor trabajo en equipo y una rápida depuración del código, no obstante, si es una aplicación sencilla, de unas pocas decenas de líneas, podría ser interesante, por eficiencia, escribirla en ensamblador.
Definiciones de microcontrolador en la web:
-Monografías.com- Wikipedia