I2C questions

An I2C bus will likely be implemented on a design I'm working with. Went through the spec., FAQ, and some other documents and still have some questions. Hope some of you with hands-on experience can help answer them.

The system was going to use I2C for two purposes - identify the daughter card and control the components on the daughter cards that use the bus. The first part was going to be EPROM that contained information about the card so the correct driver would be called. Perhaps addresses 0x01 through 0x0F. Higher addresses would be for devices, and

0x00 is the broadcast address to all devices.

The problem is that there seems to be a number of addresses that are reserved, but it is not clear to me what they are. 0x00 seems to be that broadcast address, but 1010xxx (binary, with "xxx" being the address of the particular EEPROM) seems to be reserved for all EEPROMS. What about ADC chips or DAC chips or GPIO chips, etc? Can these addresses be re-mapped?

Help appreciated.

Dave

Reply to
Dave Boland
Loading thread data ...

"Dave Boland" schrieb im Newsbeitrag news:ga_Sd.37203$ snipped-for-privacy@twister.nyroc.rr.com...

0x01

Using a commercially available eeprom you're likely to use addresses like

0x50 and above for them. 0x01 is imho an invalid I2C address as such.

not arbitrarily. The datasheets of these parts tell you which addresses are available. Philips administers these addresses and each vendor will get a designated address for his parts - with overlaps of course and this is why most parts offer different addressing choices. Typically there are a couple of pins to configure these.

/Roland

Reply to
Roland Zitzke

Search the Philips web site for opr006JN.pdf. It's a list of I2C addresses assigned to various types of devices.

-Hershel

Reply to
Hershel Roberson

On your design you can use any address for anything. If you want to sell the chips as I2C. Then Phillips cares. Otherwise you are limited to the address ranges the chips support. Phillips lists the general groups. Your chips can do what you want. There is not a broadcast address, so I assume your are doing your own thing.

Reply to
Neil Kurzman

Neil Kurzman wrote in news: snipped-for-privacy@mail.asb.com:

Actually, Philips seems to care regardless. They say: ===========================================================================I2 C Patent Information

The I2C bus is protected by patents held by Philips. Licensed IC manufacturers that sell devices incorporating the technology already have secured the rights to use these devices, relieving the burden from the purchaser.

A license is required for implementing an I2C interface on a chip (IC, ASIC, FPGA, etc). It is Philips's position that all chips that can talk to the I2C bus must be licensed. It doesn?t matter how this interface is implemented. The licensed manufacturer may use its own know how, purchased IP cores, or whatever.

This also applies to FPGAs. However, since the FPGAs are programmed by the user, the user is considered a company that builds an I2C-IC and would need to obtain the license from Philips.

Apply for a license or text of the Philips I2C Standard License Agreement

US and Canadian companies: contactMr.Piotrowski( snipped-for-privacy@philips.com) All other companies: contact Mr.Hesselmann( snipped-for-privacy@philips.com) =========================================================================== [from page 157 of

formatting link
ion-designcon.pdf ] [similar to page 50 of
formatting link
]

In short, if you use commercial off the shelf I2C components, you are covered (and would then not be having these questions about addresses because the components would have Philips-assigned base addresses). If you are having questions about addresses, it is because you are designing your own parts (ASIC, CPLD, FPGA, etc.). Philips's position is that you need a license. Presumably, when you get a license you will get assigned addresses.

I am not saying that I agree or disagree with this. I am not a lawyer and I am not expressing a legal opinion either. I just think that you should be aware of the Philips position on what you are doing.

If you are building one of something for a prototype or a school project, I don't think that you need to worry about the "I2C police" hunting you down. If you are going to be building and selling these systems, you might want to check with your legal department before proceeding.

Good Luck!

--
Ian Shef     805/F6      *    These are my personal opinions    
Raytheon Company         *    and not those of my employer.
PO Box 11337             * 
Tucson, AZ 85734-1337    *
Reply to
Ian Shef

Ian (and all),

I was not very clear in my original append. I'm not creating an I2C device. I want to understand it better, particularly the preassigned addresses, and then use it with existing devices to implement a design.

The processor has an I2C port on it which will be used for two purposes. The first is to query EPROM's to get information on the daughter cards attached. The second use is normal I2C devices like DAC's, ADC's, Voltage to Frequency, etc.

Going back to the first use, my concept was to have a block of addresses reserved for the group of EPROM's used to hold the daughter card information. This would be the first 4 bits of the I2C address. The rest of the address would be coded as the card umber (1, 2, 3, etc). Doing this makes the software easier to write because it always looks at a maximum of 8 known addresses to see if there is a daughter card and get information about it. Looks like this flash of brilliance (meant kiddingly) won't happen.

Hope that helps and thanks to all of you that have responded.

Dave,

Ian Shef wrote:

Reply to
Dave Boland

Hi Dave,

You are not more clearly this time.

If you would not create a new device, wy do you need a full list of assigned adresses!? In fact, the adress for EEPROM is fixed (1010xxx), and take care, some devices use more than one (2/4/8) from the 8 possible adresses, to expand there internal memory address space.

I don't know enough about your project, but think, the 8 addresses for EEPROM are stinted for it. If I understand right, you think, must assign the full adress to the EEPROM, but the 1st 4 bits are hard wired in the chip!

Bye. Michael

Reply to
Michael Lange

Michael & others,

I'll be very clear this time. Hell, even Michael may get it (ok, that is a stretch).

  1. As I have said, I have NO (as in not, won't do, etc.) intention of doing an I2C device. Where is this coming from?

  1. I do want to know what the reserved addresses are that are mentioned in the spec., but not fully explained. Wanting to know what these address are is part of due diligence, not so clandestine effort to make an I2C device. Some of you have pointed me to a file that is supposed to have the information, but it doesn't seem to be available.

  2. What I want with the information is not your matter, though for the record, it is just my effort to fully understand I2C.

Am I clear this time Michael? If not, go bother someone else because I don't have the patience to deal with you. And no, I'm not sorry for these comments in light of yours!!!!

Dave,

Reply to
Dave Boland

Estemeed Mr. Dave Boland,

you are right to be grumpy! A news group is a support center, and you have a claim to get answer to all your questions, not to answer questions from others!

We all are payed from your telephone company, from the large amount (at most 1,5 cent per minute), that you payed for using the line.

To your originally question: We are so unhappy, that the only sheet of paper, with the information of your desire is slide into the shredder last week.

I thought, could rember me, but in this time, I don't know why!

Michael

PS: BEWARE! THIS MESSAGE COULD INCLUDE CYNICAL COMMENTS!

PPS: Did you have at least sometimes feel induced, to help any other then yourself!? See the news groups to get the answer ...

Reply to
Michael Lange

OK.

If you're not going to make a device, please use the addresses your devices use. The complete list of legally assigned device addresses is known only by Philips and they won't release it as such, obviously to keep the bus in their control.

For scanning a bus, go through all the 128 possible write addresses and check for ACK responses. You can break a write cycle without writing anything. A read cycle cannot be broken when started until at least one byte is read.

See above - and continue arguing with Philips.

The Usenet is a place for cooperation - the above is not too cooperative. If you ask a question, you must also be interested to respond to follow-up questions - they are not for inquisitional purposes, but to refine the proper direction of responses.

HTH

--

Tauno Voipio
tauno voipio (at) iki fi
Reply to
Tauno Voipio

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.