I have connected the ripple counter CD4020 to an Atmega328, which sends a 50ms (low logic level) pulse to the CD4020's input each second and monitors all of its 12 outputs.
However instead of incrementing the output on each pulse, the CD4020's output gets incremented on each eighth pulse.
Why is this division with the factor 8 happening?
Pin values: 000000000000
Pin values: 000000000001
Pin values: 000000000000
Pin values: 000000000001
Pin values: 000000000000
Pin values: 000000000001
Pin values: 000000000000
Pin values: 000000000001
Pin values: 000000000010
Pin values: 000000000011
Pin values: 000000000010
Pin values: 000000000011
Pin values: 000000000010
Pin values: 000000000011
Pin values: 000000000010
Pin values: 000000000011
The datasheet also states, that the CD4020 is a 14-stage counter, but it only has 12 outputs. Why 14?
Best Answer
We can see from the datasheet, that the CD4020 has the following block diagram:
Notice the naming of the outputs, you have
Q1
, andQ4-Q14
.Note also that it is a 14-stage counter, which means the counter internally has 14 outputs.
From your data you can see that
Q1
(the LSB) is toggling on every negative edge pulse as you would expect.Q1
is the first bit in the counter.However the next available output is
Q4
- this will be the fourth bit in the counter. That means that you cannot seeQ2
orQ3
. You would expect to seeQ4
toggling at one eighth of the rate ofQ1
- you are. So everything is working correctly.Lets do a quick truth table to confirm:
Yep, that matches the output you are seeing when we remove the unavailable Q2 and Q3.
The reason there are only 12 outputs is simply due to lack of pins - standard DIP packages back when the part was made were typically 8, 14, or 16 pins.
Having the higher order bits is in many applications more useful than the low order bits, so the designer chose to break them out.
Having the least significant bit is also quite useful. You can for example you feed in a pulsed analogue input (e.g from a Relaxation Oscillator). This sort of signal is no good for feeding standard digital logic, but the CD4020B uses a Schmitt trigger input to clean it up. From
Q1
you will get a nice digital clock signal out, albeit at half the frequency of the oscillator.