I2C Isr is using all CPU during transfer

XMLWordPrintable

    • Type: Bug
    • Resolution: Fixed
    • Priority: High
    • SITSW-7544
    • 11.00.00
    • 11.01.00
    • Hide
      am62xx-sk
      am62xx-sk-lp
      am62x-sip-sk
      am62a-sk
      am62p-sk
      am62d-evm
      am275x-evm
      am273x-evm
      am243x-evm
      am243x-lp
      am64xx-evm
      am64xx-sk
      Show
      am62xx-sk am62xx-sk-lp am62x-sip-sk am62a-sk am62p-sk am62d-evm am275x-evm am273x-evm am243x-evm am243x-lp am64xx-evm am64xx-sk

      During performance tests on IO-Link we were seeing frameloss on 400µs cycletime. Sometimes parallel to communication we need on low priority store data to eeprom. 

      It turns out that I2C is all the time during transfer in ISR. By this nothing else can be processed. In our case this took around 2ms which is too long if we need to process data within 400µs on the IO-Link protocol. 

      Look like the issue is root caused in function I2CBufferStatus(). Here are the bitshifts of the readings are not considered. by this the results are wrong and not correctly processed. 

       

            Assignee:
            TI User
            Reporter:
            TI User
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved:

                Connection: Intermediate to External PROD System
                EXTSYNC-5750 - I2C Isr is using all CPU during tra...
                SYNCHRONIZED
                • Last Sync Date: