discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] Multiple I2C devices on Rx daughtercards


From: John Orlando
Subject: Re: [Discuss-gnuradio] Multiple I2C devices on Rx daughtercards
Date: Mon, 11 Jan 2010 15:55:47 -0600



On Mon, Jan 11, 2010 at 3:04 PM, Eric Blossom <address@hidden> wrote:
On Mon, Jan 11, 2010 at 10:51:09AM -0600, John Orlando 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.
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!

--
Regards,
John Orlando
CEO/System Architect
Epiq Solutions
www.epiq-solutions.com

reply via email to

[Prev in Thread] Current Thread [Next in Thread]