Multiple I2C devices on Rx daughtercards

Hi Matt,
In reviewing the schematic of the dbsrx daughtercard, I noticed that
there
are two i2c devices (the EEPROM and the MAX211x receiver chip). In
general
for the daughtercards, address bit A1 determines side A or side B, and
A0
determines if the card is an rx or tx card, and this is hard-coded by
the
USRP itself. So…if a user has two dbsrx cards in their USRP, I think
the
EEPROM of the dbsrx on side A would have the same address as the MAX211x
on
side B, and vice versa. Wouldn’t this be an issue?

Of course, I’m guessing there is a logical explanation as to how this is
mitigated, as I found several folks in the archives that mention using
two
dbsrx cards simultaneously. Any insight is appreciated.

Also, is there a reason that address bit A2 isn’t used to select
different
i2c devices on the same card?

Thanks much…

On Mon, Jan 11, 2010 at 10:51:09AM -0600, John O. wrote:

Hi Matt,
In reviewing the schematic of the dbsrx daughtercard, I noticed that there
are two i2c devices (the EEPROM and the MAX211x receiver chip). In general
for the daughtercards, address bit A1 determines side A or side B, and A0
determines if the card is an rx or tx card, and this is hard-coded by the
USRP itself. So…if a user has two dbsrx cards in their USRP, I think the
EEPROM of the dbsrx on side A would have the same address as the MAX211x on
side B, and vice versa. Wouldn’t this be an issue?

Also, is there a reason that address bit A2 isn’t used to select different
i2c devices on the same card?

I2C devices have a 7-bit address. Some of them are fixed depending on
the device. E.g., on the 24LC024, the top 4-bits are 1010, which is
different from the bits hardwired into a low speed A/D, D/A, etc.
Take a look at the datasheets.

Eric

On Mon, Jan 11, 2010 at 3:04 PM, Eric B. [email protected] wrote:

EEPROM of the dbsrx on side A would have the same address as the MAX211x
Take a look at the datasheets.

Ok…that makes sense. I forgot about the hard-wired top bits. This
correlates with the code in db_dbs_rx.cc that indicates that its i2c
address
is either 0x67 or 0x65, depending on which side it is in (along with the
fact that the schematic has the A1/AS1 address bit controlled from the
USRP). Tthe MAX211x datasheet shows the addresses as 1100xxxx, but the
LSB
is used to indicate read (1) or write (0), so the _actual_address of the
chip is 1100xxx >> 1, which is 0110xxx (where xxx correlates with
A2/A1/A0
coming from the USRP). I2c always makes my head hurt until I remember
how
it works.

Thanks again Eric!