Close

System Block Diagram

A project log for SquareTone

A hardware project that generates square waves frequencies and sums them together, Fourier style.

Adam GulyasAdam Gulyas 06/12/2015 at 11:360 Comments

Here's the overall block diagram. It was developed from the overall specifications. Explanations of each block are below:

External Input Frequency: This lets the user input their own initial frequency.

Inputs: A TRS jack (phono jack)mounted on the face plate.

Outputs: A square wave. Acceptable frequency range will be determined during prototype characterization.

Initial Frequency Generator: Generates the initial high frequency that is divided down into all the desired harmonics. It will be a 555 timer or relaxation oscillator or whatever else produces a desirable square wave.

Inputs: Face plate user controls (pots, switches) which control frequency.

Outputs: A square wave. Acceptable frequency range will be determined during prototype characterization.

Clock Interrupt: By disconnecting the clock from the harmonic generator, the devices output will pause as all the flip flops and counters hold their state.

Inputs: A SPST off-mom switch mounted on the face plate and the initial frequency signal.

Outputs: The initial frequency signal or 0 V.

Phase Reset: This signal will reset the counters and flipflops to their initial state, effectively resetting the device's output to zero degrees phase.

Inputs: A DPST off-mom push button switch mounted on the face plate.

Outputs: A +Vcc and a gnd signal when off. They switch when the button is pressed.

Harmonic Generation: This takes the initial frequency and pulls out all the desired harmonics. It's a series of chained frequency dividers realized with T flip flops and counters. The total division ratio is 1680:1. In other words, if a 1680 Hz frequency is input, the output fundamental frequency will be 1 Hz.

Input fOutput fundamental f
1680 Hz1 Hz
168 Hz0.1 Hz
168 kHz100 Hz
16.8 GHz10 kHz

From the above table it's clear that, while an output of 10 kHz is not possible without delving into RF theory, something like 300 Hz should be possible.

Inverting: Each output harmonic will have the ability to be inverted, giving me the ability to produce negative Fourier coefficients. In reality there are 8 inverters, each with their own switch, which aren't shown for simplicity.

Inputs: The square wave harmonics and eight toggle switches mounted on the face plate.

Outputs: The square wave harmonics that are possibly inverted.

Summing: All the components will be fed into an inverting summing op-amp stage, which will let me control the amplitude of the harmonics individually and as a group. The design will be such that each waveform is at maximum amplitude 1 Vpp to help avoid clipping.

Inputs: Eight 1 Vpp square waves. Eight slide pots mounted on the face plate to control individual amplitude. One slide pot mounted on the face plate to control overall amplitude.

Outputs: The summed square waves, max voltage = 5 V.

Output Jack: This let's the user extract the created signal for additional manipulation/use.

Inputs: The summed square waves, max voltage = 5 V.

Outputs: Trs and BNC jacks mounted on the face plate.

Waveform Display: This is an XMEGA Xprotolab, a tiny oscilloscope that will be mounted to the case. It will enable a more instinctive control of the harmonics present in the output.

Inputs: The summed square waves, max voltage = 5 V. Also the XMEGA and all its controls mounted on the face plate.

Outputs: An image of the output waveform.

Speaker Driver: This will be an LM386 op amp connected as recommended in its datasheet. It will have user controllable gain, which means there will be two ways to change the overall gain of the audio signal.

Inputs: The summed square waves, max voltage = 5 V. Also a rotary pot mounted on the face plate to control volume.

Outputs: A buffered version of the input able to drive an 8 Ω speaker.

Speaker: Mounted to the enclosure to let you hear what you're creating.

Inputs: The buffered output waveform.

Outputs: An audio signal of crystal clarity.

9 V Battery: Each battery will be used to form one of the power rails.

Inputs: N/A

Outputs: 2x 9V in series, center grounded.

Power Supply: This will be a basic ±5 V linear voltage converter design.

Inputs: Power from 9 V batteries.

Outputs: Constant ±5 V rails.

Power Status LED + Driver: This LED lights when the batteries drop below 5 V. It will be either an op amp comparator, ASIC, or something clever with BJTs. (Priority given to solution with lowest power draw.)

Inputs: 9 V batteries (or the voltage regulators if that works better).

Outputs: Panel mounted LED that lights when power is low.

I may also include a LED whose brightness changes with the output voltage amplitude. It would be buffered with a bjt voltage follower.

Discussions