AnsweredAssumed Answered

FXLS8471Q maximum I2C bus length

Question asked by Omar TRIKI on Dec 31, 2015
Latest reply on Jan 4, 2016 by Anthony Duhamel

The accelerometer FXLS8471Q can communicate with a microcontroller through I2C or SPI bus. I am working with I2C bus and an arduino platform to measure acceleration. A basic test for communication is to read WHO_AM_I register (0x0D).


Actually I use Wire library of Arduino to communicate with the FXLS8471Q accelerometer (Normal I2C is used 100 KHz). In the accelerometer datasheet, page1 (Features section) they claim that it "supports 4-wire SPI interface at up to 1 MHz; I2C Normal (100 kHz) and Fast Modes (400 kHz)". Well, I try it and I the communication test is OK!


But, when I use a twisted cable of 0.8m length (CAT5e), the communication test fail . In the datasheet page 17, they confirm that "External pullup resistors connected to VDDIO are required for SDA and SCL". Unfortunately, I didn't find any value of these pull up resistor. I use 10K, 4.7K and even an adjustable resistance but I can't get a correct communication with this 0.8m cable.


I need a 12m cable for my application, (this is why I try to make cable longer every time). I found this information:

The size of the pull-up will be defined by the total bus capacitance and the pull-down capabilities of the devices on the bus:

Rp ≥ (Vdd−VOL) / IOL               and        Rp ≤ 300ns / (0.847298 × Cbus)

Where VOL is the logic low voltage needed, IOL is the sinking current, and Cbus is the bus capacitance.


Any help for selecting the correct resistance value or any suggestion is welcome