High-speed resistance measurement? - Page 1
Forum section: electronics / projects

author: David_
author_rank: Contributor
timestamp: November 28, 2017, 09:53:13 pm
content: Hello.I am developing a high-current sync. buck converter that is going to be controlled by a microcontroller, however I need to not only measure the output voltage and output current but also the load resistance which may vary between 2ohm - 0,05ohm(but if necessary it could be restricted to below 1,5ohm). The resistance measurement is going to be used to indirectly measure the temperature of the load which is a heating element made out of materials such as SS316, Nichrome, or if the design becomes good enough Kanthal A1(yes this is a design for a vaporizer chip, which is part of a project(in it's very early stage) to create a vaporizer which is open source to enable competent users to change the firmware for them selfs, there are still a lot of safety stuff to go through but I am simply the person whom have been tasked with coming up with a working prototype).This sort of vaporizer is used to atomize liquid containing nicotine(but nicotine is optional) used as a substitute for tobacco products, the vaporiser(AKA box mod, APV, e-cigg etc) is used with a atomiser which contains heating coils through which there are cotton placed, the cotton is drenched in the liquid.For me the most important aspect of this device(aside from safety) is it's temperature control, which functions by measuring the heating element(here after called "coil") resistance at room temperature, then power is supplied to the coil while the resistance is periodically measured, and the new resistance value, the resistance value at room temperature and a temperature coefficient for the specific material the coil is made out of is used to estimate the coil temperature.But the device can also function in a mode in which the power is simply regulated to a set value.In order to give a satisfactory result the resistance have to be measured many times each second, I don't really know how often is needed, I will investigate this by studying commercial chips but I thought that a sample rate of 500Hz might be a good start(I'm not sure but I would think that 500Hz would be more than enough). I haven't made the first prototype jet so let's pretend that I need 500 resistance measurements each second, how do I accomplish this?The current is supplied by a synchronous buck converter running at 100kHz, the hole design would be much more efficient space wise if I could forget about the filter components but thus far I have concluded that such a circuit would be to complex with calculating the average output wattage, so to begin with it will be a buck converter with filter components.The most obvious solution is a current-sense amplifier but then I get confused about the bandwidth of the amplifier which turns out is rather low in most cases.How does the 100kHz ripple effect my current measurement?And what is required to deal with that situation?This application doens't exactly require a low-noise supply so thus far I have thought to tailor the amount of ripple after the current measurement, I have made a schematic but it is simply a buck converter with a current sense resistor in the series with the output after the output cap. I am not sure about how to do with the buck-converter current limit though, I am measuring the output current for the resistance measurement but in order to limit the current isn't peak current limiting required? Which requires the current to be measured before the buck-converter inductor... But lets keep focus on the resistance for now.Regards

author: macboy
author_rank: Super Contributor
timestamp: November 29, 2017, 06:27:46 pm
content: In a typical multimeter, resistance measurement is done very simply: A current source drives a specific constant current into the unknown device, and the resulting voltage is measured. The resistance is calculated from Ohms law. In simple meters, the current is a power of ten, like 1.00 mA, so only the decimal point needs to move to convert voltage to an appropriately scaled Ohms reading.Since you are already monitoring voltage and current, you have all you need to calculate resistance. You should filter the voltage and current signals to an appropriate bandwidth, which dependent on your sampling rate, to reduce the effect of noise and ripple. You can also over-sample and use a digital filter, the simplest of which is averaging. (Averaging works best when there is some noise in the digitized samples, one or two least significant bits of random noise is perfect). Remember that any digital or analog filter will introduce some delay, which might be important if you need to respond very quickly to a change.For a sample rate of 500 S/s, you can start with an one-pole (RC) filter which rolls off above 500 Hz. The RC time constant of that filter is 0.32 ms. So the signal should settle to <1% within 5*RC = 1.6 ms (and you sample once every 2 ms). This will reduce noise but also introduce practically no delay. It will have at attenuation of -46 dB at 100 kHz.

author: David Hess
author_rank: Super Contributor
timestamp: November 30, 2017, 07:42:23 pm
content: Measuring the heating element resistance to control the temperature is a great way to go.Sample (actually integrate) synchronously over multiple cycles of the 100kHz switching regulator to remove the effects of its noise. If you are using a microcontroller, this could mean tying the microcontroller clock to the switching regulator clock or the reverse.Instead of measuring the output current of the switching regulator, another option is to run a constant low level current through the heating element and measure the low voltage across it when it is not powered to get the resistance.500 Hz is plenty fast. Or the output current/voltage of the switching regulator could be continuously varied to power the heater and the voltage and current continuously monitored to get the resistance and thereby the temperature. Heating elements can usually support a high peak to average power so I question whether a regulator is needed to power it at all.