Haz una pregunta
  Foros de Electrónica » Diseño digital » Circuitos lógicos combinacionales y secuenciales
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

27/10/2011 #1

Avatar de seaarg

Consulta referencia de parte (contador) y problemas en grabado de SRAM
Hice un circuito que graba datos en una memoria SRAM de 15ns de 32KB (15 lineas de direccion)

Dispongo solamente informacion de contadores 4040 de 12bits, los intente poner en cascada conectando el Q11 del primero con el CLOCK del segundo, mientras que ese Q11 tambien va a A11 de la memoria, y el Q0 del segundo contador al Q12 de la memoria.

El dato que le grabo para prueba es 128.

Encuentro problemas, a partir de el dato nro: 16032 la memoria graba (o entrega para lectura) basura, 8 valores ~255, luego 16 valores ~0, luego 16 valores ~255 y asi 16 y 16 hasta los 32KB. Extrañamente LOGICO (por el numero) y constante el error, no aleatorio.

Aun no encuentro la fuente del problema (si alguien tiene pistas de como encontrar el problema para proporcionar, mucho mejor)

La pregunta principal es si alguien conoce una referencia de integrado contador binario 8 bits, medianamente conseguible en cordoba-argentina. El mismo debe poder soportar una frecuencia de 20mhz. (por mas que he buscado no consigo referencias, y una referencia que vi en internet no la consigo en el pais) y debe ser "cascadeable"

Otra pregunta: Esta bien la forma de ponerlos en cascada que hice? Segun proteus si, aunque este integrado no tenga un Q~ especifico para eso

Y por ultimo, lo que dije arriba, si alguien sabe por donde puede estar viniendo mi problema y me puede ayudar, mejor. Revise el PCB y no hay cortos entre pistas (aunque muchas estan demasiado cerca o pasan entre pines de integrado, creando quiza capacitancias que no pueden ser medidas con capacimetro)
27/10/2011 #2

Avatar de Scooter

Creo que podría ser porque no es síncrono. Pon algo de retardo entre el clock del contador y la señal de escritura.
27/10/2011 #3

Avatar de seaarg

Mis disculpas, no habia podido adjuntar esto porque estaba en el trabajo.

El adjunto es el esquematico de las NAND - NOT que controlan memoria, contadores y ADC

El pin HIGH-Z inhibe la señal de 20mhz o la deja pasar, ademas, controla estado de lectura o escritura del sistema. Se pone en alta impedancia o estado bajo, el pic donde esta conectado este da 20ma en su salida asi que fanout descartado supongo. El pin CLK barrido lento es un clock controlado por el microprocesador para la lectura de la memoria.

Counter Q3 en realidad esta en Q2 (bit 15 de direccion) y es el que detiene la captura rapida cuando la memoria se ha llenado.

Todo esto funciona (al menos, captura datos validos hasta la posicion
16032 que empieza a fallar).

El retardo esta dado en la secuencia de inversores (schmidtt trigger aunque el simbolo no sea)

En el caso de la señal de escritura, el retardo es el provisto por la NAND que conecta a ese pin.

Tiempos:
Primero: se habilita con el clock del ADC que los datos esten en su salida
Segundo: se incrementa la direccion de los contadores
Tercero: se activa el pin WR de la memoria.

Un posible problema seria que la direccion de los contadores cambia en un instante antes que deshabilite la escritura de la memoria. Pero dicha escritura si se mantiene un poco mas del tiempo necesario para grabar de la misma. (a 20mhz el periodo es de 50ns y las memorias son de 15ns. Segun calculos de los otros retardos, dentro del periodo me sobran 20ns)

En ese caso, creo yo, la memoria escribe con datos validos la posicion valida y luego con esos mismos datos empieza a escribir la siguiente direccion, se corta (porque termina el tiempo del pin WR en bajo) y empieza el proceso nuevamente. Basicamente si esto sucediese la memoria escribiria una celda con dato invalido, y luego un dato valido.

De todos modos, no creo que sea mi problema porque en mi prueba el dato que siempre ingreso es 128 y ademas SI graba y lee bien hasta el dato 16032
Imágenes Adjuntas
Tipo de Archivo: jpg controlador_clock.JPG (21,0 KB (Kilobytes), 15 visitas)
09/11/2011 #4

Avatar de seaarg

Corregido el problema. Resulta que me confundi al diseñar y puse como "memoria llena" determinado bit del segundo contador cuando deberia haber sido ese bit+1 y encima estaban mal puestos en cascada. Basicamente, paraba a los 14 bits de direccion en vez de 15 bits.

Ademas, la R de 470K es ahora de 10K
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Buscar más temas sobre:
Lupa Circuitos lógicos combinacionales y secuenciales

Compuertas, flips flops, registros, PLDs, codificadores, contadores, multiplexores, ...

Cerrar
Foros de Electrónica » Diseño digital » Circuitos lógicos combinacionales y secuenciales

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.