Author Topic: yet another picoammeter  (Read 906 times)

0 Members and 1 Guest are viewing this topic.

Offline exeTopic starter

  • Supporter
  • ****
  • Posts: 2577
  • Country: nl
  • self-educated hobbyist
yet another picoammeter
« on: May 14, 2024, 11:58:50 am »
Here is my take on https://www.eevblog.com/forum/projects/picoammeter-design/ .

Analog part:
- LMC662, waiting for LMC6482 so I can replace it
- four ranges, with resistors 1G, 10M, 1M 100K. ADC can take up to 3.3V, that gives full-scale range of 3.3nA, 0.33uA, 3.3uA, 33uA.
- 1G range is on separate opamp.
- PETG (colorfabb HT) 3d-printed enclosure. Hope it doesn't leak too much.

NB currently only 1M resistor is used, as I'm trouble-shooting the device.

Digital part:
- XIAO RP2040 module
- Nokia 5110 display (pcd8544)
- some random parts from trash bin

What went well so far:
- I like the look of it.
- Programming was easier than I expected. FW is very simple (micropython).
- Still have plenty of RAM so I can implement moar stuff.
- Stacking modules and vertical mount worked out well.
- Placing analog part on the separate pcb was a good decision, this way I can easily wash it in IPA or ethanol.
- ADS1115 (perhaps Chinese clone) works surprisingly well, I've got dead-on output. Checked by sampling voltage of LT1004-1.2


What is not going well:
- I put LMC662 on a breakout board so I can replace it (soic package). But I screwed it, the board is soldered to the main board somehow.
- I have another LMC662 in DIP package. So, I wanted to do air-wiring. But I bent the wrong pin on it. Hope I can fix that.
- I don't have gloves, so I touched with my fingers all the sensitive nodes in the circuit. I hope I'll be able to clean it with IPA and ultrasonic bath
- I damaged ADC pcb while resoldering pin-header. Ordered another board. Also ordered original ADS1115 IC.
- The display show image flipped. It seems neither display (pcd8544) nor driver (micropython's framebuf) cannot flip it for me. I have to do it manually somehow.
- sockets have holes. I'm afraid dust will get into the device. May be I'll change sockets one day.

Now the biggest issue. Unfortunately, the device doesn't work. Troubleshooting it. What I observe is, there is 50 Hz output oscillation rail-to-rail. I hope it's just a bad solder join somewhere. Stay tuned!
« Last Edit: May 14, 2024, 12:15:49 pm by exe »
 

Offline exeTopic starter

  • Supporter
  • ****
  • Posts: 2577
  • Country: nl
  • self-educated hobbyist
Re: yet another picoammeter
« Reply #1 on: May 14, 2024, 01:17:26 pm »
I fixed the issue, I forgot to connect noninverting terminal of opamp.

So, first results are semi-promising, connecting an 1.3V battery via a 1M resistor got me 1.3uA, this is good). There is a lot of noise, esp. when I connect long lead. So, I'm converting to battery power now.

I've got an issue however:
- with all wires disconnected it reads 4nA. But if I short-circuit the input, it reads 600nA. But if I short with 1M resistor, I got 17nA reading. Why is that? I was thinking, can it be because I use single supply for TIA?
 

Offline Phil1977

  • Regular Contributor
  • *
  • Posts: 57
  • Country: de
Re: yet another picoammeter
« Reply #2 on: May 14, 2024, 01:39:36 pm »
Just a few comments:
- SOIC-8 on an adapter board is difficult for pico ampere applications. I suppose you always have some solder residue between the pins that´s not accessible for solvents or cleaning. I would strongly recommend using the DIP-type with free-air-wiring for the high impedance input.
- What do you mean with "single supply for TIA"? AFAIK the operation near the rails is never as good as with a more or less symmetric supply. If you want to keep the single supply I would use a second opamp to generate a virtual ground above 0V.
- Battery operation is always a good idea to start with
- Maybe it´s even an idea to start with two batteries, one for analog and one for digital. Use only one low impedance connection between the two circuit parts

If you manage to keep the inputs clean the LMC662 is really a lot of fun. Once I did a setup on the breadboard with a free-air wired 150pf Styroflex cap and the opamp just as a follower. After charging the cap with an external source and disconnection the source and going 3m away from everything the output voltage was rock stable on a 4.5 digit DMM. If you let the non-inverting input float you nearly have an electron counter.
 
The following users thanked this post: exe

Offline exeTopic starter

  • Supporter
  • ****
  • Posts: 2577
  • Country: nl
  • self-educated hobbyist
Re: yet another picoammeter
« Reply #3 on: May 16, 2024, 11:12:43 am »
I agree that DIP package is better. It's just it wasn't available from lcsc.

> What do you mean with "single supply for TIA"? AFAIK the operation near the rails is never as good as with a more or less symmetric supply. If you want to keep the single supply I would use a second opamp to generate a virtual ground above 0V.

I think the only real downside of going with a single supply (+5V battery) is that it seems the output doesn't swing quite well to zero, this will create problems at the bottom of the range and reduce dynamic range. I'm checking on that. As of input, it seems they are fine to accept even slightly negative signals at the cost of increased input bias. I can only speculate that this is because of internal guarding not working near rails.

I'm also concerned that input offset voltage will create a "deadband" at low currents. Although, with bipolar supply the output may go slightly negative, and I'm not sure if ADC can measure that. I'll check.

BTW, I think I know why I have "huge" current when I short the inputs. I simply should not do that). The TIA input is approximately at ground, but not exactly due to opamp's offset voltage. When I short inputs, this cause current to flow.
 

Offline exeTopic starter

  • Supporter
  • ****
  • Posts: 2577
  • Country: nl
  • self-educated hobbyist
Re: yet another picoammeter
« Reply #4 on: May 27, 2024, 07:28:41 pm »
Wee, it works!

So, I just put 100M resistor, single range, didn't clean pcb or anything and I've got no-input current of 5pA (5s average, 20 samples). No adjustments or calibration, anything. Just raw ADC value that corresponds to 5pA. I think it's a success). I don't know if it's flux leaking, opamp's offset (I used LMC662, haven't switched to LMC6482 yet, and not sure it's worth it), or both. 5pa on 100M resistor corresponds to 0.5mV input offset, that below LMC662 typical offset of +-1mV.

Now onto measurements. I'll spare your time, I'll just show measurements of 10G resistor (real value unknown, I don't have equipment to properly measure it). So, I connected 10G (+-5% from aliexpress) resistor in series with 3.305V (as measured by my never-calibrated ut61e) CR2032 battery. Ohm's law says current should be 330pA. My device says 356.6pA. Considering long leads and no calibration, I'd say good-enough.

One of the challenges was to write firmware. Not a rocket science, but took much more time than I expected. Had a lot of pitfalls, like rotating the screen. Spent a whole day optimizing it (display driver doesn't support change of orientation).

There are a lot of improvements that can be made. Like, logging or wireless capability. I think what I'll try to do is I'll try to clean the pcb in IPA. I also may swap opamp.

Now things that didn't go well, but I managed. Split supply. It was more complicated than I thought. So, it works like this, 9V battery stabilized to some 6.5V with AMS1117. Then there is tlv431, shunt regulator that creates virtual ground. It creates offset ~1.25V. So, the supply is roughly some +4.5/-1.25V. I had to use tlv431afta from diodes inc, as it's stable into capacitive load. TI part probably won't be stable. I also originally put LM317L for virtual ground, but I realized it cannot sink current.

Now some nasty details. I think total supply current going through tlv431 is about 25-35mA (RP2040 is hungry, and display backlight too). That's quite some current, and it exceed maximum ratings for tlv431, which is 20mA. But hey, it works). I also burned one ADC module along the way, probably my first IC that I accidentally killed.

I planned to have four ranges, and an encoder. But it looks like I'm happy with just single ~40nA range, as everything above that I can measure with my trusty nanoranger. It's only the sub-nA range that I need better tooling.

There is no shielding. I thought I'd fix it somehow after I finish construction. But now i'm not sure how. Can I just glue some aluminum foil around and call it a day?
 

Offline exeTopic starter

  • Supporter
  • ****
  • Posts: 2577
  • Country: nl
  • self-educated hobbyist
Re: yet another picoammeter
« Reply #5 on: May 28, 2024, 05:30:14 am »
Two things I figured out since last post:
- my presence greatly disturbs measurements. I have to be one meter away when measuring sensitive stuff. I also twisted the cable, that helped a lot too.
- the cable I was using is leaking in the order of some 50pA. I replaced with with a ptfe cable.

With that, my 10G actually measures pretty close to 10G, in the range of 9.96-10.1G.

I need to repeat measurements with a shield.
 

Offline Gyro

  • Super Contributor
  • ***
  • Posts: 9603
  • Country: gb
Re: yet another picoammeter
« Reply #6 on: May 28, 2024, 09:02:27 am »
I'm impressed to see how far you've managed to get without any shielding. I guess the need for distancing is the penalty you're paying at the moment. I was able get to the single pA level with my fully shielded implementation with the input BNC open, but I had to put copper foil over the end (non shorting obviously) to get down to the single digits fA level on the bench.

It's good to see that you are already achieving useful results (including seeing the cable leakage!).
Best Regards, Chris
 
The following users thanked this post: exe

Offline exeTopic starter

  • Supporter
  • ****
  • Posts: 2577
  • Country: nl
  • self-educated hobbyist
Re: yet another picoammeter
« Reply #7 on: May 29, 2024, 12:06:04 pm »
Thanks, Chris!

Forgot to mention a few tricks. You may wonder how I got picoamp resolution with 16bit ADC (really 15 because my signal is unipolar) and 40nA range.
For 40nA range and 1pA resolution it would need 40000 counts ADC.

What I do is two things: 1) averaging  2) switching ADC range. With averaging and plenty of noise I can get an extra bit or two. Currently I average 20 samples over 5 seconds, that gives me, in theory, 4+ extra bits. In practice I need ether shield things (may be even internal digital circuitry too, though I chose RP2040 board with a shield), or do longer duration as there is quite some noise. The noise (MAX-MIN value) is displayed as "P-P RAW". It is calculated on raw ADC value.


The second trick is do ADC autoranging. ADS11115 has six ranges, from 0.256V to 6.144V. In firmware, I pick roughly the best range with some hysteresis. Took me a while to debug it, but I'm happy with the result. It currently changes ranges sequentially, although down-ranging can be made faster by skipping ranges if measured values is too low. This way I can measure up to 0.256V with 15 bits resolution. With this, LSB is just 7.8 uV. If only it was less noisy)

What's next. I think I won't do much with this project (except may be a small improvements like adding bluetooth to do remote measurements), as I have ideas how to make a proper power supply. Because what I really need is a small SMU, rather than just TIA. I mean, I need to apply voltage to DUT and plot VI curves.

PS careful reader may notice that the second opamp is not used and inputs are not connected to anything. Probably it oscillates and may also contribute to noise :/. I'll ether short it, or make it a 10G range.

PPS including the photo of the device in the night the day I finished building it. I think it looks sexy)

PPPS wow, I just put the TIA into the metal drawer, and that reduced noise a by a factor of ten. I've got 80-100uV p-p noise from ADC (when leads are disconnected) comparing to 2mV that was before. More precisely, it measures +-6 counts (12 p-p) on 0.256V range. There is wifi router on my table, so I think the result can be further improved.
 
The following users thanked this post: pardo-bsso

Offline pardo-bsso

  • Regular Contributor
  • *
  • Posts: 203
  • Country: ar
Re: yet another picoammeter
« Reply #8 on: May 29, 2024, 01:56:28 pm »
Just a few comments:
- SOIC-8 on an adapter board is difficult for pico ampere applications. I suppose you always have some solder residue between the pins that´s not accessible for solvents or cleaning. I would strongly recommend using the DIP-type with free-air-wiring for the high impedance input.

I've seen a few times smd ic's where the board has a complete cutout for them and just the leads are soldered.
What's your opinion on that in an application like this one?
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf