Hi all,
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.
- 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?
- Switch to an MSP430 which has I2c within the hardware, something like the F169. However, this is probably not desired. Similar consequences as [1] above.
- 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 configuration. - 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:
Thanks for any help.
--Anthony