Using MSP430G2553
Up to 10 PCBA'a in a daisy chain. Short 4" cables in between. Power / ground is also daisy chained. Voltage drop on power is 30mV through all board (not each). Local regulation would keep grounds within 15 mV
I2C port (P1.6 , P1.7) pins are being damaged, All MSP devices are set up as "slave"
Seems that, intermittently when long chains are put together and powered on one unit will fail and others will be damaged in the process.
Validation Test -
On a good board programming the port as output and toggling we see expected square wave.
If a board fails then when we put in toggling test code P1.7 (SDA) does not toggle and P1.6 (SCL) also does not toggle and is pulled down 1/2 to 3/4 volt from rail.
The test code sits above the I2C setup routines and simply forces Port 1 to be output and toggle all bits high then low in a While(1) loop.
Seems that after proving the code with a known good board a bad board output is acting like it is programmed as input with pull up.
If we test the same P1.6 & 1.7 pins as input and they function normally. only output driver appears damaged
We have tested by bringing up chains of boards one by one and if there is a failure not only is the last in the chain found to be defective but others are as well. Not necessarily adjacent modules. If a faulty module is introduced into a working series of modules failures occur in that chain.
Power is applied and removed before any cables are disconnected or re-connected between module - NO HOT PLUGGING
There does not appear to be a significant current draw nor are any parts getting warm - no evidence of short circuit.
Is there some mechanism that could cause the I2C to fail in this manner such that the port output driver could be damaged?
Is there some race condition possible on initialization of the I2C?
If there were over current into one of the I2C pins would the failure not cause excessive current flow?