This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSP430 SD16_A 24bit to 16bit

Other Parts Discussed in Thread: MSP430F2013

i tried looking forums and i may not know correct keywords to use. This is first time i am using an SD16_A. i go tthe setup and everything. i am confused on the SD16MEM0 and its 32-bit storage and 16-bit return.

What do you need the upper and lower sections?

Can i just choose 1?

What is the calculated value and how?

for instance, normally on an AD converter i would simple say 16bit AD conversion, so Vcc / (2^16) = V/bit. get value of conversion multiple that by V/bit and i have the analog value of the digital value. 

However i cannot find how this works. My basic assumption would be

Vcc / (2^32) = V/bit

Adjust OSR, SD16UNI and LSBACC to retrieve the 16 block of accuracy you want. 

for instance Vcc =  3.3V, so 768pV/bit - this is ridiculous

my desired level of accuracy is 1mv, so for simplicity sake the first bit i care about is 20 so i would want to set the parameters

OSR=1024, LSBACC = 0, SD16UNI1 according to page 605 of theUser Guide

  • >Can i just choose 1?
    Sure! You can use 16 or even just 14 _most_ significant bits. Take upper 16 bits of digital filter output and you will be fine, forget about lower part. Lower bits shall be treated as noise and they mostly are. This is how sigma-delta converter works.
    www.ti.com/.../slyt423.pdf
  • Is the rest of my assumptions correct? Even though we only use 16 bits it is actuall a 32bit value? i just need to know for conversion. if i take the upper 16 bits but do not know a) the volts per bit and b) the start bit value, then the value read is meaningless. I tried reading the document and it goes into great detail on how it works in general but not specific on how the MSP430 populates its 30bit AD16 block.
  • >Even though we only use 16 bits it is actuall a 32bit value?
    For every ADC you shall use and take in account only so many ADC bits that are needed for your application or just effective number of ADC bits (ENOB). - Especially if you use sigma-delta ADC which in fact is 1-bit ADC (!) with digital filtering.

    >if i take the upper 16 bits but do not know a) the volts per bit and b) the start bit value, then the value read is meaningless.
    It's not like that. As I said - full range of ADC is not necessarily fixed. For example SD16 at OSR=1024, GAIN=1 of the little puppy msp430f2013: according to datasheet it's SINAD is 86dB which conforms to 14bits ENOB actually telling that out of 16bits just 14bits are noise-free unless additional (software) filtering used. So you read 16 MSB bits of ADC result and immediately right shift by 2 bits to get 14 bits of data and throw 2 LSB noisy bits away. All the volts per bits calculation _must_ be done on ADC bits _actually_ used in your software, not max possible sigma-delta ADC bits you can read out of ADC. In this example we downscaled it's full scale range (resolution) to 14bits so we treat our ADC as 14bit ADC from now on, including when we calculate LSB voltage of it. In our example with gain=1 and 1.2V reference it is 1.2V/(2^14-1)=73.24666 uV.

    www.ti.com/.../slaa013.pdf
    Also search for next part of "How delta-sigma ADCs work".

**Attention** This is a public forum