I2C Arbitration Lost Error

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

I2C Arbitration Lost Error

跳至解决方案
7,640 次查看
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.

标签 (1)
0 项奖励
回复
1 解答
5,492 次查看
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 项奖励
回复
1 回复
5,493 次查看
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 项奖励
回复