viernes, 25 de febrero de 2011

Alarma por rotura de ventilador (Cooler)

Dentro de un ordenador, y acoplado en forma mecánica a un generoso disipador, encontramos un soplador (cooler) que tiene la vital función de mantener refrigerado al microprocesador para obtener así el mejor rendimiento en velocidad de proceso. Un grave problema suele aparecer cuando este ventilador, invadido por el polvo, la tierra y la suciedad ambiente, deja de funcionar, es decir, deja de girar. El resultado de este infortunio se refleja en comportamientos extraños de nuestro ordenador e incluso causa, en el peor de los casos, la muerte silenciosa del microprocesador. No te preocupes, en NeoTeo te ayudaremos a evitar esta situación (y otras similares) con un circuito muy sencillo y una guía paso a paso de construcción de esta alarma concebida para cuidar tus circuitos.

Las tarjetas gráficas de alta performance, los microprocesadores, algunos discos duros modernos (HDD) y la fuente de alimentación son sencillos ejemplos de sistemas que necesitan ser refrigerados dentro de un ordenador. Las altas velocidades de proceso, sumadas a las corrientes eléctricas consumidas para lograr un desempeño muy exigente, requieren una ventilación forzada de manera obligatoria. Cualquier funcionamiento incorrecto de estos elementos refrigerantes puede desencadenar un desastre de proporciones importantes y muy costosas. Tal como te mencionábamos en el sumario del artículo, no todos los dispositivos que utilizan un ventilador poseen la cualidad de interpretar cuándo la circulación de aire forzado deja de funcionar.

Una refrigeración adecuada eleva la performance de funcionamiento de un sistema

Un claro ejemplo de esta situación es el ventilador de la fuente de alimentación de un ordenador. Si este elemento deja de funcionar, puede pasar inadvertido por completo. Un soplador acoplado a un disipador en un equipo de sonido que deje de funcionar puede significar la destrucción del amplificador de audio en menos de media hora. Es decir, la acumulación de temperatura en un dispositivo electrónico que fue diseñado para ser utilizado con un disipador y un soplador no puede quedarse sin la ventilación efectiva que le corresponde. A estos ejemplos conocidos hay que sumarles los experimentos y diseños de nuestra autoría que utilizan ventiladores junto a los equipos comerciales que los incorporan cada día más.

Las bases de refrigeración para notebooks y netbooks se están volviendo muy populares

Los ordenadores portátiles y sus procesadores en encapsulado BGA que abundan dentro de las notebooks y netbooks son presas preferidas de la acumulación de temperatura, de funcionamientos inapropiados de los sistemas de ventilación y por supuesto de la suciedad y el polvillo ambiente. Con el tiempo (léase “apenas termina el período de garantía”), las soldaduras comienzan a “cocinarse y quebrarse”, provocando que los equipos comiencen a fallar en forma aleatoria e inexplicable. Es por esto que han comenzado a proliferar las bases con sopladores adicionales para incrementar la eficacia de la refrigeración y para lograr una mayor vida útil del ordenador portátil. Pero seguimos siempre con el mismo problema: nunca o rara vez nos enteramos de que los ventiladores dejan de funcionar o disminuyen su rendimiento. Sólo aquellos que “hemos” padecido esta clase de problemas sabemos de la importancia que tendría un sistema que nos brinde un alerta indicando que los ventiladores dejaron de funcionar. En NeoTeo, experimentamos con un circuito que puede resultarte muy útil y aquí te lo presentamos.

Circuito propuesto para la alarma de funcionamiento de ventiladores

La mayoría de los ventiladores económicos como los que se utilizan en las fuentes de alimentación sólo traen dos cables de conexión para alimentarlos con 12Volts. Sólo los de mejor calidad traen un tercer cable que es la referencia de velocidad de giro del motor, o lo que en forma habitual se conoce como “salida de tacómetro”. La referencia que nos entregan estos motores en ese tercer cable es una onda cuadrada cuya frecuencia guarda relación con la velocidad de giro del rotor. A mayor velocidad, mayor frecuencia y viceversa. Esta información, en nuestro circuito, será amplificada mediante T1, luego será transformada en una información de tensión continua mediante la red R3 – C2 y será comparada con la tensión existente en la entrada no inversora del amplificador operacional.

Al frenarse el motor, el nivel de tensión continua sobre C2 disminuirá hasta hacer bascular (cambiar de estado) al operacional. Este comportamiento activará T2 y logrará el encendido del LED. En este punto podemos aclarar lo que el circuito indica, es decir, podemos utilizar esta salida para comandar un optoacoplador que envíe señales de control a otros circuitos manejados por otros niveles de tensión. Podemos colocar un simple buzzer o chicharra que al aplicarle tensión (al conducir T2) comience a sonar. También puedes energizar un relé que active otros sistemas de alertas y muchas otras activaciones de cargas que te avisen de la falla y te ayuden a evitar un desastre siempre inoportuno.

El ajuste de P1 se realiza de manera muy sencilla: al activar el circuito junto con el ventilador (usarás esos mismos 12Volts para energizar el circuito; el circuito necesita saber que al ventilador le llegan los 12Volts y la señal de tacómetro), la salida del operacional estará un instante en estado alto hasta que se cargue C2 para luego pasar a un estado bajo continuo mientras el ventilador gira libremente y nuestro circuito recibe los impulsos desde el tacómetro. Ajustando el control P1, encontrarás un punto donde la salida del amplificador operacional cambia de estado. Volverás hacia la situación de tener una salida en estado bajo y controlarás que, al detener el motor con tu mano, el LED, luego de un instante, se activa. Al soltar el motor y permitir su giro normal, el LED, luego de un instante, vuelve a apagarse. Esto lo verás claramente en la demostración de funcionamiento, en el último video.

¿Y si nuestro ventilador no posee salida de tacómetro?
Para resolver esta deficiencia constructiva, basta con entender algunos aspectos del funcionamiento de un motor sin escobillas (brushless) como los que estamos intentando utilizar. En un motor convencional de escobillas, el rotor (la parte móvil) está bobinado y el estator (la carcasa, la parte fija) posee un imán permanente que se encarga de impulsar los bobinados que están siendo energizados a través de las escobillas. En los motores brushless, en cambio, la parte móvil, donde se encuentran los álabes que impulsarán el aire refrigerante, es la que posee el imán permanente y el estator (o parte fija) posee los bobinados por donde circula la corriente eléctrica. El imán permanente del rotor posee 4 polos y el estator cuatro bobinas.






Cuando el sistema es energizado siempre habrá dos polos de imán que se opondrán al campo magnético generado por el bobinado del estator. Esto provocará el impulso de arranque. Los polos del imán, además, se encargarán de activar (o no) el Switch Hall que tendrá como misión desconectar los bobinados que no ofrezcan energía de movimiento al rotor. Cuando el rotor gira, los polos frente al Switch Hall cambian y, por lo tanto, el estado lógico de salida de este dispositivo cambia y se alternan las bobinas que pasan a estar energizadas. Este proceso se repite a medida que el rotor gira y los polos del imán alternan el estado de salida del Switch Hall. Por lo tanto, allí estará nuestra conexión de referencia de velocidad: en la salida del Switch Hall





La identificación de este terminal es muy simple. De los tres, uno se conecta a los 12Volts de alimentación o, en algunos casos, al cátodo de un diodo que proviene de la alimentación. Es decir, será muy sencillo identificar la entrada de 12Volts. Otro, conectará en forma directa a GND y, por último, el tercer terminal será la salida del Switch Hall. Realmente muy fácil. Intenta utilizar un cable de un color diferente al rojo y negro empleados en la conexión de energía para que sea notable la diferencia y así evitar errores de conexión. Por supuesto que si posees un osciloscopio, puedes hacer el ensayo de controlar la onda cuadrada que resultará a la salida de este tercer cable que has agregado, tal como puedes ver en el siguiente video.



Por último sólo te resta montar el circuito. Nosotros hemos realizado el montaje en un protoboard pero tú puedes utilizar cualquier placa universal o bien realizar un impreso dedicado al control del funcionamiento del soplador. Observa en el siguiente video que el LED tiene un pequeño retardo de respuesta, que no es instantáneo en su reacción. Tal como te aclaramos, esto se debe a la constante de tiempo de la red R3 – C2. Si en tu caso deseas una mayor velocidad de acción de la protección, puedes “jugar” con estos valores hasta lograr los tiempos adecuados a tu necesidad. Ten en cuenta que deberás realizar un circuito para cada ventilador que quieras controlar. No puedes utilizar un circuito único para varios sopladores. Utilizando un LM358 puedes controlar hasta 2 motores y, si eliges un LM324, ya tienes la posibilidad de trabajar con cuatro unidades.



Como has visto, el circuito es muy simple y está al alcance constructivo de cualquier experimentador. No requiere componentes especiales ni costosos, sólo un poco de ganas de experimentar y aprender. Una conexión muy sencilla al Switch Hall dentro del motor brushless, que te permite transformarlo en un motor con salida de tacómetro, y un amplificador operacional simple, utilizado como comparador de tensiones, te ayudarán a cuidar tu electrónica más preciada que siempre está amenazada por la temperatura extrema. A partir de ahora, el calor y el temor constante de que un ventilador deje de funcionar son cosas del pasado. Anímate, la construcción es muy fácil y los beneficios son muy grandes. Puedes adaptar esta idea o concepto a tus necesidades y brindarás una protección activa y permanente a cualquier sistema refrigerado con sopladores de aire. Cuéntanos tus experiencias. Cuéntanos cuántas veces un ventilador que dejó de funcionar arruinó tu equipo. Tu testimonio puede servir para convencer a muchos de la utilidad de esta construcción.

Fuente:
http://www.neoteo.com/alarma-por-rotura-de-ventilador-cooler.neo

Un reloj de otro planeta (DIY)

En realidad este artículo debiera llamarse “Reloj Estelar” o “Planetario” ya que con él podremos lograr algunas cosas muy particulares que no se podrían obtener con un reloj convencional, tal y cual los conocemos. Del mismo modo en que semana a semana te acercamos proyectos propios, también encontramos en la red cosas que valen la pena ser destacadas. El reloj que hoy te presentamos puede ser una herramienta muy útil para aquellos amantes de la astronomía y que se apasionan, por ejemplo, con observar la evolución (en forma y tamaño) de la mancha roja de Júpiter y necesitan conocer a qué hora (de Júpiter) se puede observar la mancha desde la Tierra. 24 horas en la Tierra no equivalen a un día marciano o venusiano, por lo tanto, si te interesa saber si ahora es mediodía en Venus no dejes de construir este reloj.

Relojes pueden haber cientos o miles en el mercado, pero un artefacto que sea capaz de ofrecerte en simultáneo la hora de: La Tierra, Venus, Marte, Júpiter y La Luna entre otros, no es algo tan sencillo de encontrar. Otra de las características sobresalientes de este montaje es que te permitirá disponer de 16 contadores de tiempo independientes, con alarmas individuales (para alertarte sobre eventos esperados) e incluso te ofrecerá la información en formato de hora “Juliana”. Ésta última es muy importante para los astrónomos ya que la utilización del calendario Juliano es habitual para esta actividad en lugar del clásico calendario Gregoriano que acostumbramos a usar en nuestra cultura occidental. Por lo tanto, esta característica le agrega al reloj características muy especiales, útiles e importantes. Construido por Alexander Avtanski con un PIC 16F877, un LCD alfanumérico convencional y un teclado en desuso, este proyecto se destaca por la facilidad de construcción y por su utilidad de aplicación. Observa el circuito de lo que él ha dado en llamar “Mars Clock” y comprueba tú mismo lo fácil que será su realización.

Circuito del "Mars Clock" de Alexander Avtanski

Alexander ha utilizado para su construcción el gabinete de un antiguo modem telefónico al que, con habilidad mecánica y luego de quitar todo lo que no era útil dentro de la caja, logró incorporarle todos los elementos necesarios que componen el reloj. Como se puede ver en las imágenes estos son apenas el display LCD, el teclado numérico y la placa con el microcontrolador. Para la parte “sonora” de la alarma utilizada en el diseño se valió de componentes existentes en la placa original del modem. También reutilizó una parte de la fuente de alimentación y un conector externo para permitir la programación inicial del microcontrolador. En tu caso, estas cosas pueden ser agregadas a la placa principal que contiene el PIC de la manera en que estamos acostumbrados a realizar en nuestros montajes.

Siempre encontraremos algún viejo equipo dispuesto a "donar" sus órganos
La placa con el PIC debe tener un tamaño adecuado para el gabinete a utilizar
El sistema debe quedar compacto y organizado de manera prolija

Con el código disponible en la web del autor para poner en funcionamiento el sistema se destacan algunas funciones que Alexander explica de manera detallada y clara. El display utilizado (16 caracteres por 2 renglones) mostrará, en el primer renglón, la hora en el formato habitual que conocemos (hh:mm:ss) y el nombre del contador (o Timer) seleccionado (recuerda que puedes seleccionar hasta 16 contadores horarios diferentes) mientras que en el segundo renglón lo hará en el formato Juliano. Para aquellos que no lo conozcan, el formato Juliano expresa la hora de manera muy sencilla con un número que va desde el cero al uno y hasta con 15 decimales. La hora 0 es a las 12:00:00 y la hora 1 se completaría a la misma hora del día siguiente. Sin embargo, la hora 1 no se encontrará en este reloj ya que luego de las 11:59:59 (0.999988425925926), pasará a indicar la hora 0 nuevamente. Es decir, según la utilidad que nos facilita Alexander en su web podemos comprobar que a las 05:43:08 serán, en formato Juliano, las 0.738287037037037. Además, veremos que siempre el reloj estará indicando un número que se inicia con un cero seguido de todos los decimales ya que este reloj no contabiliza fechas sino horas.

Aspecto que presenta el display al ofrecer su información

Como te mencionamos desde el inicio, este reloj permite trabajar con 16 temporizadores diferentes (todos en simultáneo si así lo programas), asignar una alarma a cada reloj y especificar el tipo de acción que deseamos luego de ejecutarla. Esto es, que el reloj continúe contando de manera normal o que realice un reinicio (Reset) en el conteo horario (volver a 00:00:00) y hasta detener la cuenta y dejar indicado en el display el tiempo transcurrido. Otra de las particularidades de este llamativo reloj es la posibilidad de “descontar” en lugar de contar hacia adelante el tiempo transcurrido. Es decir, podemos programar uno de los contadores como cuenta regresiva para anunciar un evento mientras los otros sistemas avanzan de manera normal en la cuenta horaria. Aunque no parezca muy sencillo de comprender a simple vista, el diagrama que el autor propone en la web ofrece una guía para recorrer el menú que permite ajustar cada función, de cada uno de los temporizadores utilizados.

Menú de ajuste del reloj

En la página dedicada a la explicación del funcionamiento del código encontrarás todas las instrucciones y posibilidades para adaptar el firmware a tu hardware según los materiales que utilices para construir este dispositivo (cristal, teclado, etc.). La precisión obtenida luego de los ajustes necesarios a las instrucciones indicadas en la web es de menos de un segundo en una semana, cifra muy buena e interesante. Para lograr esto, Alexander se basó en la utilización del Timer1 del PIC que, a diferencia del Timer0 que trabaja con un contador de 8 bits, utiliza un contador de precisión de 16 bits que le brindan al reloj una mayor exactitud final. Por supuesto, las variaciones horarias (en atraso o en adelanto) se regirán además por variables de hardware que incluyen, por ejemplo, la calidad del cristal utilizado junto al PIC y su deriva en frecuencia de acuerdo a la temperatura ambiente. El código fuente disponible (hecho en ASM) permite ajustar estos imponderables y llevar al reloj a un régimen de trabajo correcto.

¿Ya tienes decidido donde construirás tu reloj?

Con estas posibilidades y con el código que ofrece el autor, puedes realizar contadores de tiempo que no “trabajen” a un ritmo de avance cada un segundo. Suponiendo que decidas, como dice el autor, realizar un reloj para conocer la hora de Marte, tú verás que este desarrollo se comportará como un reloj tradicional, pero el tiempo que tarde en llegar desde 00:00:00 hasta 23:59:59 ocupará 24 horas, 39 minutos y 35,24 Segundos que es el tiempo que dura un día en Marte. A este día en Marte también se lo suele denominar “sol” (un día solar). Por contradictorio que parezca, a pesar de su enorme tamaño, un día de Júpiter tiene una duración aproximada de 9 horas y 54 minutos. De la misma manera, podríamos ajustar los 16 temporizadores de este reloj para estar atentos a muchos eventos que suceden en situaciones temporales muy diferentes a las observadas en la tierra. Visita la página de Alexander Avtanski y descubre este reloj tan llamativo, útil y eficaz. Disfrútalo.

Fuente:
http://www.neoteo.com/un-reloj-de-otro-planeta-diy.neo

jueves, 24 de febrero de 2011

Diseño de circuitos impresos con KiCad


Este es un tutorial para aprender
los conceptos básicos del software KiCad (versión del 16/2/2009)
utilizando la versión para Ubuntu Jaunty Jackalope 9.04.

Contenido
  • Diseño de un circuito
  • Notación de componentes
  • Lista de componentes
  • Verificación eléctrica
  • Creación de la red
  • Creación de componentes para el diseño
  • Diseño del PCB
  • Creación de componentes para PCB
  • Creación de bibliotecas de componentes
  • Importación de componentes de EAGLE
  • Importación de circuitos de EAGLE
  • Creación de zonas en PCB (planos de masa)
  • Autorouting
  • Autoplacement

Definiciones

Diagrama electrónico

El diagrama electrónico o esquema electrónico es una representación gráfica de un circuito eléctrico.
Muestra los diferentes componentes del circuito de manera simple y por medio de símbolos estandarizados. El conjunto de los componentes e interconexiones en el esquema generalmente no corresponde a sus ubicaciones físicas en el dispositivo terminado.

PCB - Placa de Circuito Impreso
Es el lugar donde los componentes electrónicos se ajustan mecánica y electrónicamente a través de pistas de cobre y un material no conductor.
Vista 3d del circuito impreso se logra por la carga de los datos referenciales a tres dimensiones de los componentes de un circuito y la lista de pistas del mismo.
Placa de circuito impreso sin componentes
Placa de circuito impreso con componentes

Diseño electrónico
La construcción de una placa de circuito impreso puede completarse en forma manual (utilizando lápiz y papel para el esquemático, un rotulador indeleble para dibujar las pistas a mano alzada y toda la suerte del mundo si el proyecto es más complicado que cinco componentes y 30 pistas Grin)

Diseño electrónico automatizado
Un software de diseño electrónico automatizado permite la construcción de una placa de circuito impreso con la ayuda de información relativa de cada componente, facilita la edición y automatiza tareas repetitivas.

Otras herramientas de diseño
No voy a hablar de otros productos, muchos conocerán a Eagle, Ares, PCBWizard, Altium, etc, este tuto intenta brindar a los usuarios una simple introducción al diseño con un software GPL y no crear un debate o comparaciones que en muchos casos puede resultar parcial, incompleta y/o injusta.

Leer más... (79 páginas en el documento completo que puedes descargar en el PDF aquí abajo).

Descargar:
PDF 4.46 MB

Autor: Feliz
Web de origen: http://sergiols.blogspot.com

miércoles, 23 de febrero de 2011

Funciones Discretas

Estaba con ganas de escribir un poco y me decidí por este artículo que no tiene nada de novedoso, de hecho es bastante obsoleto pero quería dejar un poco de la historia de como comenzaron, ya en la era de los semiconductores, las famosas funciones que hoy utilizamos a diario en los microprocesadores sin siquiera darnos cuenta…. pero con un pequeño toque personal… hechas con transistores y probadas.

Sin más preámbulos vamos al artículo:

FUNCION IGUALDAD

Es aquella función en cuya salida ( Y ) existe el mismo valor que en su entrada (A).

Su tabla de verdad y símbolo serían los siguientes:

igualdad

y este su circuito ( clic en la imagen para agrandar )

f-igualdad

yendo de derecha a izquierda nos encontramos con lo que denominaremos la etapa de salida conformada por R6, Q3, T3, D2 y Q4, cuya misión es la de suministrar un nivel de tensión alto o bajo en la salida ( D3 y R7 ).

Supongamos que la salida este a un nivel bajo, entonces el colector de Q4 deberá tener un nivel de tensión próximo a los 0V; para que ello ocurra Q4 deberá estar en condición de saturación por el contrario si la salida estuviese en un estado alto Q3 deberá estar en saturación haciendo que la corriente fluya a través de R6 y D2 respectivamente, de lo anterior se deduce que R6,Q3 y D2 constituyen la etapa de salida para los niveles altos y Q4 para los niveles bajos.

Un punto a tener en cuenta es que Q3 y Q4 no pueden ser activados simultáneamente ya que de ese modo se produciría un cortocircuito en la salida, es por eso que se realiza la denominada etapa de excitación conformada por R4,Q2 y R5 para que esto no ocurra.

Observemos el circuito, si no hay corriente de base en Q2 este se encontrará en corte presentando una gran impedancia entre colector y emisor y haciendo que la corriente fluya a través de R4 hacia la base de Q3 poniéndolo en estado de saturación y, debido a que Q2 no se encuentra conduciendo, la caída de tensión en la resistencia R5 es 0V dejando al corte Q4; por el contrario si existiese corriente en la base de Q2 este pasaría al estado de saturación cayendo abruptamente la tensión de base de Q3 que lo llevaría al corte y aumentando del mismo modo la caída de tensión en R5 haciendo que Q4 se sature.

Por último quedaría por ver la etapa de entrada y adaptación compuesta por Q1, D1,R1 y R2, como se puede apreciar el funcionamiento con respecto de Q2 es mas que simple, el tema aquí esta en la entrada ya que si no existiese D1 y R3 cualquier tensión que superase los 0,25V sería tomada como nivel alto por Q1. Veamos, la tensión aplicada a la entrada atraviesa R1 y D1 reflejándose en en la unión BE de Q1 produciendo caídas de tensión en cada uno de los elementos siendo la más importante aquí la producida en D1. Como no va a circular corriente hasta que el nivel de entrada supere los 0,9V Q1 se mantiene en estado de corte y Q2 en saturación, superada esa tensión se invierte el proceso recién cuando Q1 alcance los 1,2V aproximadamente ( 0,9V + 0.25V ).

Hasta aqui les parece interesante?… veamos entonces la

FUNCION INVERSION

Primero su simbolo y su tabla de verdad

inversor

y su circuito correspondiente

f-inv

Como podemos apreciar tanto la etapa de salida ( R4, Q3, D2, Q4 ) como la de excitación ( R2, Q2, R3 ) son iguales al ejemplo anterior así que solo nos vamos a concentrar en la etapa de entrada y adaptación formada por D1, Q1 y R1.

A simple vista notamos que la disposición de Q1 cambió, la entrada de señal es ahora a través de su emisor; de esta forma circulará a través de R1 una corriente que sera la suma de la corriente circulante por la unión BE de Q1 más la circulante por la unión BC de ese mismo transistor y que circula a su vez por la unión BE de Q2.

Ante la presencia de una señal lógica baja la unión BE de Q1 quedará polarizada de manera directa haciendo que la circulación de corriente lo ponga en estado de saturación; como la tensión CE de Q1 será muy pequeña en este estado, Q2 estará al corte. Si por el contrario la señal de entrada posee un nivel lógico alto circulará corriente por la unión BC de Q1 haciendo que Q2 entre en estado de saturación.

El diodo D1 esta colocado para proteger la entrada de Q1 ante un eventual valor negativo de tensión; llegado el caso la entrada vería solamente el valor de tensión directa del diodo D1.

FUNCION OR

Símbolo y tabla de verdad

or

Circuito

f-or

Nuevamente no hay modificaciones en las etapas de salida y excitación pero como esta función posee dos entradas ( A y B ) la etapa correspondiente se duplica; una entrada ( A ) esta constituida por R1, D1, Q1 y R3 y la otra ( B ) por R2, D2, Q2 y R5 quedando R4 que es común a ambas entradas.

Si la entrada A esta a nivel alto circulará corriente por R1, D1, la unión BE de Q1 y R3 haciendo que Q3 quede al corte, lo mismo sucederá si la entrada B esta en alto con la diferencia obvia que la corriente circulará esta vez por R2, D2, la unión BE de Q2 y R5.

En caso que ambas entradas estén a nivel alto Q1 y Q2 entrarían en saturación simultáneamente manteniendo el estado de corte de Q3, en el caso contrario ( ambas entradas a nivel bajo ) Q1 y Q2 entrarían en corte por no circular corriente en la unión BE de ambos lo cual hará que la tensión de colector sature a Q3.

Resumiendo podemos decir que:

Cuando A y B = 0 Q1 esta en corte, Q2 esta en corte, Q3 en saturación y la salida = 0
Cuando A = 0 y B = 1 Q1 esta en corte, Q2 en saturación, Q3 en corte y la salida = 1
Cuando A = 1 y B = 0 Q1 esta en saturación, Q2 en corte, Q3 en corte y la salida = 1
Cuando A y B = 1 Q1 esta en saturación, Q2 esta en saturación, Q3 en corte y la salida = 1

FUNCION AND

Símbolo y tabla de verdad

and

Circuito

f-and

Como en los casos anteriores la etapa de salida no difiere, si lo hace la etapa de excitación que es doble ( Q6 y Q3 ). Para que a la salida exista un nivel alto tanto Q6 como Q3 deberán estar al corte, si cualquiera de ellos entra en estado de saturación la salida pasará a nivel bajo, o sea que aquí es donde se produce la función AND.

Con respecto a las entradas ambas se comportan del mismo modo que lo explicado en la función OR e IGUALDAD con la diferencia que las salidas por colector van a etapas independientes de excitación ( Q1-Q6 y Q2-Q3 ) por lo tanto creo que no hay mayores problemas en entender el funcionamiento. Solo diremos que la entrada A estará compuesta por R1, D1, Q1, R3 y R4 y la entrada B por R2, D2, Q2, R5, y R6.

Resumiendo:

Si A = 0 y B = 0 Q1, Q2, D1, D2 y Q4 no conducen; Q6,Q3 y Q5 estan en saturación y la salida = 0
Si A = 0 y B = 1 D1, Q1, Q3 y Q4 no conducen; D2, Q2, Q6 y Q5 si conducen y la salida = 0
Si A = 1 y B = 0 D2, Q2, Q6 y Q4 no conducen; D1, Q1, Q3 y Q5 si conducen y la salida = 0
Si A = 1 y B = 1 Q6, Q3 y Q5 no conducen; D1, D2, Q1, Q2, y Q4 si conducen y la salida = 1

FUNCION NOR

Símbolo y tabla de verdad

nor

Circuito

f-nor

Aquí las etapas de salida y de excitación son iguales a las mostradas en el circuito anterior y las etapas de entrada son iguales a la explicada en el circuito de la función INVERSION con la diferencia que aquí se duplican, la entrada A estará compuesta por Q1, D1 y R1 y la entrada B por Q2, D2 y R2.

Resumen:

Si A = 0 y B = 0
BE Q1 en conducción, BC Q1 en corte
BE Q2 en conducción, BC Q2 en corte
Q3, Q4 y Q6 en corte; Q5 en conducción
Salida = 1

Si A = 0 y B = 1
BE Q1 en conducción, BC Q1 en corte
BE Q2 apenas conduce, BC Q2 en conducción
Q3 y Q5 en corte; Q4 y Q6 en conducción
Salida = 0

Si A = 1 y B = 0
BE Q1 apenas conduce, BC Q1 en conducción
BE Q2 en conducción, BC Q2 en corte
Q4 y Q5 en corte; Q3 y Q6 en conducción
Salida = 0

Si A = 1 y B = 1
BE Q1 apenas conduce, BC Q1 en conducción
BE Q2 apenas conduce, BC Q2 en conducción
Q3, Q4 y Q6 en conducción; Q5 en corte
Salida = 0

FUNCION NAND

Símbolo y tabla de verdad

nand

Circuito

f-nand

El circuito a esta altura del artículo no debería presentar mayores problemas de interpretación, la etapa de salida ya es conocida, la etapa de excitación es la misma que utilizamos en las funciones OR, INVERSORA e IGUALDAD y la etapa de entrada en la función INVERSORA y NOR y solo difiere de la anterior en que los colectores de ambas entradas van unidos a un único punto, la base de Q3 debido a que la etapa de excitación es simple y no doble.

Resumiendo:

Si A = 0 y B = 0
BE Q2 en conducción, BC Q2 en corte
BE Q1 en conducción, BC Q1 en corte
Q3 y Q5 en corte; Q4 y D3 en conducción
Salida = 1

Si A = 0 y B = 1
BE Q2 en conducción, BC Q2 en corte
BE Q1 apenas conduce, BC Q1 en conducción
Q3 y Q5 en corte; Q4 y D3 en conducción
Salida = 1

Si A = 1 y B = 0
BE Q2 apenas conduce, BC Q2 en conducción
BE Q1 en conducción, BC Q1 en corte
Q3 y Q5 en corte; Q4 y D3 en conducción
Salida = 1

Si A = 1 y B = 1
BE Q2 apenas conduce, BC Q2 en conducción
BE Q1 apenas conduce, BC Q1 en conducción
Q3 y Q5 en conducción; Q4 y D3 en corte
Salida = 0

FUNCION OR EXCLUSIVA

Símbolo y tabla de verdad

orexc

Circuito

f-orexc

Una vez mas las etapas de salida y exitación se corresponden a las ya vistas, como las veces anteriores duplicamos la etapa de entrada para soportar A y B en las cuales los componentes se distribuyen de la siguiente manera: para la entrada A corresponderán D1, Q2 y R2 y para la entrada B D2, Q1 y R1 siendo R3 parte común a ambas.

Si se observa con detenimiento el circuito podemos apreciar que la unión BE de Q1 y Q2 se encuentran conectadas a través de una resistencia de limitación ( R1 y R2 ) respectivamente, si seguimos observando apreciaremos que la entrada A llega a través de la resistencia R2 a la base de Q2 y a su vez también al emisor de Q1; de modo similar la entrada B llega a la base de Q1 y al emisor de Q2. Esta conexión permite mantener en estado de corte a Q1 y Q2 siempre que los niveles de A y B sean iguales; cuando estos varíen entrara en conducción el transistor afectado pasando a la saturación y haciendo entrar en corte a Q3.

Resumiendo:

Si A = 0 y B = 0
BE Q2 en corte, Q2 en corte
BE Q1 en corte, Q1 en corte
Q3 y Q5 en saturación
Q4 y D3 en corte
Salida = 0

Si A = 0 y B = 1
BE Q2 en corte, Q2 en corte
BE Q1 en conduccion, Q1 en conduccion
Q3 y Q5 en corte
Q4 y D3 en conducción
Salida = 1

Si A = 1 y B = 0
BE Q2 en conducción, Q2 en conducción
BE Q1 en corte, Q1 en corte
Q3 y Q5 en corte
Q4 y D3 en conducción
Salida = 1

Si A = 1 y B = 1
BE Q2 en corte, Q2 en corte
BE Q1 en corte, Q1 en corte
Q3 y Q5 en saturación
Q4 y D3 en corte
Salida = 0

Espero les haya gustado esta mini explicación de compuertas discretas, quiero aclarar que esta explicación es solamente para clarificar conceptos y no debería ser usada para reemplazar dichas funciones en un circuito ya que para que las mismas fuesen fiables se deben cumplir ciertas condiciones de apareamiento en los transistores que resultaría muy difícil de obtener en la práctica, al margen de ser antieconómicas.

Descargar:
PDF 577 KB

Autor: Gariel
Web de origen: www.geglab.com.ar

Adaptador de niveles I2C bidireccional

Con el advenimiento de los microcontroladores de 3.3V se presentaba un problema con el bus I2C, este radicaba en que , a diferencia de otros protocolos de comunicación como ser SPI, las líneas del bus I2C son bidireccionales lo cual hace que si el dispositivo alimentado con 3.3V no posee entradas tolerantes a los 5V era complicado unificar criterios en microcontroladores o periféricos I2C con diferentes niveles de tensión.

Para los que entiendan el idioma sajón pueden ver el artículo en su lenguaje original dado que lo que sigue a continuación no es más que una traducción resumida y libre de la nota de aplicación de Philips Semiconductors denominada AN97055 y algún que otro bocadillo mío.

NIVELES LOGICOS DEL BUS I2C

El bus I2C especifica dos tipos de niveles lógicos:

a – De niveles fijos.
b – De niveles dependientes de la tensión de alimentación.

NIVELES FIJOS

Orientado para dispositivos que no son CMOS con niveles de tensión superiores a los 5V. Los niveles de I/O especificados son los siguientes:

Estado BAJO de entrada [VIL]: mínimo -0.5V máximo 1.5V.
Estado ALTO de entrada [VIH]: mínimo 3V máximo VDDmax + 0.5V.

Estado BAJO de salida [VOL]: mínimo 0V máximo 0.4V.
Estado ALTO de salida [VOH]: salida a colector abierto, determinada por VDD via resistor de pull-up.

NIVELES DEPENDIENTES DE LA TENSION DE ALIMENTACION

Orientado para dispositivos CMOS con niveles de tensión de 5V o inferiores. Los niveles de I/O especificados son los siguientes:

Estado BAJO de entrada [VIL]: mínimo -0.5V máximo 0.3VDD.
Estado ALTO de entrada [VIH]: mínimo 0.7VDD máximo VDDmax + 0.5V.

Estado BAJO de salida [VOL]: mínimo 0V máximo 0.4V.
Estado ALTO de salida [VOH]: salida a colector abierto, determinada por VDD via resistor de pull-up.

Los niveles lógicos del bus dependeran de las resistencias de pull-up conectadas a VDD, corrientes de fuga y, en caso de existir, las resistencias en serie con las I/O de los dipositvos conectados a él. Dichos valores deben ser seleccionados de manera tal que duralte el estado LOW del bus haya presente un mínimo de ruido igual a 0.1VDD y en el estado HIGH de 0.2VDD.

ADAPTADOR DE NIVELES BIDIRECCIONAL

A continuación vemos el esquema propuesto para adaptar dos secciones de un bus con diferentes niveles de tensión:

La sección izquierda posee resistores de pull-up y los dispositivos que van conectados a 3.3V, mientras que la sección derecha es la dedicada a los dispositivos de 5V. El adaptador es idéntico para ambas líneas del bus y consiste en un par de MOS-FET de canal N; las puertas van conectadas a la menor de las tensiones ( 3.3V ), las fuentes a la seccion de “bajo voltaje” del bus y los drenajes a la sección de “alto voltaje”.

COMO FUNCIONA

  • Caso 1: ningún dispositivo esta bajando el bus de la sección de “bajo voltaje” por lo tanto este se encontrará en estado ALTO a causa de los resistores de pull-up RP1 y RP2, la puerta y fuente de los MOS-FET se encontrarán a 3.3V por lo que su Vgs será inferior al umbral y los MOS-FET no conducirán. Esto permitirá que las lineas del bus de la sección de “alto voltaje” permanezcan en estado ALTO debido a sus resistencias de pull-up RP3 y RP4 y de ese modo ambas secciones se encontrarán en estado ALTO pero a diferentes niveles de tensión.
  • Caso2: Un dispositivo de 3.3V lleva el bus a un estado BAJO entonces la fuente del MOS-FET se hace baja mientras que la puerta permanece a 3.3V; la Vgs crece por arriba del umbral de disparo haciendo que el MOS-FET conduzca, de ese modo el bus de la seccion de “alto voltaje” se hace BAJO debido al estado BAJO de la sección de 3.3V y debido a la conducción del MOS-FET.
  • Caso3: Un dispositivo de 5V lleva el bus a un estado BAJO, la sección de “bajo voltaje” en primer instancia bajará vía el diodo drenaje-sustrato interno del MOS-FET hasta que la Vgs supere el valor de umbral y conduzca el MOS-FET con lo cual la línea del bus de la sección de “bajo voltaje” pasará a un estado BAJO vía la conducción del MOS-FET.

Los 3 casos enumerados muestran que los niveles lógicos son transferidos en ambas direcciones del bus; en el caso 2 y 3 se realiza una función “wired AND” entre ambas líneas del bus tal como lo requieren las especificaciones del I2C.

Se pueden utilizar otros niveles de tensión aparte de los enumerados siempre que la sección izquierda del circuito sea la de menor voltaje; la maxima tensión no es crítica en tanto y en cuanto el MOS-FET pueda manejarla pero debe tenerse en cuenta que a mayor tensión mas lenta será la caída de tension o “falling edge” debido a que toma mas tiempo descargar el bus. La menor tensión que se podrá utilizar vendrá dada por la tensión de umbral del MOS-FET o Vgs(th).

Una característica adicional de este circuito es la aislación de la sección de “bajo voltaje” cuando la tensión de 3.3V es desconectada, en este caso la tensión se hará de 0V y los MOS-FET serán desconectados debido a que la Vgs permanecerá por debajo de la tensión de umbral; la sección de “alto voltaje” no se verá afectada y permanecerá operacional.

MODIFICACION DEL CIRCUITO

Si fuese necesario también aislar la sección de “alto voltaje” cuando la tensión se desconecta, entonces deberá utilizarse el siguiente circuito:

En este caso si la tensión de 5V es deconectada la sección se aislará del resto del bus debido a los transistores Q3 y Q4; la sección de “bajo voltaje” será también aislada en caso de desconectar los 3.3V igual que en el caso anterior pero ahora independiente de los 5V.

Debido a que este circuito es simétrico las secciones de “alto voltaje” y “bajo voltaje” pueden elegirse arbitrariamente tanto en la parte izquierda como a la derecha del circuito.

CONSIDERACIONES A TENER EN CUENTA PARA LOS MOS-FET

  • Tipo: Canal N
  • Umbral de puerta [Vgs(th)]: mínimo 0.1V, máximo 2V.
  • Resistencia en conducción [RDS(on)]: máximo 100Ω @ ID= 3mA, VGS= 2.5V.
  • Capacidad de entrada [Ciss]: máximo 100pF @ VDS = 1V, VGS = 0V.
  • Tiempos de conmutación [ton toff]: máximo 50 ns.
  • Corriente de drenaje [ID]: 10mA o superior.
Descargar:
PDF 473 KB

Autor: Gabriel
Web de origen: www.geglab.com.ar

lunes, 21 de febrero de 2011

Manejando transistores bipolares

Un tema que veo con mucha frecuencia en los foros a los que pertenezco es el desconocimiento para calcular correctamente la resistencia de base de los drivers transistorizados.

Debo asumir que el lector conoce lo básico de un transistor, como ser sus parámetros Β y hFE, asi que no voy a explayarme en ello sino especificamente en el cálculo de dicha resistencia la cual dependerá de la tensión de suministro del puerto del microcontrolador o dispositivo afín.

A los efectos prácticos vamos a asumir que con la salida de un PIC queremos controlar un relay que posee una resistencia de bobinado de 400Ω y se energiza con 12V; haciendo una cuenta rápida vemos que la corriente que circulará por dicho bobinado al ser energizado será de 30mA la cual supera los 20mA (máximos) que puede manejar la salida de un PIC.

Es evidente que debemos recurrir a un driver que maneje dicha corriente y tensión para lo cual seleccionaremos un transistor acorde, el cual podría ser un BC547B que soporta una Vce de 45V con 100mA de Ic como parámetros máximos según su hoja de datos mostrada a continuación.

Ahora pasemos al circuito a utilizar

La fórmula para calcular la resistencia de base será la siguiente:

Rbase = ((VDD – VBE) * hFE * Rcarga) / Vcarga

Donde:

  • VDD = V del PIC = 5V
  • VBE = Tensión base emisor en saturación = 700mV = 0.7V
  • hFE = Ganacia de corriente en DC ( Si el transistor va a ser utilizado como switch es conveniente tomar el valor minimo asi se garantiza su saturación). En este caso se puede apreciar que, si bien los valores de hFE van de 100 a 800, como hemos seleccionado un BC547B esa B al final nos indica que el rango de hFE será de 200 a 400 segun se puede apreciar en la última tabla de las características. Por ello tomaremos el valor de 200
  • Rcarga = R del relay = 400Ω
  • Vcarga = V del relay = 12V

Pasando entonces al cálculo la Rbase quedará:

Rbase = ((5V-0.7V)*200*400Ω) / 12V = 344000 / 12 = 28.666Ω cuyo valor comercial mas cercano será 27KΩ

Descargar:
PDF 505 KB

Autor: Gabriel
Web de origen: www.geglab.com.ar

domingo, 20 de febrero de 2011

MAX16805/MAX16806: Dimmer para LEDs

La iluminación LED está expandiéndose de una manera sorprendente tanto en el mercado de consumo como en el industrial. Hace poco tiempo resultaba raro encontrar una casa iluminada en su totalidad con LEDs; sin embargo, hoy es algo que no llama la atención. Lo mismo ocurre en un automóvil, en el alumbrado público y en muchas aplicaciones más. Para variar la intensidad lumínica de estos elementos se utiliza control por PWM y se logra una alta eficiencia con un ahorro energético considerable. El montaje que hoy te mostramos utiliza un circuito integrado de Maxim, el MAX16805/MAX16806, que te sorprenderá por su sencillez de uso y sus prestaciones. La iluminación del futuro, hoy en NeoTeo.

La serie de circuitos integrados MAX16800 de Maxim posee un rango de tensión de entrada tan interesante como alto. Preparados para trabajar hasta con 40Volts de tensión de entrada, estos Dimmers o “atenuadores activos” son ideales para aplicaciones en automóviles y en instalaciones donde se utilicen tensiones comprendidas entre 12Vots y 24Volts. Es decir, están diseñados de manera específica para que puedan ser conectados de manera directa a la batería de un coche (a su instalación eléctrica) sin necesidad de protección contra picos de tensión. Recordemos que el ámbito de un vehículo puede ser hostil para los sistemas electrónicos y en la mayoría de los casos las medidas de protección necesarias deben ser importantes. Sin embargo, en el caso de estos dispositivos, ese cuidado no requiere mayores atenciones. El circuito integrado genera una corriente constante hacia los LED que se puede establecer y pre-determinar por una resistencia específica, Rsense, que se conecta en serie con los diodos LEDs. Para mejorar la precisión y aumentar la inmunidad al ruido externo, la línea de circuitos MAX16800 utiliza una entrada configurada en modo diferencial (CS+, CS-) para determinar el sentido de la corriente y la real caída de tensión sobre Rsense.

MAX16805 y su encapsulado 20TQFN en su módulo adaptador

El mejor desempeño de un sistema de atenuación de brillo para diodos LEDs se obtiene mediante la modulación por ancho de pulso (PWM). Una de las opciones de operación de la serie MAX16800 es mediante la aplicación de una señal PWM a la entrada de habilitación. De este modo, la corriente a través de los LED se conecta o no y se apaga al ritmo establecido por la señal PWM de control externo. La inmunidad a la interferencia electromagnética (EMI) es importante en aplicaciones automotrices. Posee igual importancia el hecho de no generar EMI que pueda perjudicar el normal funcionamiento de otros sistemas electrónicos dentro del mismo vehículo. La conmutación de la corriente (al encender y apagar el/los LEDs) es, sin embargo, una fuente típica de la radiación de EMI. Por lo tanto, para reducir las emisiones de interferencias electromagnéticas durante el trabajo del PWM y la regulación del trabajo externo, los MAX16800 utilizan circuitos elaborados de manera tal que sean capaces de suavizar los bordes de la conmutación de las señales y de este modo reducir de manera notable la emisión de ruido eléctrico al exterior desde el encapsulado que alberga al circuito.

PCB del módulo para montar el MAX16805

Muchas aplicaciones de iluminación no requieren de un microcontrolador para generar la señal PWM de regulación. Los circuitos integrados “LED DriversMAX16805 y MAX16806 están disponibles para esas situaciones. Ambos pueden generar una señal PWM de manera interna con una “modulación” establecida por una tensión externa que se aplica a la entrada DIM. El MAX16806 también tiene la posibilidad de conectar un interruptor de entrada (SW) para reemplazar la configuración de un potenciómetro analógico. Es decir, ambos dispositivos pueden manejarse mediante una señal PWM externa proveniente desde un microcontrolador, además de poder funcionar de manera autónoma y solitaria gracias al ajuste de un simple potenciómetro o de un pulsador de “On-Off” (MAX16806). La detección del modo de operación es automática y el circuito integrado adopta el modo de trabajo que se le indica a través de este pin (DIM). En el caso de optar por un control mediante PWM, el dispositivo sincroniza su generador interno de PWM con la señal externa (que puede variar en un rango de frecuencias desde los 80Hz a los 2Khz) y sobre ella aplica la modulación PWM. (0 a 100% duty-cycle). Por su parte, una tensión analógica (entregada por un potenciómetro) que pueda variar entre 0,2 y 3Volts proporcionará un control total de la iluminación desde un mínimo a un máximo.

Diagrama de conexionado del MAX16805/MAX16806

En algunas aplicaciones de iluminación se realiza un seguimiento muy cuidado de las condiciones de temperatura de trabajo de los LEDs. Esta práctica se profundiza de manera especial en lugares con limitaciones de espacio donde la disipación de calor es pobre. El exceso de temperatura de trabajo de un LED reduce su vida útil y por lo tanto se contrapone a una de las principales ventajas de esta fuente de luz: su larga duración respecto a los sistemas conocidos (CFL, incandescentes, etc.). Afortunadamente, esta situación se puede evitar mediante la reducción del brillo del LED o, lo que sería lo mismo, mediante la atenuación del ciclo de trabajo del LED. El MAX16806 tiene entradas para un sensor de temperatura exterior (de trabajo de los LEDs) y posee además un sistema de control de temperatura de trabajo que evita el sobre-calentamiento del propio chip (Over Temperature Protection). Cuando un exceso de temperatura se detecta, el dispositivo aumenta la atenuación del ciclo de trabajo hasta que la temperatura vuelve a un valor aceptable. Los umbrales de temperatura y la regulación deseada se pueden programar con la interfaz serie (bus I2C) y se puede almacenar en la memoria EEPROM que trae incorporado el dispositivo. Esta característica de detección de temperatura elimina la necesidad de un disipador de calor, cuidando de este modo los costos y el ahorro de tamaño de construcción.





Como mencionamos antes, se realiza la programación de los registros del MAX16805 y en ellos podemos ajustar valores diversos como: la corriente de trabajo del sistema final, los umbrales de temperatura de los LEDs y del propio IC, los valores deseados para la excursión de la rampa que, potenciómetro mediante, determinará el nivel de iluminación entregado por los LEDs, y otras variables tales como el valor de tensión diferencial de entrada del sensor de corriente de LEDs. De todos modos, las hojas de datos del MAX16805 / MAX16806 son muy claras en cuanto a los valores que adquieren los registros a la hora de conectar el circuito integrado a la tensión de alimentación. Debemos recordar que los registros siempre retornan a un valor “de inicio” y no retienen los datos a cada corte de energía. Para estos casos, mediante el bus I2C, el sistema de control se debe encargar de leer la EEPROM interna del dispositivo y cargarla en los respectivos registros a la hora de una puesta en funcionamiento desde cero. Para el caso de la rampa que puede manejar el potenciómetro, se comprenden valores desde 0 a 3Volts. En tanto que para la Rsense, se debe considerar que sobre ella caerá una tensión de 198mV.

El montaje de los 36 LEDs blancos de 10 milímetros sobre un protoboard

Con los valores mencionados anteriormente podemos construir de manera muy sencilla nuestro Dimmer para diodos LED. Utilizando el regulador de 5Volts que incorpora el circuito integrado, podemos utilizar un resistor variable de 25K y una serie formada por una resistencia de 12K y otra de 4K7. De ese modo, sobre el potenciómetro tendremos 3Volts y una regulación en todo el rango de trabajo. Mientras tanto, para el caso de la Rsense, debemos saber de antemano cuántos diodos LED utilizaremos. En nuestro caso, que decidimos utilizar un arreglo de 36 LEDs, consideramos 12 conjuntos series (todo en paralelo) de 3 LEDs trabajando a una corriente de 20mA aproximadamente para cada rama de 3 LEDs. Esto resulta en una corriente total de 240mA. Por lo tanto, el resultado de dividir 0,198Volts (198mV) por los 0,24A (240mA) nos brinda un valor de Rsense igual a 0,825 Ohms.

Circuito utilizado en los ensayos con 36 LEDs y el MAX16805

Como a ese valor no lo teníamos a mano, calculamos la corriente para una resistencia de 1 Ohm y el resultado obtenido fue de 198mA para la totalidad de los LEDs. Distribuyendo esta corriente por las 12 ramas, obtenemos una corriente de 16,5mA para cada serie de 3 LEDs, una corriente muy segura que nos brindará una larga vida a los LEDs utilizados. Por último, podemos contarte que estos IC se pueden obtener solicitándolos como muestras gratis (samples) a Maxim desde su sitio web. Sin transistores de potencia externos, sin microcontroladores ni circuitos especiales. Sólo el MAX16805/MAX16806, un par de resistencias y capacitores y allí tienes un completo Dimmer para LEDs de alta eficiencia que se ajusta a cada necesidad. ¡Disfrútalo y muéstranos tus resultados en el Foro de Electrónica de NeoTeo!


Fuente:
http://www.neoteo.com/max16805-max16806-dimmer-para-leds.neo

sábado, 19 de febrero de 2011

Retroinformática: IMSAI 8080 (1975)

Los primeros ordenadores personales datan de mediados de la década de 1970. El IMSAI 8080 pertenece a esa generación de microordenadores, y puede considerarse como el primer “clon” de la industria informática. En efecto, este ordenador es prácticamente idéntico al exitoso Altair 8800, y a pesar de tener alguna diferencia en su panel frontal, ambos utilizan el mismo microprocesador y bus S-100. Muchos recordarán al IMSAI 8080 como la computadora que utilizaba David Lightman (Matthew Broderick) en la película “Juegos de Guerra”.

Si leíste el anterior articulo de esta serie, dedicado al Altair 8800, recordarás que a mediados de la década de 1970 la informática comenzó a convertirse en algo popular. Hasta esa fecha el costo de los ordenadores era lo suficientemente alto como para que muy pocas empresas, universidades o gobiernos se pudiesen costear uno. Pero el Altair 8800 -gracias a su forma de comercialización como “Kit para armar”- dio origen a lo que luego se conoció como “ordenador personal”, un computador que prácticamente cualquier persona podía comprar y utilizar en su hogar. Como ocurre muchas veces, el éxito de ese ordenador hizo que muchas empresas aprovechasen el nuevo mercado e intentasen quedarse con una parte del mismo.

Panel frontal del Imsai 8080. (superde1uxe)

La industria electrónica, sobre todo en lo que a microprocesadores se refiere, no era especialmente prolífica en esa época. A la hora de elegir las piezas para diseñar un ordenador solo existían unas pocas alternativas. El Intel 8080 era el microprocesador más adecuado para montar un ordenador, y su precio -de cientos de dólares- bastante razonable. Recordemos que hasta la aparición del kit Altair un ordenador “mediano” -construido con chips discretos en lugar de utilizar un microprocesador- podía costar cientos de miles de dólares, por lo que el precio del 8080 era una verdadera tentación. Así fue como Bill Millard, de una empresa llamada IMS associates, decidió que si bien el Altair 8800 era un ordenador bastante completo, presentaba algunas falencias que debían ser corregidas para convertirse en un equipo “comercialmente viable”, y creó el IMSAI 8080.

http://www.youtube.com/watch?v=kb0EdBO_d50

Dado que el IMSAI 8080 era prácticamente idéntico al producto de la competencia -utilizaba el mismo bus S-100 y el microprocesador Intel 8080- y que era compatible a nivel de software, se lo considera como el primer ordenador “clónico” de la historia. El trabajo de Millard hizo posible que los poseedores de un IMSAI pudiesen conectarle hasta 22 placas de expansión simultaneas que, gracias a una carcasa un poco mayor, podian enchufarse sobre el bus S-100 de forma perpendicular a la placa base, prácticamente eliminando la existencia de “falsos contactos” que padecía el Altair. Para poder alimentar semejante cantidad de tarjetas de expansión IMS associates tuvo que utilizar una fuente de alimentación de mayor potencia, por lo que el ordenador era un poco más pesado que el original. El panel frontal, a pesar de las limitaciones impuestas por la falta de un display como los modernos, era estéticamente mucho más agradable que el del Altair. Las espartanas “palancas” fueron reemplazadas por llaves plásticas en rojo y azul, mientras que los LEDs quedaban detrás de un acrílico transparente.

Si bien poseía la misma limitación que su fuente de inspiración en cuanto a la forma de ingresar y leer datos, se podía comprar una tarjeta de expansión que posibilitaba la conexión de un teclado y un monitor. Esto permitía olvidarse de la pesadilla que era cargar un programa usando los switches y el panel de LEDs, por supuesto a costa de empobrecerse un poco más. Las características del equipo -tal como puede verse en el aviso publicitario aparecido en el ejemplar de enero de 1975 en la revista Byte que se encuentra más abajo- eran muy similares a la del Altair.

Aviso del IMSAI 8080 publicado en Byte Magazine (1975)

Como dijimos antes, los programas del Altair 8800 corrían en el IMSAI 8080. IMS vendía una versión modificada del BASIC del Altair y una versión del CP/M que permitía utilizar una tarjeta de expansión para conectar unidades de disquetes de 8 pulgadas. Pero todo esto se pagaba como “extra”: por el precio básico solo disponías de tus 256 bytes de RAM y debías programar el ordenador en binario mediante las llaves y LEDs de su panel frontal. Los vídeos que acompañan este texto sirven para darte una idea de lo “divertido” que era utilizar un ordenador de esta manera.

IMSAI 8800, en la película “Juegos de Guerra” (MGM/PC Museum)

http://www.youtube.com/watch?v=qlAURR4yY4w

El IMSAI se vendió bastante bien, y la empresa afirma haber despachado entre 17 y 20 mil unidades desde 1975 hasta 1978. Tuvo sus cinco minutos de fama cuando en la película “Juegos de Guerra” -la misma que inspiró a toda una generación de hackers- David Lightman (interpretado por Matthew Broderick) accedía a un ordenador de defensa mediante una conexión telefónica utilizando un IMSAI 8080. Hoy día solo puede verse en museos o en la sala de los -muy afortunados- coleccionistas que han logrado conseguir uno. ¿Lo conocias?

Fuente:
http://www.neoteo.com/retroinformatica-imsai-8080-1975.neo

viernes, 18 de febrero de 2011

Únete gratis a la revolución de los 32 bits


Rompe literalmente con la rutina de los 8/16 bits.


En una intrépida campaña para promocionar su nuevo micro de 32 bits ARM Cortex-M0 (y las herramientas de desarrollo asociadas), NXP desafía a la comunidad de microcontroladores a mostrar (no "contar") cómo los programadores como tú están "rompiendo con la costumbre de utilizar sistemas de 8 y 16 bits".

Para darle empuje a la campaña, NXP está regalando tarjetas LPCXpresso que incluyen un dispositivo Cortex. Para ser apto y recibir uno totalmente gratis, tendreis que enseñarnos cómo planeais dejar de utilizar sistemas de 8 y 16 bits. Puedes hacerlo enviando una imagen o un video que, si es aceptado, será incluido en una galería que puede verse en la página web de NXP M0-Cortex.

Antes que pasar la noche en vela desarrollando un crack que ponga fin a los dispositivos de 8 y 16 bits, el blogger de Elektor Embedded y experto en microcontroladores residente Clemens Valens se llevó su cámara a la calle y arrancó lo que sospechosamente suena como un motor diesel. Visita su blog y observa la original manera de Clemens para entrar en el desafío NXP.

More info

Fuente:
http://www.elektor.es/noticias/unete-gratis-a-la-revolucion-de-los-32-bits.1713064.lynkx?utm_source=ES&utm_medium=email&utm_campaign=news

miércoles, 16 de febrero de 2011

Los peores bugs de hardware

Los bugs son inevitables. Es obvio que ningún desarrollador quiere encontrar defectos en sus creaciones, pero tarde o temprano, las fisuras aparecen. Si son lo suficientemente molestos a nivel software, imaginen el dolor que causan a los usuarios cuando se encuentran en el hardware. Algunos tienen un efecto mínimo, mientras que otros pueden inutilizar a un sistema por completo. Y por más grande que sea la empresa o el fabricante, no existe inmunidad alguna. En esta ocasión, daremos un repaso a algunos de los bugs de hardware más famosos que la informática y los usuarios han sufrido.

¿Has comprado un nuevo componente? ¿Un dispositivo que recién ha salido al mercado? ¿Eres lo que se dice un “adoptante precoz”? ¿Y luego has tenido problemas con eso que has comprado? Bienvenido al mundo de los bugs de hardware. Porque el hecho es que sí, el hardware también puede tener bugs. Errores en el diseño y la fabricación no son algo exclusivo de la informática, y la historia ha aportado tremendos ejemplos de ello, como por ejemplo el Titanic y su acero de baja calidad. Durante estos últimos años hemos visto bugs que van desde lo muy sutil hasta el rango de falla catastrófica irrecuperable, demandando un reemplazo completo de los componentes afectados.

La "Mark II Aiken Relay Calculator" tuvo una falla en septiembre de 1947 por... una polilla. (Fuente: Wikipedia)

No han faltado los casos en los que un parche de software ha mitigado o solucionado por completo los efectos de dichos errores, pero el punto sigue siendo que a nadie le gusta comprar un producto defectuoso, y en general lo más irritante ha sido la negación o la negligencia de las empresas involucradas. Cuando hablamos de empresas, no estamos haciendo referencia a oscuros fabricantes OEM escondidos en Asia. Hablamos de gigantes como Intel, AMD, IBM y Nvidia, que conocieron de cerca lo caliente que puede ser la sartén de la opinión pública. La lista que ofrecemos hoy está lejos de ser completa, pero tiene unos ejemplos que han sido más que relevantes tanto para los usuarios como para el mercado.

IBM Deskstar 75GXP

Había una época en la que IBM, gigante informático como pocos, hacía discos duros. La serie Deskstar fue una de las más conocidas, no sólo por aquellos ejemplares que funcionaban bien, sino por los que se deshacían dentro de los ordenadores. El Deskstar 75GXP, lanzado en marzo de 2000, tenía unas fallas de diseño tan severas que el desgaste en los platos prácticamente los hacía transparentes a simple vista. Aproximadamente el cincuenta por ciento de los discos duros bajo ese modelo fallaron durante el primer año de uso, lo cual les hizo ganar el nombre de “Deathstars”. IBM vendió su división de discos duros a Hitachi en 2003, pero le tomó cuatro años resolver el conflicto legal que causó este grave error en el diseño.

Se puede ver parte del chasis de aluminio a través del plato (Fuente: Flickr/clickykbd/Ryan Gallagher)

Chipset Intel i820

Dice la leyenda que a finales del mes de noviembre de 1999, Intel lanzó el chipset i820 para procesadores Pentium III, con la intención, entre otras cosas, de introducir la memoria RDRAM al mercado. El alto costo de estas memorias hizo que el i820 estuviera disponible con compatibilidad SDRAM, a través de un llamado “Centro de Traducción de Memoria”, también conocido como MTH. ¿Qué fue lo que pasó? Este MTH estaba repleto de agujeros, y uno de ellos fue tan severo que Intel decidió ofrecer recambios de placas base “y” la entrega de memorias RDRAM como compensación. Esto no hizo que Intel se rindiera con la RDRAM, y trató de reintroducirlas con los primeros Pentium 4, pero tampoco tuvo mucha suerte, ya que para ese momento, las memorias DDR estaban por todas partes.

El i820 dio múltiples dolores de cabeza (Fuente: hardware-one.com)

El bug "FDIV" (Pentium)

En junio de 1994, cuando el DOS y WIndows 3.x gobernaban el mundo, cierto profesor del Lynchburg College llamado Thomas Nicely descubrió un error de cálculo luego de comenzar a utilizar uno de los entonces flamantes procesadores Pentium. Le tomó cuatro meses aislar el error, bautizado “bug FDIV” por “floating-point division”, cuyo efecto es arrojar resultados erróneos en divisiones de punto flotante. Cuando Nicely lo reportó a Intel, no sólo dijeron que estaban conscientes del problema desde mayo de ese año, sino que sólo reemplazarían los procesadores de aquellos usuarios que pudieran probar que eran afectados por el bug. La respuesta mediática fue implacable, e Intel cambió su postura ofreciendo reemplazos en forma general. Intel debió gastar unos 475 millones de dólares no tanto por el bug en sí, sino por su penosa actitud frente al mismo.

El error no era tan grave, pero Intel se encargó de complicar las cosas (Fuente: Wikipedia)

El bug TLB de los Phenom

A fines de 2007 toda la comunidad esperaba con ansias a la nueva arquitectura K10 de AMD. En septiembre fueron lanzados los primeros Opteron, y dos meses después apareció la familia Phenom bajo los núcleos “Barcelona”. Sin embargo, en el mismo mes de noviembre que los Phenom debutaron en el mercado, se debió suspender la producción de la revisión “B2” debido a un fallo en el TLB o “Translation Lookaside Buffer”, que podía llevar en ciertos casos a una condición de carrera y un eventual cuelgue del ordenador. Loa fabricantes modificaron sus BIOS para aplicar parches que podían deshabilitar este búfer, pero la pérdida de rendimiento podía llegar, en el peor de los casos, al 20 por ciento. AMD necesitó de cinco meses para corregir el bug en la revisión B3, pero el daño estaba hecho, e Intel no dudó en seguir ganando mercado.

AMD necesitó de varios meses para corregir el problema del TLB

Los chips Nvidia en portátiles

A todo usuario le gusta contar con un vídeo más o menos decente en su portátil, y tanto los chips Radeon como los GeForce están cumpliendo con ese deseo. Sin embargo, a mediados de 2008 Nvidia tuvo un serio inconveniente con algunos de sus chips. Básicamente, toda la familia G84 y G86 tenía problemas de exceso de temperatura. A esto se le sumó una instalación BGA deficiente en una gran cantidad de portátiles, afectando a marcas como HP, Dell, e incluso Apple. En el mejor de los casos, una actualización del BIOS podía reducir la velocidad de reloj en el chip, haciendo que generara menos calor. En el peor, el usuario sufría toda clase de errores de vídeo, y terminaba con su portátil inutilizada. El intento de ocultar esto por parte de Nvidia (consciente del asunto desde noviembre de 2007) causó una pérdida del 31 por ciento en el valor de sus acciones.

El costo de una reparación particular para este problema puede elevarsre a varios cientos de euros (Fuente: nbbbs.zol.com.cn)

Los chipsets para Sandy Bridge

Los procesadores basados en la arquitectura Sandy Bridge estaban masacrando a cada benchmark que encontraban en su camino, y sin embargo, no fue un bug en ellos lo que los detuvo, sino un error en los chipsets bajo los que operan. Intel emitió una orden de retiro para todas las placas base con chipsets P67 y H67 compatibles con Sandy Bridge, debido a un bug en el controlador integrado SATA de 3 Gb/s que no puede ser corregido por software. Si bien se estima que las máquinas afectadas en un lapso de tres años no excedería al cinco por ciento, el bug provoca una degradación en los enlaces SATA, perdiendo rendimiento con el tiempo, y llegando a un eventual fallo de detección de las unidades. Los fabricantes ya han activado programas de recambio para los consumidores, y se espera que la nueva revisión de los chipsets esté disponible en abril, pero por seguridad, sería razonable esperar al menos hasta mayo para garantizar la evasión del bug. Un tropiezo muy feo para Sandy Bridge, el cual sin dudas está siendo aprovechado por AMD.

Empresas como Asus y Gigabyte ya están ofreciendo reemplazos para las placas con chipsets defectuosos

La plaga de capacitores (condensadores)

¿Recuerdan a nuestra galería de capacitores (o condensadores, como algunos prefieren)? ¿Ese verdadero show de horrores deformados y emitiendo químicos? Eso no fue otra cosa más que un equivalente nuclear a un bug de hardware. Los fabricantes no tomaron los recaudos necesarios para determinar el origen de estos componentes, concentrándose principalmente en la reducción de costos, y tanto usuarios como sistemas alrededor del globo han pagado (y continúan pagando) las consecuencias. Todo lo que se ahorraron los fabricantes y mucho más debió ser gastado reemplazando componentes y haciendo honor a los períodos de garantía existentes. Sin ir más lejos, recientemente he encontrado a un ordenador Dell OptiPlex GX270, ¿y adivinen qué problema tenía...?

Sin palabras...

Por supuesto, la lista sigue. Desde el conector de 72 pines en la Nintendo NES y el error de verificación de su chip 10NES hasta el Anillo Rojo de la Muerte de la Xbox 360, pasando por cosas recientes como la atenuación en la señal del iPhone 4. Problemas de diseño, errores de fabricación, y toda otra clase de inconvenientes azotan y continuarán azotando a nuestros dispositivos. Después de todo, quienes los crean son humanos, y algo siempre se va a escapar. ¡Buena suerte!

Fuente:
http://www.neoteo.com/los-peores-bugs-de-hardware.neo