hello
If I put 50pF for testing, the range of frequency generated is 21.2 - 21.9 kHz.
If I put 49pF for testing, the range of frequency may be 21.0 - 21.6 kHz.
so for delta=1pF
you are not able to measure anything !
be realistic !
Gives us the relation chip between delta Temp => delta Capacitor value
and your schematic ..
i made an aplication to measure capacitor as low as 1pF
using a ICM7555 CMOS version wich can handle resitor up to 10 Megohms !
i measure the periode, not the frequency ( but F=1/T)
with a FOSC of 20MHz => cycle=20/4=5Mhz
i used 2,2Mohms with C= 100pF in parralele with the Unknow capacitor value
to produce a pluse about 0,7RC with give 1645 pts for 0 value (offset=100pF)
zero 1645 pts ( for offset=100pF)
and 13424 pts for 1000pF
and 1 169 628 pts for 10nF
and 5 688 322 pts for 470nF
This pts value can't be stored in a Byte (8 bits size), so i used a unsigned long integer wich is 32 bits wide
to store Pts value..
and for my LCD , I convert this 32 bits value into nanofarad to display in phycical units.
There is no direct relation chip with 32 bits pts value and display resolution !
display format :
0,001 nF for 1 PF
1,000 nF for 1nF
470,000 nF for 470nF
My LCD 2x16 can work in 4 bits data format !! and handle ascii
so i send ascii value to represent the number to display.
You can see, even using a MCU 8 bits, we can handle many format of datas.
In fact it is more easy to do with C langage !
Code:
// variable declaration (to use with your application program
unsigned long Lvalue=0L ; // use 4 bytes room in memory => 32 bits
unsigned char ByteValue=0; // use only one place in memory => 8 bits
or in asm:
Code:
cblock 0x20
Count1 ; use 1 byte
Count2 ; use 1 byte
Frequency :4 ; use 4 bytes , so equivalent as 32 bits size
.....
endc
and use 32 bits math asm function inside the program
The classic way to measure temperature with a xxx555 is to use a CTN (or CTP)resistor
witch has a large dynamique of change value in a corresponding temperature range.
and measure based on R(CTN)* C duration pulse.
So it is possible to have a very high resolution, not accuracy
because C value can also change with temperature.
You can sovle this problem with Autocalibration procedure.
see an (old) example on my web page: Temper.html
use of CTN and PT1000