I2C forbidded address

marko.brelak
Posts: 23
Joined: Wed Apr 10, 2019 1:26 pm

I2C forbidded address

Postby marko.brelak » Thu Oct 24, 2019 5:12 pm

Dear colleagues,

I have made a PCB that contains the ESP32 module and several sensors and chips on the I2C bus. Consequently, one of the chips is the CY8C20110 touch sensor which has a 0x00 address by default (it can be configured via I2C command). So my question is, are there some forbidden I2C slave addresses like 0x00, 0x01, and 0x02 since I don't see them in the i2c_scanner code: https://github.com/nkolban/esp32-snippe ... 2c/scanner
Is there an issue with those addresses?

Regards
Marko

mikemoy
Posts: 627
Joined: Fri Jan 12, 2018 9:10 pm

Re: I2C forbidded address

Postby mikemoy » Thu Oct 24, 2019 5:29 pm

CY8C20110 touch sensor which has a 0x00 address by default
The data sheet does not have a device address of 0x00.

marko.brelak
Posts: 23
Joined: Wed Apr 10, 2019 1:26 pm

Re: I2C forbidded address

Postby marko.brelak » Thu Oct 24, 2019 5:46 pm

To be honest, I am failing to find the address. I will look more closely. But the colleague of mine wrote the code where it is stated the 0x00 address. Did you have any experience with the CY8C20110? And, is there an explanation for avoiding 0x00, 0x01, and 0x02 in the i2c_scanner?

Regards
Marko

mikemoy
Posts: 627
Joined: Fri Jan 12, 2018 9:10 pm

Re: I2C forbidded address

Postby mikemoy » Thu Oct 24, 2019 5:53 pm

Here is the data sheet.
https://www.mouser.com/datasheet/2/100/ ... 769425.pdf

On page 8 is the address.

marko.brelak
Posts: 23
Joined: Wed Apr 10, 2019 1:26 pm

Re: I2C forbidded address

Postby marko.brelak » Thu Oct 24, 2019 5:59 pm

This is just an example of how the addressing work in both read and write modes. The CY8C20110 is able to have its own address changed in runtime.

Regards
Marko

marko.brelak
Posts: 23
Joined: Wed Apr 10, 2019 1:26 pm

Re: I2C forbidded address

Postby marko.brelak » Thu Oct 24, 2019 6:02 pm

Take a look at this: https://static5.arrow.com/pdfs/2010/3/1 ... d20231.pdf
Page 13, "All the devices are shipped from the factory with the default I2C address of 000 0000b."

So to get back to the primary question: is there a reason for avoiding those three addresses: 0x00, 0x01, and 0x02?

Regards
Marko

mikemoy
Posts: 627
Joined: Fri Jan 12, 2018 9:10 pm

Re: I2C forbidded address

Postby mikemoy » Thu Oct 24, 2019 6:15 pm

marko.brelak wrote:
Thu Oct 24, 2019 6:02 pm
Take a look at this: https://static5.arrow.com/pdfs/2010/3/1 ... d20231.pdf
Page 13, "All the devices are shipped from the factory with the default I2C address of 000 0000b."

So to get back to the primary question: is there a reason for avoiding those three addresses: 0x00, 0x01, and 0x02?

Regards
Marko
To answer your question no. Its just extremely rare that anyone uses address that low.

WiFive
Posts: 3529
Joined: Tue Dec 01, 2015 7:35 am

Re: I2C forbidded address

Postby WiFive » Thu Oct 24, 2019 9:18 pm

Valid slave addresses are greater than 0x07 and less than 0x78.
https://www.totalphase.com/support/arti ... g#reserved

mikemoy
Posts: 627
Joined: Fri Jan 12, 2018 9:10 pm

Re: I2C forbidded address

Postby mikemoy » Fri Oct 25, 2019 1:53 am

WiFive wrote:
Thu Oct 24, 2019 9:18 pm
Valid slave addresses are greater than 0x07 and less than 0x78.
https://www.totalphase.com/support/arti ... g#reserved
It also states "The goal of this article is to clarify the slave address standard used by all Total Phase products and to help developers determine what slave address they should use."

The fact of the matter is that since I2C's birth many manuf. have done what they wanted for chip address. As can be seen here by this IC with a default address of 0x00.

WiFive
Posts: 3529
Joined: Tue Dec 01, 2015 7:35 am

Re: I2C forbidded address

Postby WiFive » Fri Oct 25, 2019 3:38 am

The following table has been taken from the I2C Specifications (2000).
No device is allowed to acknowledge at the reception of the START byte.
It is nice to know the spec and follow it unless you have a decent reason not to. And it is reasonable that an i2c scanner code would skip reserved addresses. The address of the CY8C20110 can be one time programmed to something other than 0 and the newer Cypress MBR3 chips do have a valid default address.

Who is online

Users browsing this forum: Baidu [Spider], ok-home and 122 guests