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.

[SOLVED] Algorithm to increase the resolution

Status
Not open for further replies.

jony4u

Newbie level 5
Joined
Apr 3, 2011
Messages
10
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,347
How I can divide the voltage to two ports that every port will have 8 bits and the connection will do with the MSB and LSB and I will receive 16 bits ?
 
Last edited:

The idea of dividing the voltage will not work out. This is because it would not be easy to divide voltage and give it to the terminals of microcontroller.
 
Last edited:

Hi,

You do not say which micro you are using, but many of the common Pics and AVRs use a 10 bit adc which gives 1024 steps, some even higher resolution.

If you have to keep your existing micro then you can use a separate ADC chip, lots on the market with varying resolutions.
 

you can not add up the resolution of individual channels of the controller because all of them use a common reference voltage.
micro controllers with 10 and 12 bit ADC's are easily available now it depends on how much resolution you want if you want more go to maxim's site and you will find the desired adc...
**broken link removed**
 

Hi,
Some good news - there is a tested and well working method to achieve any resolution you like on the price of slower response time. It's called "oversampling" (see in Google). The idea is that if you fulfill the conditions:
- limit the spectar of input signal (High frequency rejection)
- add specific noise to the signal
- do 4^N samples (where N is the number of additional bits you want)

you can get at the end N additional bits. I used many times in my projects this approach and can I confirm that it works brilliantly well.
 

Hello!

It depends how fast you want to convert, but there are microcontrollers
(some models of TI's MSP 430) with a 16-bit converter. Of course, this one is quite
slow (if I remember correctly, 4k samples / s), but the IC itself is cheap.
You can select an MCU at the following URL
MCU Selection Tool - TI

Dora.
 

the advantage of using oversampling is that you could simply use the existing low resolution ADC (8 or 10 Bits) and apply just algorithms to get higher resolution. A small hardware will also be needed to inject the proper noise to the signal and to reject HF noises. In case the price is important for you you can't go for more expensive uP (like AD or TI) so oversampling is a good solution.
I know that not so many people use it because it's hard for understanding
 

Hello!

You shouldn't forget to balance by also writing disadvantages:

1. You might be able to do it with a cheaper processor, but you have
to add the cost of the extra hardware.

2. You have to add the cost of the extra development. You have to tune
an algorithm that is not needed on a more advanced device.

3. If you do something on your own, then you're on your own in case of
problems. If you buy a more advanced processor (especially in case of
mass production), then you can expect some great support from the
chip maker.

Beside this, TI is not necessarily expensive. The cheapest microcontroller
with a 16-bit ADC costs 1.1 USD. Can you do a 16-bit ADC for that price?
I'm sure other makers do also have cheap devices with fair ADC resolution.

Dora.

the advantage of using oversampling is that you could simply use the existing low resolution ADC (8 or 10 Bits) and apply just algorithms to get higher resolution. A small hardware will also be needed to inject the proper noise to the signal and to reject HF noises. In case the price is important for you you can't go for more expensive uP (like AD or TI) so oversampling is a good solution.
I know that not so many people use it because it's hard for understanding
 

Hello Dora,

1. If we speak about increasing the price by adding 2-3 resistors and one capacitor I don't think it's so crutial to the final price

2. For mass production this price doesn't matter, but if this is low volume production it might be a potential problem. In fact the code is not increasing dramatically but you need to have the knowledge how to do it.

3. Agree - you have to take the responsibility. In big company nobody wants to risk to be fired because he used some not widely used technology. If the device works well - nobody will complain but if the device fails you're in big trouble. But if you're young and in a small company ovresampling is what you need to become famous.

About prices - if you take for example Atmel Tiny88 in big volumes it brings you price of 0.30$ with 10 bit ADC and if you don't hurry you can get 16 bit resolution with oversampling. If you go to HOLTEK the chip costs even less. So if you want to know is it possible to be done a 16 bit ADC for less than TI 1.10$ - yes, it could be done. If used properly the oversampling is as japanese say "ii desu", but if not used properly it's a disaster. Oversampling requires more knowledge and deep understanding compared to simply put a 16 bit ADC, it's a way to convert your knowldge into money.

Notice that more 16 and more bits ADC also use inside oversampling (sigma delta is oversampling technique as well). The PWM DAC is also an example of oversampling (you have output with 2 states and you finish with multiple analog levels). Ovesampling is all around despite that we're not consious about it.

Don't misunderstand me - in all cases I would use 16 bit ADC if my pocket allows, but if you are in mass production business even a single penny counts!

Regards
Luben
 
Last edited:

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top