2 quick questions about I2C

1 ) Is there an industry standard list of I2C devices with their attached addresses ?
2 ) Is there a device that can be " assigned " by the user to an address ?

I think that I2C is just a “master” and the rest are “slaves”. I don’t think that addresses are associated with particular devices the way USB is (or was?). The designer is at liberty.

Here’s some late-night reading –

runaway_pancake:
I think that I2C is just a "master" and the rest are "slaves". I don't think that addresses are associated with particular devices the way USB is (or was?). The designer is at liberty.

No, that is not how I2C works. It is true that there is a "host"or "master" and "devices", each device has its own address. In most cases the address is hard-coded. In some cases there is a method to program the address. For example, one method is to allow 3-4 bits of the address to be assigned based on some GPIO pins on the device. There is of course a chicken-and-the-egg problem with a self addressable devices.

USB devices are enumerated when attached. It is a completely different addressing scheme from a light-weight protocol like I2C.

runaway_pancake:
I think that I2C is just a "master" and the rest are "slaves". I don't think that addresses are associated with particular devices the way USB is (or was?). The designer is at liberty.

Here's some late-night reading --
http://www.i2c-bus.org/fileadmin/ftp/i2c_bus_specification_1995.pdf

I suspect there must be a I2C standards group that lets chip manufacture reserve or at least register the I2C address they design into their chips. There are several chips that have a single built in I2C address that can't be modified at all, the 1307 RTC comes to mind. They certainly document in their datasheets what address(es) their chips utilize and it's to all's advantge to have the manufacures not try and design in conflicting addresses that the customers then have to deal with.

A lot of memory ICs have configurable addresses by directly connecting some configuration pins to ground or V+, this is so you can have many of the same ICs.

If you can't configure them in this fashion, look for I2C MUXes. They let you pick the device that you'd like to talk to in a switching operation first, then you only talk to that selected device.