CY8CKIT-040 as I2C master with external slave device

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
NaJa_4363881
Level 3
Level 3
10 replies posted 10 questions asked 5 replies posted

Hello!

This is regarding a prior discussion on the I2C communication. Previously I had issues with running CY8CKIT-042 as slave and CY8CKIT-040 as master with two different Creator versions (4.0 and 4.2), but it later got resolved with successive discussions in this forum. I would like to thank Bob and Moto for helping me in resolving the compatibility issues between the two kits.

Currently I am trying to interface CY8CKIT-040 (Master) with a video decoder (slave) that supports an serial MPU interface with a data rate of 400 kbps. I was able to set the data rate on the CY8CKIT-040 to 400 kbps by changing the IMO clock frequency to 32 MHz. But I am concerned about the internal pull up resistors that are already installed on the CY8CKIT-040, as the video decoder requires a 4.7 K resistor for proper operation.

Please advise on whether there is a way to disable these internal pull up resistors so that I can go ahead connecting the external video decoder to the CY8CKIT-040 with external pull up resistors (4.7 K).

Thanks and Regards,

Nandhini Jayapandian

0 Likes
1 Solution
MotooTanaka
Level 9
Level 9
Distributor - Marubun (Japan)
First comment on blog Beta tester First comment on KBA

Hi,

Usually I2C operates with pull-up resistor of 2K ~ 10K and 4.7K is a middle (safe?) range.

But what important is the ramp of rise and fall edge.

Please refer to the I2C specification

https://www.nxp.com/docs/en/user-guide/UM10204.pdf

Having written above,  chance is high that with the 2.2K installed in the CY8CKIT-040, the slave can work.

I'd suggest you to connect the device and monitor the ramp to see if it is within the specification range.

(Or more casually, connect and try! I hope it will work...)

In case not, if the ramp is out of range, I would do (from easy to difficult)

(1) remove pull-up resistors if there is/are between the CY8CKIT-040 and the slave

(2) replace R8 and R9 of the CY8CKIT-040 with  4.7K

(3) use P3[0] and P3[1] for I2C pins and add external pull-up resistors

Note: (3) uses pins for SWD, so we need to set Debug select to GPIO,

with this we will not be able to debug the program.

002-Debugging-config.JPG

moto

View solution in original post

0 Likes
1 Reply
MotooTanaka
Level 9
Level 9
Distributor - Marubun (Japan)
First comment on blog Beta tester First comment on KBA

Hi,

Usually I2C operates with pull-up resistor of 2K ~ 10K and 4.7K is a middle (safe?) range.

But what important is the ramp of rise and fall edge.

Please refer to the I2C specification

https://www.nxp.com/docs/en/user-guide/UM10204.pdf

Having written above,  chance is high that with the 2.2K installed in the CY8CKIT-040, the slave can work.

I'd suggest you to connect the device and monitor the ramp to see if it is within the specification range.

(Or more casually, connect and try! I hope it will work...)

In case not, if the ramp is out of range, I would do (from easy to difficult)

(1) remove pull-up resistors if there is/are between the CY8CKIT-040 and the slave

(2) replace R8 and R9 of the CY8CKIT-040 with  4.7K

(3) use P3[0] and P3[1] for I2C pins and add external pull-up resistors

Note: (3) uses pins for SWD, so we need to set Debug select to GPIO,

with this we will not be able to debug the program.

002-Debugging-config.JPG

moto

0 Likes