Página 1 de 3

Refrescar la ram de un +3 externamente.

Publicado: 04 Mar 2022, 01:40
por tic
Hola tengo un +3 que compre hace tiempo que por desgracia tenia varias averias, RAM, fdc,membrana, pero lo más grave es que tenia una avería oculta, el gate array no emite refresco para los ic5 eh ic6. Así que el contenido de la memoria se corrompe al poco tiempo.

Pero si envía el refresco cuando accede a la memoria tanto RD como Rw llegan correctos.

Han intentado repararmelo refrescando la ram externamente con un 74ls00.

-Quitando la señal /ras del ic5/ic6.
-coger /ras del GA y /Mreq del bus a una de las puertas and.
-/ras del GA y /rfsh del z80 a otra and.
-Las salida de las 2 nand a una tercera nand.
-La salida de la tercera nand se les pasa a ic5 eh ic6 com /ras.

No aguanta más de 10 segundos sin perder el contenido de la ram

¿Alguien tiene lguna idea?. Tengo una ula de repuesto como último recurso, pero preferiría no usarla si hay alguna posibilidad.

Re: Refrescar la ram de un +3 externamente.

Publicado: 04 Mar 2022, 08:21
por cacharreo
¿Se ha cambiado el Z80 o los chips de la RAM? ¿de qué tipo son las nuevas memorias?

Re: Refrescar la ram de un +3 externamente.

Publicado: 04 Mar 2022, 10:42
por tic
Se han intentado varios tipos desde unas oki a unas tmm. Más de 20 chips.

Está comprobado con analizador logico que no envía cas/ras.

Re: Refrescar la ram de un +3 externamente.

Publicado: 04 Mar 2022, 12:11
por cacharreo
Eso imaginé. Mirad a ver si esto os dice algo:
Retroleum escribió:The Upper RAM chips originally used in the Spectrum have a 128-cycle refresh requirement (essentially, a counter from the CPU (its “R” Register) is used to address each row of cells in turn when the CPU is doing other things). This counter is 7-bits wide so counts from 0-127 which is fine for 32Kx1 chips which have 128 rows of 256 cells. However, some 64Kx1 chips require a 256-cycle refresh count (because they have 256 rows of 256 cells) and the Spectrum may not refresh them all correctly** (because the refresh counter only goes from 0-127). Fortunately, many 64Kx1 chips were designed to still need only 128 refresh cycles (they refresh 2 rows per cycle) and such chips will refresh correctly in all Spectrums. It will state in the chip’s datasheet what its refresh requirement is.

** The incompatibility manifests itself when the jumpers are set for OKI chips because of the different way the rows of cells in these chips are addressed. During refresh (and normal access) when the jumpers are set for TI chips, the “AR” pin of each RAM chip receives a fixed high or low (depending on the TI RAM variety jumper setting) so the same half of the 64K chip is refreshed as that being used to store data. However, when the jumpers are set for OKI chips the “AR” pin receives different values: During refresh, the AR pin = CPU register I(6) because the I register is placed on the upper 8 bits of the address bus at this time. The value in I is variable and may or may not match the page of RAM being used for storage. Note: This compatibility issue may not be immediately apparent since a row of bits is also refreshed whenever that row is read by the CPU, but if it has been a while since the previous refresh, the contents will have been lost.
Artículo completo:

Re: Refrescar la ram de un +3 externamente.

Publicado: 08 Mar 2022, 03:08
por Lord Raptor
Pero el refresco de RAM no se hace por medio del registro R del Z80?
Prueba a cambiar el z80 a ver si se soluciona el problema

Re: Refrescar la ram de un +3 externamente.

Publicado: 19 Mar 2022, 16:36
por tic
No en el +3 lo genera la ula.

Re: Refrescar la ram de un +3 externamente.

Publicado: 19 Mar 2022, 17:26
por cacharreo
Lord Raptor escribió: 08 Mar 2022, 03:08Pero el refresco de RAM no se hace por medio del registro R del Z80?
El Z80 se encarga del refresco de la DRAM y el registro IR se carga en el bus de dirección antes del refresco. Para procesar una instrucción utiliza 4 ciclos de reloj, en los dos primeros (T1 y T2) obtiene la instrucción de la RAM y en los dos últimos (T3 y T4) decodifica la instrucción a la vez que refresca la memoria.
4.1) R register and memory refresh

During every first machine cycle (beginning of an instruction or part
of it -- prefixes have their own M1 two), the memory refresh cycle is
issued. The whole of IR is put on the address bus, and the _RFSH is lowered.
It unclear whether the Z80 increases the R register before or after putting
IR on the bus.

The R register is increased at every first machine cycle (M1).
Z80 Undocumented Features

Re: Refrescar la ram de un +3 externamente.

Publicado: 23 Mar 2022, 04:04
por Lord Raptor
tic escribió: 19 Mar 2022, 16:36 No en el +3 lo genera la ula.
Vaya, curioso !!
Eso no lo sabía, gracias por la info.

Re: Refrescar la ram de un +3 externamente.

Publicado: 30 Mar 2022, 15:25
por tic
Al final ha sucedido una especie de milagro raro y por lo visto la ula está bien y el problema era que tenía unas cuantas patas desoldadas al aire.

Lo que tengo roto ahora es la disquetera que tiene el tope de la barra esa del motor roto por lo visto.

Re: Refrescar la ram de un +3 externamente.

Publicado: 30 Mar 2022, 22:47
por fcastellanos
tic escribió: 30 Mar 2022, 15:25 Al final ha sucedido una especie de milagro raro y por lo visto la ula está bien y el problema era que tenía unas cuantas patas desoldadas al aire.

Lo que tengo roto ahora es la disquetera que tiene el tope de la barra esa del motor roto por lo visto.
¡Eso no es tan grave entonces! Siempre puedes conseguir una disquetera de 3" o bien podrías aprovechar para sustituirla por una Gotek. :D