PIC18F4550 Scope: capturing the output of a 555-timer IC
In my previous blog
"Using Velleman K8076/VM134 PIC-programmer with Microchip's Library of Applications: USB programming basics"
, I made a start with a PIC18F4550 USB scope. In this blog I will write about my experience with capturing the signal of a 555-timer IC.
Below you see the schema of an astable multi vibrator.
The charging time of C1, t1 = 0.693(R1+R2)C1 = 0.693(10k+100k) * 1µF = 0.0762s The discharging time C2, t2 = 0.693(R2)C1 = 0.693(100k) * 1µF = 0.0693s The total timer per period T= t1 + t2 = 0.0762s + 0.0693s = 0.1455s The frequency of the signal is 1/T = 1/ 0.1455s = 6.87Hz
Which is about 7Hz (the tolerance of the resistors =10%, so it wouldn't make sense to express the frequency with such an accuracy.
Basic 555-timer IC schema
I connected the output of the timer IC to pin 2 (= AN0, configured as analog input). So what do we see in the 'scope'-program?
HIDpnpdemo with 555 output as source
What do we see here? Is this the 7Hz signal of the 555-timer? Is seems there is a problem in the A/D-conversion process.
So digging into the specs of both the PIC18F4550 and 555 timer might explain the problem:
The maximum recommended impedance for analog input sources is 2.5k. So what is the output impedance of a LM555 at 7Hz?
I couldn't find a clear answer on the net. So I decided to buffer the output signal with an emitter follower circuit. An emitter follower has low output impedance and high input impedance. See schema below.
Buffered 555 output signal
What signal do we see after the buffer has been added?
HIDpnpdemo 555 buffered output
This looks much better. Now let's change the HIDpnpdemo a little bit such that the program can actually be used as a simple scope.
PIC18f4550 USB Scope 555 timer scale 1:1
PIC18f4550 USB Scope 555 timer scale 1:3
With the new program, I can scale, offset and toggle between frequency or 1/frequency. The above image shows that the signal period is about 152 msec which is about 6.6Hz. Not bad, is it?
Back to List