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?