[sdiy] SRAM versus DRAM
Dave Manley
dlmanley at sonic.net
Wed Jun 24 07:23:21 CEST 2009
Dan,
For an octal tri-state buffer look at a 240, 241, 540, 541, etc
For an octal latch look at 273, 573, 574, etc
The timing circuit in the Polyphony article is easy to modify because it
uses a CD4017 to generate a 10 phase clock. It is easy to pick
different phases, invert a phase, and/or to 'OR' multiple phases
together to generate timing pulses to control everything.
Hook up the ram like this:
1. ADC digital output is connected to octal-tristate buffer inputs
2. octal tristate buffer outputs connected ram data i/o bus
3. ram data i/o bus connected to octal latch data input
4. octal latch data output connected to DAC digital input
Otherwise the circuit is nearly identical to the one in the article.
Here's an example timing, where ph0->ph9 are the 10 output clock phases
from the CD4017, all the
phases aren't used, but are shown:
(use Courier font to make sense of the following)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _
clock _/0\_/1\_/2\_/3\_/4\_/5\_/6\_/7\_/8\_/9\_/0\_/1\_/2\_/3\_/4\_
___ ___
ph0 _/ \___________________________________/ \_______________
___ ___
ph1 _____/ \___________________________________/ \___________
___ ___
ph2 _________/ \___________________________________/ \_______
___ ___
ph3 _____________/ \___________________________________/ \___
___ ___
ph4 _________________/ \___________________________________/
___
ph5 _____________________/ \___________________________________
___
ph6 _________________________/ \_______________________________
___
ph7 _____________________________/ \___________________________
___
ph8 _________________________________/ \_______________________
___
ph9 _____________________________________/ \___________________
___ ___
addr_clk _____/ 1 \___________________________________/ 1 \___________
_____________________________________________________________
addr _____X_______________________________________X_______________
___ ___
latch_clk _____________/ 3 \___________________________________/ 3 \___
_____________________________________________________________
latch_data_____________X_______________________________________X_______
_____________________ _______________________________
adc_oe \__5+6__/
_______
adc_data ---------------------<_______>-------------------------------
_____________________ ___________________________________
ram r/wb \_5_/
________
ram_oeb _____________________/ 5+6 \______________________________
_____________________ _______________________________
ram_do _____________________>-------<_______________________________
Notes:
1. on the positive edge of ph1 the address counters increment, start ADC
conversion
2. the ram is almost always in read mode
3. on the positive edge of phase 3, latch the ram output data into the
DAC data latch
4. on phase 5 and phase 6 disable the ram data outputs, enable the ADC
tristate buffer
5. ADC converted data is now on the ram input pins, pulse ram r/w low,
write data to ram
If you use a 32Kx8 ram and use the same timing in the Polyphony article,
the max delay goes up to around 1.3 seconds. To get this bigger delay,
you will need to increase the size of the address counters (U14, U15,
U16) to support the bigger address bus on the 32Kx8 ram. It is easy to
chain together the '193 counters, so this shouldn't be any problem.
If you are willing to do some extra circuitry, you could make this a
multi-tap delay without too much trouble.
-Dave
Dan Snazelle wrote:
> i am currently using
>
> ADC0820 and DAC0800
>
> i have a few other ADC's here if that would make things easier
>
> i also have some DAC0808's
>
> i have an order coming soon with some TTL octal latches (i hope i bought the right ones)
>
> 74hc573's i think
>
> i dont know if i have a tri state buffer
>
> but i can order whatever is needed
>
> this would be a lot of fun to get working!!
>
> i think my main hurdle/fear is that I dont have a very good handle on how to turn a timing diagram into a working circuit
>
> i know that in theory what you do is take the clock and using logic and a counter, send it to different parts of the circuits at different times
> Right? (to turn some on, some off, and to direct the INS and OUTS of the I/O pins. but figuring out when and how has always seemed very
> hard to me)
>
> i already have the HM6264 which is a
>
> 8192x8 SRAM chip
>
> so that might work to start
>
> i really appreciate all the help..i know this topic has been going on for awhile now
>
> ----------------------------------------
>> Date: Tue, 23 Jun 2009 20:07:59 -0700
>> From: dlmanley at sonic.net
>> CC: synth-diy at dropmix.xs4all.nl
>> Subject: Re: [sdiy] SRAM versus DRAM
>>
>> Dan forwarded me the schematic. It is very easy to convert to use a
>> SRAM with multiplexed data pins. Looking at Jameco, I see a bunch of
>> parts, 32Kx8, 128Kx8, in DIP packages that are less than 4 bucks. To
>> modify the circuit to work with a modern SRAM will require adding an
>> octal latch, an octal tri-state buffer and some control logic. If the
>> A/D has tri-state outputs the tri-state buffer can be eliminated, and
>> if the D/A has a latch, the octal latch can be eliminated. I'll try to
>> post the timing later tonight.
>>
>> Dan, what ADC and DAC are you planning on using?
>>
>> -Dave
>>
More information about the Synth-diy
mailing list