[sdiy] dsPIC Parallel Master Port (PMP) - DRAM for reverb memory etc.

rburnett at richieburnett.co.uk rburnett at richieburnett.co.uk
Fri Aug 9 14:38:21 CEST 2013


> The best idea I came up with, which I have never tried, is to use a
> 1,048,576 x 8 bit EDO (Extended Data Out) Dynamic RAM....

Hi Robin,

I have tried this in practice and managed to tag up to 32MB of EDO RAM 
onto a dsPIC30f6014 device a few years ago.  It worked fine, but the 
memory bandwidth wasn't particularly impressive due to all of the 
bit-bashing for the various row/col address setup/hold times, CAS/RAS 
strobing etc.  This is particularly so if you want to access the memory 
in 24-bit wide words over just an 8-bit wide data bus.  You spend a lot 
of time splitting all of the reads and writes into high, mid and low 
bytes and reassembling the data which really slows things down.  So, 
although it worked great for a basic 24-bit stereo audio delay, it 
wasn't up to implementing something like polyphonic sample playback or a 
decent reverb algorithm.

Other observations were that DRAM timing diagrams can be a bit 
intimidating and complex to figure out at first, and that fast DRAM 
chips like those found on old computer SIMMs are *VERY* sensitive to 
signal integrity issues on the digital lines.  I had to wire the DRAM 
chip to the dsPIC pins directly with 25mm long wires for prototyping.  
The 70mm PCB traces from the dsPIC to the expansion connector on the 
dsPICDem development board were already way too long!  Although you can 
not clock your dsPIC into the 100's of MHz, the I/O lines still change 
state in a few nanoseconds and the fast DRAM chip can easily see signal 
reflections from poor termination as double clocking!  This is what I 
spent the majority of the time sorting out with a fast oscilloscope.  So 
if you ever try this, use the absolute shortest most direct wiring from 
the outset to avoid a lot of head-scratching!  Or if you decide to use 
several instances of 80's PC SIMMs you'll probably need to look at 
terminating the end of the PCB traces to control signal reflections.

-Richie,


   For instance
> this device or any of those which have the same pinout and timing:
> 
>   http://www.digchip.com/datasheets/parts/datasheet/308/V53C808H35.php
> 
> These are 5 volt chips in 28 pin SOJ or perhaps TSOP packages.  They
> have been obsolete for at least ten years.  This datasheet is from 
> 1998.
>  They are 5 volt DRAMs with these pins:
> 
>    10 address pins - the address is clocked into the device in two
>    sets of 10 bits, by the next two pins:
> 
>    /RAS  Row Address Strobe
>    /CAS  Column Address Strobe
> 
>    /OE Output enable
>    /WE Write enable
> 
>     8 data input/output pins
> 
> I can't remember the details but I thought it might be feasible to 
> drive
> A0 to A7 parallelled to D0 to D7 and to drive A8 and A9 separately.  
> If
> A8 and A9 were not used, then this would be 64k bytes of memory.  With
> these two bits used, giving four more address bits, the capacity would
> be 256k bytes.
> 
> I am not sure to what extent the PMP (Parallel Master Port) would be
> useful in such a scheme.
> 
> The trouble is that by the time this many pins are used, after the DAC
> pins are accounted for, there's not much left.  This might make more
> sense with a larger pin-count dsPIC.
> 
>   - Robin



More information about the Synth-diy mailing list