[sdiy] Nanosecond delays - the clean or dirty method?

Steve Lenham steve at bendentech.co.uk
Thu Feb 25 18:31:44 CET 2021


On 25/02/2021 17:17, Didrik Madheden wrote:
> Are you sure this is actually the problem? Some FRAM chips require a new 
> pulse on either /CS or /RD / /WR for each new access. Some MCUs on the 
> other hand hold /CS and /RD low and just modify the address. This works 
> for regular SRAM chips but not certain FRAM chips as mentioned. If this 
> is the issue, what you actually need is to gate the /CS signal. This 
> problem exists for example for the Gameboy CPU when retrofitting FRAM 
> for the battery backed save RAM in game cartridges.
> 
> /Didrik

Thanks Didrik, but yes, I am sure. The problem is related to that, though.

The reason the FRAMs require a new /CS pulse for each access is that 
they latch the address on the falling edge of /CS and ignore any 
subsequent changes.

In the system I'm working on (an EMT246), the RAM cart is memory-mapped 
onto a good old Z80. /CS is generated by decoding the higher-order 
address lines and gating with /MREQ. This would all be fine BUT...they 
chose to buffer the address bus to the cart with a tristate buffer that 
is gated on and off using the RAM /CS signal.

That means the RAM /CS goes low fractionally before the valid address 
arrives and the FRAM latches in the wrong address. Delaying /CS a tiny 
bit gives the tristate buffer time to pass the address through. I've 
tried it and it works.

Cheers,

Steve L.
Benden Sound Technology




More information about the Synth-diy mailing list