8 Replies Latest reply on Jul 3, 2019 5:05 AM by AH_96

    PSOC4 EZI2C Slave Holds the I2C bus issue

    anpa_4312256

      I am using PSOC4 CY8C4041LQI for Capsense keypad application and it is communicating with Nordic Controller over I2C.

       

      CY8C4041LQI is a I2C slave device and we have used EZI2C SCB for slave.

       

      By Analyzing the scenario, we founded that We are getting issue of CY8C4041LQI I2C slave is holding the bus(SDA is Low).

       

      we have taken care at Nordic master I2C side of SCL pin is toggled 9 times if bus is holded, so that slave can release the SDA line. But still issue is not resolved.

        • 1. Re: PSOC4 EZI2C Slave Holds the I2C bus issue
          AH_96

          Hello

           

          For the EzI2C slave, please check the following points:

           

          1. The pin configuration in cydwr tab must match the actual circuit. Please make sure that the pin configuration is correct.

          2.Data rate- Please make sure that the data-rate of the master matches the data-rate of the EzI2C slave (Properties-> EzI2C Basic tab-> data rate)

          3. Please make sure that the EzI2C component is initialized by calling the EzI2C_Start() API in main.

           

          Please share your project so that we can check for issues. Refer this article for details on archiving: Archiving a PSoC Creator Design

          • 2. Re: PSOC4 EZI2C Slave Holds the I2C bus issue
            anpa_4312256

            Hello,

             

            This issue is generated rarely, but once it is created, only power cycle of CY8C4041LQI(I2C slave) touch keypad resolve the bus hold issue.

             

            i am attaching archive file of my project.

             

            please review it.

            • 3. Re: PSOC4 EZI2C Slave Holds the I2C bus issue
              AH_96

              Hi

               

              Can you please let me know how frequently the issue is occurring? What are the steps to reproduce this issue at our end? Does the problem occur upon some particular condition?

               

              In your circuit, please make sure that there is a 330 ohm series resistor and 4.7 kohm pull up resistor on the I2C lines.

               

              Please let us know how many devices are connected in the I2C bus. There is a limitation on number of devices connected to the bus due to bus capacitance.

               

              Can you use Bridge control Panel to send the I2C data directly from the PC to check if the issue is occurring?

              Also, please change the data rate of I2C communication to check if the issue occurs at other data rates and the frequency of occurring.

               

              Thanks and regards

              Harigovind

              • 4. Re: PSOC4 EZI2C Slave Holds the I2C bus issue
                AH_96

                Could you also send the waveforms of the I2C lines to show the activity before SDA line is pulled LOW?

                 

                Additionally, the code that was shared checks for a proximity sensor and only if it is activated, the other sensors are scanned. However, the project does not have a pin associated with proximity sensor. Please let me know if this was done for the purpose of debugging.

                 

                Thanks and regards

                Harigovind

                • 5. Re: PSOC4 EZI2C Slave Holds the I2C bus issue
                  anpa_4312256

                  Can you please let me know how frequently the issue is occurring? What are the steps to reproduce this issue at our end? Does the problem occur upon some particular condition?

                  Ans:  During production, it was tested so many times. But, The issue occurred rarely at customer site.

                  so it is not possible to send waveforms of the I2C lines.

                   

                  In your circuit, please make sure that there is a 330 ohm series resistor and 4.7 kohm pull up resistor on the I2C lines.

                  Ans: Yes, we have taken care of it.

                   

                  Please let us know how many devices are connected in the I2C bus. There is a limitation on number of devices connected to the bus due to bus capacitance.

                  Ans: Only 2 devices (Master and slave)

                   

                  Can you use Bridge control Panel to send the I2C data directly from the PC to check if the issue is occurring?

                  Ans: Isuue is created rarely, so it is not possible to do it.

                   

                  Also, please change the data rate of I2C communication to check if the issue occurs at other data rates and the frequency of occurring.

                  Ans: ok sure.

                   

                  Additionally, the code that was shared checks for a proximity sensor and only if it is activated, the other sensors are scanned. However, the project does not have a pin associated with proximity sensor. Please let me know if this was done for the purpose of debugging.

                  Ans: No, it is not done for debugging.

                  • 6. Re: PSOC4 EZI2C Slave Holds the I2C bus issue
                    AH_96

                    Hi

                     

                    Can you provide the frequency of failure, as in how many times the circuit fails in a given number of test cases?

                     

                    The waveforms would greatly help us in understanding the reason for the issue and would result in faster resolution. Please provide the waveforms for analysis.

                     

                    If waveforms are not available, please provide the test method used to determine that the issue was with the slave device.

                     

                    Please try to use the BCP to reproduce the issue as using a PC host would help to check if the problem is actually with the slave device along with the reason/condition.

                     

                    Could you also provide the sequence of commands issued by the master so that we can work in trying to reproduce the issue at our end as well.

                     

                    You can also try to measure the potential at either sides of the series resistor to check which device is holding the line LOW. The potential will be comparatively lower on the side that is pulling the line LOW. This would confirm if its the PSoC device that is actually causing the issue.

                     

                    Please provide the results with change in frequency of I2C communication speed as well (regarding frequency of issue).

                     

                    Best regards

                    Harigovind

                    • 7. Re: PSOC4 EZI2C Slave Holds the I2C bus issue
                      AH_96

                      Hello

                       

                      Is it possible to provide the information requested in previous response?

                      Were you able to reproduce the issue and check the condition for failure?

                       

                      Regards

                      Harigovind

                      • 8. Re: PSOC4 EZI2C Slave Holds the I2C bus issue
                        AH_96

                        Hello anpa_4312256

                         

                        Is it possible to provide the information requested in previous response?

                        Were you able to reproduce the issue and check the condition for failure?

                         

                        Regards

                        Harigovind