Go Down

Topic: ESR meter with Arduino (Read 76 times) previous topic - next topic

Totoro

#59
Apr 11, 2013, 09:19 pm Last Edit: Apr 11, 2013, 09:25 pm by Totoro Reason: 1
Wow, what timing! You posted while I was composing. Please read my update.
I think your simulation is too simplified. I would be interested in your opinions if you would try mine.

bseishen

Totoro:
Ended up doing some spice analysis on the schematic. The line is very linear! So with a simple slope formula should be able to get some good results. I currently have some 1% resistors in the mail, when i get them in i'll test this out.

Totoro

#57
Apr 10, 2013, 10:36 pm Last Edit: Apr 11, 2013, 09:30 pm by Totoro Reason: 1
Hi bseishen,

If you read my original text (kept intact, below) then I am sorry. I 'double-thinked' myself into some confusion. I will try for a better take.
First, the Schottky diodes only limit the maximum voltage available to the DUT. Here's what happens. The transistor Q1 turns on and a rising wave edge goes through R8 and is pretty much unaffected by C2/C1. So, R8 is effectively in series with the DUT. This forms a simple voltage divider and the rising wave edge sort of shelves at the voltage determined by the divider formed by R8 and the DUT. For a DUT with, say, 100 milliOhms, that is a pretty small voltage, i.e., a few milliVolts. Since we're dealing with capacitors here, there is some continuing charging that will mess up the measurement if we wait too long to make it. I put together a LTSpice model to play with this. Attached is a closeup of a pulse from a sample run with a DUT of 100uF and .1 Ohm ESR. The yellow trace is the R8 side of C2 and the blue is the DUT side. (I had looked at the same thing on a 'scope and the simulation agrees really well. I don't know why it didn't sink in earlier. It is interesting to do a run with a resistor as DUT. The 'shelving' is more apparent.)
So, pretty much ignore what I said before. Part of my confusion was from using a different power source after changing the diodes. This shows that the value for Vcc in the code is quite critical for consistent and linear results. Also, it is now apparent how two ranges work by adjusting the voltage divider.
I hope this helps. My understanding is better, anyway.

---- here is the original text ----
I went back and really looked at this as well as reading the original document by Dr. Le Hung (link in szmeu's first post). I have to admit that after looking closely, I really don't understand this completely either. Clearly, the pulse can only have an amplitude determined by the schottky forward breakdown. In my circuit I used germanium diodes and that was about 300mV. I just swapped them for 1N5822 (as in the orignal schematic) and now have a pulse of 220mV and my calibration is way off. What seems apparent now, is that the voltage specified in the code as the 'supply' voltage, i.e., 5V, is just a number. I mean that it has to be adjusted to correspond to something that, well, I don't know exactly what it specifies. Dr. Le Hung calls the pulses current pulses. There must be something to that since the two ranges do work (there is a factor of ten, approximately, difference when the pulse 'comes from' the 100 vs. 1000 Ohm resistor).
Try playing with the voltage value and see if you can dial something in. I haven't tried that yet but it will be my next step to try and figure this out.
I am first a software guy and the hardware part of this is now not as clear as I thought. Maybe someone else can add to this.

bseishen

What Schottky diode is everyone using that has had success? I am currently using a B340A-E3/61T and the pulse peak at the terminal with no DUT is only around 150mv. I think this is causing my reading to drastically be off. I am trying to wrap my head around how the current voltage divider equations every one is using is working. It doesn't take in account of the clamping voltage and power dissipation of the Schottky diode. Any help would be greatly appreciated!


Totoro

#55
Jan 25, 2013, 07:59 pm Last Edit: Jan 27, 2013, 10:02 pm by Totoro Reason: 1
Sreg,
Great to hear you got it working!
You mentioned above that you return -1 when millVolts is zero. I wondered why, so I took a look at your code. You have helped me to avoid a bad thing, the potential divide-by-zero bug. Thank you!
- Totoro

Go Up