This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

using I2C with bq27520EVM

Other Parts Discussed in Thread: BQ27520EVM, EV2400

Hi,

I have a bq27520EVM (HPA568 Rev. A). I am trying to use I2C communication between the Evaluation board and Arduino Uno where Arduino is the master and bq27520EVM is the slave. I have set-up the address to be 0xAA and am trying to read the voltage (0x08) from the evaluation board. Here is the sequence of I2C bytes messages I send from arduino

0xAA,0x08,0xAB

However, i do not receive any ACK from the evaluation board.

It seems that bq27520EVM operates on 3.3V, however arduino uno operates at 5V Vcc. Could this be the reason why I am not receiving any ACK from bq27520EVM. 

bq27520EVM has internal pull-up resistors of 10K. I tried using pull-up resistors (1.8K) on the arduino side and also without using the pull-up resistors. In both cases, I was not successful in getting ACK from the evaluation board.

Any help on how to get bq27520EVM to talk I2C to another microcontroller would be really great. Thanks a lot in advance.

  • Do you have an oscilloscope that you could use to probe the I2C data and clock signals to see what's going on?

    Also, do you have an EV2300 or EV2400 that you could use to confirm the EVM is working properly?

  • The Arduino Wire library operates with 7 bit device addresses. The library adds the read/write bit to the end of the address for you. When a datasheet provides 8-bit addresses, they are including the read/write bit. All you have to do is drop the lsb. Your device address is 1010101b (0x55). 

    Try something like this:

    Wire.beginTransmission(0x55);
    Wire.write(0x08);
    Wire.endTransmission();
    
    Wire.requestFrom(0x55,1);
    data = Wire.read();