Buscar este blog

martes, 28 de octubre de 2014

Curso electronica digital capitulo 1 Compuertas logicas y sus funciones

0 comentarios
En los siguientes post se desarrollaran capitulo a capitulo un curso de electronica digital basica, si bien en la web hay una infinidad de cursos y temas que hablan sobre electronica digital, hay muy pocos a casi ninguno que muestran ejemplos basicos tanto teoricos como practicos, este curso pretende ser diferente ya que se desarrollara teoria y practica con resultados reales y se mostrara como armar los circuitos correspondientes.

En los cursos de electronica digital siempre se opta por comenzar a explicar que son los numeros binarios, octales y hexadecimales, en este curso se omitira esa introduccion para realizar cosas mas practicas pero no se olvidaran de esos conceptos ya que se mostraran en el momento adecuado.

Entre los temas que veremos son:


  1. Compuertas logicas y sus funciones.
  2. Funciones logicas combinacionales.
  3. Max terminos.
  4. Min terminos.
  5. Simplifacion con Mapas de Karnaugh.
  6. Circuitos Logicos combinacionales.
  7. Codificadores y Decodificadores.
  8. Multiplexores Y Demultiplexores.
  9. Circuitos Secuenciales
  10. Flip-Flops.
  11. Contadores asincronos y sincronos.
  12. Aplicacion de contadores.
  13. Maquinas de estados.
  14. Maquina de Mealy.


EMPEZAMOS

La electronica digital se basa en el procesamiento de numeros binarios "ceros" y "unos" que se representan con la ausencia o presencia ya sea de voltaje o corriente electrica. Los cimientos de toda la electronica digital se basan en las importantisimas compuertas logicas. Las compuertas logicas no son mas que dispositivos electronicos que realizan una funcion especifica y que dependiendo de lo que tengan en sus entradas van a tener en sus salidas.

Las compuertas logicas basicas son:

AND
                         
 
Figura compuerta and

 Como se aprecia en la anterior figura la primera  imagen corresponde al simbolo de la compuerta and que tiene dos entradas (A y B) y una salida X, la segunda imagen nos muestra la tabla de verdad de la compuerta and, esta tabla nos indica  las posibles combinaciones que se tienen en la entrada (conectar la compuerta a tierra "0" o a 5 volts "1") para tener una salida especifica (tener un "0" cero volts o un "1"  5 volts a  la salida). La tercera imagen nos muestra la funcion logica, esta funcion es matematica es decir si se sustituye el valor de A o de B que corresponde a las entradas y al hacer la operacion correspondiente (operacion logica) se tendra un valor que corresponda al resultado de la operacion.

Ejemplo 1

En este ejemplo la funcion logica es una multiplicacion por eso cuando se tiene 1 en A y 0 en B al hacer la multiplicacion nos da cero (1 por 0 es 0).

Ejemplo 2


En este ejemplo se mostro un caso ya practico donde se conecta a la compuerta logica a 5 volts en ambas entradas que representan un "1" logico y al hacer la operacion correspondiente (multiplicacion logica) se tiene un "1" en la salida es decir 5 volts.  


OR






NOT 


Tanto las compuertas OR como la NOT la logica de su funcionamiento es igual que la de la compuerta AND. Solo es cuestion de ver la tabla de verdad para saber su funcionamiento, en la compuerta OR se ve en la imagen que si no hay  un 1 (5 volts) en cualquier entrada o en ambas su salida es un 0 (cero volts) y su funcion matematica es una suma logica (mucho cuidado aqui no es lo mismo que una suma binaria) por lo que un 1 mas otro 1 en una suma logica sigue siendo 1. En la compuerta NOT se aprecia que la entrada se invierte es decir si en la entrada le ponemos un  1 logico (5 volts) en la salida tendremos un cero logico (0 volts) en su funcion logica se muestra una linea arriba que representa el simbolo de la negacion.

Las demas compuertas logicas se basan en las anteriores por lo que antes de pasar a las siguientes compuertas logicas vamos a dar un ejemplo practico de como utilizarlas.  
Por lo que necesitaremos el siguiente material :

1 Protoboard
1 fuente de voltaje de 5 volts (puede ser un cargado de celular en desuso)
3 resistencias de 220 Ohms
1 mini dip (minimo de 2 entradas)
1 led (cualquier color)
1 circuito integrado 74ls04 (NOT)
1 circuito integrado 74ls08 (AND)
1 circuito integrado 74ls32 (OR)
Cables para protoboar



A continuacion se muestra una imagen del material a utilizar.



 En la imagen anterior se aprecia la protoboar, el mini dip de 2 entradas (color azul), las compuertas logicas (3 circuitos integrados), el led en este caso color rojo, las tres resistencias, algunos cables para "alambrar" el circuito y la fuente de voltaje ( se uso una fuente de 5 volts de un PSP).

Con el material anterior vamos a empezar a armar nuestro circuito para comprobar la teoria anterior.  En la siguiente imagen se puede obsevar el circuito ya armado, pero no se preocupen vamos a explicar paso a paso cada parte de como se debe de armar.



Primero se debe de "alambrar " cada lado de la protoboard  de extremo a extremo para que ambas partes tenga el voltaje correspondiente, se observa que el cable color rojo va a las parte positiva del protoboar (linea roja) y el cable negro en la parte negativa del protoboar donde esta la (linea negra).



En la imagen siguiente se muestra como polarizar el circuito, el conector (caiman) de la fuente de color rojo (que en la fuente utilizada son los 5 volts) va en la linea roja y el conector (caiman)  de la fuente color negro (tierra) va a la linea azul del protoboard.


La siguiente imagen muestra como se debe conectar el mini dip (color azul), de un lado se conecta dos cables (color rojo) a la parte positiva (5 volts) y del otro lado se conectan las resistencias al mini dip y a tierra (0 volts). Entre el mini dip y las resistencias van conectados otros dos cables (color verde y morado) estos van a ir conectados del otro lado al circuito integrado en este caso compuerta and. En  el circuito integrado se observa un circulito (muesca) apartir de  ahi se cuenta el numero de pines de izquierda a derecha por tanto siguiendo el orden numerico el cable verde esta conectado al pin numero 1 y el cable morado al pin numero 2.



 En la siguiente imagen se muestra que en el pin numero 3 va conectada una resistencia y del otro lado una patita del led.




En la siguiente imagen se observa que el otro lado del led va conectado a tierra (lado azul del protoboard), hay que tener especial cuidado al conectar el led porque este debe estar correctamente polarizado, si observa bien su led que tenga a la mano observara que tiene una patita mas larga que la otra, la patita mas corta siempre sera la que se conecte a tierra y la patita mas larga sera conectada a positivo (5 volts).



Comprobando funcionamiento compuerta AND


La siguiente imagen muestra practicamente como funciona la compuerta and. Se puede apreciar que en el mi dip los dos interruptores se encuentran en la posicion de abajo osea estan ambos conectados a tierra  o a cero volts,  que es lo mismo tener en sus entradas  ceros logicos si se recuerda la funcion logica es una multiplicacion por lo que A= 0 Y B= 0 al hacer la multiplicacion nos da cero en la salida (X=0) por lo que el led no se enciende.



La siguiente imagen muestra a los interruptores del minidip  en diferente posiciones en este caso A=1 y B=0 al aplicar la funcion logica  X= ( 1 )( 0 ) el resultado seria X=0 por lo que el led sigue sin encender si se fuera el caso opuesto A=0 y B= 1 el resultado seria lo mismo.




 En la siguiente imagen ambos interruptores del minidip se encuentran en la posicion de arriba osea conectados a  5 volts, al aplicar la funcion logica  de acuerdo a las entradas A=1 y B=1 tenemos X= ( 1 ) ( 1 ) el resultado es X=1 por lo que en la salida tenemos 5 volts y el led enciende.


Comprobando funcionamiento compuerta OR.

  La compuerta or su funcionamiento es similar que la compuerta and, la misma circuiteria sirve. Lo unico que cambia es la funcion logica en este caso es una suma como habiamos comentado arriba solo se debe de recordar que es una suma logica no binaria. En la siguiente imagen se muestra los dos interruptores del mini dip en la posicion abajo osea conectados a tierra por lo que en la entradas de la compuerta se tienen "ceros" al sustituir los valores en la funcion logica tenemos  X= 0 + 0  teniendo como resultado X= 0 por lo que el led no enciende.  




La siguiente imagen muestra el minidip con un interruptor en la posicion de arriba y el otro en la posicion de abajo por lo que en las entradas se tiene A=1 y B=0 sustituyendo esos valores en la funcion logica se tiene X= 1 + 0  y el resultado X=1 por lo que en la salida se tendria 5 volts y el led enciende.



En la siguiente imagen la explicacion anterior tambien se aplica aqui A= 0 y B= 1 sustituyendo       X = 0 + 1 el resultado X = 1 y el led enciende.



En la siguiente imagen se aplica lo que se anda repitiendo a qui se aplica la suma logica (no binaria) observando el mini dip  se tiene ambos interruptores en la posicion de arriba por lo que estan conectados a los 5 volts ( unos) al sustituir en la funcion logica  X = 1 + 1 el resultado es     X = 1 por lo que el led enciende. 


 

Comprobando funcionamiento compuerta NOT.

La compuerta not funciona de la siguiente manera. Cuando se tiene un 1 en la entrada en la salida se tiene un 0 y viceversa. En la siguiente imagen se muestra que el circuito es casi el mismo ya que tiene un pequeño cambio, si se recuerda la compuerta not solo tiene una entrada por lo que si se observa bien solo el cable verde esta conectado a la compuerta (al pin numero 1) y la resistencia que va al led va conectado al pin numero 2. Los cambios anteriores son los unicos. En la logica del funcionamiento se se tiene el interruptor en la posicion de abajo por lo que en la entrada se tiene un  cero logico al sustituir en la funcion logica X = 0 ' el resultado es X = 1 por lo que el led enciende.



La siguiente imagen muestra al minidip en la posicion de arriba por lo que en la entrada se tiene  5 volts osea un 1 logico al sustituir en la funcion logica se tiene  X = 1'  el resultado es X = 0 por lo que el led no enciende.


Apendice del capitulo 1

Compuerta XOR

La puerta lógica OR-exclusiva, más conocida por su nombre en inglés XOR, realiza la función booleana A'B+AB'. Su símbolo es el más (+) inscrito en un círculo. En la figura  pueden observarse sus símbolo, tabla de verdad y su ecuacion.


Compuerta XNOR

Es semejante a la anterior pero su salida es negada respecto a la XOR.


Hasta aqui se concluye el primer capitulo de este curso de electronica digital.


miércoles, 22 de octubre de 2014

Como programar un microcontrolador parte 2

0 comentarios
En esta segunda parte de como programar un microcontrolador vamos empezar a ejemplificar con un microcontrolador en particular puesto que lo dicho en la primera parte se explico que se necesita saber de cualquier microcontrolador en general.

Algunos colegas electronicos recomiendan que para aprender a programar un microcontrolador se debe de empezar por uno sencillo un ejemplo de esto puede ser el pic16f84 de la compañia de microchip, este microcontrolado es considerado de gama baja por sus limitadas prestaciones (numero de pines, perifericos, instrucciones reducidas, etc...), pero por experiencia propia les podria decir que no importa con que microcontrolador empiezen a programar todos basicamente todos se programan con la misma idea, solo cambian las instrucciones, la estructura de los programas.

Como les menciono parrafos arriba podemos programar cualquiera (Pic's, texas instruments, freescale) pero en los siguientes post se enseñara a programar con el pic18f4550 de gama media (temas basicos) y despues se enseñara a programar el msp430  de texas instruments y haremos una comparacion para que se den cuenta en que cambian las metodologias en cada microcontrolador de diferentes compañias, tambien se dara unos ejemplos de como programar los avr's de ATMEL para completar este pequeño cursillo, si despues se deseara profundizar en cualquier microcontrolador ya sabrian como hacerlo. Asi que empezemos con el pic 18f4550.

Empezando a programar el pic18f4550

Antes que nada para empezar a programar el pic en particular se necesita saber en que lenguaje se programara dicho microcontrolador. Para el pic18f4550 existen dos lenguajes en particular para programarlos (ensamblador y C), por "simplicidad" y no meternos tanto en la arquitectura de los microcontroladores en particular ya que lo que nos interesa en si es solo programarlos, es decir, ver al microcontrolador como una caja negra solamente, se optara en programarlo en lenguaje C y esto ademas es una gran ventaja ya que es el lenguaja preferido por su gran flexibilidad. El lenguaje ensamblador tambien es muy importante pero este requiere de un curso mas extenso y para ejemplificarlo con un microcontrolador en particular, pero la finalidad de este curso es mostrar como programar cualquier microcontolador con la misma idea por eso el lenguaje C es el ideal ya que lo unico que cambiaria seria los mnemonicos de cada microcontrolador.

Para empezar se necesita descargarse el IDE de MPLAB del siguiente link MPLAB puede descargar el IDE de MPLAB segun la version que soporte su computadora. Como por ejemplo yo tengo la version 8.92 para windows en 32 bits.Ustedes pueden elegir la version que requieran para el sistema operativo que usen, en nada cambiara la version para seguir este tutorial.

Una vez que instalen el MPLAB y abran el IDE les aparecera la siguiente imagen.





Lo que tienen que hacer para crear un nuevo proyecto es lo siguiente:

1) Ir a la pestaña Project --> Set Lenguage Tool Locations abrir esta pestaña
2)Se abrira una pestaña y buscar la parte dice Microchip C18 Toolsuite
3)En Executables ver que los 4 ejecutables correspondientes a C18 se encuentre en la direccion adecuada o se encuentren añanidos. En dado que no se encuentre disponible debes descargar la suite de C18 para empezar a programar y añadirlo en la direccion correspondiente.
4) Una vez verificado lo anterior en la pestaña de Project --> Project Wizard
5) Aparecera una ventana que nos dira WELCOME le daremos en siguiente
6) Seleccionaremos Device pic18f4550 y siguiente
7)Nos aparecera una nueva ventana y seleccionaremos Microchip C18 Toolsuite siguiente
8)Nos aparecera una ventana que nos pedira un nombre para nuestro proyecto, en este caso hay que darle primero en Browse para crear una nueva carpeta en la direccion que nosotros queramos. Creamos la carpeta y dentro de esa carpeta añadiremos un nombre nuevo de proyecto que terminara con .mcp que por default MPLAB lo añade al nombre que elijamos por lo que no es necesario porne la extencion .mcp damos en guarda y pondremos siguiente a esa ventana.
9) La siguiente ventana solo muestra si queremos añadir algun archivo en nuestro caso no es necesario por lo que le daremos en siguiente.
10) Ya por ultimo aparecera una nueva ventana que bastara darle clic en finalizar.

Ya con esto nos aparecera nuestro espacio de trabajo.



Teniendo nuestro espacio de trabaja nos enfocaremos en escribir nuestro primer programa.
Para esto lo primero que vamos a explicar como utilizar los puertos de entrada/salida del microcontrolador.


Lo principal y primero que tenemos que escribir en nuestro programa es incluir una directiva que le diga al programa que microcontrolador vamos a emplear en nuestro caso es el pic18f4550.


#include <p18f4550.h> // Incluye directiva pic a usar


Lo siguiente que vamos a escribir es el cuerpo del programa para esto se va a emplear el siguiente codigo.


void main (void)
{

//Programa a escribir
}

Este codigo nos indica el programa principal. Dentro del programa principal vamos a escribir las instrucciones que queremos que haga el microcontrolador.

Lo siguiente que vamos a escribir es la configuracion de los puertos I/O  para esto escribimos
con los registros TRISA   y PORTA.

Con TRISx configuraremos los puertos ya sea como entrada o salida. la "x" nos indica el puerto que
emplearemos. Por ejemplo si queremos emplear el puerto A solo necesitamos escribir "TRISA" y si
queremos emplear el puerto C escribimos "TRISC".

Los puertos se pueden configurar de dos formas (como entrada o como salida). Para configurarlo
como entrada tenemos que escribir un 1 en el registro TRISx y para configurarlo como salida se tiene
que escribir un 0 en el registro TRISx.

Como en este ejemplo vamos a hacer parpadear un led del puerto A de una sola terminal (ya que
todo el puerto tiene 8 terminales) debemos escribir el siguiente codigo.

TRISA = 0XFE; // Aqui le decimos que la primera terminal del puerto A esta como salida.


Lo siguiente que debemos configurar es que si inicialmente el led va estar apagado o encendido para
este se configura el registro PORTx. Como en el caso anterior la "x" indica el puerto que queremos
configurar como es el puerto A escribimos PORTA, si fuera el puerto D se escribiría PORTD. Para
poner el puerto en bajo "apagado" se escribe en el registro PORTx un 0 y para ponerlo en alto
escribimos un 1 "encendido". El código quedaría de la siguiente forma.

PORTA= 0x00; // Inicialmente el led estara apagado.


Lo siguiente que hay que configurar es si los puertos van a funcionar como analogicos o digitales
en nuestro caso es obvio que serán digitales para esto se emplea el registro ADCON1 ya que
inicialmente los puertos están configurados como analógicos para esto emplearemos el siguiente
código.


ADCON1 |= 0x0f; // Configura las terminales como digitales


Mas adelante se explicara mas detalladamente este registro ADCON1.

Enseguida escribiremos nuestra primera condición en el programa ya que lo que haremos es hacer
prender y apagar nuestro led indefinidamente emplearemos un bucle infinito para esto la mejor
opción es la condicional "while". Con while las instrucciones que se localicen dentro se ejecutaran
hasta que la condición sea 0 pero en nuestro caso lo haremos indefinidamente por lo que bastara
poner un 1 dentro de la condición así la condición siempre sera diferente de 0 por lo que las
instrucciones se ejecutaran indefinidamente.


while(1)
{

//Todo lo que se encuentre dentro se ejecutara una y otra vez.

}


Dentro de la condicional while ejecutaremos las instrucciones de encendido y apagado por lo que
escribiremos el siguiente código.


PORTA = 0x01;
Delay10KTCYx (1000);
PORTA = 0x00;
Delay10KTCYx (1000);

Primero encenderemos el led con la instrucción PORTA =0x01;
Lo segundo es esperar 1 segundo que es el tiempo que el led estará encendido esto se hace con la
instrucción Delay10KTCYx (1000);

Donde el Delay10KTCYx(); es una función de C18 cuya libreria es la siguiente:

delays.h

Lo tercero es apagar el led con la instruccion PORTA= 0x00;
Lo cuarto y ultimo es esperar otro segundo que es el tiempo que el led permanecera apagado esto
se logra con la instruccion Delay10KTCYx (1000);

Apartir de aqui las instrucciones se volveran a ejecutar desde un principio. Encendiendo el led, esperando 1 segundo, apagando el led y volver a esperar otro segundo.

Por ultimo nuestro programa deberá quedar de la siguiente manera.


#include <p18f4550.h> // Incluye directiva pic a usar
#include <delays.h>//libreria del retardo
void main (void)
{

TRISA = 0x00; // Configurar puerto A como salida
PORTA=0x00; // Se pone el puerto A  apagado

// configura pines como digitales
ADCON1 |= 0x0f;

while(1)
{
PORTA = 0xf0;// Cuatro ultimos bits encendidos
Delay10KTCYx (1000);// Retardo
PORTA = 0x00;// Todo el  puerto A apagado
Delay10KTCYx (1000);// Retardo

}
}

En la siguiente parte veremos como generar un barrido de leds y como controlar un servomotor con
tan solo lo explicado en este capitulo.

sábado, 18 de octubre de 2014

Sistema minimo con microprocesador Z80 capitulo 2

1 comentarios
Continuamos en el armado del sistema minimo con microprocesador Z80. El siguiente paso para nuestro sistema minimo es agregarle la memoria EEPROM.

Memoria de programa (EEPROM)

La memoria EEPROM ya se habia comentado  en un post anterior ( Manejo de memoria EEPROM ). Esta memoria EEPROM es la encargada de guardar las instrucciones que le vamos a dar al microprocesador Z80 para que realice dicha funcion. La memoria EEPROM se conecta en las terminales de datos, en las terminales de direccion y control del Z80 que despues el microprocesador  leerá en forma secuencial y ejecutará las instrucciones guardadas en la memoria.


La memoria EEPROM sera programada en forma independiente al microprocesador Z80. Dentro de la memoria  y en cada localidad se almacenara las instrucciones en forma binaria. La forma en que interactua la memoria EEPROM y el Z80 es la siguiente: El microprocesador con su contador de programa direcciona la localidad de memoria, lee la informacion en ella, la decodifica, la ejecuta, el contador de programa se incrementa y se lee una nueva direccion de memoria.

La conexión de nuestro sistema minimo quedara de la siguiente manera.




En nuestro siguiente post se añadira un nuevo elemento al sistema minimo para las lineas de control ademas se hara un programa simple para monstrar el funcionamiento del sistema minimo con el Z80.

martes, 23 de septiembre de 2014

Osciloscopio casero con leds

2 comentarios
Este osciloscopio es de facil  implementacion para el principiante de electronica como pueden ver solo se compone de tres circuitos integrados de facil adquision. Un 555 para generar los pulsos que van al contador CD4017 para generar el barrido horizontal de la señal que entra por el pin numero 5 del lm3915 donde podemos visualizar la forma de onda atraves de la matriz de leds de 10x10.

A continuacion les dejo el diagrama.



Cualquier duda o comentario es bien recibido.

domingo, 10 de agosto de 2014

Sistema minimo con microprocesador Z80 capitulo 1

5 comentarios
Los microprocesadores son dispositivos digitales encargados de ejecutar los programas que se almacenan en una unidad de memoria. El microprocesador solo puede ejecutar instrucciones de bajo nivel ( ceros y unos) realizando operaciones aritmeticas y logicas, accediendo a memoria ó mover datos de registros a registros.

Los microprocesadores estan constituidos esencialmente de registros, unidad de control, ALU (unidad logica aritmetica), bus de datos, bus de direcciones etc...

El microprocesador que vamos a estar estudiando en este post es el viejo y famoso Z80 con este microprocesador vamos a implementar el armado de un sistema minimo que en realidad es una computadora completa. El sistema minimo que vamos a implementar se basa en la arquitectura Von Neumann el cual consta de reloj, un microprocesador, memoria ROM de programa, memoria RAM de datos, puertos de entrada y salida y dispositivos perifericos. El microprocesador puede ejecutar programas en ensamblador e interactuar con dispositivos externos o con el usuario.

El diagrama a bloques del sistema minimo a armar es el siguiente.


Antes de implementar el sistema minimo debemos advertir  que los dispositivos empleados son de tecnologia CMOS y NMOS por lo que son sensibles a las descargas de voltaje y podria ocacionar daños a los dispositivos para esto se sugiere al usuario descargarse previamente sobre algun objeto metalico y tomar los dispositivos por los extremos y no por las terminales, tambien se puede sugerir tener un brazalete especial con el fin de estar siempre aterrizado.

Para empezar ha armar el sistema minimo basado en el microprocesador Z80 nos basaremos en varios capitulos ya que el armado final resulta ser un circuito moderadamente grande y que nos llevara algun tiempo armarlo. Para este capitulo empezaremos armando el circuito de reloj y el circuito de reset.

Generador de reloj para Z80

El generador de reloj para el sistema minimo es el encargado de proporcionar una señal digital con una frecuencia determinada por el microprocesador en cuestion. Otras caracteristicas importantes, tales como el ciclo de trabajo  que es el tiempo en que la señal esta en estado alto (th) en relacion al periodo de la señal (T) tal y como se muestra a continuacion.

    


La señal generada por el reloj actua como sincronia para el microprocesador el cual ejecuta las instrucciones de programas e interactua con los elementos que conforman el sistema tales como la memoria ROM y  RAM las entradas/salidas digitales, a cado pulso de reloj que se va generando se va ejecutando las instrucciones en el microprocesador.

Una forma para generar la señal de reloj es por medio de compuertas logicas retroalimentadas usando resistencias y capacitores como se muestra en la figura utilizando compuertas NOT.




Aunque tambien se puede emplear cristales  de cuarzo para tener mayor estabilidad en la frecuencia. En la siguiente figura se muestra un circuito que utiliza un cristal de cuarzo a 4 Mhz garantizando frecuencias mas estables.


Otro generador de reloj que se puede implementar es el circuito temporizador 8224 que proporciona dos fases de reloj, una señal READY en combinacion con el segundo reloj y la propia señal READY.
Otro circuito integrado que se puede utilizar es el 8284 el cual proporciona la temporizacion y dos señales de control para los microprocesadores. El circuito del 8284 es el siguiente.


En este capitulo se va sugerir el armado del generador de reloj utilizando las compuertas NOT por lo que acontinuacion se dara la lista de materiales a requerir.

2 resistencias de 10kilo ohms a 1/4 watt
1 capacitor de 0.001 uf
1 capacitor de 0.01 uf
1 capacitor 470 uf
1 circuito integrado 74ls04
1 cristal de 4Mhz.

Se sugiere armar alguno de los dos circuitos mostrados con el material dado. El tercer circuito se sugiere armar solo si requiere mayor presicion.

Recuerde alimentar el circuito integrado con 5 volts.


Circuito de auto reset y el  microprocesador Z80


En el microprocesador Z80 la señal de reset  se utiliza para llevar al microprocesador a un estado conocido. Esta señal de reset inicia al Z80 de forma interna  del siguiente modo.

Limpia el Flip Flop asociado con las interrupciones mascarables.
Limpia el registro de contador de programa "PC"  y los registros de interrupcion "l"  y de refresco de memoria "R".
Selecciona el modo "O" de interrupcion mascarable.
Deshabilita las interrupciones mascarables.

De forma externa la señal de reset se refleja en el estado de algunas de sus señales como se indica.

El bus de direcciones y de datos se pone en alta impedancia mientras la señal de reset esta activa.
Todas las señales de salida del bus de control se mantienen  inactivas. 

Para que la inicializacion sea exitosa la señal de reset debe de mantenerse en bajo por lo menos 3 ciclos completos de reloj. El circuito de reset se implementa por medio de una malla "RC" que mantiene un cero logico mientras el capacitor se encuentra descargado despues de 5t (constantes de tiempo), el capacitor es carga 99.3% del voltaje de alimentacion, lo que produce que la señal de reset pase a inactiva. Para que la señal de reset se mantega en bajo los 3 ciclos  de reloj se requiere que el voltaje de carga  del capacitor se mantega por debajo del voltaje "Vil" considerado como cero logico.



La carga del capacitor esta dada por

 
 Por lo que el tiempo necesario para alcancar Vil es de


 Si se cumplen estas condiciones el microprocesador Z80 mantendra el tiempo necesario para el auto reset al alimentar el circuito completo.

A medida el microprocesador se requerira resetearlo de forma manual por lo que es conveniente agregarle un push button en paralelo al capacitor para poderlo descargar y lograr la condicion en estado bajo mientras el push button este oprimido cuando este se deje de pulsar el capacitor volvera a cargarse y regresara al estado alto a su condicion previa del reset.


A continuacion se vera como implementar el circuito de reset y el microprocesador Z80, el material necesario para implementar esta parte del circuito es el siguiente.

1 capacitor de 0.1 uf
1 resistencia de 1 kilo ohm a 1/4 watt
1 push button normalmente abierto
1 diodo 1n4001
1 microprocesador Z80

El diagrama siguiente es como se debe implementar el armado del circuito.

 

En el siguiente diagrama se ve ya acoplado el circuito de reloj que armamos previamente.





En el siguiente capitulo proseguiremos el armado de nuestro sistema minimo explicaremos y adicionaremos la memoria EEPROM o de programa.

Electronica facilita