2 Replies Latest reply on Dec 7, 2017 10:04 AM by user_1587592

    CY8C29466 I2CHW multimaster slave hang

    user_1587592

      I have a "smart" IO board based on the CY8C29466.   The smartio board is designed to collaborate with an central processor via exchange of I2C messages.      Both devices are configured as  Multi-master-slave mode i2c.        This is a legacy product that has been working well for some years.       I've configured the smartio board to send a test message at 1 second intervals.     When connected to an Older central processor (also CY8C29466 based)  the communications works reliably.

       

      When I connect the legacy smartio device to a newer pSoc4 based central control processor board,  the smartio device stops sending messages after a few seconds (always less than 60seconds).       I've traced the I2C bus using a logic analyzer and scope in parallel.    The odd thing is that the smartio/29466 seems to abort transmission in the midst of transmitting a byte on the I2C.     This is NOT a case where the receiving I2C device fails to generate an acknowledge.    The sending device (my legacy smartio board) just stops sending somewhere between 1 and 7 bits into the byte.  

       

      I've check errata on the I2CHW module, the 8C29466, and the psoc4 and did not see anything that seemed relevant.    

       

      One thought is that the smartio/29466 is getting reset although I don't see a good reason why this would happen with a legacy host device vs the newer one.   XRES is not going high/glitching.   Watchdog timer is disabled.

       

      Any suggestions appreciated.....

       

      Jim

        • 1. Re: CY8C29466 I2CHW multimaster slave hang
          samp

          Hello Jim,

           

          This looks like the Smart IO Board I2C Master has lost arbitration. Can you kindly insert a 100 ohm resistor in SDA / SCL lines, first between 1 master and the bus, and then between the other master and the bus. This way, you will see logic low a bit higher on the bus, compared to the logic low level in the master.

           

          Are the VDD for Smart IO and PSoC4 same?

           

          Thanks,

          Sampath

          • 2. Re: CY8C29466 I2CHW multimaster slave hang
            user_1587592

            Hi Sampath,

             

            Thank-you for your suggestion.    I'm not sure I understand the objective of the resistors?    Although it is a multimaster bus,  there is only one sending master (the smartio board).    

             

            As a test I configured one of the other devices to also become master and send a message periodically.    This seems to "unstick" the smartio board and it resumes transmitting its test message for a while before hanging up again.     I think this supports the theory that its an arbitration issue.    Perhaps an SDA glitch is causing the smartio board to think it lost arbitration even though no-one else is actually sending.

             

            Regarding the Vdd question,   the test configuration has 4 devices including the smartio board.    3 of the devices are powered by Vdd=5V,  one has Vdd=3.3V.    We use the LTC4313-3 I2C buffer/repeater/level translator to handle the differences in Vdd.     I am sort of wondering if the LTC4313 is glitching!

             

            Regards,

            Jim