- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
Can we have two slave address decoding for PSoC4100S I2C slave(not EZI2C)?
It doesn't seem to be possible in the component configuration.
But, can we add the secondary slave address with firmware?
Best regards,
Yocchi
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi YoIs_1298666 -san,
If you are talking about the received matched address (process based on received address) , you need to use the callback function SetI2cAddressCustomInterruptHandler(). Refer section Multiple address support (Pg no 47) and Accept matching address RX FIFO section (Pg 48) from SCB component datasheet.
https://www.cypress.com/file/408071/download
SCBx_RX_MATCH should be considered as the primary slave address of the device. It is not the address of the matched received address. You need to enable Accept matching RX FIFO to move the received matched slave address to RX FIFO. The callback function can be used to read the received address from the RX FIFO and perform post data processing such as acknowledgment/ buffer settings based on the received address.
Regards,
Bragadeesh
Bragadeesh
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi YoIs_1298666,
You can use the Slave address Mask setting to accept a range of address.
Refer SCB Component datasheet and PSoC 4 Register TRM for implementation details.
https://www.cypress.com/file/408071/download
Regards,
Bragadeesh
Bragadeesh
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Bragadeesh-san,
Thank you very much for your reply.
I found a description of what you are saying.
Is there a register to know whether the slave address is 0x1B or 0x0B?
Is it "ADDR [7:0]"bits of "SCBx_RX_MATCH"register?
Best regards,
Yocchi
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi YoIs_1298666 -san,
If you are talking about the received matched address (process based on received address) , you need to use the callback function SetI2cAddressCustomInterruptHandler(). Refer section Multiple address support (Pg no 47) and Accept matching address RX FIFO section (Pg 48) from SCB component datasheet.
https://www.cypress.com/file/408071/download
SCBx_RX_MATCH should be considered as the primary slave address of the device. It is not the address of the matched received address. You need to enable Accept matching RX FIFO to move the received matched slave address to RX FIFO. The callback function can be used to read the received address from the RX FIFO and perform post data processing such as acknowledgment/ buffer settings based on the received address.
Regards,
Bragadeesh
Bragadeesh
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Bragadeesh-san,
Thank you very much for your help.
I could find the sample code of "SetI2cAddressCustomInterruptHandler()" in "Accept matching address RX FIFO" of PSoC 4 Serial Communication Block (SCB) datasheet.
Best regards,
Yocchi