Diseño de un microprocesador básico de 4 bits

Si piensas que un microprocesador es una especie de caja negra que funciona de un modo misterioso ejecutando programas escritos en lenguajes de alto nivel como C, Pascal, BASIC, etc., o en el mejor de los casos, te has atrevido a programar algún microcontrolador en lenguaje ensamblador, tal vez ha llegado el momento en que debas dar un “gran paso” en su conocimiento. Para ello, te propongo, usando componentes electrónicos digitales sencillos (circuitos integrados compuestos por puertas lógicas), algunas resistencias y diodos, aprender a diseñar de manera práctica un microprocesador básico y experimental de 4 bits.

Circuito - Computadora 4 Bits V2
Microprocesador básico de 4 bits simulado en Proteus.

Conocer el funcionamiento básico del hardware que existe dentro de cualquier microprocesador o microcontrolador puede que cambie de manera drástica el modo en que los ves y programas. Puedes llegar a entender conceptos que hasta ahora aplicas de una manera mecánica, porque lo has leído o sabes que funciona, pero sin conocer el por qué de ciertas limitaciones o diferentes formas de funcionar de esta evolución en la electrónica digital, desde simples sistemas digitales secuenciales que permitieron ejecutar secuencias de instrucciones, hasta el moderno microprocesador de 64 bits que posiblemente estés usando para leer este texto.

Sigue leyendo

Anuncios

Componentes electrónicos más utilizados

Si estás en tus primeros pasos por el mundo de la Electrónica, creo que te puede ser útil la siguiente tabla resumen con los doce componentes electrónicos más comunes y el símbolo con el que aparecen normalmente en los esquemas de circuitos.

Componentes y Simbolos Electrónicos más utilizados

Test de Compiladores para microcontroladores PIC de gama media

La idea de realizar esta prueba a los compiladores más conocidos para microcontroladores PIC de gama media surgió hace unos meses, en el grupo de facebook Electrónica y Microcontroladores, ante la curiosidad por comprobar si el compilador experimental PicPas era tan eficiente como suponíamos. Entendiéndose como más eficaz, el que consiga un tamaño del ejecutable menor y usar menos memoria RAM del microcontrolador.

Cuanto mayor sea esta eficacia del compilador, más sencillo y económico será el microcontrolador necesario para ejecutar el código generado.

Para poder comparar la eficiencia de los distintos compiladores (comerciales y gratuitos) a los que teníamos acceso, se utilizó un código que podríamos denominar “patrón de medida“, mucho más complejo que el usado para manejar la típica secuencia de encendido y apagado de uno o varios diodos LED que a modo de demostración suelen utilizar todos los compiladores.

El programa (patrón de medida) se debe traducir de la manera más literal posible a cada uno de los lenguajes de programación (C, Pascal, BASIC) y los “dialectos” o particularidades específicas de cada compilador, de manera que no influya en la prueba el tipo de algoritmo más o menos eficaz, o la genialidad del programador para codificarlo en un determinado lenguaje. Por eso se trata de un “programa patrón de medida“, y es el compilador evaluado el que deberá, automáticamente, generar el código ejecutable más optimizado o que menos recursos del microcontrolador requiera.

Sigue leyendo

Aprende ensamblador ARM de manera sencilla y VisUAL

Aprender, o al menos conocer, el lenguaje ensamblaje es muy importante si se desea tener una idea muy clara de cómo funciona realmente cualquier sistema informático o de control electrónico programable. VisUAL es un emulador muy indicado para aprender, de una manera muy práctica y sencilla, el lenguaje ensamblador de CPUs diseñadas con arquitectura ARM.

Además de admitir un gran subconjunto de instrucciones ARM, la CPU se emula a través de una serie de animaciones que ayudan a visualizar el flujo de datos en el microprocesador o microcontrolador emulado, incluyendo animaciones muy útiles para comprender algunas de las instrucciones más difíciles de entender, como los cambios y la manipulación de la pila de datos.

Al estar diseñado específicamente para utilizarse como herramienta de enseñanza en el Imperial College London, su Interface Gráfica de Usuario (GUI) es muy amigable, se destacan claramente todos los errores de sintaxis y se muestran ejemplos de la sintaxis correcta.

GUI probando una simple instrucción ADD con dos números.

Además, cuenta con todo aquello que se puede esperar de un emulador, como la ejecución paso a paso de instrucciones, visualización de datos o registros en diferentes ventanas, establecer puntos de interrupción, etc. Incluso advierte de la ejecución de posibles bucles infinitos.

En resumen, una excelente herramienta si deseas iniciarte en el fantástico mundo de los microcontroladores ARM.

 

Configuraciones Básicas de Amplificadores Operacionales

Configuraciones Básicas de Amplificadores Operacionales

Objetivos cumplidos durante este año. Objetivos para el nuevo año 2018

Durante este año 2107 que acaba, creo que aprobé una asignatura que tenía pendiente desde hacía muchos años, más que nada por falta de tiempo, y era la de programar microcontroladores PIC. Le di un buen repaso, y lo cierto es que me resultó muy sencillo hacerlo en ensamblador. Especialmente me gusto aprender a programar en ensamblador funciones básicas con números de 32 o más bits, como sumas, restas, división, multiplicación, funciones trigonométricas, etc. Todo en lenguaje ensamblador, lo que te hace entender el funcionamiento al nivel más bajo de cualquier microprocesador o microcontrolador. Programarlos en lenguajes C, BASIC y Pascal fue muy sencillo, y lo cierto es que, en ese sentido, aunque con sus particularidades, prácticamente todos los micros se programan de manera muy similar, por lo que entendido lo básico, en lenguaje de alto nivel, pasar de programar un micro a otro diferente tiene poco misterio.

Para el año 2018 mi objetivo es, sin abandonar los microcontroladores PIC y AVR, volver a usar núcleos 8051, ahora actualizados y libres de licencia, y empezar a programar los licenciados con arquitectura ARM. En ambos casos, buscando que no sean propiedad de un solo fabricante.

Objetivo 1: Probar microcontroladores avanzados basados en núcleos 8051. En su día me consideré un especialista en la programación del 8051 clásico de Intel y los primeros AT de Atmel. Nada más emocionante e inconfesable que participar en la programación de aquellas primeras tarjetas FunCard que decodificaban señales de TV por satélite de canales de pago. Pero ahora que la licencia de uso de los núcleos 8051 es libre y gratuita (cualquier fabricante los puede integrar en sus dispositivos, sintetizarlos en FPGA, modificarlos o mejorarlos sin pagar ningún tipo de licencia a Intel), encuentras núcleos 8051 integrados en sistemas muy complejos y microcontroladores que multiplican por 40 la velocidad de los 8051 originales. Quiero probar qué se puede hacer con ellos, y por qué se siguen usando a nivel profesional aunque no cuenten con el apoyo “publicitario” de otros micros de uso más extendidos actualmente entre el gran público.

Objetivo 2: Empezar con los microcontroladores ARM usando el STM32.

FELIZ y PROSPERO 2018!

 

Infografía resumen sobre lámparas LED

Resumen gráfico con información útil acerca de los datos más significativos que necesitas conocer sobre las lámparas LED.

InfogramaLamparasLed.jpg

¿Por qué estudiar Electrónica?

Resistencias Pull Up y Pull Down en Circuitos Digitales

Las resistencias denominadas Pull up y Pull down, muy empleadas en circuitos electrónicos digitales, no son ningún tipo de resistencia o componente electrónico especial por su construcción, se trata de resistencias comunes que reciben este nombre por su cometido dentro del circuito. Estos nombres son una forma de referirse a ellas de manera corta, a lo que tan aficionado es el mundo técnico y especialmente si se habla en inglés.

¿Qué son las resistencias Pull Up?

Las resistencias Pull-up son utilizadas en circuitos digitales para asegurar en cualquier circunstancia un nivel lógico seguro y definido en una determinada entrada o pin digital. Cabe recordar que en electrónica digital existen tres estados lógicos:

  • Alto (High): Representa la presencia de voltaje eléctrico, también llamado Uno Lógico.
  • Bajo (Low): Representa la ausencia de voltaje eléctrico, también llamado Cero Lógico.
  • Flotante (Floating): Estado de Alta Impedancia (Hi-Z). Desconectado del resto del circuito electrónico.

Sigue leyendo