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

    CY8C29466 I2CHW multimaster slave hang


      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.....



        • 1. Re: CY8C29466 I2CHW multimaster slave hang

          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?




          • 2. Re: CY8C29466 I2CHW multimaster slave hang

            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!