Va de Retro DRAM tester [v2.00]

Proyectos de hardware con sus esquemáticos y si llevan software en fuente

Moderadores: cacharreo, Fundadores

Reglas del Foro
Aquí solo tienen cabida proyectos de hardware que incluyan siempre al menos sus esquemáticos para poder reproducirlos si llevan componentes electrónicos, y si es posible los ficheros del programa en que se hacen, los diseños de las placas, los gerber, etc. Si llevan algún tipo de software asociado debe estar diponible el código fuente

Para los que no cumplen estas condiciones se debe postear en el foro de proyectos generales.
issalig
Aspirante a demonio
Aspirante a demonio
Mensajes: 436
Registrado: 25 Feb 2021, 00:18
Has thanked: 190 times
Been thanked: 118 times

Re: Test de Memorias 4116, 4164 y 41464 - NEWS

Mensaje por issalig »

Creo que es buena idea, con sólo un pin se evitan daños mayores.

Respecto al espacio de programa, los 32k parecen suficientes.
El código DRAMTester ocupa 3k https://forum.defence-force.org/viewtop ... f=9&t=1699
Suponiendo que cada test nuevo sean 3k (que siempre será algo menos) tendríamos 10 tests.

Por otro lado, dejo aquí un apunte del vídeo de @llopis en el que testea la memoria de un ORIC y puede ser útil a la hora de escribir el código.
Aquí comenta que variando los tiempos de desactivación de CAS y RAS puede hacer que el chip se reporte válido cuando no lo es.

Enhorabuena a todos, el proyecto va a quedar perfecto y lo más importante lo que vamos a aprender todos.
Avatar de Usuario
geloalex !Msx 3
Demonio segundo orden
Demonio segundo orden
Mensajes: 1397
Registrado: 19 Abr 2018, 19:21
Ubicación: Instagram: geloalex
Has thanked: 936 times
Been thanked: 487 times

Re: Test de Memorias 4116, 4164 y 41464 - NEWS

Mensaje por geloalex »

cacharreo escribió: 19 Mar 2022, 19:36 si queda espacio en la placa ¿estaríais a favor de hacerlo de 4 pines añadiendo un nuevo pin intermedio desconectado (NC) bloqueado para evitar conectarlo invertido?
Estaría bien por si algún día se monta rápido no equivocarse , incluso ahí a lo mejor convendría poner uno tipo JST que solo entran de una forma y no son caros, solo en la conexión a placa , así evitas rediseños , los tenemos con la misma medida de centrajes.

Lo del ChipTester es por que lo tenia sin actualizar, ya estaba corregido en los nuevos firm
SpectrumZX81,ZX48,ZX48+,ZX128+2+3CommodoreA1200,A500,C64,C64C,C16AmstradCPC464,CPC6128MSXHB20P,HB75P,HBF1,HBF1XD,SVI728,8020Atari2600Sixer,2600Jr,7800PhillipsVideopacG7000NintendoGB,GBC,GBA,NES,FAMICOM,SNES,N64PCEnginePCEngine,PCEngineDUOSegaGG,SMS,SMS2,MD1,MD2,MEGACD2,SATURN,DC,NAOMIMicrosoftXBOX360Sony PS1,PS2,PS3,PS4,PSP,PSVitaMINISNES,SNES,MD,PSX INSTAGRAM: geloalex
Avatar de Usuario
geloalex !Msx 3
Demonio segundo orden
Demonio segundo orden
Mensajes: 1397
Registrado: 19 Abr 2018, 19:21
Ubicación: Instagram: geloalex
Has thanked: 936 times
Been thanked: 487 times

Re: Test de Memorias 4116, 4164 y 41464 - NEWS

Mensaje por geloalex »

Popopo escribió: 19 Mar 2022, 15:05
Ahora...
Betatesters!!!
Se necesitan para probar los prototipos y el software que @cacharreo ha creado. ¿voluntarios que tengan memorias y o donen a los betatesters o ellos mismos hagan de betatesters?
Se valorará que puedan tener conocimientos de programación de arduino, base de electrónica e integrados defectuosos para probar, en cualquier caso, no son requisitos, el requisito principal es querer colaborar con las pruebas, y estas valoraciones son en caso de haber más voluntarios que placas, escoger a los que puedan probar en mayor profundidad (lo que es lógico).
Puedo formar parte si lo veis bien , además puedo comparar resultados junto al ChipTester y tengo stock de componentes ....
SpectrumZX81,ZX48,ZX48+,ZX128+2+3CommodoreA1200,A500,C64,C64C,C16AmstradCPC464,CPC6128MSXHB20P,HB75P,HBF1,HBF1XD,SVI728,8020Atari2600Sixer,2600Jr,7800PhillipsVideopacG7000NintendoGB,GBC,GBA,NES,FAMICOM,SNES,N64PCEnginePCEngine,PCEngineDUOSegaGG,SMS,SMS2,MD1,MD2,MEGACD2,SATURN,DC,NAOMIMicrosoftXBOX360Sony PS1,PS2,PS3,PS4,PSP,PSVitaMINISNES,SNES,MD,PSX INSTAGRAM: geloalex
Avatar de Usuario
Popopo
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3466
Registrado: 05 Nov 2019, 15:25
Has thanked: 1120 times
Been thanked: 570 times

Re: Test de Memorias 4116, 4164 y 41464 - NEWS

Mensaje por Popopo »

cacharreo escribió: 19 Mar 2022, 19:36 si queda espacio en la placa ¿estaríais a favor de hacerlo de 4 pines añadiendo un nuevo pin intermedio desconectado (NC) bloqueado para evitar conectarlo invertido?
Por mi es lo adecuado. De hecho en mi implementación del teclado tengo también un pin NC para evitar posibles errores de conexión
Avatar de Usuario
Popopo
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3466
Registrado: 05 Nov 2019, 15:25
Has thanked: 1120 times
Been thanked: 570 times

Re: Test de Memorias 4116, 4164 y 41464 - NEWS

Mensaje por Popopo »

issalig escribió: 19 Mar 2022, 20:09 Respecto al espacio de programa, los 32k parecen suficientes.
Suponiendo que cada test nuevo sean 3k (que siempre será algo menos) tendríamos 10 tests.
Por otro lado, dejo aquí un apunte del vídeo de @llopis en el que testea la memoria de un ORIC y puede ser útil a la hora de escribir el código.
Aquí... comenta que variando los tiempos de desactivación de CAS y RAS puede hacer que el chip se reporte válido cuando no lo es.
Justo pensaba verlo esta noche, suelo extraer buenas notas de sus comentarios y experiencias.
El tamaño de un test... 3K? realmente creo que no tanto, pues pienso que 1K por cada integrado es suficiente para la configuración del test a lanzar, y luego ya el software de interfaz de usuario, los menús, avisos y las funciones de test, eso si puede ser más, pero sería 1 solo bloque no un bloque por cada tipo de IC.

Vamos, eso me parece
Avatar de Usuario
Popopo
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3466
Registrado: 05 Nov 2019, 15:25
Has thanked: 1120 times
Been thanked: 570 times

Re: Test de Memorias 4116, 4164 y 41464 - NEWS

Mensaje por Popopo »

geloalex escribió: 19 Mar 2022, 22:31
cacharreo escribió: 19 Mar 2022, 19:36 si queda espacio en la placa ¿estaríais a favor de hacerlo de 4 pines añadiendo un nuevo pin intermedio desconectado (NC) bloqueado para evitar conectarlo invertido?
Estaría bien por si algún día se monta rápido no equivocarse , incluso ahí a lo mejor convendría poner uno tipo JST que solo entran de una forma y no son caros, solo en la conexión a placa , así evitas rediseños , los tenemos con la misma medida de centrajes.

Lo del ChipTester es por que lo tenia sin actualizar, ya estaba corregido en los nuevos firm
Justo eso pienso, pero para hacerlo a mi placa, es decir, como poner ese conector ya implica que el otro lado tenga también el mismo tipo de conector, pues igual a algunas personas les puede limitar de alguna manera la modularidad o dificultar modificaciones de cacharreo rápido, que en cambio con pines es lo más fácil, ahora bien, el poner un conector, digamos dupont (Creo que se escribe así) es como dices, no tan caro (aunque algo más) pero si más engorroso, para mi propia placa lo haré creo, pero no quiero ponerlo de serie, porque es cuestión de gusto hasta cierto punto. ¿Me entiendes?. Otra manera de resolver el tema de una posible mala conexión a muy bajo coste es en el conector hembra de 4 pines, le metes algo al pin que debe ir a NC. de esa manera si lo colocas invertido no te va a encajar.
Avatar de Usuario
cacharreo !Sinclair 1
Moderador
Moderador
Mensajes: 5634
Registrado: 09 Ago 2019, 10:17
Ubicación: /home/cacharreo/
Has thanked: 1190 times
Been thanked: 2721 times
Contactar:

Re: Test de Memorias 4116, 4164 y 41464 - NEWS

Mensaje por cacharreo »

En cuanto a los tests al igual que @Popopo, no creo que nos topemos con un fuerte problema de espacio para los pocos integrados que son. Por ahora los límites más restrictivos son la velocidad máxima y la atenuación de la señal a altas frecuencias.

Según las pruebas de velocidad absoluta, con un programa ad-hoc para medirla que no hace nada más, pensamos que podemos aspirar a casi rozar o alcanzar los 8MHz, cuyo periodo sería 125ns o un poco superior. Para que no quede duda,

Código: Seleccionar todo

// #############################################################################
// VdR-RAM-tester
// Timer1 test
// #############################################################################

#define TIMER_ENABLE          // Enable/disable timer
#define OC1A                9 // Timer 1 Output Compare A
#define OC1B               10 // Timer 1 Output Compare B
#define DELAY            1000 // Delay (µs)

// v1.03

// | LFPG       (µs) |
// | DELAY |  Period |
// |     1 |    7.78 |
// |     5 |   15.40 |
// |    10 |   12.65 |
// |   100 |  104.00 |
// |   200 |  204.00 |
// |   500 |  506.00 |
// |  1000 | 2010.00 |
 
// | Timer1  (ns)   (MHz)          |
// | OC |  Period | f    | ZIF pin | 
// |  1 |  125.00 | 8.00 |      10 |
// |  2 |  125.00 | 8.00 |      11 |

void setup()
{

  // Disable interrupts
  noInterrupts();

  // We all love our NANOs so do not forget to
  // set all pins as INPUTS (High impedance)
  // before doing anything else
  for ( int i = 0; i < 21; i++ )
    pinMode(i, INPUT);

  // Set timer pin
  #ifdef OC1A
  #define TIMER_PIN      OC1A // Output Compare A
  #else
  #define TIMER_PIN      OC1B // Output Compare B
  #endif

  // Set pin mode to OUTPUT
  pinMode( TIMER_PIN, OUTPUT );

  #ifdef TIMER_ENABLE
  // Timer 1 settings
  OCR1A =  0;
  OCR1B =  0;
  
  #ifdef OC1A
  // Toggle OC1A
  TCCR1A = bit( COM1A0 );
  #else
  // Toggle OC1B
  TCCR1A = bit( COM1B0 );
  #endif

  // no prescaler | CTC1
  TCCR1B = bit( WGM12 ) | bit ( CS10 );
  #endif

  // Enable interrupts
  interrupts();

}

void loop ()
{

  #ifndef TIMER_ENABLE
  // No hw timer so we test this (cheesy) Low Frequency Pulse Generator
  for ( int i = LOW; ; i = !i )
  {
    digitalWrite( TIMER_PIN, i);
    delayMicroseconds( DELAY );
  }
  #endif

}
Osciloscopio / Analizador lógico (D1):
Imagen Imagen

Referencias útiles:
Última edición por cacharreo el 20 Mar 2022, 15:27, editado 1 vez en total.
© cacharreo
Avatar de Usuario
cacharreo !Sinclair 1
Moderador
Moderador
Mensajes: 5634
Registrado: 09 Ago 2019, 10:17
Ubicación: /home/cacharreo/
Has thanked: 1190 times
Been thanked: 2721 times
Contactar:

Resolución de problemas (v1.02f-1.05x)

Mensaje por cacharreo »

Un guión para la resolución de problemas comunes con el ensamblaje y prueba del tester que irá siendo actualizado para incorporar las últimas novedades.

Problemas eléctricos

1a. El test de pines muestra un pin digital a 0 por defecto cuando la tabla de verificación dice que debe estar a 1
1b. El test de pines muestra un pin digital a 1 por defecto pero al conectarlo a tierra no cambia a 0

- Instalar correctamente el módulo MOSFET con H01 y H08 alineados respectivamente con Z01 y Z08,
- Asegurar la alimentación de dicho módulo consistente en un cable negro (desde H01) y otro rojo (desde H08) y que de forma respectiva están conectados o soldados a GND y VCC/+5V.

1.1. El módulo MOSFET está instalado como se ha descrito pero aún así el problema persiste

- El pad correspondiente al pin digital en el zócalo del Nano o el de su nodo fusible-zener correspondiente está soldado accidentalmente al plano de tierra.
- Las pistas asociadas al pin digital están en contacto con las de otros pines.
- El zener correspondiente está averiado (en corto).
- El fusible PPTC correspondiente está fundido (abierto).

2. El test de pines muestra varios pines digitales que cambian a la vez

- El tester está apoyado o en contacto con algún objeto que está alterando las lecturas (la mano del operador, algo sobre la mesa,...).
- Las pistas asociadas a dichos pines están en contacto con las de otros.

3. La tensión de alimentación tiene grandes oscilaciones entre diferentes reinicios en frío

- La fuente de alimentación utilizada es insuficiente (p.e. un concentrador USB) y debe sustituirse por un puerto USB directo del ordenador (mínimo 500mA) o un cargador USB de al menos 5V 2A que mantenga J3#3 (+5V) al menos a +4.38V.
- Si esta tensión presenta una variación o ruido de ±200mV o superior en placas v1.02f o de versiones anteriores es recomendable añadir por la cara inferior, un condensador de 220µF 25V entre el pin 8 del zócalo del LMC7660 (pin positivo del condensador) y el más cercano pin conectado al plano de tierra (pin negativo del condensador).

Imagen

4. Los botones no hacen nada

- Falta el puente entre los pines 1 y 2 de J2.
- El botón está desconectado de la línea VCC o en corto.
- El pin 18 del Nano está en corto o desconectado de VCC.
- Las tensiones en el convertidor digital-analógico (DAC) no son correctas. Revisar las resistencias de cada botón confirmando sus valores.

5. Se escucha un zumbido agudo

- El pin 3 de J3 está en corto con tierra, un pin digital,...
- El módulo HW-668 tiene un corto o un contacto que debe ser revisado y eliminado.

Problemas NO eléctricos

1. Todos los tests fallan con memorias en buen estado

- Falta el puente en JP5 y/o JP6.
- Alimentación insuficiente (p.e. +5V por debajo de los +4.38V).
- Fallo en las tensiones suministradas en J3.
- Corto.
- Cables de J3 a J4 desconectados.
- Defectos en el zócalo ZIF.
- Fallos en las pistas que interconectan los pines digitales del Nano y el zócalo ZIF que deberán ser revisados y verificados con el test de pines.

2. Aparecen falsos negativos en tests con memorias en buen estado

- Interferencia electromagnética solucionable con el apantallamiento apropiado.
- Si se sospecha de una variación significativa en la tensión de alimentación o ruido en la misma, aplicar este método.
- Confirmar los contactos del zócalo ZIF con los pines de las memorias.
- Repetir las pruebas sobre memorias 4164 sin el LMC7660 instalado y si desaparecen los falsos negativos (test fallidos), sustituirlo.
- Repetir las pruebas sobre memorias 4164 sin el módulo HW-668 instalado y si desaparecen los falsos negativos (test fallidos), sustituirlo.
- Desoldar la pata soldada a masa de los diodos zeners implicados y repetir las pruebas. Si desaparecen los falsos negativos, ir conectándolos uno a uno y si vuelven a aparecer, sustituir el diodo.

3. Resulta muy difícil conseguir una pulsación larga

- El pulsador montado es inestable y rebota.
- Si se dispone de ella, comprobar con una botonera externa.
- Cambiar el pulsador.
© cacharreo
Avatar de Usuario
Popopo
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3466
Registrado: 05 Nov 2019, 15:25
Has thanked: 1120 times
Been thanked: 570 times

Re: Test de Memorias 4116, 4164 y 41464 - NEWS

Mensaje por Popopo »

cacharreo escribió: 20 Mar 2022, 01:01 Según las pruebas de velocidad absoluta, con un programa ad-hoc para medirla que no hace nada más, pensamos que podemos aspirar a casi rozar o alcanzar los 8MHz, cuyo periodo sería 125ns o un poco superior. Para que no quede duda,
125ns es (a mi entender) más que perfecto. La memoria más rápida que he tocado era de un Spectrum (memoria alta) y trabajaba en torno a los 150ns.
Trataré de poner hoy las velocidades de trabajo (más rápidas) en los equipos retro de la tabla del primer post.
Creo que tengo los datasheets de casi todas... si que las tengo.
Avatar de Usuario
Popopo
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3466
Registrado: 05 Nov 2019, 15:25
Has thanked: 1120 times
Been thanked: 570 times

Re: Test de Memorias 4116, 4164 y 41464 - NEWS

Mensaje por Popopo »

Hola,
Tengo la siguiente duda, actualizando la tabla con las velocidades de las memorias tipicas en los equipos de 8 bits, veo que en el datasheet pues hay variedad, por ejemplo,
Las KM4164:



pues tienen varias velocidades Trac, Tcac y Trc, ¿cuál sería la más restrictiva y la que habría que tener en cuenta?
Por otra parte, las hay de 100ns, pero no las he visto en ningún Spectrum hasta ahora, además de que igual no se pueden usar por los tiempos de trabajo del propio Spectrum, pero desconozco si en otras plataformas si se usan.
alguno de los que usais Amstrad, Commodore, MSX, etc ¿puede decir cual es la menor que ha visto usándose? O sencillamente sepa cual es la más baja que usa alguno de los equipos con los que esté familiarizado.

Mientras pongo en la tabla las memorias "tipicas" que conozco en base a los datasheets, aunque ya no pondré los modelos más bajos puesto que igual ni se usan y no tendría sentido añadir tales memorias.
Gracias
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
Responder

Volver a “Proyectos de hardware abiertos”