I2C Arbitration Lost Error

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

I2C Arbitration Lost Error

ソリューションへジャンプ
7,673件の閲覧回数
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,525件の閲覧回数
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,526件の閲覧回数
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 件の賞賛
返信