CCS C Software and Maintenance Offers
FAQFAQ   FAQForum Help   FAQOfficial CCS Support   SearchSearch  RegisterRegister 

ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

CCS does not monitor this forum on a regular basis.

Please do not post bug reports on this forum. Send them to CCS Technical Support

I2C bus problems on power-down of a slave

 
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion
View previous topic :: View next topic  
Author Message
john Goss
Guest







I2C bus problems on power-down of a slave
PostPosted: Wed Jan 29, 2003 3:12 pm     Reply with quote

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
PostPosted: Thu Jan 30, 2003 1:51 am     Reply with quote

Check the power line of a switched-off slave Smile. 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
PostPosted: Thu Jan 30, 2003 4:03 pm     Reply with quote

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
PostPosted: Fri Jan 31, 2003 2:07 am     Reply with quote

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 Smile . 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
PostPosted: Fri Jan 31, 2003 11:03 am     Reply with quote

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
Display posts from previous:   
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group