[General] 17 Bits Microcontroller

Status
Not open for further replies.
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
 

It should be decimal format.
I have the capacitance at 0 and 10000 degree Celsius.
How do I choose serial and parallel?
Should I have 32-bit microcontroller?
 

It should be decimal format.

Give the format do you want to display ..
for what display ?
Degres celcius ?
How do you handle 10000 degres .. plasma Torch temperature , Sun ?


I have the capacitance at 0 and 10000 degree Celsius.

Good info , you have it ..
but we don't have !
Without any response you will get alone on the edge !


How do I choose serial and parallel?
Show your schematic !


Should I have 32-bit microcontroller?
you never read all answers posted here
or you don't have enough basis knowledge about MCU
Learn first the base od MCU!

It is too heavy to follow you.. i disappears !
 

By doing this, I would like to learn build a microcontroller.
After building it, I would like to see different result by adjusting the capacitance.
Although the final product cannot measure so high temperature in real case, I really like to try it.
 

I got the result of frequency on different value of capacitance.
I found that the value of frequency is +-15 Hz.
Is it a big deal?
 

So different capcaitances give different frequencies, isn't that what you want?

It still moves us no further along to finding out what you are really trying to do.

If the capacitor is the temperature sensing element, we need to know it's EXACT value at some particular EXACT temperature AND by how much the value changes per degree Celsius.

For example, if the value is 100pF at 25C, 102pf at 27C we could reasonably expect it to be 102pf at 26C.

To use that method you have to eliminate the changes of capacitance and frequency caused by other components in the oscillator as well. It would be no good to look for tiny changes in the capacitance while the remainder of the circuit also shifts the frequency as temperature changes.

Brian.
 

I test 10pF. The frequency is 14.118, 14.126, 14.133 and 14.138kHz.
I would like to use ATMEL 8 bit microcontroller for a try.
 

1000 degree as 1pF
increase 2pF = decrease around 1000 Hz
I have tested it several times. The difference between minimum and maximum at any pF is 30 Hz.
 

So lets do some calculations.

1000 degrees makes a difference of 1pF
1pF makes a frequency drop of 'around' 500Hz at 'about' 14.15KHz
You want to measure temperature accurate to 0.001 degrees so a single digit change is (0.001/1000)pF = 0.000001pF or looking at it another way, 1 degree = 'about' 0.5Hz frequency change when your own figures of 14.118, 14.126, 14.133 and 14.138Khz indicate an unpredictability in readings of 20Hz.

It means your method measures to 1/1000 of 1 degree +/- 20 degrees which is absolute nonsense. It is like saying you are travelling at exactly 80.001KPH or it might be 89.999KPH or it might be 70.001KPH. The number of decimal places you measure to is meaningless when the measurement could be wildly inaccurate anyway.

Do you realize that one digit change in your LCD reading is approximately equivalent to the capacitance change caused by someone walking by at a distance of 5 metres!

If you want to measure temperature, measure temperature. If you want to measure capacitance, measure capacitance. Both have simple and accurate methods, yours is not accurate and extremely complicated. It think it's time you re-considered your project and looked at sensible, practical solutions to whatever you are trying to achieve.

Brian.
 

Status
Not open for further replies.

Similar threads

Cookies are required to use this site. You must accept them to continue using the site. Learn more…