I2C bus speeds
I2C bus speeds
On examining the Multiwii code I discovered that the bus speed is switched depending on the capabilities of the addressed device. This is not very clever, the bus is used by a number of devices and must be run at the speed of the slowest device as all the devices on the bus have to be able to recognise their address. If a high speed device is being addressed then there is no way a slow speed device will be able to process the incoming data stream reliably so it may respond in an unpredictable way. If you are having a large number of bus errors this is probably the cause. Fortunately all the devices on my board can run at 400kHz.