I am getting bad voltage readings from the INA226 when the inverter is loaded. The readings always go low by many volts, instead of 26.5 it will read as low as 22. When the inverter is idling, it is accurate. Of course, a digital multi-meter shows 26.5 regardless of the inverter load.
Also, when I put a load on the inverter, the controller loses contact with the modules, but only if the INA cable is attached. If I remove the INA ethernet connector, the modules work fine with a load.
Unfortunately the batteries, inverter, and shunts are all within inches of each other.
The INA226 has shunt +, shunt -, batt+, and ground that are brought into be measured. Ground is attached to the ground plane of the controller. I am using a high side shunt, so the shunt+ and batt+ are both attached at the same point. I am using an ethernet cable that is less than 1m long to bring the 2 sets (one from the battery shunt and one from the PV shunt) of 4 leads to the controller. The cable has twisted pairs and I am using those pairs properly (1 set of batt±, 1 set for shunt±, repeat for PV)
The controller is powered by a small usb converter, so it should share ground with the battery via that route in addition to the grounds from the ethernet cable.
Unfortunately I don’t have an oscilloscope.
I tried connecting the batt and ground wires to the INA226 with short wires, and the voltage read correctly with a load. However, to do that, I had to remove the shunt wires, so the INA226 did not have shunt+ and - connected. Curiously, the INAs were reporting huge amps, which doesn’t make much sense to me given that they were floating. When I connect the longer shunt pairs, the bad readings return.
The INA chips have 2 settings for the readings. I can set the conversion time and the averaging. I am guessing that the conversion time is the time it spends reading the analog value before converting it to digital. The averaging is done at the digital level, so it’s pretty straight forward. When I set these to minimal numbers, I can get goofy voltages even with no load on the inverter. I originally assumed I was seeing the sine wave of the inverter, so I bumped these values up and it seemed to be solved, but solved only for low loads.
What is odd to me is that the readings always go low. I would have expected that if there is a sine wave of noise either being added to, or transmitted through, the wires it would be above and below the DC, such that averaging would kill it. It seems to me that the noise is always subtracting and thus averaging in those bogus low readings gives a low average.
I’m no expert on circuits, so any ideas would be very much appreciated.
Attached, is my controller circuit.
Schematic_Controller_2020-09-05_11-45-38.pdf (99.1 KB)