microprocesadores investigacion

70
OBJETIVO: Análisis de Programadores de PIC Revisión de conceptos de Hardware Abierto Investigación y discusión teórica: - Investigar los programadores disponibles para PIC con Hardware Abierto - Analizar el concepto de Hardware Abierto - Interpretar el concepto de ICSP (Programación Serial en Circuito) - Explicar que es un BootLoader ó Firmware, su función Características de su programador: - Especifique el programador que seleccionará para el uso en el laboratorio y ¿por qué? - Discutir el plano del programador a usar en el laboratorio según su selección - Explicar paso a paso el procedimiento para programar a través del software de su programador - Comentar los detalles para su programación, cómo deben encontrarse los pines de alimentación, oscilador y reset.

Upload: antonyjrp

Post on 04-Jul-2015

336 views

Category:

Documents


15 download

TRANSCRIPT

Page 1: Microprocesadores investigacion

OBJETIVO: Análisis de Programadores de PIC

                     Revisión de conceptos de Hardware Abierto

 

 

Investigación y discusión teórica:

 

-       Investigar los programadores disponibles para PIC con Hardware Abierto

-       Analizar el concepto de Hardware Abierto

-       Interpretar el concepto de ICSP (Programación Serial en Circuito)

-       Explicar que es un BootLoader ó Firmware, su función

 

Características de su programador:

 

-       Especifique el programador que seleccionará para el uso en el laboratorio y ¿por

qué?

-       Discutir el plano del programador a usar en el laboratorio según su selección

-       Explicar paso a paso el procedimiento para programar a  través del software de su

programador

-       Comentar los detalles para su programación, cómo deben encontrarse los pines de

alimentación, oscilador y reset.

 

Page 2: Microprocesadores investigacion

Modalidad de desarrollo de la actividad:

Se ha seleccionado una actividad colaborativa, con el propósito de promover un espacio de

intercambio para la preparación y desarrollo de prácticas del laboratorio de

microprocesadores, la cual se realizará por grupo, deben construir un archivo común, el cual

editarán en conjunto para presentar los resultados de su investigación, análisis y discusión;

para el intercambio de ideas pueden usar herramientas de comunicación síncronas (en

simultaneo: Messenger, chat) ó asíncronas ( en tiempo diferido: correo, comentarios

facebook, sitio wiki), presentar los esquemáticos y comentarlos, debe identificarse el aporte

de cada integrante del grupo, es decir; aunque el objetivo se logra de manera colaborativa, la

responsabilidad de cada integrante debe ser reflejada en el archivo.

 

Se anexan documentos a discutir, donde deben emitir comentarios de la lectura sugerida en

los trabajos allí presentados, igualmente, pueden sugerir lecturas afines a sus compañeros.

 

Documentos a discutir:

 

http://linuxencaja.net/images/a/af/Open_HW_education.pdf

http://www.iearobotics.com/personal/juan/publicaciones/art9/skypic.pdf

 

Page 3: Microprocesadores investigacion

Los microcontroladores están conquistando el mundo. Están presentes en nuestro trabajo, en nuestra casa y en nuestra vida, en general. Se pueden encontrar controlando el funcionamiento de los ratones y teclados de los computadores, en los teléfonos, en los hornos microondas y los televisores de nuestro hogar. Pero la invasión acaba de comenzar y el nacimiento del siglo XXI será testigo de la conquista masiva de estos diminutos computadores, que gobernarán la mayor parte de los aparatos que fabricaremos y usamos los humanos.

1.1 Controlador y microcontrolador.

Recibe el nombre de controlador el dispositivo que se emplea para el gobierno de uno o varios procesos. Por ejemplo, el controlador que regula el funcionamiento de un horno dispone de un sensor que mide constantemente su temperatura interna y, cuando traspasa los límites prefijados, genera lasseñales adecuadas que accionan los efectores que intentan llevar el valor de la temperatura dentro del rango estipulado.

Aunque el concepto de controlador ha permanecido invariable a través del tiempo, su implementación física ha variado frecuentemente. Hace tres décadas, los controladores se construían exclusivamente con componentes de lógica discreta, posteriormente se emplearon los microprocesadores, que se rodeaban con chips de memoria y E/S sobre una tarjeta de circuito impreso. En la actualidad, todos los elementos del controlador se han podido incluir en un chip, el cual recibe el nombre de microcontrolador. Realmente consiste en un sencillo pero completo computador contenido en el corazón(chip) de un circuito integrado.

Un microcontrolador es un circuito integrado de alta escala de integración que incorpora la mayor parte de los elementos que configuran un controlador.

Un microcontrolador dispone normalmente de los siguientes componentes:

Procesador o UCP (Unidad Central de Proceso).

Memoria RAM para Contener los datos.

Page 4: Microprocesadores investigacion

Memoria para el programa tipo ROM/PROM/EPROM.

Líneas de E/S para comunicarse con el exterior.

Diversos módulos para el control de periféricos (temporizadores, Puertas Serie y Paralelo, CAD: Conversores Analógico/Digital, CDA: Conversores Digital/Analógico, etc.).

Generador de impulsos de reloj que sincronizan el funcionamiento de todo el sistema.

Los productos que para su regulación incorporan un microcontrolador disponen de las siguientes ventajas:

Aumento de prestaciones: un mayor control sobre un determinado elemento representa una mejora considerable en el mismo.

Aumento de la fiabilidad: al reemplazar el microcontrolador por un elevado número de elementos disminuye el riesgo de averías y se precisan menos ajustes.

Reducción del tamaño en el producto acabado: La integración del microcontrolador en un chip disminuye el volumen, la mano de obra y los stocks.

Mayor flexibilidad: las características de control están programadas por lo que su modificación sólo necesita cambios en el programa de instrucciones.

El microcontrolador es en definitiva un circuito integrado que incluye todos los componentes de un computador. Debido a su reducido tamaño es posible montar el controlador en el propio dispositivo al que gobierna. En este caso el controlador recibe el nombre de controlador empotrado (embedded controller).

1.2 Diferencia entre microprocesador y microcontrolador.

El microprocesador es un circuito integrado que contiene la Unidad Central de Proceso (UCP), también llamada procesador, de un computador. La UCP está formada por la Unidad de Control, que interpreta las instrucciones, y el Camino de Datos, que las ejecuta.

Page 5: Microprocesadores investigacion

Las patitas de un microprocesador sacan al exterior las líneas de sus buses de direcciones, datos y control, para permitir conectarle con la Memoria y los Módulos de E/S y configurar un computador implementado por varios circuitos integrados. Se dice que un microprocesador es un sistema abierto porque su configuración es variable de acuerdo con la aplicación a la que se destine. (Figura 1.1.)

Figura 1.1. Estructura de un sistema abierto basado en un microprocesador. La disponibilidad de los buses en el exterior permite que se configure a la medida de la aplicación.

Si sólo se dispusiese de un modelo de microcontrolador, éste debería tener muy potenciados todos sus recursos para poderse adaptar a las exigencias de las diferentes aplicaciones. Esta potenciación supondría en muchos casos un despilfarro. En la práctica cada fabricante de microcontroladoresoferta un elevado número de modelos diferentes, desde los más sencillos hasta los más poderosos. Es posible seleccionar la capacidad de las memorias, el número de líneas de E/S, la cantidad y potencia de los elementos auxiliares, la velocidad de funcionamiento, etc. Por todo ello, un aspecto muy destacado del diseño es la selección del microcontrolador a utilizar.

Page 6: Microprocesadores investigacion

Figura 1.2. El microcontrolador es un sistema cerrado. Todas las partes del computador están contenidas en su interior y sólo salen al exterior las líneas que gobiernan los periféricos.

1.3 Aplicaciones de los microcontroladores.

Cada vez existen más productos que incorporan un microcontrolador con el fin de aumentar sustancialmente sus prestaciones, reducir su tamaño y coste, mejorar su fiabilidad y disminuir el consumo.

Algunos fabricantes de microcontroladores superan el millón de unidades de un modelo determinado producidas en una semana. Este dato puede dar una idea de la masiva utilización de estos componentes.

Los microcontroladores están siendo empleados en multitud de sistemas presentes en nuestra vida diaria, como pueden ser juguetes, horno microondas, frigoríficos, televisores, computadoras, impresoras, módems, el sistema de arranque de nuestro coche, etc. Y otras aplicaciones con las que seguramente no estaremos tan familiarizados como instrumentación electrónica, control de sistemas en una nave espacial, etc. Una aplicación típica podría emplear varios microcontroladores para controlar pequeñas partes del sistema. Estos pequeños controladores podrían comunicarse entre ellos y con un procesador central, probablemente más potente, para compartir la información y coordinar sus acciones, como, de hecho, ocurre ya habitualmente en cualquier PC.

1.4 El mercado de los microcontroladores.

Page 7: Microprocesadores investigacion

Aunque en el mercado de la microinformática la mayor atención la acaparan los desarrollos de los microprocesadores, lo cierto es que se venden cientos de microcontroladores por cada uno de aquéllos.

Existe una gran diversidad de microcontroladores. Quizá la clasificación más importante sea entre microcontroladores de 4, 8, 16 ó 32 bits. Aunque las prestaciones de los microcontroladores de 16 y 32 bits son superiores a los de 4 y 8 bits, la realidad es que los microcontroladores de 8 bits dominan el mercado y los de 4 bits se resisten a desaparecer. La razón de esta tendencia es que los microcontroladores de 4 y 8 bits son apropiados para la gran mayoría de las aplicaciones, lo que hace absurdo emplear micros más potentes y consecuentemente más caros. Uno de los sectores que más tira del mercado del microcontrolador es el mercado automovilístico. De hecho, algunas de las familias de microcontroladores actuales se desarrollaron pensando en este sector, siendo modificadas posteriormente para adaptarse a sistemas más genéricos. El mercado del automóvil es además uno de los más exigentes: los componentes electrónicos deben operar bajo condiciones extremas de vibraciones, choques, ruido, etc. y seguir siendo fiables. El fallo de cualquier componente en un automóvil puede ser el origen de un accidente.

En cuanto a las técnicas de fabricación, cabe decir que prácticamente la totalidad de los microcontroladores actuales se fabrican con tecnología CMOS 4 (Complementary Metal Oxide Semiconductor). Esta tecnología supera a las técnicas anteriores por su bajo consumo y alta inmunidad al ruido.

La distribución de las ventas según su aplicación es la siguiente:

Una tercera parte se absorbe en las aplicaciones relacionadas con los computadores y sus periféricos.

La cuarta parte se utiliza en las aplicaciones de consumo (electrodomésticos, juegos, TV, vídeo, etc.)

El 16% de las ventas mundiales se destinó al área de las comunicaciones.

Otro 16% fue empleado en aplicaciones industriales.

Page 8: Microprocesadores investigacion

El resto de los microcontroladores vendidos en el mundo, aproximadamente un 10% fueron adquiridos por las industrias de automoción.

También los modernos microcontroladores de 32 bits van afianzando sus posiciones en el mercado, siendo las áreas de más interés el procesamiento deimágenes, las comunicaciones, las aplicaciones militares, los procesos industriales y el control de los dispositivos de almacenamiento masivo de datos.

1.5 ¿Qué microcontrolador emplear?

A la hora de escoger el microcontrolador a emplear en un diseño concreto hay que tener en cuenta multitud de factores, como la documentación yherramientas de desarrollo disponibles y su precio, la cantidad de fabricantes que lo producen y por supuesto las características del microcontrolador (tipo de memoria de programa, número de temporizadores, interrupciones, etc.):

Costes. Como es lógico, los fabricantes de microcontroladores compiten duramente para vender sus productos. Y no les va demasiado mal ya que sin hacer demasiado ruido venden 10 veces más microcontroladores que microprocesadores.

Para que nos hagamos una idea, para el fabricante que usa el microcontrolador en su producto una diferencia de precio en el microcontrolador de algunas pesetas es importante (el consumidor deberá pagar además el coste del empaquetado, el de los otros componentes, el diseño del hardware y el desarrollo del software). Si el fabricante desea reducir costes debe tener en cuenta las herramientas de apoyo con que va a contar: emuladores, simuladores, ensambladores, compiladores, etc. Es habitual que muchos de ellos siempre se decanten por microcontroladores pertenecientes a una única familia.

Aplicación. Antes de seleccionar un microcontrolador es imprescindible analizar los requisitos de la aplicación:

• Procesamiento de datos: puede ser necesario que el microcontrolador realice cálculos críticos en un tiempo limitado. En ese caso debemos asegurarnos de seleccionar un dispositivo suficientemente rápido para ello. Por otro lado, habrá que tener en

Page 9: Microprocesadores investigacion

cuenta la precisión de los datos a manejar: si no es suficiente con un microcontrolador de 8 bits, puede ser necesario acudir a microcontroladores de 16 ó 32 bits, o incluso a hardware de coma flotante. Una alternativa más barata y quizá suficiente es usar librerías para manejar los datos de alta precisión. -

• Entrada Salida: para determinar las necesidades de Entrada/Salida del sistema es conveniente dibujar un diagrama de bloques del mismo, de tal forma que sea sencillo identificar la cantidad y tipo de señales a controlar. Una vez realizado este análisis puede ser necesario añadir periféricos hardware externos o cambiar a otro microcontrolador más adecuado a ese sistema.

• Consumo: algunos productos que incorporan microcontroladores están alimentados con baterías y su funcionamiento puede ser tan vital como activar una alarma antirrobo. Lo más conveniente en un caso como éste puede ser que el microcontrolador esté en estado de bajo consumo pero que despierte ante la activación de una señal (una interrupción) y ejecute el programa adecuado para procesarla.

• Memoria: para detectar las necesidades de memoria de nuestra aplicación debemos separarla en memoria volátil (RAM), memoria no volátil (ROM, EPROM, etc.) y memoria no volátil modificable (EEPROM). Este último tipo de memoria puede ser útil para incluir información específica de la aplicación como un número de serie o parámetros de calibración.

El tipo de memoria a emplear vendrá determinado por el volumen de ventas previsto del producto: de menor a mayor volumen será conveniente emplear EPROM, OTP y ROM. En cuanto a la cantidad de memoria necesaria puede ser imprescindible realizar una versión preliminar, aunque sea en pseudo-código, de la aplicación y a partir de ella hacer una estimación de cuánta memoria volátil y no volátil es necesaria y si es conveniente disponer de memoria no volátil modificable.

• Ancho de palabra: el criterio de diseño debe ser seleccionar el microcontrolador de menor ancho de palabra que satisfaga los requerimientos de la aplicación. Usar un microcontrolador de 4

Page 10: Microprocesadores investigacion

bits supondrá una reducción en los costes importante, mientras que uno de 8 bits puede ser el más adecuado si el ancho de los datos es de un byte. Los microcontroladores de 16 y 32 bits, debido a su elevado coste, deben reservarse para aplicaciones que requieran sus altas prestaciones (Entrada/Salida potente o espacio de direccionamiento muy elevado).

• Diseño de la placa: la selección de un microcontrolador concreto condicionará el diseño de la placa de circuitos. Debe tenerse en cuenta que quizá usar un microcontrolador barato encarezca el resto de componentes del diseño.

Los microcontroladores más populares se encuentran, sin duda, entre las mejores elecciones:

8048 (Intel). Es el padre de los microcontroladores actuales, el primero de todos. Su precio, disponibilidad y herramientas de desarrollo hacen que todavía sea muy popular.

8051 (Intel y otros). Es sin duda el microcontrolador más popular. Fácil de programar, pero potente. Está bien documentado y posee cientos de variantes e incontables herramientas de desarrollo.

80186, 80188 y 80386 EX (Intel). Versiones en microcontrolador de los populares microprocesadores 8086 y 8088. Su principal ventaja es que permiten aprovechar las herramientas de desarrollo para PC.

68HC11 (Motorola y Toshiba). Es un microcontrolador de 8 bits potente y popular con gran cantidad de variantes.

683xx (Motorola). Surgido a partir de la popular familia 68k, a la que se incorporan algunos periféricos. Son microcontroladores de altísimas prestaciones.

PIC (MicroChip). Familia de microcontroladores que gana popularidad día a día. Fueron los primeros microcontroladores RISC.

Es preciso resaltar en este punto que existen innumerables familias de microcontroladores, cada una de las cuales posee un gran número de variantes.

Page 11: Microprocesadores investigacion

 1.6 Recursos comunes a todos los microcontroladores.

Al estar todos los microcontroladores integrados en un chip, su estructura fundamental y sus características básicas son muy parecidas. Todos deben disponer de los bloques esenciales Procesador, memoria de datos y de instrucciones, líneas de E/S, oscilador de reloj y módulos controladores de periféricos. Sin embargo, cada fabricante intenta enfatizar los recursos más idóneos para las aplicaciones a las que se destinan preferentemente.

En este apartado se hace un recorrido de todos los recursos que se hallan en todos los microcontroladores describiendo las diversas alternativas y opciones que pueden encontrarse según el modelo seleccionado.

1.6.1 Arquitectura básica

Aunque inicialmente todos los microcontroladores adoptaron la arquitectura clásica de von Neumann, en el momento presente se impone la arquitectura Harvard. La arquitectura de von Neumann se caracteriza por disponer de una sola memoria principal donde se almacenan datos e instrucciones de forma indistinta. A dicha memoria se accede a través de un sistema de buses único (direcciones, datos y control).

La arquitectura Harvard dispone de dos memorias independientes una, que contiene sólo instrucciones y otra, sólo datos. Ambas disponen de sus respectivos sistemas de buses de acceso y es posible realizar operaciones de acceso (lectura o escritura) simultáneamente en ambas memorias. Figura 1.3.

Page 12: Microprocesadores investigacion

Figura 1.3. La arquitectura Harvard dispone de dos memorias independientes para datos y para instrucciones, permitiendo accesos simultáneos.

Los microcontroladores PIC responden a la arquitectura Harvard.

1.6.2 El procesador o UCP

Es el elemento más importante del microcontrolador y determina sus principales características, tanto a nivel hardware como software.

Se encarga de direccionar la memoria de instrucciones, recibir el código OP de la instrucción en curso, su decodificación y la ejecución de la operación que implica la instrucción, así como la búsqueda de los operandos y el almacenamiento del resultado.

Existen tres orientaciones en cuanto a la arquitectura y funcionalidad de los procesadores actuales.

CISC: Un gran número de procesadores usados en los microcontroladores están basados en la filosofía CISC (Computadores de Juego de Instrucciones Complejo). Disponen de más de 80 instrucciones máquina en su repertorio, algunas de las cuales son muy sofisticadas y potentes, requiriendo muchos ciclos para su ejecución.

Una ventaja de los procesadores CISC es que ofrecen al programador instrucciones complejas que actúan como macros.

RISC: Tanto la industria de los computadores comerciales como la de los microcontroladores están decantándose hacia la filosofía RISC (Computadores de Juego de Instrucciones Reducido). En estos procesadores el repertorio de instrucciones máquina es muy reducido y las instrucciones son simples y, generalmente, se ejecutan en un ciclo.

La sencillez y rapidez de las instrucciones permiten optimizar el hardware y el software del procesador.

SISC: En los microcontroladores destinados a aplicaciones muy concretas, el juego de instrucciones, además de ser reducido, es "específico", o sea, las instrucciones se adaptan a las necesidades

Page 13: Microprocesadores investigacion

de la aplicación prevista. Esta filosofía se ha bautizado con el nombre de SISC (Computadores de Juego de Instrucciones Específico).

1.6.3 Memoria

En los microcontroladores la memoria de instrucciones y datos está integrada en el propio chip. Una parte debe ser no volátil, tipo ROM, y se destina a contener el programa de instrucciones que gobierna la aplicación. Otra parte de memoria será tipo RAM, volátil, y se destina a guardar las variables y los datos.

Hay dos peculiaridades que diferencian a los microcontroladores de los computadores personales:

No existen sistemas de almacenamiento masivo como disco duro o disquetes.

Como el microcontrolador sólo se destina a una tarea en la memoria ROM, sólo hay que almacenar un único programa de trabajo.

La RAM en estos dispositivos es de poca capacidad pues sólo debe contener las variables y los cambios de información que se produzcan en el transcurso del programa. Por otra parte, como sólo existe un programa activo, no se requiere guardar una copia del mismo en la RAM pues se ejecuta directamente desde la ROM.

Los usuarios de computadores personales están habituados a manejar Megabytes de memoria, pero, los diseñadores con microcontroladores trabajan con capacidades de ROM comprendidas entre 512 bytes y 8 k bytes y de RAM comprendidas entre 20 y 512 bytes.

Según el tipo de memoria ROM que dispongan los microcontroladores, la aplicación y utilización de los mismos es diferente. Se describen las cinco versiones de memoria no volátil que se pueden encontrar en los microcontroladores del mercado.

1º. ROM con máscara

Es una memoria no volátil de sólo lectura cuyo contenido se graba durante la fabricación del chip. El elevado coste del diseño de la

Page 14: Microprocesadores investigacion

máscara sólo hace aconsejable el empleo de los microcontroladores con este tipo de memoria cuando se precisan cantidades superiores a varios miles de unidades.

2ª. OTP

El microcontrolador contiene una memoria no volátil de sólo lectura "programable una sola vez" por el usuario. OTP (One Time Programmable). Es el usuario quien puede escribir el programa en el chip mediante un sencillo grabador controlado por un programa desde un PC.

La versión OTP es recomendable cuando es muy corto el ciclo de diseño del producto, o bien, en la construcción de prototipos y series muy pequeñas.

Tanto en este tipo de memoria como en la EPROM, se suele usar la encriptación mediante fusibles para proteger el código contenido.

3ª EPROM

Los microcontroladores que disponen de memoria EPROM (Erasable Programmable Read OnIy Memory) pueden borrarse y grabarse muchas veces. La grabación se realiza, como en el caso de los OTP, con un grabador gobernado desde un PC. Si, posteriormente, se desea borrar el contenido, disponen de una ventana de cristal en su superficie por la que se somete a la EPROM a rayos ultravioleta durante varios minutos. Las cápsulas son de material cerámico y son más caros que los microcontroladores con memoria OTP que están hechos con material plástico.

4ª EEPROM

Se trata de memorias de sólo lectura, programables y borrables eléctricamente EEPROM (Electrical Erasable Programmable Read OnIy Memory). Tanto la programación como el borrado, se realizan eléctricamente desde el propio grabador y bajo el control programado de un PC. Es muy cómoda y rápida la operación de grabado y la de borrado. No disponen de ventana de cristal en la superficie.

Page 15: Microprocesadores investigacion

Los microcontroladores dotados de memoria EEPROM una vez instalados en el circuito, pueden grabarse y borrarse cuantas veces se quiera sin ser retirados de dicho circuito. Para ello se usan "grabadores en circuito" que confieren una gran flexibilidad y rapidez a la hora de realizar modificaciones en el programa de trabajo.

El número de veces que puede grabarse y borrarse una memoria EEPROM es finito, por lo que no es recomendable una reprogramación continua. Son muy idóneos para la enseñanza y la Ingeniería de diseño.

Se va extendiendo en los fabricantes la tendencia de incluir una pequeña zona de memoria EEPROM en los circuitos programables para guardar y modificar cómodamente una serie de parámetros que adecuan el dispositivo a las condiciones del entorno.

Este tipo de memoria es relativamente lenta.

5ª FLASH

Se trata de una memoria no volátil, de bajo consumo, que se puede escribir y borrar. Funciona como una ROM y una RAM pero consume menos y es más pequeña.

A diferencia de la ROM, la memoria FLASH es programable en el circuito. Es más rápida y de mayor densidad que la EEPROM.

La alternativa FLASH está recomendada frente a la EEPROM cuando se precisa gran cantidad de memoria de programa no volátil. Es más veloz y tolera más ciclos de escritura/borrado.

Las memorias EEPROM y FLASH son muy útiles al permitir que los microcontroladores que las incorporan puedan ser reprogramados "en circuito", es decir, sin tener que sacar el circuito integrado de la tarjeta. Así, un dispositivo con este tipo de memoria incorporado al control del motor de un automóvil permite que pueda modificarse el programa durante la rutina de mantenimiento periódico, compensando los desgastes y otros factores tales como la compresión, la instalación de nuevas piezas, etc. La reprogramación del microcontrolador puede convertirse en una labor rutinaria dentro de la puesta a punto.

Page 16: Microprocesadores investigacion

1.6.4 Puertas de Entrada y Salida

La principal utilidad de las patitas que posee la cápsula que contiene un microcontrolador es soportar las líneas de E/S que comunican al computador interno con los periféricos exteriores.

Según los controladores de periféricos que posea cada modelo de microcontrolador, las líneas de E/S se destinan a proporcionar el soporte a las señales de entrada, salida y control.

1.6.5 Reloj principal

Todos los microcontroladores disponen de un circuito oscilador que genera una onda cuadrada de alta frecuencia, que configura los impulsos de reloj usados en la sincronización de todas las operaciones del sistema.

Generalmente, el circuito de reloj está incorporado en el microcontrolador y sólo se necesitan unos pocos componentes exteriores para seleccionar y estabilizar la frecuencia de trabajo. Dichos componentes suelen consistir en un cristal de cuarzo junto a elementos pasivos o bien un resonador cerámico o una red R-C.

Aumentar la frecuencia de reloj supone disminuir el tiempo en que se ejecutan las instrucciones pero lleva aparejado un incremento del consumo de energía.

1.7 RECURSOS ESPECIALES

Cada fabricante oferta numerosas versiones de una arquitectura básica de microcontrolador. En algunas amplía las capacidades de las memorias, en otras incorpora nuevos recursos, en otras reduce las prestaciones al mínimo para aplicaciones muy simples, etc. La labor del diseñador es encontrar el modelo mínimo que satisfaga todos los requerimientos de su aplicación. De esta forma, minimizará el coste, el hardware y el software.

Los principales recursos específicos que incorporan los microcontroladores son:

• Temporizadores o "Timers".

• Perro guardián o "Watchdog".

Page 17: Microprocesadores investigacion

• Protección ante fallo de alimentación o "Brownout".

• Estado de reposo o de bajo consumo.

• Conversor A/D.

• Conversor D/A.

• Comparador analógico.

• Modulador de anchura de impulsos o PWM.

• Puertas de E/S digitales.

• Puertas de comunicación.

1.7.1 Temporizadores o "Timers"

Se emplean para controlar periodos de tiempo (temporizadores) y para llevar la cuenta de acontecimientos que suceden en el exterior (contadores).

Para la medida de tiempos se carga un registro con el valor adecuado y a continuación dicho valor se va incrementando o decrementando al ritmo de los impulsos de reloj o algún múltiplo hasta que se desborde y llegue a 0, momento en el que se produce un aviso.

Cuando se desean contar acontecimientos que se materializan por cambios de nivel o flancos en alguna de las patitas del microcontrolador, el mencionado registro se va incrementando o decrementando al ritmo de dichos impulsos.

1.7.2 Perro guardián o "Watchdog"

Cuando el computador personal se bloquea por un fallo del software u otra causa, se pulsa el botón del reset y se reinicializa el sistema. Pero un microcontrolador funciona sin el control de un supervisor y de forma continuada las 24 horas del día. El Perro guardián consiste en un temporizador que, cuando se desborda y pasa por 0, provoca un reset automáticamente en el sistema.

Se debe diseñar el programa de trabajo que controla la tarea de forma que refresque o inicialice al Perro guardián antes de que provoque el reset. Si falla el programa o se bloquea, no se

Page 18: Microprocesadores investigacion

refrescará al Perro guardián y, al completar su temporización, "ladrará y ladrará" hasta provocar el reset. 

1.7.3 Protección ante fallo de alimentación o "Brownout"

Se trata de un circuito que resetea al microcontrolador cuando el voltaje de alimentación (VDD) es inferior a un voltaje mínimo ("brownout"). Mientras el voltaje de alimentación sea inferior al de brownout el dispositivo se mantiene reseteado, comenzando a funcionar normalmente cuando sobrepasa dicho valor.

1.7.4 Estado de reposo ó de bajo consumo

Son abundantes las situaciones reales de trabajo en que el microcontrolador debe esperar, sin hacer nada, a que se produzca algún acontecimiento externo que le ponga de nuevo en funcionamiento. Para ahorrar energía, (factor clave en los aparatos portátiles), los microcontroladores disponen de una instrucción especial (SLEEP en los PIC), que les pasa al estado de reposo o de bajo consumo, en el cual los requerimientos de potencia son mínimos. En dicho estado se detiene el reloj principal y se "congelan" sus circuitos asociados, quedando sumido en un profundo "sueño" el microcontrolador. Al activarse una interrupción ocasionada por el acontecimiento esperado, el microcontrolador se despierta y reanuda su trabajo.

1.7.5 Conversor A/D (CAD)

Los microcontroladores que incorporan un Conversor A/D (Analógico/Digital) pueden procesar señales analógicas, tan abundantes en las aplicaciones. Suelen disponer de un multiplexor que permite aplicar a la entrada del CAD diversas señales analógicas desde las patitas del circuito integrado.

1.7.6 Conversor D/A (CDA)

Transforma los datos digitales obtenidos del procesamiento del computador en su correspondiente señal analógica que saca al exterior por una de las patitas de la cápsula. Existen muchos efectores que trabajan con señales analógicas.

1.7.7 Comparador analógico

Page 19: Microprocesadores investigacion

Algunos modelos de microcontroladores disponen internamente de un Amplificador Operacional que actúa como comparador entre una señal fija de referencia y otra variable que se aplica por una de las patitas de la cápsula. La salida del comparador proporciona un nivel lógico 1 ó 0 según una señal sea mayor o menor que la otra.

También hay modelos de microcontroladores con un módulo de tensión de referencia que proporciona diversas tensiones de referencia que se pueden aplicar en los comparadores.

1.7.8 Modulador de anchura de impulsos o PWM

Son circuitos que proporcionan en su salida impulsos de anchura variable, que se ofrecen al exterior a través de las patitas del encapsulado.

1.7.9 Puertos de E/S digitales

Todos los microcontroladores destinan algunas de sus patitas a soportar líneas de E/S digitales. Por lo general, estas líneas se agrupan de ocho en ocho formando Puertos.

Las líneas digitales de los Puertos pueden configurarse como Entrada o como Salida cargando un 1 ó un 0 en el bit correspondiente de un registro destinado a su configuración.

1.7.10 Puertos de comunicación

Con objeto de dotar al microcontrolador de la posibilidad de comunicarse con otros dispositivos externos, otros buses de microprocesadores, buses de sistemas, buses de redes y poder adaptarlos con otros elementos bajo otras normas y protocolos. Algunos modelos disponen de recursos que permiten directamente esta tarea, entre los que destacan:

UART, adaptador de comunicación serie asíncrona.

USART, adaptador de comunicación serie síncrona y asíncrona

Puerta paralela esclava para poder conectarse con los buses de otros microprocesadores.

USB (Universal Serial Bus), que es un moderno bus serie para los PC.

Page 20: Microprocesadores investigacion

Bus I2C, que es un interfaz serie de dos hilos desarrollado por Philips.

CAN (Controller Area Network), para permitir la adaptación con redes de conexionado multiplexado desarrollado conjuntamente por Bosch e Intel para el cableado de dispositivos en automóviles. En EE.UU. se usa el J185O.

1.8 Herramientas para el desarrollo de aplicaciones.

Uno de los factores que más importancia tiene a la hora de seleccionar un microcontrolador entre todos los demás es el soporte tanto software como hardware de que dispone. Un buen conjunto de herramientas de desarrollo puede ser decisivo en la elección, ya que pueden suponer una ayuda inestimable en el desarrollo del proyecto.

Las principales herramientas de ayuda al desarrollo de sistemas basados en microcontroladores son:

Desarrollo del software:

Ensamblador. La programación en lenguaje ensamblador puede resultar un tanto ardua para el principiante, pero permite desarrollar programas muy eficientes, ya que otorga al programador el dominio absoluto del sistema. Los fabricantes suelen proporcionar el programa ensamblador de forma gratuita y en cualquier caso siempre se puede encontrar una versión gratuita para los microcontroladores más populares.

Compilador. La programación en un lenguaje de alto nivel (como el C ó el Basic) permite disminuir el tiempo de desarrollo de un producto. No obstante, si no se programa con cuidado, el código resultante puede ser mucho más ineficiente que el programado en ensamblador. Las versiones más potentes suelen ser muy caras, aunque para los microcontroladores más populares pueden encontrarse versiones demo limitadas e incluso compiladores gratuitos.

Depuración: debido a que los microcontroladores van a controlar dispositivos físicos, los desarrolladores necesitan herramientas que

Page 21: Microprocesadores investigacion

les permitan comprobar el buen funcionamiento del microcontrolador cuando es conectado al resto de circuitos.

Simulador. Son capaces de ejecutar en un PC programas realizados para el microcontrolador. Los simuladores permiten tener un control absoluto sobre la ejecución de un programa, siendo ideales para la depuración de los mismos. Su gran inconveniente es que es difícil simular la entrada y salida de datos del microcontrolador. Tampoco cuentan con los posibles ruidos en las entradas, pero, al menos, permiten el paso físico de la implementación de un modo más seguro y menos costoso, puesto que ahorraremos en grabaciones de chips para la prueba in-situ.

Placas de evaluación. Se trata de pequeños sistemas con un microcontrolador ya montado y que suelen conectarse a un PC desde el que se cargan los programas que se ejecutan en el microcontrolador. Las placas suelen incluir visualizadores LCD, teclados, LEDs, fácil acceso a los pines de E/S, etc. Elsistema operativo de la placa recibe el nombre de programa monitor. El programa monitor de algunas placas de evaluación, aparte de permitir cargar programas y datos en la memoria del microcontrolador, puede permitir en cualquier momento realizar ejecución paso a paso, monitorizar el estado del microcontrolador o modificar los valores almacenados los registros o en la memoria.

Emuladores en circuito. Se trata de un instrumento que se coloca entre el PC anfitrión y el zócalo de la tarjeta de circuito impreso donde se alojará el microcontrolador definitivo. El programa es ejecutado desde el PC, pero para la tarjeta de aplicación es como si lo hiciese el mismo microcontrolador que luego irá en el zócalo. Presenta en pantalla toda la información tal y como luego sucederá cuando se coloque la cápsula.

Se llama hardware libre a los dispositivos de hardware cuyas especificaciones y

diagramas esquemáticos son de acceso público, ya sea bajo algún tipo de pago o

Page 22: Microprocesadores investigacion

de forma gratuita. La filosofía del software libre (las ideas sobre la libertad del

conocimiento) es aplicable a la del hardware libre. Se debe recordar en todo

momento que libre no es sinónimo de gratis. El hardware libre forma parte de

la cultura libre.

Un ejemplo de hardware libre es la arquitectura UltraSparc cuyas especificaciones

están disponibles bajo una licencia libre.

Algo del ímpetu para el desarrollo del hardware libre fue iniciado en 2002 con

el Challenge to Silicon Valley publicado por Kofi Annan.4 Debido a que la naturaleza

del hardware es diferente a la del software, y debido a que el concepto de hardware

libre es relativamente nuevo, aún no ha surgido una definición exacta del hardware

libre.

Dado que el hardware tiene asociados a él costos variables directos, ninguna

definición de software libre se puede aplicar directamente sin modificación. En

cambio, el término hardware libre se ha usado principalmente para reflejar el uso del

software libre con el hardware y el lanzamiento libre de la información con respecto

al hardware, a menudo incluyendo el lanzamiento de los diagramas esquemáticos,

diseños, tamaños y otra información acerca del hardware. De todos modos, incluye

el diseño del hardware y la distribución de los elementos en la tarjeta madre.

Con el auge de los dispositivos de lógica programable reconfigurables, el compartir

los diseños lógicos es también una forma de hardware libre. En vez de compartir los

diagramas esquemáticos, el código HDL es compartido. Esto difiere del software

libre. Las descripciones HDL son usadas comúnmente para instalar

sistemas SoC en FPGA o directamente en diseños ASIC. Los módulos HDL, cuando

se distribuyen, son llamados semiconductor intellectual property cores, o núcleos IP.

Existen muchas comunidades que trabajan en el diseño, desarrollo y pruebas de

hardware libre, y que además brindan soporte. Algunas de ellas son Open

Collector,5 OpenCores6 y el Proyecto gEDA.7

Para la gran mayoría es extraño el termino del inglés "hardware", que no es más

que un término general que se utiliza para describir los artefactos físicos de una

tecnología. En este sentido, el hardware puede ser equipo militar importante, equipo

Page 23: Microprocesadores investigacion

electrónico, o equipo informático. En informática, se denomina hardware o soporte

físico al conjunto de elementos materiales que componen un computador. Hardware

también son los componentes físicos de una computadora tales como el disco duro,

la unidad de disco óptico, ladisquetera, etc. El hardware se refiere a lo que es

tangible (que se puede tocar), es decir todos los componentes físicos de la

computadora.

El software libre ofrece al usuario cuatro libertades: libertad de uso, de estudio y

modificación, de distribución, y de redistribución de las versiones modificadas.

Existen licencias que las garantizan y que dan una cobertura legal, como por

ejemplo la licencia GNU GPL. El hardware libre toma estas mismas ideas del

software libre para aplicarlas en su campo.

Es una propuesta casi tan antigua como la del software libre, sin embargo su

empleo no es tan directo. Compartir diseños de hardware es más complicado. No

hay una definición exacta (se pueden encontrar referencias a distintos artículos).

Incluso el propio Richard Stallman afirma que las ideas del software libre se pueden

aplicar a los ficheros necesarios para su diseño y especificación (esquemas, PCB,

etc), pero no al circuito físico en sí.

Al no existir una definición clara de hardware libre, cada autor lo interpreta a su

manera. Se han creado licencias, algunas de las cuales están todavía en desarrollo.

Dependiendo del enfoque, podemos establecer dos clasificaciones: la primera

teniendo en cuenta cómo es su naturaleza (estático o reconfigurable) y la otra en

función de su filosofía.

[editar]Según su naturaleza

Dada su diferente naturaleza, al hablar de hardware abierto o libre hay que

especificar de qué tipo de hardware se está hablando. A continuación se describen

cada uno de los diferentes hardware según su naturaleza:

[editar]Hardware reconfigurable

Es aquél que viene descrito mediante un lenguaje de descripción de hardware. Su

naturaleza es completamente diferente a la del hardware estático. Se desarrolla de

una manera muy similar a como se hace con el software. Ahora nuestros diseños

Page 24: Microprocesadores investigacion

son ficheros de texto, que contienen el código fuente. Se les puede aplicar

directamente una licencia libre, como la GPL. Los problemas no surgen por la

definición de qué es libre o qué debe cumplir para serlo, sino que aparecen con las

herramientas de desarrollo necesarias.

Para hacer que el hardware reconfigurable sea libre, sólo hay que aplicar la

licencia GPL a su código. Sin embargo, aún no está claro qué es lo que se entiende

por hardware libre al referirse al hardware estático.

[editar]Hardware estático

Es el conjunto de elementos materiales de los sistemas electrónicos. Tiene una

existencia física (se puede "tocar"). Esta propiedad no la tiene el software, por lo

que surgen una serie de problemas que se describen en el apartado "Desventajas".

[editar]Según su filosofía

Al no existir una definición clara de hardware libre, cada autor lo interpreta a su

manera. Muchos de los argumentos acerca del free hardware design provienen de

la gente que habla en las comunidades de software y hardware. Una causa de esto

es el simple hecho de que la palabra "software" refiere tanto al código fuente como a

los ejecutables, mientras que las palabras "hardware" y "diseño de hardware" se

refieren claramente a dos cosas distintas. Usar la palabra "hardware" como

taquigrafía para el diseño y el objeto físico es una receta para la confusión. Los

términos siguientes se han utilizado en discusiones de este asunto.

[editar]Free hardware design

Se refiere a un diseño que pueda ser copiado, distribuido, modificado, y fabricado

libremente. No implica que el diseño no puede también ser vendido, o que cualquier

puesta en práctica de hardware del diseño estará libre de coste. Todas las mismas

discusiones sobre el significado de la "libertad" entre los partidarios de la Free

Software Foundation, y los partidarios del estilo BSD que licencian el software,

desafortunadamente las trasladan a los diseños del hardware.

[editar]Libre hardware design

Se refiere a la misma clase del diseño free hardware design, pero intenta hacer la

aclaratoria que la palabra libre, se refiere a la libertad, no al precio. El término suena

Page 25: Microprocesadores investigacion

fuera de contexto a muchos oídos ingleses, pero resulta natural para los franceses.

Sus traducciones son naturales para hablantes de otros idiomas, quienes no utilizan

una palabra para dar diferentes significados; como por ejemplo: en inglés "free

beer" cerveza gratuíta y "free speech" libertad de expresión.

[editar]Open source hardware

Se refiere al hardware para el cual toda la información del diseño se pone a

disposición del público en general. Open source hardware se puede basar en un

free hardware design, o el diseño en el cual se basa puede ser restringido de alguna

manera.

[editar]Open Hardware

Es una marca registrada del Open Hardware Specification Program. Es una forma

limitada de open source hardware, para la cual el requisito es que:

"La suficiente documentación del dispositivo debe estar disponible para que un programador

competente pueda escribir un controlador del dispositivo. La documentación debe cubrir

todas las características de la interfaz del dispositivo - controlador que se espera que

cualquier usuario emplee. Esto incluye funciones de entrada-salida, de control y funciones

auxiliares como medidas de funcionamiento o diagnósticos de autoprueba. Los detalles de

soporte defirmware on-board y de la puesta en práctica de hardware no necesitan ser

divulgados excepto cuando son necesarios para permitir programar un controlador para el

dispositivo".

Es decir, solamente una cantidad de información limitada sobre el diseño necesita

estar disponible; posiblemente no mucha, por ejemplo, para hacer una reparación.

[editar]Free hardware

Es un término usado de vez en cuando como sinónimo para el open source

hardware. Es un término que busca ser directamente paralelo entre el "hardware" y

el "software", pero vela la distinción entre el diseño y la puesta en práctica. El

término de free hardware es particularmente confuso puesto que implica el estado

físico del hardware, más que su diseño, el cual de alguna manera es libre. Esto no

es del todo cierto en el sentido del costo, y tiene poca importancia (excepto

metafóricamente) en el sentido social. Lo más simple es evitar este término

Page 26: Microprocesadores investigacion

totalmente, exceptuando su significado de costo, como por ejemplo: las

computadoras libres "free computers" dadas por varias organizaciones sociales.

[editar]Historia

Al hablar de la historia del hardware libre debemos remontarnos hasta los inicios de

la informática, en el siglo XX. Existen dos épocas críticas para que se pensara en la

idea del hardware libre.

[editar]Años 1970

Lee Felsenstein y el Homebrew Computer Club, era un híbrido con los elementos

del movimiento radical del colegiado de los años 1960, de los activistas que

trabajaban el área de computación de la comunidad de Berkeley y de los

aficionados a los hobbys electrónicos.

Participatory Democracy From the 1960s and SDS into the Future On-line, escrito

por Michael Hauben quién describe las ideas de “Los estudiantes para una

Sociedad Democrática” y explica cómo ellos transformaron los movimientos que

trabajaban en el área de la computación de la comunidad de los años 1970 y más

adelante.

[editar]Años 1990

Los FPGA y Open Design Circuits, surge en los años 1990, en el sitio web de

Reinoud Lamberts. Open Design Circuits fue el primero en proponer la creación de

una comunidad de diseño de hardware con el espíritu del software libre. En

teoría, FPGA permitiría el intercambio de diseños libres electrónicamente, de la

misma manera que los programas pueden ser intercambiados.

Pero en la práctica, la comunidad que creció alrededor del sitio nunca agrego

diseños libres por la carencia de software libre para el diseño electrónico (que

entonces no existía) para lo cual se debatió sobre el uso del software libre o

el freeware comercial, hasta el extremo que no se creó ningún diseño real en el sitio

en sí mismo.

Pero las discusiones involucraron a una gran cantidad de personas, muchas que

estaban implicadas en otras empresas libres de diseño de hardware. Esta fue la

primera vez que un gran grupo de gente había discutido seriamente acerca de qué

Page 27: Microprocesadores investigacion

era práctico y qué no era práctico con respecto al hardware. Con la creación de este

sitio web, Open Design Circuits sentó las bases para una comunidad entera.

[editar]Problemática actual

Existen varios problemas que hacen casi imposible llevar a la práctica el concepto

de hardware libre. A continuación se citan algunos de los más relevantes:

[editar]Dependencia tecnológica extranjera de los componentes

Al intentar fabricar un diseño, es posible encontrarse con el problema de la falta de

material. En un país puede no darse este problema, pero en otros puede que no se

encuentren los materiales necesarios y está demostrado que las TIC, son

herramientas indispensables para el desarrollo de las naciones por lo cual es de

vital importancia a la vez que estratégica el que cada nación no dependa de otra

para su desarrollo tecnológico.

[editar]Altos costos de producción

La persona que desea utilizar el hardware que un tercero ha diseñado, primero lo

tiene que fabricar, para lo cual tendrá que comprobar los componentes necesarios,

construir el diseño y verificar que se ha hecho correctamente. Todo esto tiene un

costo.

[editar]El conocimiento lo poseen pocas empresas

Se sigue reteniendo el conocimiento en las grandes industrias productoras; como

resultado el consumidor del producto tiene que adecuarse al producto que ofrece el

mercado que es por lo general un producto genérico que no cumple con las

necesidades muy específicas de un determinado consumidor; allí es cuando se ata,

a las decisiones de las empresas productoras, al usuario y no se le da la libertad

elegir.

[editar]Gran inversión de tiempo en trabajos de diseño redundantes

Tanto en el hardware como en el software propietario existe mucho diseño

redundante, es decir, se "reinventa la rueda" en vez de usar ese conocimiento

previo e innovar en nuevas áreas de investigación y producción.

Page 28: Microprocesadores investigacion

[editar]Gestión de derechos digitales

Gestión de derechos digitales, también conocido por su acrónimo en inglés, DRM,

es un término que aglomera todas las tecnologías orientadas a ejercer restricciones

sobre los usuarios de un sistema o forzar los derechos digitales permitidos, por

comisión de los poseedores de derechos de autor e independientemente de la

voluntad de uso del usuario del sistema.

Generalmente estos dispositivos son instalados como condición previa a la

distribución de software no libre, obras musicales, libros electrónicos o cualquier tipo

de archivo sujeto a derechos de autor. En algunos casos, las restricciones aplicadas

se extienden más allá de los archivos que debían proteger, agregando restricciones

sobre el uso de otros documentos o aplicaciones presentes en la computadora. Para

evitar el trusted computing y el DRM se han creado varias campañas como ejemplo,

algunas listadas a continuación.

[editar]Defective by Design

Defective by Design es una campaña anti-DRM de base amplia cuyo objetivo son

los grandes medios, los fabricantes y los distribuidores de DRM. La campaña apunta

a lograr que los fabricantes sean cautelosos a la hora de llevar al mercado sus

productos con DRM. Los productos con DRM tienen características intrínsecas que

restringen lo que se puede hacer con ellos. Estos productos fueron mutilados

intencionalmente desde la perspectiva de los usuarios, por lo que son "defectuosos

por diseño". Esta campaña identificará esos productos "defectuosos" y los señalará

para su eliminación. Su meta es abolir los DRM como "práctica social".

[editar][LAFKON]

[LAFKON] - A movie about Trusted Computing es

un cortometraje animado realizado por Benjamin Stepahn y Lutz Vogel, que muestra

la puesta en práctica del trusted computing. Está licenciado bajo la licencia Creative

Commons Sampling Plus 1.0.

[editar]Modelos de intercambio

Page 29: Microprocesadores investigacion

Son una de las necesidades básicas de los proyectos de hardware libre, ya que se

debe generar un estándar para intercambiar los diseños y para que éstos sean

legibles por todos.

Con respecto a los lenguajes lenguajes de descripción de hardware, no existe

mayor problema ya que éstos son realmente archivos de texto ASCII. El

inconveniente aparece cuando se habla de esquemas de circuitos, máscaras o

rutados.

Una de las primeras soluciones fue la de trabajar con imágenes JPEG y no con los

propios diseños y, si bien este mecanismo es funcional, tiene la clara desventaja de

que para poder trabajar sobre el diseño se lo debe transcribir por completo.

Otra de las soluciones aportadas se basa en la utilización de

herramientas CAD comunes y libres, pero lamentablemente los programas que

apuntan hacia este camino se encuentran en un estado alfa, todavía lejos de poder

ser usados bajo las características requeridas por el hardware libre.

[editar]Licencias

Se han creado licencias específicas para hardware libre, algunas de las cuales

están todavía en desarrollo y se mencionan a continuación:

[editar]Grupos que usan GNU GPL

Free Model Foundry.

ESA Sparc.

[editar]Grupos que usan otras licencias

Free-IP Project (al estilo MIT).

LART (al estilo MIT).

GNUBook (basada en la licencia GPL, con las adiciones de los derechos

ambientales y humanos).

[editar]Grupos desarrolladores de nuevas licencias

Simputer GPL, una licencia de hardware se basa en la licencia GPL.

Freedom CPU.

Page 30: Microprocesadores investigacion

OpenIPCores OHGPL.

The Open NDA.

OpenPPC (basada en Apple Public Source License).

Hardware Design Public License Open Collector, basada en la licencia GPL.

[editar]Comercialización

Un diseño de hardware libre puede ser implementado por una empresa para su

posterior comercialización. La única premisa: mantener el diseño libre. Desde este

punto de vista, las empresas de desarrollo tienen la posibilidad de ahorrar en costes

y tiempos de diseño. Cuentan con un equipo de diseñadores repartidos por todo el

mundo.

El miedo de las empresas a hacer libres sus diseños debe ser acabado, no

solamente admirando el éxito del caso del software libre, sino deteniéndose a

pensar en la competencia como co-desarrolladores.

Realmente la fuente de negocio, tanto en el caso del hardware como en el del

software, no se encuentra en las empresas ya establecidas, sino en la nueva

generación de diseñadores, en las generaciones ahora universitarias que cuentan

no solamente con los medios técnicos, sino con una energía y afluencia de ideas

muy grande. "Linux partió de un estudiante universitario y no de una multinacional.

Ahora, existen multinacionales basadas en la idea del universitario".

[editar]Ventajas y desventajas

[editar]Ventajas

Protege y defiende la soberanía, permitiendo a las naciones no depender de

ninguna otra que le provea los recursos necesarios para su desarrollo e

independencia tecnológica.

Fomenta a que el hardware pueda ser de calidad, los estándares abiertos y que

sean más económicos.

La reutilización y la adaptación de diseños (corés) permitiendo así innovar y

mejorar los diseños de forma colaborativa a nivel mundial.

Ayudaría a las compañías a ahorrar costes y tiempos de diseño en sus trabajos.

Page 31: Microprocesadores investigacion

Existen comunidades de diseño, programación, pruebas, y soporte que día a día

crecen de forma dinámica y participativa.

Evita la alianza trusted computing y la gestión de derechos digitales (DRM), que

imponen restricciones a los dispositivos electrónicos como por ejemplo

electrodomésticos, computadoras, entre otras más.

[editar]Desventajas

No se pueden aplicar directamente las cuatro libertades del software libre

al hardware, dada su naturaleza diferente. Uno tiene existencia física, el otro no.

Esto hace que surjan una serie de problemas:

Un diseño físico es único. La compartición depende de la facilidad de

reproducción que este posea.

La compartición tiene asociado un coste. La persona que quiera utilizar el

hardware que otra haya diseñado primero lo tiene que fabricar, para lo cual

tendrá que comprobar los componentes necesarios, construir el diseño y

verificar que se ha hecho correctamente. Todo esto tiene un coste.

Disponibilidad de los componentes. ¿Están disponibles los chips?. Al intentar

fabricar un diseño nos podemos encontrar con el problema de la falta de

material. En un país puede no haber problema, pero en otro puede que no se

encuentran.

El mundo del hardware está plagado de patentes; es una realidad, por eso

muchos de las motivaciones de los autores de este concepto es que no se libere

el código o el diseño si no lo desea, pero se anima a que nuevas empresas

desarrollen y liberen nuevo hardware, en pro de crear estándares públicos y

libres, en los cuales todos puedan colaborar.

Modelo de producción, no cualquiera podrá realizar hardware, debido a las

implicaciones que conlleva toda la infraestructura de diseño, simulación,

producción e implementación del hardware, al contrario de lo que se da en

el software libre.

[editar]Proyectos notables

[editar]Cámaras reconfigurables de red

Page 32: Microprocesadores investigacion

Elphel, Inc.  - Soluciones de imagen con software libre y hardware abierto.

Elphel, Inc. desarrolla y fabrica cámaras reconfigurables de red basadas en

GNU/Linux y FPGA reconfigurable. Todo el código es FreeSoftware y todas las

disposiciones PCB, diagramas de socket y fuentes de FPGA Verilog están

disponibles bajo la licencia de GNU/GPL.

[editar]Impresoras 3D

El Proyecto RepRap: Una impresora 3D libre, autoreplicante.

The Clanking Replicator Project: An open source, self-replicating  Impresora

3D - Variante del RepRap

Fab@Home  - Un sistema de fabricación de escritorio libre.

[editar]Computadoras y componentes de computadora

[editar]Diseñando el CPU en sí mismo

Existen diseños de CPU libres, típicamente implementados como

microprocesadores soft.

OpenSPARC  es un proyecto con un ya creado chip multinúcleo UltraSPARC T1

de Sun Microsystems. En agosto de 2007 un chip T2 también está en

camino Sun's OpenSPARC

OpenRISC  es un grupo de desarrolladores trabajando para producir

un CPU RISC libre de muy alto rendimiento.

LEON  es un CPU de 32 bits libre similar al SPARC creado por ESA. Es el CPU

estándar para la industria europea del espacio.

F-CPU , proyecto del Freedom CPU iniciado a mediados de 1998.8 9

Godson  es un chip chino basado en la arquitectura MIPS.

[editar]Diseños que incluyen un CPU

Arduino  es una plataforma libre de computación física basada en una simple

tarjeta de I/O y un ambiente de desarrollo que implementa el lenguaje

libre Processing / Wiring.

Page 33: Microprocesadores investigacion

Microingenia Electronics  fabrica entrenadores programables y módulos de

desarrollo para el aprendizaje de la electrónica con filosofía DIY y Hardware

abierto [1]

Bug Labs  - Produce el BUG, una plataforma abierta de dispositivos electrónicos

de consumo de DIY que abarca el computador BUGbase mini-linux y varios

BUGmodules, componentes funcionales como cámara, acelerómetro, detector

de movimiento, touchscreen LCD, y GPS

Open OEM  - Proyecto para construir la primera computadora libre [2].

OpenBook  - Diseño de tableta posicionándose entre la computadora portátil de

100 dólares (OLPC) y la Tablet PC, quiere permitir el uso de la tableta para las

masas con una producción del alto volumen

Simputer  - computador de mano dirigido a los países en desarrollo

Open Graphics Project  apunta a diseñar una arquitectura abierta y estándar

para tarjetas gráficas.

Project VGA  [3]

BalloonBoard.org  produce tarjetas de desarrollo basadas en el procesador arm,

sirigidas a los OEMs y Further Education.

ECB ATmega32/644  - Computador en una tarjeta basado en el ATmega32/644

de Atmel (de 20 MHz) con capacidad de webserver y menos de 100 mA de

consumo de energía.

ECB AT91  - Computador en una tarjeta basado en el procesador AT91RM9200

ARM9 de Atmel (180 MHz).

PLAICE  - El PLAICE es un proyecto de hardware y software libre desarrollando

una poderosa herramienta de desarrollo en-circuito que combina en un

dispositivo las características de un programador FLASH, emulador de memoria,

y un analizador lógico multicanal de alta velocidad. Corre el uClinux.

OpenPCD  - Proyecto de lector/escritor RFID, usando

el microcontrolador AT91SAM7S128. [4]

SquidBee  - Open Mote basado en Arduino para desarrollar redes de

sensores. [5]

Ben NanoNote  - Portatil Ultra Pequeño deseñado por Qi-Hardware. [6]

[editar]Organizaciones

Page 34: Microprocesadores investigacion

El Open Hardware (OH) es un proyecto en el que los diseñadores de hardware

comparten su trabajo revelando los diagramas esquemáticos y el software

(drivers) usados en sus diseños. Los diseñadores de Open hardware se reunen,

discuten lo que están haciendo y se piden ayuda uno al otro para encontrar

partes, o buscar ideas para solucionar problemas de diseño. El OH es también

una oportunidad de exhibir diseños, así que alguien puede aprender de lo que

han hecho otros.

OpenCores  es una fundación que procura formar una comunidad de

diseñadores para apoyar los núcleos libres (diseños lógicos) para CPU,

periféricos y otros dispositivos. OpenCores mantiene un bus de interconexión

en-chip libre llamado Wishbone.

EL "SOFTWARE" LIBRE INSPIRA EL MOVIMIENTO DEL "HARDWARE" ABIERTO

En los últimos años ha aparecido lentamente un nuevo concepto: el "Open Hardware", primo hermano del "software" libre. Consiste en crear y compartir diseños de equipos informáticos, desde chips hasta baterías, y programas relacionados con ellos, como los "drivers". Su máximo exponente son los aficionados que, con un pote de fabada y un esquema sacado de Internet, construyen antenas para sus redes inalámbricas. Recientemente, el grupo OpenCores presentaban algo más complejo: todo un microprocesador de diseño abierto.

El "Open Hardware" es un movimiento aún minoritario que no se espera tenga a medio plazo el alcance popular del "software" libre porque, mientras es fácil bajarse un programa de Internet, lo es menos encontrar a alguien que sepa fabricar un chip, por muchos esquemas libres que le den. Además, el mundo del "hardware" está plagado de patentes. Pero, aunque su introducción es lenta, los interesados son cada vez más y aseguran que es beneficioso para las empresas.

Según las FAQ del proyecto OpenCores, "existe "hardware" abierto y no abierto, pero la tendencia es a limitar cada vez más esta apertura, restringiendo la libertad de los diseñadores, para crear o implementar sus propios diseños, y la de los programadores, para escribir programas que funcionen en cualquier equipo. Un "hardware" realmente abierto debe ofrecer información de cómo se usa, su diseño debe ser libre en el mismo sentido que el "software" libre y las herramientas para diseñarlo también".

Page 35: Microprocesadores investigacion

Un problema importante de la comunidad de "software" libre es el "hardware" cerrado, propiciado por la alianza "Trusted Computing", de Microsoft, Intel, IBM y otros, que quiere modificar la arquitectura de los ordenadores para que se ejecute en ellos sólo "software" certificado por la industria, dejando fuera los programas libres. Como contraataque, la Free Software Foundation, Debian y FreeBSD han creado el "Open Hardware Certification", un programa que avala que un equipo es abierto, en el sentido que documenta ámpliamente la programación de sus "drivers", para que puedan funcionar con "software" libre.

Pero el movimiento "Open Hardware" quiere más: crear una gran librería accesible para todo el mundo, con diseños de procesadores, controladores de memoria, periféricos, placas madre, etc, que ayudaría a las compañías a reducir millones en trabajos de diseño redundantes. Rudolf Usselmann, de OpenCores, explica: "Sabemos que el "hardware" no va a ser nunca realmente libre, pero sí puede ser más barato y de mejor calidad".

La idea no es nueva: a finales de los setenta, era imposible tener un ordenador personal si no se lo montaba uno mismo, con los "kits" que distribuían las revistas de electrónica; los pecés de IBM se hicieron populares por su condición de equipos abiertos, que permitía que cualquier empresa pudiese crear programas compatibles con ellos; la arquitectura de los microprocesadores SPARC también es abierta. Pero estos proyectos no usaban una licencia libre, algo que sí hacen los actuales: el microcontrolador uClinux, el procesador LEON, el proyecto de placas madre OpenPPC; Freedom CPU, que desarrolla "programas núcleo", o LART, un pequeño pero completo ordenador.

En enero, Damjan Lampret, fundador del proyecto OpenCores, presentaba a la industria del "hardware" de California su última creación: un procesador integrado cuyos planos son enteramente libres. Lampert animó a la industria a incorporar diseños abiertos, con el fin de "ahorrar tiempo y dinero en investigación y desarrollo". Un representante de Intel recordó en la reunión que sus procesadores son mucho más complejos (160 MHz de OpenCores frente a los 3,2GHz de un Pentium) y añadió: "Hay aproximadamente 100.000 patentes en una CPU actual. Les será difícil construir un chip de diseño completamente libre".

Pero algunos fabricantes ya han empezado a crear tecnología a partir de diseños abiertos, como Flextronics, que construye tarjetas con procesadores libres. En la web de OpenCores explican: "El "open hardware" ayudará a las compañías a incrementar sus beneficios porque mejora la fiabilidad del producto y su soporte, es más cercano a las necesidades de los clientes, mejora la distribución de los diseños, que pueden usarse más de una vez, y es más seguro".

En 1999, el fundador del movimiento de programas libres, Richard Stallman, daba un frío recibimiento al "open hardware": "No veo un imperativo social para el

Page 36: Microprocesadores investigacion

"hardware" libre como lo veo para los programas: es mucho más difícil copiar "hardware", parecido a quien copiaba libros hace 50 años. Además, los programas del "hardware" pueden llevar licencia libre, pero los circuitos no, porque no pueden tener ningún tipo de "copyright"".

Algunos técnicos tampoco lo ven claro, como explican en el weblog Libertonia: "Si te olvidas de abrir una pista, tienes que tirar a la basura toda la placa. Además, la diferencia entre tener un sistema operativo libre completo y un ordenador libre completo es abismal. En el primer caso, basta con copiar el código e instalarlo. En el segundo, habría que comprar millones de componentes y placas vírgenes, y crear los microprocesadores requiere una maquinaria que no todos tenemos en casa".

Los PIC son una familia de microcontroladores tipo RISC fabricados por Microchip

Technology Inc. y derivados del PIC1650, originalmente desarrollado por la división

de microelectrónica de General Instrument.

El nombre actual no es un acrónimo. En realidad, el nombre completo es PICmicro,

aunque generalmente se utiliza como PeripheralInterface Controller (controlador de

interfaz periférico).

El PIC original se diseñó para ser usado con la nueva CPU de 16 bits CP16000.

Siendo en general una buena CPU, ésta tenía malas prestaciones de E/S, y el PIC

de 8 bits se desarrolló en 1975 para mejorar el rendimiento del sistema quitando

peso de E/S a la CPU. El PIC utilizaba microcódigo simple almacenado

en ROM para realizar estas tareas; y aunque el término no se usaba por aquel

entonces, se trata de un diseño RISC que ejecuta una instrucción cada

4 ciclos del oscilador.

En 1985 la división de microelectrónica de General Instrument se separa como

compañía independiente que es incorporada como filial (el 14 de

diciembre de 1987 cambia el nombre a Microchip Technology y en 1989 es

adquirida por un grupo de inversores) y el nuevo propietario canceló casi todos los

desarrollos, que para esas fechas la mayoría estaban obsoletos. El PIC, sin

embargo, se mejoró con EPROM para conseguir un controlador de

Page 37: Microprocesadores investigacion

canal programable. Hoy en día multitud de PICs vienen con varios periféricos

incluidos (módulos de comunicación serie, UARTs, núcleos de control de motores,

etc.) y con memoria de programa desde 512 a 32.000 palabras

(una palabra corresponde a una instrucción en lenguaje ensamblador, y puede ser

12, 14 o 16 bits, dependiendo de la familia específica de PICmicro).

El PIC usa un juego de instrucciones tipo RISC, cuyo número puede variar desde 35

para PICs de gama baja a 70 para los de gama alta. Las instrucciones se clasifican

entre las que realizan operaciones entre el acumulador y una constante, entre el

acumulador y una posición de memoria, instrucciones de condicionamiento y de

salto/retorno, implementación de interrupciones y una para pasar a modo de bajo

consumo llamada sleep.

Microchip proporciona un entorno de desarrollo freeware llamado MPLAB que

incluye un simulador software y un ensamblador. Otras empresas desarrollan

compiladores C yBASIC. Microchip también vende compiladores para los PICs de

gama alta ("C18" para la serie F18 y "C30" para los dsPICs) y se puede descargar

una edición para estudiantes del C18 que inhabilita algunas opciones después de un

tiempo de evaluación.

Para el lenguaje de programación Pascal existe un compilador de código

abierto, JAL, lo mismo que PicForth para el lenguaje Forth. GPUTILS es una

colección de herramientas distribuidas bajo licencia GPL que incluye ensamblador y

enlazador, y funciona en Linux, MacOS y Microsoft Windows. GPSIM es otra

herramienta libre que permite simular diversos dispositivos hardware conectados al

PIC.

Uno de los más modernos y completos compiladores para lenguaje C es [mikroC],

que es un ambiente de desarrollo con editor de texto, bibliotecas con múltiples

funciones para todos los módulos y herramientas incorporadas para facilitar

enormemente el proceso de programación.

[editar]Arquitectura central

Page 38: Microprocesadores investigacion

La arquitectura del PIC es sumamente minimalista. Esta caracterizada por las

siguientes prestaciones:

Área de código y de datos separadas (Arquitectura Harvard).

Un reducido número de instrucciones de largo fijo.

La mayoría de las instrucciones se ejecutan en un solo ciclo de ejecución (4

ciclos de clock), con ciclos de único retraso en las bifurcaciones y saltos.

Un solo acumulador (W), cuyo uso (como operador de origen) es implícito (no

está especificado en la instrucción).

Todas las posiciones de la RAM funcionan como registros de origen y/o de

destino de operaciones matemáticas y otras funciones.1

Una pila de hardware para almacenar instrucciones de regreso de funciones.

Una relativamente pequeña cantidad de espacio de datos direccionable

(típicamente, 256 bytes), extensible a través de manipulación de bancos de

memoria.

El espacio de datos está relacionado con el CPU, puertos, y los registros de los

periféricos.

El contador de programa esta también relacionado dentro del espacio de datos,

y es posible escribir en él (permitiendo saltos indirectos).

A diferencia de la mayoría de otros CPU, no hay distinción entre los espacios de

memoria y los espacios de registros, ya que la RAM cumple ambas funciones, y

esta es normalmente referida como "archivo de registros" o simplemente, registros.

[editar]Espacio de datos (RAM)

Los microcontroladores PIC tienen una serie de registros que funcionan como una

RAM de propósito general. Los registros de propósito especifico para los recursos

de hardware disponibles dentro del propio chip también están direccionados en la

RAM. La direccionabilidad de la memoria varia dependiendo la línea de dispositivos,

y todos los dispositivos PIC tienen algún tipo de mecanismo de manipulación de

bancos de memoria que pueden ser usados para acceder memoria adicional. Las

series más recientes de dispositivos disponen de funciones que pueden cubrir todo

Page 39: Microprocesadores investigacion

el espacio direccionable, independientemente del banco de memoria seleccionado.

En los dispositivos anteriores, esto debía lograrse mediante el uso del acumulador.

Para implementar direccionamiento indirecto, un registro de "selección de registro

de archivo" (FSR) y de "registro indirecto" (INDF) son usados: Un número de

registro es escrito en el FSR, haciendo que las lecturas o escrituras al INDF serán

realmente hacia o del registro apuntado por el FSR. Los dispositivos más recientes

extienden este concepto con pos- y preincrementos/decrementos para mayor

eficiencia en acceder secuencialmente a la información almacenada. Esto permite

que se pueda tratar al FSR como un puntero de pila.

La memoria de datos externa no es directamente direccionable excepto en algunos

microcontroladores PIC 18 de gran cantidad de pines.

[editar]Tamaño de palabra

El tamaño de palabra de los microcontroladores PIC es fuente de muchas

confusiones. Todos los PICs (excepto los dsPIC) manejan datos en trozos de 8 bits,

con lo que se deberían llamar microcontroladores de 8 bits. Pero a diferencia de la

mayoría de CPUs, el PIC usa arquitectura Harvard, por lo que el tamaño de las

instrucciones puede ser distinto del de la palabra de datos. De hecho, las diferentes

familias de PICs usan tamaños de instrucción distintos, lo que hace difícil comparar

el tamaño del código del PIC con el de otros microcontroladores. Por ejemplo, un

microcontrolador tiene 6144 bytes de memoria de programa: para un PIC de 12 bits

esto significa 4096 palabras y para uno de 16 bits, 3072 palabras.

[editar]Programación del PIC

Para transferir el código de un ordenador al PIC normalmente se usa un dispositivo

llamado programador. La mayoría de PICs que Microchip distribuye hoy en día

incorporan ICSP (In Circuit Serial Programming, programación serie incorporada) o

LVP (Low Voltage Programming, programación a bajo voltaje), lo que permite

programar el PIC directamente en el circuito destino. Para la ICSP se usan los pines

RB6 y RB7 (En algunos modelos pueden usarse otros pines como el GP0 y GP1 o

el RA0 y RA1) como reloj y datos y el MCLR para activar el modo programación

aplicando un voltaje de 13 voltios. Existen muchos programadores de PICs, desde

Page 40: Microprocesadores investigacion

los más simples que dejan al software los detalles de comunicaciones, a los más

complejos, que pueden verificar el dispositivo a diversas tensiones de alimentación

e implementan en hardware casi todas las funcionalidades. Muchos de estos

programadores complejos incluyen ellos mismos PICs preprogramados como

interfaz para enviar las órdenes al PIC que se desea programar. Uno de los

programadores más simples es el TE20, que utiliza la línea TX del

puerto RS232 como alimentación y las líneas DTR y CTS para mandar o recibir

datos cuando el microcontrolador está en modo programación. El software de

programación puede ser el ICprog, muy común entre la gente que utiliza este tipo de

microcontroladores. Entornos de programación basados en interpretes BASIC

ponen al alcance de cualquiera proyectos que parecieran ser ambiciosos.

Se pueden obtener directamente de Microchip muchos

programadores/depuradores (octubre de 2005):

Un buena recopilación de herramientas de desarrollo para PICs puede

encontrarse Aquí. (Mayo de 2009).

[editar]Programadores

PICStart Plus (puerto serie y USB)

Promate II (puerto serie)

MPLAB PM3 (puerto serie y USB)

ICD2 (puerto serie y USB)

ICD3 (USB)

PICKit 1 (USB)

IC-Prog 1.06B

PICAT 1.25 (puerto USB2.0 para PICs y Atmel)

WinPic 800 (puerto paralelo, serie y USB)

PICKit 2 (USB)

PICKit 3 (USB)

Terusb1.0

Eclipse (PICs y AVRs. USB.)

Page 41: Microprocesadores investigacion

Master Prog (USB)

Además es posible hacer un programador de manera casera,

en http://microspics.blogspot.com hay una lista con los más utilizados.

[editar]Depuradores integrados

ICD (Serie)

ICD2 (Serie ó full speed USB - 2M bits/s)

ICD3 (High speed USB - 480M bits/s)

[editar]Emuladores

Proteus - ISIS

ICE2000 (puerto paralelo, convertidor a USB disponible)

ICE4000 (USB)

PIC EMU

PIC CDlite

[editar]Características

Los PICs actuales vienen con una amplia gama de mejoras hardware incorporadas:

Núcleos de CPU de 8/16 bits con Arquitectura Harvard modificada

Memoria Flash  y ROM disponible desde 256 bytes a 256 kilobytes

Puertos de E/S (típicamente 0 a 5,5 voltios)

Temporizadores  de 8/16 bits

Tecnología Nanowatt para modos de control de energía

Periféricos  serie síncronos y asíncronos: USART, AUSART, EUSART

Conversores analógico/digital  de 8-10-12 bits

Comparadores de tensión

Módulos de captura y comparación PWM

Controladores LCD

Periférico MSSP para comunicaciones I²C, SPI, y I²S

Memoria EEPROM interna con duración de hasta un millón de ciclos de

lectura/escritura

Page 42: Microprocesadores investigacion

Periféricos de control de motores

Soporte de interfaz USB

Soporte de controlador Ethernet

Soporte de controlador CAN

Soporte de controlador LIN

Soporte de controlador Irda

[editar]Variaciones del PIC

[editar]PICs modernos

Los viejos PICs con memoria PROM o EPROM se están renovando gradualmente

por chips con memoria Flash. Así mismo, el juego de instrucciones original de 12

bits del PIC1650 y sus descendientes directos ha sido suplantado por juegos de

instrucciones de 14 y 16 bits. Microchip todavía vende versiones PROM y EPROM

de la mayoría de los PICs para soporte de aplicaciones antiguas o grandes pedidos.

Se pueden considerar tres grandes gamas de MCUs PIC en la actualidad: Los

básicos (Linebase), los de medio rango (Mid Range) y los de alto desempeño (high

performance). Los PIC18 son considerandos de alto desempeño y tienen entre sus

miembros a PICs con módulos de comunicación y protocolos avanzados (USB,

Ethernet, Zigbee por ejemplo).

[editar]Clones del PIC

Por todos lados surgen compañías que ofrecen versiones del PIC más baratas o

mejoradas. La mayoría suelen desaparecer rápidamente. Una de ellas que va

perdurando esUbicom (antiguamente Scenix) que vende clones del PIC que

funcionan mucho más rápido que el original. OpenCores tiene un núcleo del

PIC16F84 escrito en Verilog.

[editar]PICs wireless

El microcontrolador rfPIC integra todas las prestaciones del PICmicro de Microchip

con la capacidad de comunicación wireless UHF para aplicaciones RF de baja

potencia. Estos dispositivos ofrecen un diseño muy comprimido para ajustarse a los

cada vez más demandados requerimientos de miniaturización en aparatos

electrónicos. Aun así, no parecen tener mucha salida en el mercado.

Page 43: Microprocesadores investigacion

[editar]PICs para procesado de señal (dsPICs)

Los dsPICs son el penúltimo lanzamiento de Microchip, comenzando a producirlos a

gran escala a finales de 2004. Son los primeros PICs con bus de datos inherente de

16 bits. Incorporan todas las posibilidades de los anteriores PICs y añaden varias

operaciones de DSP implementadas en hardware, como multiplicación con suma de

acumulador (multiply-accumulate, o MAC), barrel shifting, bit reversion o

multiplicación 16x16 bits.

[editar]PICs de 32 bits (PIC32)

Microchip Technology lanzó en noviembre de 2007 los nuevos microcontroladores

de 32 bits con una velocidad de procesamiento de 1.5 DMIPS/MHz con capacidad

HOST USB. Estos MCUs permiten un procesamiento de información increíble con

un núcleo de procesador de tipo M4K.

[editar]PICs más comúnmente usados

PIC12C508/509 (encapsulamiento reducido de 8 pines, oscilador interno,

popular en pequeños diseños como el iPod remote).

PIC12F629/675

PIC16F84  (Considerado obsoleto, pero imposible de descartar y muy popular)

PIC16F84A (Buena actualización del anterior, algunas versiones funcionan a 20

MHz, compatible 1:1)

PIC16F628A (Es la opción típica para iniciar una migración o actualización de

diseños antiguos hechos con el PIC16F84A. Posee puerto serial, módulos de

comparacion análoga, PWM, módulo CCP, rango de operación de voltaje

aumentado, entre otras )

PIC16F88 (Nuevo sustituto del PIC16F84A con más memoria, oscilador interno,

PWM, etc que podría convertirse en popular como su hermana).

La subfamilia PIC16F87X y PIC16F87XA (los hermanos mayores del PIC16F84

y PIC16F84A, con cantidad de mejoras incluidas en hardware. Bastante común

en proyectos de aficionados).

PIC16F886/887 (Nuevo sustituto del 16F876A y 16F877A con la diferencia que

el nuevo ya se incluye oscilador interno).

Page 44: Microprocesadores investigacion

PIC16F193x (Nueva gama media de PIC optimizado y con mucha RAM, ahora

con 49 instrucciones por primera vez frente a las 35 de toda la vida).

PIC18F2455 y similares con puerto USB 2.0

PIC18F2550 manejo de puertos USB 2.0 y muy versatil.

PIC18F452

PIC18F4550

dsPIC30F2010

dsPIC30F3014

dsPIC30F3011 (Ideales para control electrónico de motores eléctricos de

inducción, control sobre audio, etc).

PIC32 (Nueva gama de PIC de 32 bits, los más modernos ya compatible con

USB 2.0).

[editar]PICs en Internet

Se puede encontrar mucha información y documentación sobre PICs en Internet

principalmente por dos motivos: el primero, porque han sido muy usados para

romper los sistemas de seguridad de varios productos de consumo mayoritario

(televisión de pago, Play Station...), lo que atrae la atención de los crackers; y

segundo, porque el PIC16C84 fue uno de los primeros microcontroladores

fácilmente reprogramables para aficionados. Hay muchos foros y listas de

correo dedicados al PIC en los que un usuario puede proponer sus dudas y recibir

respuestas.

Pero también podemos enfocar el tema de internet a la posibilidad que se tiene de

desarrollar con estos, Sistemas SCADA vía Web debido a que pueden adquirir y

enviar datos al puerto serial de un computador utilizando transmisión UART y el

protocolo RS232, o la posibilidad de implementar el protocolo TCP/IP directamente.

Efectivamente, los microcontroladores en general, y los de la empresa Microchip en particular, necesitan de un circuito electrónico auxiliar que nos permita transferirles desde el ordenador el programa que hemos escrito para ellos.Hay muchas maneras de encarar este problema, y en general se

Page 45: Microprocesadores investigacion

suele utilizar alguno de los puertos disponibles en cualquier ordenador para este fin. Así es que en el mercado es posible conseguir “quemadores” de PICs con conexión para puerto USB, paralelo o serie (RS-232). Por razones de simplicidad en el diseño y por ser seguramente una de las alternativas más económicas, es que en este artículo vamos a explicar paso a paso como construir el programador JDM, con conexión serial. No solo nos permitirá grabar datos en los micros más comunes, de 8, 18, 28 y 40 pines, sino que también lo podremos utilizar para grabar y leer varios tipos de memorias.

Circuito eléctrico del programador.Los microcontroladores de Microchip (PICs) se programan mediante un protocolo tipo serie. Se necesitan dos tensiones de alimentación para poder llevar a cabo la programación: una de 4.5v a 5.5v (VDD) y otra comprendida entre 12v y 14v (VPP), que es la que indica al PIC que va a ser programado, para que el cambie la función que realizan los pines I/O implicados en la programación. Los pines implicados en la programación varían de un microcontrolador a otro, pero en general, los de un mismo numero de pines (8, 18, etc.) tienen las mismas patitas asignadas a la programación, lo que nos permite construir programadores que sirvan para mas de un PIC.En el caso del 16F84A, 16F628A y casi todos los PIC más populares de 18 pines, se utilizan los siguientes pines durante la

Page 46: Microprocesadores investigacion

programación, y son los que se indican en la tabla al final de esta página.Es muy recomendable leer la hoja de datos de Microchip sobre este tema (son unas 16 paginas, y lo encuentran en los links que recomendamos en este articulo) dado que es conveniente conocer el mecanismo implicado en la programación (tiempos, señales, etc). El documento se refiere específicamente a la familia 16F8x, pero los demás no difieren demasiado de lo allí expuesto.Con estos conceptos en mente, podemos pasar a la construcción de nuestro circuito programador, que será el encargado de transferir el programa que escribamos en la PC a la memoria FLASH del PIC. Esta es una memoria no volátil, de bajo consumo, que se puede escribir y borrar en el circuito integrado (al igual que las EEPROM). Microchip comercializa dos microcontroladores prácticamente iguales que sólo se diferencian en que la memoria de programa de uno de ellos es tipo EEPROM y la del otro tipo Flash. Se trata del PIC16C84 y el PIC16F84, respectivamente. Además de esta memoria, casi todos los PICs también disponen de una memoria de datos de lectura y escritura no volátil, (esta del tipo EEPROM). De esta forma, un corte en el suministro de la alimentación no ocasiona la pérdida de la información, que está disponible al reiniciarse el programa. Por ejemplo, el 16F84 dispone de 64 bytes de memoria EEPROM para contener datos, y los programas que creemos pueden leer y escribir en ella.

Pines utilizados durante la grabación.

La construcción de un programador de PICs puede ser un proyecto muy simple o muy complicado, de acuerdo a las características que necesitemos incluir en el. En nuestro caso, dado que estamos desarrollando un circuito que sea lo mas didáctico posible, vamos a intentar mantener las cosas lo mas simples posible.Si nos damos una vueltita por internet, vamos a ver infinidad de circuitos programadores, algunos con alimentación externa y

Page 47: Microprocesadores investigacion

otros no, por puerto serial, paralelo o USB, para un solo modelo de PIC o para varios, etc.El programador que construiremos se conoce como “JDM”, por las iniciales de su creador (Jens Dyekjær Madsen). Existen muchas variantes de el, pero básicamente todas tienen características muy similares. Es un circuito muy simple, pero que tiene varias ventajas que lo hacen muy interesante:

>Se conecta al puerto serie, que generalmente en cualquier PC esta disponible.>Existe software gratis para utilizarlo, incluso bajo DOS, LINUX y por supuesto Windows (incluido WinXP)>Sirve para programar varios modelos de PICS (PIC12C5XX, 12C67X, 24CXX, 16C55X, 16C61, 16C62X, 16C71, 16C71X, 16C8X, 16F8X entre otros ) y también para leer/escribir varios chips de memoria (24Cxx ). Otros microcontroladores también pueden ser programados mediante un adaptador.>Dispone del conector ICSP (In-Circuit Serial Programming) para la programación de microcontroladores sin necesidad de desmontarlos de su placa de circuito impreso.>No necesitamos de una fuente de alimentación externa, ya que se alimenta directamente del puerto de la PC.>Su costo es muy bajo, los componentes necesarios difícilmente nos cuesten mas de 3 o 4 u$s y son muy fáciles de conseguir.

Una aclaración importante antes de seguir adelante: el hecho de que el programador se conecte a un puerto serie RS-232 de la PC no significa que el protocolo utilizado para comunicar la PC y la placa del programador sea este, de hecho se puede adaptar este circuito para conectarlo al puerto paralelo e incluso USB. Como dijimos antes, los tiempos, y las señales necesarias para programar los PICs dependen de un protocolo especifico desarrollado por Microchip, por lo que utilizamos el puerto como vehiculo para llevar los bits al PIC y para obtener las tensiones necesarias para la programación, pero utilizando un programa y un protocolo especifico para esta tarea.

En las imágenes que acompañan este artículo encontraran el esquema eléctrico y el trazado del circuito impreso necesario para montar todos los componentes. La forma de construir un

Page 48: Microprocesadores investigacion

circuito impreso de manera muy fácil y rápida, con resultados excelentes, está explicada al detalle en un artículo de NeoTeo. Una vez que tengamos el circuito impreso listo, agujereado y bien limpio (libre de gratitud), procedemos a soldar los componentes. Son unos pocos y no debería haber problemas. Es preferible soldar primero los puentes, el zócalo para el PIC, y luego los demás componentes, teniendo cuidado de respetar el sentido en que colocamos los diodos, transistores y los condensadores, si no el programador no funcionara. Deberemos decidir si usamos una ficha DB9 o DB25, y soldar un cable plano de al menos 5 hilos de aproximadamente un metro de largo entre la plaqueta y la ficha, por supuesto teniendo cuidado de no equivocarnos con la numeración de los pines (ver recuadro para conocer la disposición de pines de ambos conectores).Como ocurre con cualquier proyecto de este tipo, y más si lo vamos a conectar a un puerto de nuestro ordenador, conviene revisar concienzudamente que todas las conexiones sean correctas, y que al soldar no hayamos hecho algún “puente” que pueda darnos dolores de cabeza.

Posición de los componentes en la plaqueta.

Page 49: Microprocesadores investigacion

Circuito impreso.4 diodos 1N41481 diodo Zener de 8.2v1 diodo Zener de 5.1v1 capacitor electrolítico de 100uF x 40v1 capacitor electrolítico de 22uF x 16v2 transistores BC547B1 resistencia de 10k, ¼ de watt1 resistencia de 1.5k, ¼ de watt.1 zócalo de 18 pines

Además necesitamos un trozo de cable plano de al menos 5 hilos, un conector DB-9 o DB-25 según sea el que tengamos en la PC, y opcionalmente un conector tipo molex de 8 pines para la programación “in circuit”.El impreso lo construiremos como ya hemos visto en otras notas, o bien podemos usar un trozo de circuito impreso del que se emplea para construir prototipos, que ya tiene dibujadas las islas y los agujeros hechos, y solo tenemos que soldar puentes para “crear” nuestro diseño.

Page 50: Microprocesadores investigacion

Posición de los chips en el zócalo.Es capaz de grabar y leer prácticamente todos los PICs y casi todos los tipos de memorias que hay en el mercado. Podemos bajarlo gratuitamente de la pagina de su autor (ver links) , de donde elegiremos la versión “IC-Prog Software 1.05D Multi-Lingual” y si estamos usando Windows NT o XP también necesitaremos descargar un driver especial, que también encontraremos en ese sitio y al que deberemos descomprimir en la misma carpeta donde hayamos puesto el IC-Prog.En la misma página hay un excelente archivo de ayuda, en español, que deberíamos leer para usar sin problemas el programa.Es importante seleccionar el programador JDM en la opción “Ajustes” -> “Tipo Hardware” ya que si no será imposible grabar nada. En dicha pantalla de opciones figura un control deslizable con el nombre “Retardo I/O”. Este valor es la demora entre cada dato enviado al PIC. Cuando mas pequeño, menos tardaremos en grabar el programa, pero de acuerdo a la PC que tengamos no podremos hacerlo demasiado pequeño. 10 es un buen valor, y se pueden ir haciendo pruebas con valores mas pequeños. Cuando veamos que la grabación falla, volvemos al valor que funciono y lo dejamos así.No hay mucho mas para decir de este sencillo programa, y después de haber grabado un par de microcontroladores lo usaremos con confianza y seguridad. Por supuesto, también puede ser utilizado para el proceso inverso, es decir, leer el contenido de un microcontrolador. Esto solo será posible si al momento de grabarlo no se utilizo la opción de proteger su contenido, en cuyo caso solo podrá ser borrado y grabado pero no leído.

Page 51: Microprocesadores investigacion

IC-PROG, el software de grabación.

El programa, desde el punto de vista del PIC es una serie más o menos larga de “0” y “1”. Como seria sumamente complicado programar de esa manera, se utiliza un ASM provisto por Microchip (u otros lenguajes de alto nivel, principalmente C y Basic) que al compilarse genera un archivo con extensión .HEX que es el que se carga con la ayuda del IC-PROG y el programador en el microcontrolador.A lo largo de esta serie de notas iremos explicando como construir nuestros propios programas de alto nivel, y como convertirlos en ASM. Utilizaremos una versión de BASIC, lo que significa que será muy fácil de aprender a sacar el jugo a estos chip, ya que es un lenguaje muy sencillo de aprender y probablemente muchos lectores en algún momento hayan hecho algún programa en su ordenador utilizando uno de los tantos dialectos de BASIC disponibles.La idea es que desde NeoTeo brindemos lo necesario para que el aficionado aprenda a utilizar estos chips, que hacen de la electrónica digital un hobby apasionante.

Page 52: Microprocesadores investigacion

PIC Simulator IDE, un BASIC para PIC.

Firmware o Programación en Firme, es un bloque de instrucciones de programa para propósitos específicos, grabado en una memoria tipo ROM, que establece la lógica de más bajo nivel que controla los circuitos electrónicos de un dispositivo de cualquier tipo. Al estar integrado en la electrónica del dispositivo es en parte hardware, pero también es software, ya que proporciona lógica y se dispone en algún tipo de lenguaje de programación. Funcionalmente, el firmware es el intermediario (interfaz) entre las órdenes externas que recibe el dispositivo y su electrónica, ya que es el encargado de controlar a ésta última para ejecutar correctamente dichas órdenes externas(...)

Encontramos Firmware en memorias ROM de los sistemas de diversos dispositivos periféricos, como en monitores de video, unidades de disco, impresoras, etc., pero también

Page 53: Microprocesadores investigacion

en los propios microprocesadores, chips de memoria principal y en general en cualquier circuito integrado.

Muchos de los Firmwares almacenados en ROM están protegidos por Derechos de Autor.

El programa BIOS de un ordenador es un firmware cuyo propósito es activar una máquina desde su encendido y preparar el entorno para la instalación de un Sistema Operativo complejo, así como responder a otros eventos externos (botones de pulsación humana) y al intercambio de órdenes entre distintos componentes del ordenador.

En un microprocesador el firmware es el que recibe las instrucciones de los programas y las ejecuta en la compleja circuitería del mismo, emitiendo órdenes a otros dispositivos del sistema.

Programador para PIC 16F84 y 16F87x

 

Proyecto: Programador para microcontroladores  PIC 16F84 y 16F87x  de Microchip

Fecha : 25 de Setiembre de 2001 (Actualizado 11de Noviembre de 2002)

Autor: TodoRobot 

 

Introducción:

El propósito de este proyecto fue obtener un producto simple que nos permitiese programar los principales microcontroladores con memoria Flash de la firma  Microchip.

Por sus similitudes en la forma de programar  nos decidimos a enfocarnos en los modelos 16F84, 16F84A, 16F870, 16F871, 16F872, 16F873, 16F874, 16F876 y 16F877.  La variedad nos pareció aceptable, por lo que a fin de no complicar el diseño se descartaron los demás modelos.

Dentro de la Web se pueden encontrar muchos sitios dedicados a estos microcontroladores, muy famosos entre los aficionados a la electrónica y la robótica debido a su bajo costo y grandes prestaciones.

Page 54: Microprocesadores investigacion

 

Circuito del programador:

En el documento picprog-circuit.pdf podemos apreciar el circuito a utilizar.

Si observamos el circuito, se pueden apreciar los  tres posibles encapsulados que se pueden hallar dentro de los modelos soportados por este programador  ( PIC 16F8xx ).

A pesar de sus diferencias, se puede ver que básicamente todos tienen las mismas salidas, solo que en los modelos más sencillos estas se ven reducidas. Pero a nivel programación los pines son los mismos (solo que en distinta ubicación en cuanto a número de pin).

Lo ideal sería usar tres zócalos del tipo ZIF  ( Inserción Cero ) para los tres modelos de encapsulado, es decir:  2x 9, 2x 14 y 2x 20.  En caso que el presupuesto sea muy ajustado, se puede recurrir al uso de zócalos comunes, los cuales dan un resultado bastante aceptable.

Las distintas tensiones necesarias para la programación y funcionamiento del PIC 16F8xx se controlan mediante VR1 (78L05) y VR2 (78L12). 

La alimentación de entrada debe ser provista mediante una fuente externa que pueda entregar 15 a 17v de corriente continua y aproximadamente 100mA.

La conexión al puerto paralelo de la PC se debe realizar mediante un conector db25 macho y respetando el conexionado indicado en el circuito. Estos conectores traen el número de cada pin marcado al costado del mismo con lo que no es difícil su identificación. A su vez y para mayor seguridad, en el circuito también se hace mensión al nombre que representa cada línea a usar en el LPT.

En la siguiente figura se puede apreciar el pinout correspondiente al puerto paralelo de la PC:

Page 55: Microprocesadores investigacion

 Debido a que este circuito está pensado para poder ser usado In Circuit, el mismo podría perfectamente con algunos retoques poder ser incluido dentro de un desarrollo para evitar tener que extraer el chip para su programación. Lo único que se debe tener en cuenta es que en ningún momento el pin MCLR/VPP debe ser conectado directo a VCC, ya que al intentar programar se dañarían los transistores Q1 y Q3 al quedar estos cortocircuitando VCC y GND.

Otra posibilidad muy interesante sería proveer al programador con un conector de salida tipo bornera que permita tener acceso desde el exterior a todos los puertos del micro que se está programando. De esta forma sería muy útil a la hora del desarrollo al permitirnos usar el micro sin necesidad de extraerlo del programador. En el documento salida.pdf se puede apreciar una idea para realizar el conector de salida antes comentado.

 

Software

Page 56: Microprocesadores investigacion

 

PicProg está  preparado para programar los siguientes modelos de la familia de Microchip:

16F84 16F84A 16F870 16F871 16F872 16F873 16F874 16F876 16F877

PicProg le permite Programar, Verificar y Borrar todos los modelos anteriormente detallados.

Page 57: Microprocesadores investigacion

El archivo Hexadecimal (.hex) a grabar debe ser formato Intel  INHX8M. Este es el formato estandar generado por la herramienta de desarrollo MPLAB que puede descargarse gratis en el site de Microchip.

PicProg  fue diseñado para trabajar en entorno Windows 9x.  En el archivo ZIP  picprog-v2.zip se encuentran las instrucciones así como la DLL necesaria para su funcionamiento. Debido a que Windows NT y Windows 2000 son algo limitados a la hora de permitirnos tomar control del hardware de la PC, este software no funciona en esos S.O.

El programa PicProg fue diseñado para leer la configuración a aplicar al PIC directamente desde el archivo Hexadecimal. Esta configuración es la que indicará si el PIC trabajará con Cristal (XT) o una celda RC, si se debe activar el WatchDog, etc. Para que esto sea así, esta configuración se debe incluir dentro del código fuente (ASM) antes de compilar el mismo como se puede ver a continuación:

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

El ejemplo anterior corresponde a la configuración para un PIC 16F84. En este caso se está indicando que no se usará Código de Protección (CP), no se usará WatchDog (WDT), se usará Power Up Timer (PWRTE) y se usará oscilador a crital (XT). (según nomenclatura deMicrochip).

En caso que el archivo Hexadecimal (.hex) no posea embebida la configuración, esta podrá ser realizada manualmente mediante el botón CONFIGURACION .

Así mismo PicProg tiene la capacidad de autodetectar el PIC instalado o bien también se puede realizar la selección manualmente.

 

Utilizando el software PicProg:

Para ejecutar el software, simplemente se debe debe hacer click sobre el ejecutable PicProg.exe o bien crear un acceso directo al mismo. Una vez cargado, el funcionamiento es muy simple y se encruentra explicado en la ayuda provista con el mismo.

Es importante aclarar que no es necesario borrar el PIC antes de reprogramarlo, ya que PicProg  verifica cada sector de memoria a programar y solo regraba aquellos que son diferentes al actual. De esta manera se favorece la vida útil de la memoria Flash del PIC. Por consiguiente solo es recomendable el borrado total cuando se debe regrabar un micro que fue grabado anteriormente utilizando Código de Protección (CP).

 

Circuito de prueba:

Page 58: Microprocesadores investigacion

Una vez construido el programador, lo mejor es realizar las primeras pruebas con un proyecto sencillo con el cual se tenga la certeza de su buen funcionamiento y de esa manera nos demuestre que el PIC ha sido correctamente programado.

Este programa puede ser el WALK.HEX, el cual genera un sencillo efecto de secuenciador entre cuatro LED's.

En el siguiente diagrama se aprecia el circuito a utilizar con el programa WALK.HEX:

D1, D2, D3 y D4 son los LED's que, si todo funciona correctamente, se prenderán secuencialmente hacia un lado y hacia otro.

Una vez construido, el siguiente paso es grabar en el PIC el programa WALK.HEX , y si todo ha funcionado bien los LED's deberían comenzar a prenderse secuencialmente. 

Si deseas analizar el código fuente de este programa podés descargar WALK.ASM

 

Errores:

 Consulta las Preguntas Frecuentes

 

Recomendaciones:

Page 59: Microprocesadores investigacion

En la página del fabricante Microchip, se puede encontrar gran cantidad de información necesaria para encarar cualquier proyecto con este microcontrolador.

Ahí mismo se puede descargar en forma gratuita el MPLAB, que es una estación de diseño y depuración para plataforma Windows, la cual les permitirá realizar todos los desarrollos basados en los microcontroladores PIC. 

Una vez instalado el MPLAB, podremos hallar en  C:\Archivos de programa\MPLAB\TEMPLATE\Code  los template que servirán como base para comenzar a programar. Por ejemplo el template correspondiente al PIC 16F84A es  f84atemp.asm

 

IMPORTANTE

Se debe desconectar la alimentación  del programador antes de extraer o insertar el PIC en el zócalo para evitar daños al chip, así como también al puerto paralelo de la PC.

PicProg ha sido diseñado para trabajar con archivos Hexadecimales en formato Intel  INHX8M , si se intenta usar cualquier otro formato los resultados son impredecibles. Aunque en ningún caso es peligroso para el Chip o el Programador, simplemente el programa se cargará erroneamente o no llegará a cargarse