7 Replies Latest reply on Jun 7, 2017 6:54 AM by MichaelF_56

    I2C SDA/SCL toggling when being programmed and connected to a host


      On our custom board, BCM20737S is connected to PIC32 processor over I2C.

      BCM20737S is the I2C host as it can only work as a host.

      I can send and receive data using the cfa_bsc_OpExtended coomand. 

      So the I2C interface is working.


      The only issue is that when the BCM20737S gets connected to an Android (BLE host), it seems to send out some packets (NULL characters?) over the I2C to the PIC.

      I observed/verified the line toggling by monitoring the SDA/SCL lines on a scope.

      Also I can use a debugger in the PIC32 and detect I2C packets.  The content of the I2C packets looks like NULL characters, when falsely transmitted.


      I triggerred the detection of I2C packets by setting up an IF statement with monitoring the STOP status. 

      However, due to the NULL character transmission, the I2C detection occurs undesirably, overwhelming the true packet detection.

      I've added another condition to filter out the undesirable packets when the first byte is a NULL character, and this seems to work reliably.

      However, I would like to really understand why getting connected to a host or getting the BCM20737S programmed would cause the I2C bus to be active, making the I2C slave to respond unnecessarily.