View previous topic :: View next topic |
Author |
Message |
john Goss Guest
|
I2C bus problems on power-down of a slave |
Posted: Wed Jan 29, 2003 3:12 pm |
|
|
I am working on a hot-swap power supply project. I have one Master looking at 1 to 5 slave power supplies. I am using I2C to communicate. I have 2.2K pullups on SDA & SCL. The master is a 16f877 and the slaves are 16F872.
My problem is when I turn off (disable) any of the power supplies, it turns off power to the slave controller and it then loads the I2C bus so both SDA & SCL are at 2.5V. Isn't the controller supposed to tri-state if the power goes off?
Any clues?
___________________________
This message was ported from CCS's old forum
Original Post ID: 11113 |
|
|
Tomi Guest
|
Re: I2C bus problems on power-down of a slave |
Posted: Thu Jan 30, 2003 1:51 am |
|
|
Check the power line of a switched-off slave . Maybe you will see 2 - 2.5V. In this case you have pin protection diodes in the slave I2C device (anode is connected to SCL/SDA line and cathode is tied to Vcc).
:=I am working on a hot-swap power supply project. I have one Master looking at 1 to 5 slave power supplies. I am using I2C to communicate. I have 2.2K pullups on SDA & SCL. The master is a 16f877 and the slaves are 16F872.
:=
:=My problem is when I turn off (disable) any of the power supplies, it turns off power to the slave controller and it then loads the I2C bus so both SDA & SCL are at 2.5V. Isn't the controller supposed to tri-state if the power goes off?
:=
:=Any clues?
___________________________
This message was ported from CCS's old forum
Original Post ID: 11130 |
|
|
john Goss Guest
|
Re: I2C bus problems on power-down of a slave |
Posted: Thu Jan 30, 2003 4:03 pm |
|
|
Thanks Tomi,
Thats got to be it!
What do you think I should try, using an analog switch inline or use high value resistors in line?
JG
:=Check the power line of a switched-off slave <img src="http://www.ccsinfo.com/pix/forum/smile.gif" border="0">. Maybe you will see 2 - 2.5V. In this case you have pin protection diodes in the slave I2C device (anode is connected to SCL/SDA line and cathode is tied to Vcc).
:=
:=:=I am working on a hot-swap power supply project. I have one Master looking at 1 to 5 slave power supplies. I am using I2C to communicate. I have 2.2K pullups on SDA & SCL. The master is a 16f877 and the slaves are 16F872.
:=:=
:=:=My problem is when I turn off (disable) any of the power supplies, it turns off power to the slave controller and it then loads the I2C bus so both SDA & SCL are at 2.5V. Isn't the controller supposed to tri-state if the power goes off?
:=:=
:=:=Any clues?
___________________________
This message was ported from CCS's old forum
Original Post ID: 11141 |
|
|
Tomi Guest
|
Re: I2C bus problems on power-down of a slave |
Posted: Fri Jan 31, 2003 2:07 am |
|
|
If you use a high value pull-up resistor then you must decrease the I2C bus speed and I think you have a couple of wires so you have a relatively high line capacitance so you _must_ use low R pullups. Using analog switches could be a solution but keep in mind that most of those switch circuits also have input protection diodes . I think the CD4016 switch IC doesn't have protection diodes.
:=What do you think I should try, using an analog switch inline or use high value resistors in line?
___________________________
This message was ported from CCS's old forum
Original Post ID: 11146 |
|
|
john Goss Guest
|
Re: I2C bus problems on power-down of a slave - Isolation So |
Posted: Fri Jan 31, 2003 11:03 am |
|
|
I'm going to try a simple trick that I think may very well work. I read it toward the back of the Philips I2C specification. They use this trick to seperate different voltage busses (one at 5V logic and another at 3.3V logic). Although the document said it will work even if the voltages are the same. See the I2C-Bus Specification Section 18.
They use an N-Channel FET in line with SDA & SCL lines to isolate the lower voltage side (or in my case the slave side that could power down) from the Main bus that is higher voltage (or in my case the Master which never powers down).
In my case, I tie the SOURCE side of the FETs to the slave's I2C signal line. The DRAIN side to the Master I2C bus lines. And the Gate goes to +5V from the Slave device. The FET chosen MUST have the internal diode (n-p junction) between the drain and substrait for this to work.
The slave will now need it's own set of pullup resistors (between slave controller and source-side of the FET, as well as the Master bus's own pullups.
As the if the master pulls a line down the, the substrait diode gets biased and the FET conducts. If the slave pulls the line down, then the gate is higher than the source and it conducts. If the slave is turned of it goes high impedence!
No loading!!! I'm happy!!!
:=If you use a high value pull-up resistor then you must decrease the I2C bus speed and I think you have a couple of wires so you have a relatively high line capacitance so you _must_ use low R pullups. Using analog switches could be a solution but keep in mind that most of those switch circuits also have input protection diodes <img src="http://www.ccsinfo.com/pix/forum/smile.gif" border="0"> . I think the CD4016 switch IC doesn't have protection diodes.
:=
:=:=What do you think I should try, using an analog switch inline or use high value resistors in line?
___________________________
This message was ported from CCS's old forum
Original Post ID: 11165 |
|
|
|