|From:||email@example.com (Anthony Presley)|
|Subject:||I2C Questions -- Not In the FAQ|
|Date:||12 Sep 2004 09:03:22 -0700|
|Organization:||http://groups.google.com (Who's computer is this?)|
|X-Trace:||posting.google.com 1095005003 19310 127.0.0.1 (12 Sep 2004 16:03:23 GMT)|
|NNTP-Posting-Date:||Sun, 12 Sep 2004 16:03:23 +0000 (UTC)|
|Path:||news2.ip-mobilphone.net ! NNTPLoader.ip-mobilphone.net ! spool9-east ! propagator-sterling ! news-in.nuthinbutnews.com ! news.glorb.com ! postnews2.google.com ! not-for-mail|
|Xref:||news2.ip-mobilphone.net sci.electronics.design:244095 comp.arch.embedded:90111|
I have a few questions about the i2c bus which I can't seem to find
anywhere else. Any answers would be greatly appreciated.
We're building a device based on a previous design, from another firm,
which uses the MSP430F149, which does SPI, but not I2c. The existing
design uses i2c components on the board, and the software is bit
banging out the i2c protocol. We want to extend this to allow for
offboard sensors using I2c. However, we really would prefer to have
multiple masters where possible, as some of the sensors may be "alarm"
related. As far as I know, we have a couple of options.
1. Add a Phillips I2c hardware controller onto the existing design --
as well as on each of the sensors [which will have their own MSP430's,
probably the cheapest of the same family]. This would allow us a I2c
multi-master configuration, based on the hardware design.
- In this case, how is unique addressing done? IE, we may have six
of the same sensors on the bus, but want to send data to/from only
one. I've read conflicting information about unique addressing, and
whether it is or isn't possible.
- In this configuration ... if I'm building my own I2c sensors, do I
have to pay Phillips for a unique address, or can I assign my own?
2. Switch to an MSP430 which has I2c within the hardware, something
like the F169. However, this is probably not desired. Similar
consequences as  above.
3. Continue with the bit-banging in the software. This is probably
the easiest option for me [I come from a software background].
However, I'm a little confused how this would work in a multi-master
- Using software-level i2c, how does one assign id's to the sensors
[I assume in firmware, or in the EEPROM's]?
- Using software-level i2c, can you do multi-master i2c? I ask, b/c
it appears [to me] that the difference between a slave and a master is
minimal. A slave and a master can both control the clock, from my
reading, the difference being that the slave cannot initiate the START
command [which could be done in software].
A last question ... in a multi-master i2c configuration, such as the
one shown at: http://www.esacademy.com/faq/i2c/general/i2carbit.htm, (Who's computer is this?)
it appears that the clock, which is bi-directional, is not tied
directly to either master -- ie, it's a 3rd party clock. How is this
Thanks for any help.