CMOS Mickey Mouse Logic

Ray Wilson authored this content while he was actively running MFOS as the founder and resident genius. We retain the content because it reflects a valuable point of view representing that time and place.

Article by Ray Wilson

Understanding Mickey Mouse Logic (MML)

I am going to introduce you to M-Squared Logic (Mickey Mouse Logic, its not a joke folks). CMOS which is the technology for the circuits behind the MIDI to CV Convertor is a pretty forgiving technology so you are able to do cool tricks with diodes and resistors that would simply not work with TTL circuitry. If you have the resources to stock your lab with every gate combination in the world then you don't need to use MML. But, if you are like me you have a nice assortment of gates and counters but not every chip in the world, especially not 4 input NOR gates or 8 input NAND gates and such. MML lets you keep one IC on hand, the simple hex inverter (74HC14, 74C14 or CD40106). These are hex (because there are six of them in the package) inverting Schmidt triggers which when combined with resistors and some 1N914 diodes (which are very cheap and obtainable) can give you whatever CMOS compatible gate you need. Remember that MML inputs (typically diode anodes or cathodes) expect logic levels from CMOS gate outputs. For more information get Don Lancaster's "CMOS Cookbook" ISBN: 0750699434 which is out of print but still available via Amazon.

NOTICE: The 74HC14 (and all 74HC gates) have a limited supply voltage capability (2 to 6 volts) whereas the 74C14 and CD40106 can both be powered from 3 to 15 volts.

These characteristics of the CMOS hex Schmidt trigger make MML possible:

  1. CMOS gate inputs have ultra high input impedance (practically no current flows in or out of them).
  2. CMOS gate outputs swing from rail to rail (ground to VDD).
  3. CMOS gate outputs source current in the high output state and sink current in the low output state.
  4. The Schmidt trigger action of the 74HC14 is critical to the working of the MM2 logic. Whereas a normal CMOS gates would be biased into its linear region by applying voltages at the input that are not completly high or completely low (which causes its output to oscillate wildly) the Schmidt trigger is designed to go high after its input voltage exceeds 2/3 of V+ but not to go low again until its input voltage dips below 1/3 of V+. This characteristic is called hysteresis (after the greek god hystos because once he made his mind up about something it was really hard to get him to change it ... just kidding :) ). Its purpose is to clean up dirty or slow rising (or slow falling) logic signals.

Refer to Figure 1 Mickey Mouse Logic Circuits for the following.

The n input NOR gate works as follows. Resistor R1 (100K) holds the input of the 74HC14 low when all of the inputs (the anodes of the diodes connected to its input) are connected to CMOS outputs at a low logic level. In this condition the 74HC14's output is high (its an inverter remember). However, if any input goes high current flows through the respective diode causing the 74HC14's input to go high and its output to go low.

By inverting the output of this configuration you get an n input OR gate.

The n input NAND gate works as follows. Resistor R4 (100K) holds the input of the 74HC14 at 5V whenever all inputs (the cathodes of the diodes connected to its input) are connected to CMOS outputs at a high logic level. In this condition, the 74HC14's output is low (remember the inversion). But, if any input goes low current flows through the respective diode causing the 74HC14's input to go low and its output to go high.

By inverting the output of this configuration you get an n input AND gate.

One shots and pulse stretchers are a piece of cake with MML. The top one shot turns a falling edge into a ground to positive pulse. The second one turns a rising edge into a positive to ground pulse. The hysteresis built into the Schmidt triggers causes the inverters to switch states when the input is two thirds of the way positive or two thirds of the way to ground. This is very handy because it corresponds with capacitive charging and discharging time constants. Thats why the one shot's pulse width is very close to R x C. Keep R above 20K to avoid excessive loading of CMOS outputs.

The pulse stretchers work as follows (refer to the one on the left with C3 and R7). A narrow ground to positive pulse arrives at the input causing current to flow through the diode and charge capacitor C3. Immediately the first Schmidt trigger's output goes low and the second's goes high. The inverters remain in this state until capacitor C3 discharges through resistor R7 to about 1/3 of the positive supply voltage at which time the inverter's outputs switch and the second inverters output goes low.

The second pulse stretcher (refer to the one on the right with C4 and R8) is similar. A narrow positive to ground pulse arrives at the input causing current to flow through the diode and discharge capacitor C4. Immediately the first Schmidt trigger's output goes high and the second's goes low. The inverters remain in this state until current through resistor R8 charges capacitor C4 to about 2/3 of the positive supply voltage at which time the inverter's outputs switch and the second inverters output goes high.

Figure 1 Mickey Mouse Logic Circuits