Because of the holidays, TI E2E™ design support forum responses will be delayed from Dec. 25 through Jan. 2. Thank you for your patience.

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.

TIDA-00792: Connection to an Arduino UNO via SMBus

Part Number: TIDA-00792
Other Parts Discussed in Thread: BQ78350, BQ76940, BQ78350-R1

We are currently trying to establish communication TIDA-00792 with an Arduino UNO board based on SMBus communication. But we are not able to succeed. 

* 48V DC power supply is used to power up the board

* Regout is 2.5V

* Connected pins:

SMBC --> Arduino SCL

SMBA --> Arduino SDA

* Not very clear about the address (0x0B or 0x08 or 0x16 or 0x17)

Code:

#include <Wire.h>
void setup() {
  Wire.begin(); // join i2c bus (address optional for master)
  Serial.begin(9600);
}
void loop()
{
  delay(1000);
  Serial.println("write data");
  Wire.beginTransmission(0x16); // 
  Wire.write(0x09);
  Wire.endTransmission();
  Wire.requestFrom(0x0B, 2);    // request 6      bytes from slave device #8
  String response = "";
  while (Wire.available()) { // slave may send less than requested
    char c = Wire.read(); // receive a byte as character
    //Serial.print(c);         // print the character
    response += c;
  }
  Serial.println(response);
}

  

  • Hi Sivaprakash,

    It seems like you are connected to the board OK.  Of course make sure the BQ78350-R1 gauge stays awake during your Arduino session.  If the BQ78350 detects a voltage below the shutdown threshold it will turn off the BQ76940 (and itself).  Also check that the Arduino is providing pull ups for the SMBus lines, they are not provided on TIDA-00792.

    For SMBus see http://www.ti.com/lit/slua475 for understanding the message.  The BQ78350-R1 TIDA-00792 uses the standard 0x16 and 0x17 SMBus addresses. The code structure is shown in the app note and should be helpful in understanding what you get from the Arduino and where the communication may be failing.

    I can't help with the Arduino programming, it should have a good community which may have helpful resources.