Page 1 of 2
I2C forbidded address
Posted: Thu Oct 24, 2019 5:12 pm
by marko.brelak
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
Re: I2C forbidded address
Posted: Thu Oct 24, 2019 5:29 pm
by mikemoy
CY8C20110 touch sensor which has a 0x00 address by default
The data sheet does not have a device address of 0x00.
Re: I2C forbidded address
Posted: Thu Oct 24, 2019 5:46 pm
by marko.brelak
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
Re: I2C forbidded address
Posted: Thu Oct 24, 2019 5:53 pm
by mikemoy
Re: I2C forbidded address
Posted: Thu Oct 24, 2019 5:59 pm
by marko.brelak
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
Re: I2C forbidded address
Posted: Thu Oct 24, 2019 6:02 pm
by marko.brelak
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
Re: I2C forbidded address
Posted: Thu Oct 24, 2019 6:15 pm
by mikemoy
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.
Re: I2C forbidded address
Posted: Thu Oct 24, 2019 9:18 pm
by WiFive
Valid slave addresses are greater than 0x07 and less than 0x78.
https://www.totalphase.com/support/arti ... g#reserved
Re: I2C forbidded address
Posted: Fri Oct 25, 2019 1:53 am
by mikemoy
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.
Re: I2C forbidded address
Posted: Fri Oct 25, 2019 3:38 am
by WiFive
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.