1 Reply Latest reply on Aug 20, 2019 5:47 PM by MoTa_728816

    CY8CKIT-040 as I2C master with external slave device




      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

        • 1. Re: CY8CKIT-040 as I2C master with external slave device



          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



          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.