Author Topic: analog front end for adc  (Read 9391 times)

0 Members and 1 Guest are viewing this topic.

Offline branadic

  • Super Contributor
  • ***
  • Posts: 2449
  • Country: de
  • Sounds like noise
Re: analog front end for adc
« Reply #25 on: August 08, 2017, 05:07:16 pm »
I read WP004 and found the performance very promissing. This was the trigger for me to evaluate and later use this devices in some applications.

http://www.acam.de/fileadmin/Download/pdf/PICOSTRAIN/English/WP004_en.pdf

- 200.000 stable divisions (almost 1Mio. effective divisions) for an OIML3000 load cell with PS081
- only half bridge necessary
- temperature compensation integrated (PS09)
- fully digital, no analog frontend
- up to 10kHz measuring rate
- integrated µC
- single chip solution with low power consumption

-branadic-
Computers exist to solve problems that we wouldn't have without them. AI exists to answer questions, we wouldn't ask without it.
 

Offline splin

  • Frequent Contributor
  • **
  • Posts: 999
  • Country: gb
Re: analog front end for adc
« Reply #26 on: August 08, 2017, 07:58:53 pm »

Ok. I'm using the the ADS1248  :P

Hmm... It would have been helpful if you'd told us this in the first place and that you'd already built it! But never mind...

Quote
My first version of this board is a 2-layer PCB. I switched to 4 layers because I thought, that all the trace for the different supply voltages (VCC, VDD, 2.5V REF, 5V REF) lying next to the signal traces have an negative influence on accuracy. And since I'm not an electronics engineer, routing the pcb is a complicated job. Especially the earlier mentioned ADS1248 drives me crazy. I might switch to the ADS131A02 anyway - or an ADC with a similar package because the ADS131A02 lacks the PGA.

Since its only a one-off then a 4 - layer PCB is probably a good idea especially as you are looking for  low nano-volts resolution. I see that the ADS1248 datasheet shows an example layout.

Quote
I tried to switch to STM's microcontrollers. Would you please give me some hints for a good IDE? That would be really nice :)

You really should take a look at the microcontroller forum as this has come up a few times. My favourite is Embitz (www.embitz.org) as it is very quick (unlike the Ecllipse based tools) and has a good debugger with live watchpoints and memory views. And unlike some of the other free tools it's really easy to get started - just install and go. No need to spend hours trying to set up Openocd or the like.

Unfortunately Windows 10 has currently broken the STLink/V2.1 debug interface which is built into the cheap STM Nucleo boards and Discovery boards - it's related to the STLink driver(s). Some development tools still work including ST's own ST Visual Developer but Embitz usually doesn't. However you can buy very cheap clones of the older STLink V2 on Ebay which still work.

More importantly the main problem with Embitz is that you are beholden to the author for bug fixes and further development - especially support for new procssors - and the documentation is not very comprehensive. However, the author and others are generally very responsive to questions on his forums and there are some good tutorials. Bug fixes and new development seems to be quite slow now which is not surprising as the author has to make a living - he's mostly doing it for free, so for the price it's quite outstanding. Things would, no doubt, improve if more people would sign up for the annual $49 subscription which gets you a few extras.

Quote
The attachment shows the distrubition of bit values I read from the ADC using the front end I showed earlier. In my eyes, this measurement is unuseable.

That's a lot of noise! What value of R29 did you use to set the INA229 gain?

What was the ADS1248 PGA gain setting?

What is the load cell output in mV with 5kg load?

Are you using the 2.5V reference output (filtered by U10-B) for the bridge excitation and what generates it?

What reference is the ADS1248 using?

 

Offline Jacky_88Topic starter

  • Contributor
  • Posts: 27
  • Country: de
Re: analog front end for adc
« Reply #27 on: August 09, 2017, 06:11:21 am »
Hmm... It would have been helpful if you'd told us this in the first place and that you'd already built it! But never mind...



Since its only a one-off then a 4 - layer PCB is probably a good idea especially as you are looking for  low nano-volts resolution. I see that the ADS1248 datasheet shows an example layout.

yes. Switching back to a 2 layer pc with a working circuit is always possible.

[...] Embitz [...]

I already downloaded it and grabbed my Nucleo. It feels like visual studio  :-+.
In my eyes STmicro did a fundamental mistake by not publishing an IDE for their microcontrollers. For professionals there are solutions from ARM and co. They even offer a free version for the F0 series - Very clever when advertising nucleo boards with F10X controllers as the easiest way to get started with their products. As hobbyist or someone who starts designing products based on STmicro's chips you are completly left (exposed) to the open source software.

For me, Atmel did a much better job by using visual studio as IDE. One IDE for all products. Less confusion by the users and thus less effort on support and it's free. I can't even download the STLink driver without registering my E Mail adress. That is a huge plus for Atmel. The downside for me cleary is the ASF used with their AVR32.

For now, I will try EmBitz. I didn't see it in their list of IDEs http://www.st.com/en/development-tools/stm32-ides.html?querycriteria=productId=LN1200

The attachment shows the distrubition of bit values I read from the ADC using the front end I showed earlier. In my eyes, this measurement is unuseable.

That's a lot of noise! What value of R29 did you use to set the INA229 gain?

200Ohms resulting in a gain of ~1000 (way to much, I know now)

What was the ADS1248 PGA gain setting?

1

What is the load cell output in mV with 5kg load?

About 50mV measured between IN+ and IN-. But I think, that isn't correct. 50mV times 1000 would give 50V output by the amplifier neither is the maximum reached, because changes in load were still shown.

Are you using the 2.5V reference output (filtered by U10-B) for the bridge excitation and what generates it?

No. It is used for the INA122 REF-Pin and the AINN of the ADC

What reference is the ADS1248 using?

REFP0 is a 5V reference (which makes no sense)
REFP1 is VDD.
« Last Edit: August 09, 2017, 08:26:28 am by Jacky_88 »
 

Offline Jacky_88Topic starter

  • Contributor
  • Posts: 27
  • Country: de
Re: analog front end for adc
« Reply #28 on: August 09, 2017, 06:36:38 am »
This is what I use, the downside is fixed gain of 160. The upside, less than $1 in parts, low offset and drift, very high impedance of REF input.


That looks impressivly simple. Is that all you do on input filtering? And why do you use 47nF decoupling capacitors? I usually see the 100nF used.
 

Offline wraper

  • Supporter
  • ****
  • Posts: 17675
  • Country: lv
Re: analog front end for adc
« Reply #29 on: August 09, 2017, 11:24:07 am »
And why do you use 47nF decoupling capacitors? I usually see the 100nF used.
Simply because it is used on the output of U1 too, just to keep the BOM shorter. EMI filtering on input also includes 2 resistors in series with inputs which are not present on the picture. C1 is X2Y capacitor, instead of it you can also use two of 1nF caps connected from each input to GND, and one 10nF cap between inputs. This circuit includes 2 pole low pass filter determined by C2 and C5. If the load cell itself is connected to GND of the rest of the circuit and wires are short, input EMI filtering is not needed.
« Last Edit: August 09, 2017, 11:31:13 am by wraper »
 

Offline splin

  • Frequent Contributor
  • **
  • Posts: 999
  • Country: gb
Re: analog front end for adc
« Reply #30 on: August 09, 2017, 04:17:48 pm »
Quote
[...] Embitz [...]

I already downloaded it and grabbed my Nucleo. It feels like visual studio  :-+.
In my eyes STmicro did a fundamental mistake by not publishing an IDE for their microcontrollers. For professionals there are solutions from ARM and co. They even offer a free version for the F0 series - Very clever when advertising nucleo boards with F10X controllers as the easiest way to get started with their products. As hobbyist or someone who starts designing products based on STmicro's chips you are completly left (exposed) to the open source software.

For me, Atmel did a much better job by using visual studio as IDE. One IDE for all products. Less confusion by the users and thus less effort on support and it's free. I can't even download the STLink driver without registering my E Mail adress. That is a huge plus for Atmel. The downside for me cleary is the ASF used with their AVR32.

For now, I will try EmBitz. I didn't see it in their list of IDEs http://www.st.com/en/development-tools/stm32-ides.html?querycriteria=productId=LN1200

I thought the debugging in AVR Visual studio 7 was significantly worse than in 4 (but I haven't used either very much). Embitz is not officially supported by ST, but generally seems to work very well - apart from the current Windows 10 problem (which isn't exclusive to Embitz). This is best discussed on the microcontroller forum though..

Quote
That's a lot of noise! What value of R29 did you use to set the INA229 gain?

200Ohms resulting in a gain of ~1000 (way to much, I know now)

Not necessarily, but there obviously is a limit to how much gain is beneficial.

Quote
What was the ADS1248 PGA gain setting?

1

What is the load cell output in mV with 5kg load?

About 50mV measured between IN+ and IN-. But I think, that isn't correct. 50mV times 1000 would give 50V output by the amplifier neither is the maximum reached, because changes in load were still shown.

Hmm. That doesn't look right. What is the output with no load applied? 45mV?  ???

Quote
Are you using the 2.5V reference output (filtered by U10-B) for the bridge excitation and what generates it?

No. It is used for the INA122 REF-Pin and the AINN of the ADC


Ok. So what is used to generate the 2.5V reference?

What is the filtered 2.5V out of U10B used for?

What are you exciting the bridge with?

Quote
What reference is the ADS1248 using?

REFP0 is a 5V reference (which makes no sense)
REFP1 is VDD.

Well its not ideal, but it it probably isn't a signifcant source of noise in your circuit. Still it's worth asking the question as to what are you using to create the 5V reference?
 

Offline Jacky_88Topic starter

  • Contributor
  • Posts: 27
  • Country: de
Re: analog front end for adc
« Reply #31 on: August 09, 2017, 07:56:52 pm »
I thought the debugging in AVR Visual studio 7 was significantly worse than in 4 (but I haven't used either very much). Embitz is not officially supported by ST, but generally seems to work very well - apart from the current Windows 10 problem (which isn't exclusive to Embitz). This is best discussed on the microcontroller forum though..
I startet using 8 bit Atmels with the AVR dragon and Atmel Studio 6 (or was it already 7?) two years ago. Since I'm not a professional I don't know what professional developers require. For me, it is just magical seeing the bits changing in the registers while running my program on the chip.
It is a little bit off topic, but Embitz says that my GDL server is not running.
Not necessarily, but there obviously is a limit to how much gain is beneficial.
Hmm. That doesn't look right. What is the output with no load applied? 45mV?  ???
Ah, I get the point. With no load appliead I read 0.4mV and with full load 2mV. I use hacked houshold scales.
Ok. So what is used to generate the 2.5V reference?
What is the filtered 2.5V out of U10B used for?
It's the negative input of one chanel. The 2.5V at the INA122's REF pin give me 2.5V  at the positive input when no load is applyed (ideally). This allows me to measure "both ways" forces pushing and pulling on the scales .   
What are you exciting the bridge with?
The excitation comes from a LM1117-5.0
Well its not ideal, but it it probably isn't a signifcant source of noise in your circuit. Still it's worth asking the question as to what are you using to create the 5V reference?
The 5V reference voltage is created using a REF195 http://www.analog.com/media/en/technical-documentation/data-sheets/REF19xSeries.pdf, same with the 2.5V reference. Both references are filtered with a circuit smilar shown in the schematics of the 1248 EVM board https://media.digikey.com/pdf/Data%20Sheets/Texas%20Instruments%20PDFs/ADS1148,1248EVM(-PDK)_Gde.pdf (D1-D2). The op amp in the filter is a LMC6482.

-----------------------------------------------------
back on topic
-----------------------------------------------------

I appreciate your comments and it seems, that I really messed things up.  But I want to go on with this project. What about that front end? It is derived from the OPA388 datasheet http://www.ti.com/lit/ds/symlink/opa388.pdf. My thoughts on the circuit:

-TI uses it as an example for strain gauge measurement - it might work (besides it is a discrete INA122 )
-I added the suggested input filtering (using X2Y caps saves space and improves performance).
-I added a 1st order RC filter for the ADC
-OPA388 is a zero drift amp (chopper?) giving me probably more stable results
-I could use the OPA2388 minimizing the needed space.
-Instead using the 5025 I could use a voltage divider (VCC to Gnd) feeding the negative input of the ADC too, making the measurement truly ratiometric
-I could connect sense+ directly to REFP of the ADC

Or just using the INA133
« Last Edit: August 09, 2017, 08:51:55 pm by Jacky_88 »
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf