Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

What is BUS specificification in I2C?

Status
Not open for further replies.

agg_mayur

Member level 3
Joined
Feb 25, 2010
Messages
66
Helped
3
Reputation
6
Reaction score
3
Trophy points
1,288
Location
India
Activity points
1,715
In I2C protocol, if we want to drive more than 5 devices from a single controller let's say 15 devices than how would we connect all the devices from microcontroller. What will be the BUS hardware specification for the same?
 

The I2C bus has two lines: SCL (clock) and SDA (data). You have only to connect the SCL and SDA pins of the devices to the same lines in the bus. Each device has its own address which would be inquired by the bus master (probably your microcontroller). Only when addressed a slave can send an answer. The clock is always generated by the master.
Regards
 

As you wrote that we can connect it directly SDA & SCL bus to the microcontroller but practically a microcontroller can drive upto 8-10 slaves at a time on a bus, how can I drive upto 15-25 devices or more than that from a single Microcontroller?
 

As per the I2C standard specification, "The number of ICs that can be connected to the same bus is limited only by a maximum bus capacitance of
400 pF." The typical I/O capacitances for a 24Cxx eeprom are about 8pF and 10pF for a DS1337 RTC. I think your devices have similar capacitances. So, unless you are trying to use the HI-speed mode, your microcontroller should do the job. Please be more specific: what speed are you using, what are the devices? Why do you think your microcontroller can´t drive more than 10 devices?
 

you need to follow the hardware design for accessing more number of slaves as prescribed by the NXP. have a suffuicient value pull up resistor in the SDA line as in the data sheet

you have 7 bit in slave device address field to access the slaves
 

As you wrote that capacitance would be max 400pF, can we increase this capacitance if yes then how can we do the same?
I used RTC DS1307. Actually in an interview, interviewer asked this question.. but i am not into too much in Hardware, so hardware specifications aren't clear.

---------- Post added at 08:37 ---------- Previous post was at 08:36 ----------

@ cvshivaram: I'll see the hardware specification of I2C..
 

As you wrote that capacitance would be max 400pF, can we increase this capacitance if yes then how can we do the same?
I used RTC DS1307. Actually in an interview, interviewer asked this question.. but i am not into too much in Hardware, so hardware specifications aren't clear.

---------- Post added at 08:37 ---------- Previous post was at 08:36 ----------

@ cvshivaram: I'll see the hardware specification of I2C..

400pF is the maximum capacitance that devices designed to be connected to the bus are able to drive. So, based on an average input capacitance of 10pF, up to 40 devices can be connected (neglecting the bus own capacitance). To increase the number of devices, all should have the capability to drive (sink) more current or, at least a few devices should have less input capacitance. Also, decreasing the clock speed or using the special devices developed for HS-mode (High Speed, up to 3.4MHz @ 100pF or 1.7MHz @ 400pF) should help. The I2C standard also shows some active (switched) pull-up circuits that can help. Otherwise, use a bus repeater.
 
i2c use SDA and SCL , SO that master is connected with the slave devices with the slave address and slave use mostly 1:7 bit for slave address.
 

@ guest: Thankyou very much... for your help... it clears the fundamental of I2C bus specification....
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top