I2C Arbitration Lost Error

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

I2C Arbitration Lost Error

Jump to solution
5,315 Views
henrykite1
Contributor I

Hi,

I'm having some difficulty using the I2C interface on the LPC54605: I've configured FlexComm0 for I2C, as in the examples, and I'm using Chip_I2CM_XferBlocking() to transfer the I2C data. The problem is that the arbitration lost error is being asserted on the first '1' bit in the transfer sequence. For example, if I set the slave address to 0x01, it sends the first 6 bits of the address OK, but raises I2CM_STATUS_ARBLOST on the 7th bit. If I set the slave address to 0x80, it raises I2CM_STATUS_ARBLOST on the 1st address bit.

A logic analyser shows that the bus is in the correct state ('1' bit where expected), and at the correct rate.

I've tried removing the slave device from the bus, and still get ARBLOST, even though there's nothing except the LPC on the I2C bus, and the logic analyser shows that the bit sequence is OK.  What could be causing incorrect assertion of ARBLOST?

Thanks.

Labels (1)
0 Kudos
1 Solution
3,167 Views
henrykite1
Contributor I

I've found the problem with the board: I had the flexcomm0 pins configured for SPI instead of I2C (so 5 active pins). I'm still not sure exactly why ARBLOST was the result, but after removing the 3 unused pins from the pin mux, I can now talk to the I2C peripheral as expected.

View solution in original post

0 Kudos
1 Reply
3,168 Views
henrykite1
Contributor I

I've found the problem with the board: I had the flexcomm0 pins configured for SPI instead of I2C (so 5 active pins). I'm still not sure exactly why ARBLOST was the result, but after removing the 3 unused pins from the pin mux, I can now talk to the I2C peripheral as expected.

0 Kudos