Chorus Description

The Z80 provides three lines that control the chorus.  There is a serial data line, a clock line, and a strobe line.  The first step after the data comes from the Z80 (excluding the gating) is that the voltage levels get shifted (0-15V instead of TTL).  This is done to make the signals compatible with the next chip which is an 8 bit shift register.  The data line provides the serial data to this chip at each clock pulse.  Once the data is done being clocked, the strobe line goes high and latches the 8 bits to the output pins of the shift register.  This essentially converts the serial data to parallel data.  The data output pins then feed several resistors arranged in a ladder network configuration.  The resistors basically turn the shift register into a poor man's digital to analog converter.  This takes place once every 20ms.  At this point you might be wondering what the analog waveform looks like since it's completely up the the Z80 programming.  To answer the question, generally, it is a sin wave where the chorus depth setting controls the amplitude and the chorus rate setting controls the frequency.  The exact mappings of the chorus settings to the sin wave parameters are outlined in the spreadsheet below (which can be downloaded).  Getting back on track, after the signal leaves the D/A, it goes to a Phase Locked Loop.  The purpose of this is to frequency modulate the incomming signal to a square wave necessary for the final step.  The final step is the chip that makes the chorus work.  The chip is an analog Bucket Brigade Device (BBD).  This chip can be thought of as a queue of analog samples taken of the guitar signal comming through the MP-1 (at the end of the signal chain).  It basically uses capacitors to store the signal level at a given point in time and then shifts that value through a queue untill it reaches the end where it is put out on the output pin of the chip.  Each time a clock signal is recieved on the chip, it samples and shifts.  The faster the clock pulses come in, the shorter the delay as a given sample will get through the queue more quickly.  Likewise the slower the clock, the longer the delay.  In the case of the MP-1, the clock is (you guessed it) the signal comming from the PLL.  The delay is constantly changing based on the settings of the rate and depth.  In my design, I'd like to eliminate the D/A and PLL as I should be able to get the same result by using one of the PWM lines on the Fez.  This will have a couple advantages in that it would only require one I/O line from the Fez instead of the three that the Z80 uses.  It would also be less cpu intensive as it will only be writing a value to the PWM register every 20ms instead of having to bit blast the data, clock, and strobe lines serially.
Mike D'Amico,
Jul 15, 2011, 5:29 PM