INA3221 loses i2c communication when power supply is connected

Hello, I am a newbie in electronics and I have been struggling for days and I couldn’t find enough information to wire the new variant of INA3221to measure the power consumption of my 12v motor.
I just got the new variant of INA3221 shown in the figure with 2 GND pins and one VPU pin. I connect the motor and 12V power supply as instructed in the figure with a common ground between both the motor and power supply as well as the GND pin in the INA3221 board and GND pin in the controller as shown.
When I disconnect the +ve side of the power supply from the INA3221 board, I can read the i2c address as 44. However, when I connect it back, I lose the i2c communication and the timing control (TC) light turns red.
I measured the current withdrawal of the motor by a multimeter and found it to be around 70mA. So, it should be less than the max measurable current of INA3221 which is 1.6A. I also attached the motor chart for your information.
I really appreciate if you can guide me to solve my problem.

Never mess about connecting and disconnecting things when the rest of the system is powered up. That is a great way to destroy things.

Just set it all up and turn on all the power supplies on at the same time.

Hi, @tmoussa
Welcome to the forum.

Can we please have a circuit diagram?
An image of a hand drawn schematic will be fine, include ALL power supplies, component names and pin labels.

Thanks.. Tom... :smiley: :+1: :coffee: :australia:

Thanks Mike for your response, I updated my post to better explain the problem.
When I have everything connected I don't see the i2c communication. Therefore, I started the troubleshooting by simply disconnect the 12v power supply from the INA3221 board. Then, I can see i2c communicaiton on address 44. Does the demonstrated digram ring any bell from your prospective? Do you see anything wrong in my wiring?

Thanks Tom and I appreciate your response. I updated my post to better explain the problem I have with INA3221. I alse measured the current withdrawal of the motor with a multimeter and found it at 70mA which is much less the specification of this sensor (1.6A). So, what do you think is wrong here?

Hej bud,

Does the i2c device have pull-up resistors on the SCL SDA lines, they are active HIGH.

If they do, check your ground, makes sure they are common on both devices, and check for a short on the i2c device.

Plug your 12v supply and then check the voltage on the SCL and SDA pins if they are at ground potential you may have an issue.

And to second Grump_Mike without sound sanctimonious don't unplug anything whilst live, it will cause all manner of problems and cost you money, but then again, no project is successful without a bit of blue magic smoke, aint one guy on here that has not had this pleasure, it is a right of passage.

Invest in a cheap logic analyser also, they are dirt cheap on Amazon, you only need two probes for i2c and you will see what is going on, the data sheet of the chip will give you a lot of insight as to what you should be seeing and what you are.

Also I notice 3v3 on the diagram, what MCU are you using? You may have answered but my brain is screwy at times so I will ask for the benefit of doubt!

Well actually an I2C bus pins are active LOW. That is they normally sit at a high position and then in operation they are pulled LOW.

The problem is that when they are sitting at the active state, this must be compatible with the maximum voltage of all the other devices on the same bus.

I am afrade that there is still a problem with your schematic. Tom said:-

Now you simply have a box that says controller. I am assuming this is an Arduino but what sort of Arduino?

Words do not cut it in electronics because they are ambiguous. When you say

Exactly what pin are you disconnecting? Is it the VPU or is it the VS pin?

Can you post a link to where you bought it from please.

This guy had little in the way of technical response.
Getting it to work
He was looking to use it to measure high sided loads.

This thread showed how this was fixed
fixing the ina3221 breakout board
It looks like there are different versions of this board, floating about, and if you have not used a reputable suppler then they are unlikely to know what board you have.

But I think you have a different problem.

Wire it up properly, with the VPU connected to the positive of your power supply and measure the voltage on each one of the I2C lines (SCL & SDA). What is the reading you get?
Then disconnect all power, and measure the resistance between each I2C line and the VS line. Remember never try and measure resistance when anything is powered in the system.

The data sheet to the chip is at
Data Sheet
But remember the data sheet is not the circuit you have on that board. It has a "typical" circuit, and it is likely to be this, because most makers of cheap breakout boards just follow the circuit.

However, please remove all motors until you get this going, just use an LED with a suitable series resistor to keep it safe, and a small parallel resistor so that it draws current for you to measure. Motors are difficult because they generate interference that can upset / reset your Arduino and they always need a kick back diode on them.

Hi, @tmoussa
Can we please have a circuit diagram?
An image of a hand drawn schematic will be fine, include ALL power supplies, component names and pin labels.

Can we please have some images of you project so we can see your component layout?

Thanks.. Tom.. :smiley: :+1: :coffee: :australia:

I think what Mike means is 'Flyback' which is the phenomenon of voltage spike as a result of an inductor, you would also strap one across a relay for the same reason, but this device is designed for that and all precautions should have been made but if it is a china device I would imagine not too much pre comp has been done on it.

I do not see a need at this point to add any load, I would get a baseline, I am not sure of the device but you will be able to poke a couple of registers and get something back without a load attached.

TomGeorge is spot on, send us your schematic and importantly a photo of your layout, I agree with Mike as I mentioned in my earlier post, the i2c could be at a different voltage, this could cause issues and they are Normally High, English alas is not my first language, but my fifth.. I can afford to make mistakes sometimes :wink:

One final question, is this the only i2c device on the bus? If you could use a i2c scanner and see if that can identify the device address also, but it seems to be a simple issue.

Over to you now my friend, send us info, I am sure one of us will work it out, or maybe you cracked it yourself, which I am sure would be quite fulfilling!

Björn

Also, how is the address pin strapped currently? It is pin A0 and is annotated on the graphic you provided.

In English a "kick back diode" and a "Flyback diode" means the same thing, and is often used interchangeable.

Read that the OP said:-

So the I2C address of 44 (no number base specified) must be valid.

@tmoussa

Which pin is A0 connected too?

Thanks.. Tom.. :smiley: :+1: :coffee: :australia:

@Grumpy_Mike yes I am sure 0x44 may be valid but it seems that only so in quiescence.

I was wondering if anything electrically was happening when voltage is applied as an external reference, as this seems to be when the fault is observed.

It could be that in quiescence there is a fault which is pulling A0 to a state that is unintended and when voltage is applied the inverse occurs, or vice versa.

I apologise also, I did not know that kick back and flyback were used interchangeably as my 15 years at Lockheed I never heard it in common parlance, in English or otherwise, but it maybe is splitting hairs and I am sure you are correct.

Björn

Each workplace has its own culture about what is normal, therefore staying at one place only gives you a single view of what is "normal".

It seems that the OP has gone away, so let's rest this until we can get some answers to vital questions.

That seems to defy any logic. Sorry but it is hard to see how this could be the case.

I didn’t go away :relieved:, I am just trying to follow the steps you suggested and come back with the answers. Most of the terms are new to me, so I had to google them to be on the same page with you. I will comeback with the answers and more illustrations by today.
Also, I really appreciate your interest and the follow up.

Hi Mike,
I replaced the motor with LED as you suggested and I attached a GIF in my post to show few seconds of my action. You can notice that when I turn on the 5v power, the I2C address is lost. However, when I turn the power off, the I2C address is shown at 44. I am using RPI Zero here.

I connected the VPU to the +ve side of 5v power supply and measured both SCL and SDA at 4.85V. Then, I disconnected all power and measured the resistance as follows:
Between SCL and VS: 9.90 k.ohm
Between SDA and VS: 9.98 k.ohm

Does any of these observation and the updated GIF ring any bell for your prospective?
One more time, I really appreciate your support here.

INA3221 with LED

The vital missing piece of information.

Remember when I said:-

So when you say

That voltage is too high for a Raspberry Pi, or Pi Zero, because that puts out a maximum of 3V3. Connecting a higher voltage input to it has the potential of damaging the pins.

The simplest solution is to power your INA3221 from 3V3, not from 5V.

Or you can put a I2C bidirectional level shifter board between your INA3221 powered by 5V and the Raspberry Pi.

Hi,

If you had answered and done this back at post #8, we could have saved a lot of posts and work that was put towards your problem.

NOW...
Can we please have a circuit diagram?
An image of a hand drawn schematic will be fine, include ALL power supplies, component names and pin labels.

Can we please have some images of you project so we can see your component layout?

Thanks.. Tom.. :smiley: :+1: :coffee: :coffee: :coffee: :coffee: :coffee: :australia:

Hi Tom, I thought I already answered this question. When you asked that question, I edited my post to show the schematic of my circuit and how all the components are connected. Then, I edited my post again with a GIF to show an image of my layout and also to demonstrate when I loose the I2C address.
Isn’t that what you asked for? Or am I missing something here?
Or did you mean the schematic of the INA3221 itself? If so, I think the one I found online is for an older version where all the loads/ channels are dependent on a single power supply. So, it has PVU, POW, GND. Mine has PVU, GND and GND.
Mine is a new variant of the original one but the channels are independent. So, each channel can be connected to different power supply. I updated my post again to show all the schematic as well as an image showing my layout. Is this what you mean? Or I am still missing something?
Again, thank you all for your support.

@Grumpy_Mike
I changed the power supply to 3.3V and changed the LED resistors accordingly as you can see in the updated figure in my post. However, I am still having the same problem.
I want to highlight something here, the INA3221 board is powerd by VS pin which is connected to the 3V3 pin in my controller. So, it should be independent from the power supply connected to my load (LED), right?
I measured the voltage on SCL and SDA with and without the 5V power supply connected and in both cases the voltage on SCL and SDA is shown at 3.28V. So, I think they follow the voltage provided to VS.
Unlike the original INA3221, in this variant, nothing is connected to VPU. Each channel has its own independent power supply. Actually, this is the main difference between this variant and the original one. In this version, each channel is independent and can be connected to different power supply. In the original version, has PVU, POW and GND pins, where a common power supply is connected to POW and GND then all the channels utilize this main source of power. But, the variant I am using is different, I can connect different power source to different channels as shown here:

I got it from Amazon: