EEVblog Electronics Community Forum
Electronics => Projects, Designs, and Technical Stuff => Topic started by: mendez on August 19, 2021, 01:28:08 am
-
Hello,
I'm using a ACS723 exactly as recommended by the datasheet (see attachment for schematic) to measure the current load of a Brushless Motor. The sensor reads accurately when I connect it to a DMM between the load and the sensor (+ leads). But once I disconnect the DMM, the sensor does not read accurately. We are talking like ~50% less accurate. Any help will be appreciated.
Also, the Sensor is far away from the motor; to avoid interference.
Thanks!
-
Suspect the DMM is acting as a low pass filter, suppressing high frequency noise. Per the ACS723 spec sheet, try attaching BW_SEL to Vcc+ to limit its bandwidth and suppress noise.
-
Thanks for your reply. I already limit the bandwidth(frequency) to suppress noise (BW_Sel to GND)
I did alot more testing. To start, please see attachment for Schematic with some test results
Let me explain how I'm measuring the current:
I have the Sensor connected between the power source and the ESC (+ / - of the battery and esc). The "inaccuracy" I'm observing is only when I test brushless motors. I tested shut resistor(s) and bulb to check the amount of load and I got accurate readings. The motor is coupled with a flywheel; the flywheel will act as a variable load.
Now, I included a plot with two current readings (accurate and inaccurate).
Accurate Reading : I took (1) voltmeter wire and connected to the sensor and I was able to get accurate readings!
Inaccurate Reading: I replace the voltmeter wire with a 12AWG (same as all my other wires) and I observed inaccurate readings.
Resistance of the Wires:
Voltmeter Wire (this one seems to give me accurate readings) : 257mOhms
12AWD Wire: 3.5mOms
Any help? I spend two days trying to figure this out and still can't find it.
-
OK. Excellent documentation of your observations, mendez! But there is one very key piece of information missing: which ACS723 are you using? The ACS723 is available in ten different part numbers. The five bipolar ones have current ranges of +-5, 10, 20, 40 or 50 amps.
If you are using a low current one near the limit of its range, particularly the ACS723LLCTR-05AB-T +-5 amp one, then I think (?) I might understand the problem. (Disclaimer: I'm not an EE, have no experience with this problem, but am just thinking it through in the very most simple-minded way...)
The motor is an inductive load. When one tries to change the current through the windings, it reacts to this change by producing a very high back voltage. This momentarily (for only microseconds) draws a very large peak current from the output capacitor of your power supply.
This peak current may momentarily exceed the linear dynamic range of your Hall effect sensor, especially if it is only +-5 amps. That sensor can read it as no more than 5 amps, even if the peak current is actually much larger. The sensor then averages these erroneous instantaneous current readings, producing an erroneous average.
To get accurate readings, the current through the Hall sensor must be kept within its linear range at all times. Your voltmeter wire resistance of 0.257 ohms apparently does this. This resistance, placed in series with the output capacitance of your power supply, forms an RC low pass filter. This limits the magnitude of these short current spikes.
When this resistance is removed (and replaced with 12 gauge wire, only 0.035 ohms), the RC time constant is now much shorter, and these current peaks will be higher, apparently outside the range of the Hall effect sensor. (Note: other series resistances are also present. The resistance of the board traces and connectors, and the equivalent series resistance ESR of the power supply capacitor, are together likely of the order of 0.1 ohm. The ACS723 has a resistance of only 0.65 milliohms, which is negligible.) However, you are trying to measure 4 amps, which is so close to the 5 amp limit of the sensor that any added spike greater than 1 amp may easily be beyond its 5 amp range. It simply can't even "see" the top of the current spike.
If this is the case, then the only solutions might be to either limit those current spikes, or use a sensor with higher range which will be able to read them. Suggest placing a small capacitor, perhaps 1 nf to 10 nf, directly across the motor to supply those current peaks. Then the sensor will only see the average current, and might work fine for you.
Second, minor, issue, which might not be of any help with the fundamental problem, discussed above.
Thanks for your reply. I already limit the bandwidth(frequency) to suppress noise (BW_Sel to GND)
This is not my reading of the ACS723 spec sheet, available here https://www.allegromicro.com/en/products/sense/current-sensor-ics/zero-to-fifty-amp-integrated-conductor-sensor-ics/acs723 (https://www.allegromicro.com/en/products/sense/current-sensor-ics/zero-to-fifty-amp-integrated-conductor-sensor-ics/acs723)
On page 1 it reads "pin selectable bandwidth... 20 kHz for low-noise performance", while "Grounding the BW_SEL pin puts the part in the high bandwidth, 80 kHz, mode." On page 6, "Internal Bandwidth" spec, it says "BW_SEL tied to VCC" gives the lower, 20 kHz, bandwidth.
But this doesn't change the bandwidth, extend the linearity or change the accuracy of the Hall sensor. It simply filters or averages its readings, as shown in the functional diagram on page 4 of its spec sheet.
-
Thanks for your response! The sensor I'm using is the 40amp Unidirectional. Maybe I can add a low resistance to the circuit to see if I can reproduce the same effect of the DMM wire.
Just to clarify, the high peaks are with rhe dmm wire, and they seem to be correct. The 12AWD procudes a lower current, which is wrong.
As for the bandwidth; the BWi is not connected to anything. I will connect it to VCC then to see what is the effect.
-
Now, I included a plot with two current readings (accurate and inaccurate).
How did you measure the points in this plot of current vs time?
Realize there are two differences between the longer thinner DMM wire and the shorter 12 gauge wire: the DMM wire has both higher resistance R and (because it is longer and is laying in a loop) higher inductance L. Viewed from the motor, both R and L create a series low pass filter with the power supply capacitor. Suggest taking the 12 gauge wire and wrapping it into a few turns around a couple fingers, adding L. Does that change the observed current vs time?