Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

[General] 17 Bits Microcontroller

Status
Not open for further replies.
The relation is from my experiments. I try a number of points. Finally, I have an approximation.
If I can express it as a mathematical equation, do I still need to linearize it?

Actually, does microcontroller do what I said before?
Or I should use frequency voltage converter first. And then pass it to microcontroller.
Which one is better?
 

A microcontroller can count frequency, usually more accurately than a frequency-to-voltage converter. But you should be clear about the frequency to temperature relation, we can't help with it.
 

Aside from it still being very unclear what you are trying to do (perhaps a block diagram of your system would help), you can very easily handle 17-bit data as two 8-bit bytes and a single bit of a third byte. The length of the data is relatively unimportant.

What concerns us is the method you are using. Yes, it can be done, but you seem to be using a very complex system for completing a trivial task and with no obvious advantage in doing so. The best solution I can see with the description you have given us is to use a 17-bit wide memory address bus with maybe 32 data bits out but it doesn't seem a sensible way to do it.

Give us the big picture of what your system does and it will help us advise on the best methods.

Brian.
 

How do you make a choice for the methods? (1 24-bit microcontroller or 2 8-bit microcontrollers)
Is newbiehack.com good for beginners to learn microcontroller?

Actually, the system is used for showing reading of temperature based on the sensors.
frequency -> microcontroller -> 17 bits -> LCD -> temperature

Thank you for helping.
 
Last edited:

You are not helping us to help you.

If there are 24 bit microcontrollers I've never seen one. Why do you think you need two 8-bit ones?

What kind of sensors are you using that produce a frequency output?

The 'normal' method is:
sensor -> microcontroller -> LCD - temperature.
Nothing uses 17 bits or a varying frequency.

Brian.
 

I use astable mode of 555 to convert capacitance to frequency. And pass it to microcontroller.
At the beginning, I am going to convert capacitance to voltage and pass to microcontroller but I cannot find a way to do that. So I convert to frequency first by timer.
 
Last edited:

You make no sense. Now you are converting capacitance to degrees Celsius. :thinker:

Even if it was a sensible method of measuring capacitance (which it isn't) you are asking for an almost impossibly accurate measurement of the output of one of the most unstable oscillators ever invented.

Are you trying to measure temperature, frequency, voltage or capacitance?

Brian.
 

The question makes sense though if a strongly temperature dependent capacitor is used as sensor. There are probably more stable RC oscillator circuits but 555 isn't so bad at all.

The challenge is however to determine the sensor characteristic.
 

I think it is a strong one.
Do you mean I should abandon timer 555?
And choose RC oscillator.

The sensor is measuring capacitance. And my job is convert it to temperature.
 

The sensor is measuring capacitance. And my job is convert it to temperature.
Your previous description is different:
You are primarly measuring temperature. The sensor converts temperature to capacitance, the 555 oscillator capacitance to frequency, the microcontroller frequency to a digital number. Your software estimates the sensor temperature by means of a calibration function and displays it.

If 555 is suitable depends on the sensor details, e.g. capacitance range, capacitance variation, non-ideal properties like dissipation factor. If you have no particular reason against it, it would stay with 555 for the time being.
 

If the capacitance range is too low, is it not suitable to use 555?
I have make a test about it. I found that for 50pF, the frequency is in the range of 21.2 - 21.9 kHz.
It makes me doubt about the correctness.
 

Do you mean the total frequency variation over sensor temperature isn't larger than 0.7 kHz respectively 3 percent? Then oscillator circuit drift will seriously affect measurement accuracy.
 

hello




so if your maximum value is on 17 bits => 2^17 => 131072
this 17 bits value can't be stored in a 16 bits value so you must use long integer value (32) to handle it.
Even with a MCU of 8 bits , you can declare a long integer (32 bits) witch is 4 bytes collapsed to form 32 bits.

i seems that your elementary bit weight is the value =0.763
131072 * 0,763 => 100 007.94 rounded at 100 000 ? why not use of 100 007 ?
and for your "10000110100111111" value, wich represent 68 927 => 68927 * 0.763 => 52 591.30 > rounded to 52587.128 ??
why not use of 52 591 ?


You can NOT have decimal value for a long integer representation.

What is your Temperature Sensor :
A CTN (not linear) used in an oscillator , to give freqency= f(Temp) ?
 

The use of long integers is almost irrelevant when you consider the plan is to convert the 555 frequency to a voltage then measure it to 17 bit precision. I haven't done the math but the conversion of capacitor to frequency to voltage measuring in 38uV units over a 5V range is certainly impractical for someone who thinks you need two 8-bit processors to do 16 bit math. I would hate to think what change in capacitance would equate to one unit of measurement and (with apologies to the designer of the 555) it isn't stable enough to give steady readings anyway. It's a concept failure but leo2b2006 wont give us the full intention or specification to let us help with better methods.

Brian.
 

FvM,

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.
If I get the frequency 21.5 kHz, I do not know it should be 49pF or 50pF capacitance and thus, the corresponding temperature. It is not stable as Brian said.
Is it a disadvantage for using 555?

paulfjujo,

"Even with a MCU of 8 bits , you can declare a long integer (32 bits) witch is 4 bytes collapsed to form 32 bits."
I don't understand. The MCU is 8 bits only. How do I have 32 bits? Or 32 bits are the size of variable.
What is the meaning of rounding off?
I think the 555 is frequency = f(capacitance). I hope that microcontroller is 17 bits = b(frequency), LCD result = r(bits).

Brian,

Um...
The situation: I have a sensor only. I need to have a LCD to show result and it should be 17 bits.
The situation cannot be changed.
My idea is just use 555 and microcontroller. It converts capacitance to freq to bits value to result.
Actually, if available, I would like to convert capacitance to bits value to result.
My idea can be changed.
 

You are confusing the data bus width of a processor with the largest number it can handle. The instruction sets of all procesors allow you to combine bytes 'end to end' to make bigger storage. Even using an 8-bit processor you can easily make 16, 32, 64 or even bigger storage locations. In fact you can make the storage as big as the processor has available memory.

Why is the figure 17 so important? It isn't a size normally used, for optimal coding the data bits are always a multiple of the bus width (8, 16, 24...) but it is possible to make any other size if necessary. If the 17 bits are serial, which is why we wanted to know what kind of LCD it is, you can easily 'bit bang' each bit in turn using instructions to make a single data line high and low. For that you can use any processor size you like.

The method you are using for measuring capacitance isn't very precise, there are better ways to do it. As you describe it, you want a super high precision measurement of the frequency of an oscillator which will drift with voltage and temperature and also has a limited range of capacitor values that will work. There are simply too many unknowns and variable to make such precision necessary. The classic method of measuring a capacitor is to measure the time it takes to charge up. You can measure time very precisely with a microcontroller and always get consistent results. The whole process is far less complicated than the method you propose, both in software and hardware.

Brian.
 

Before saying another word in this heavy-going discussion, I would like to hear the answer to pauljulfo's question:
What is your Temperature Sensor
Or more specifically, what's the expected capacitance variation over temperature?
 

Before saying another word in this heavy-going discussion, I would like to hear the answer to pauljulfo's question:

Or more specifically, what's the expected capacitance variation over temperature?

The expected capacitance is 10pF.

- - - Updated - - -

"If the 17 bits are serial, which is why we wanted to know what kind of LCD it is, you can easily 'bit bang' each bit in turn using instructions to make a single data line high and low."
I do not understand. How do I know serial and parallel?
It seems quite interesting. I am going to build both.
How do I choose microcontroller? Is it a must to have LCD before having a microcontroller?
 

If you are using the capaciance variation to measure temperature (it's temperature coefficient), a single value is meaningless. We need to know at what temperature the value is 10pF and how much per degree Celsius it changes by.

Serial means the data path is one-bit wide.
Parallel means the data path is several bits wide, typically 4 or 8 bits for an LCD module plus 3 control signals.

You can use almost any microcontroller you want. There are thousands of types available, my favorite is the PIC family from Microchip but you can use any make/type that has sufficient memory to hold your program and enough input/output pins to connect to the rest of your circuit.

Brian.
 

Dear leo2b2006

Do you want to show the result on LCD in Binary format or Decimal format?

Example..
Binary format - 101010101001
Decimal format - 354
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top