Hi Dear support team :)
I'm currently trying to do a use-case specific evaluation of the TMP116 to evaluate optimal placement in addition to mounting dependent behavior as the EVM and datasheet looks nice for our use-case.
To get a quick setup I'm using the Arduino Uno. But I can't seem to get the sensor to acknowledge even when using the official i2c_scanner script, which runs through all i2C addresses.
I've tried to reduce the communication speed to 31kHz, from the default 100kHz, and the signals look nice, except i do not receive an ack from the TMP116. I measure a approx 0.66V diode drop from gnd to all pins, no shorts between the pins and a 4.1V on the Arduino 3.3V output.
Am I missing something obvious?
Setup:
Arduino Uno -> TMP116:
* Pin A5 -> Pin 1 -> 4.7kOhm -> 3.3V (Arduino)
* Pin A4 -> Pin 6 -> 4.7kOhm -> 3.3V (Arduino)
* 3.3V (Arduino) -> Pin 4&5 -> 100nF cap to GND (sensor)
* GND (Arduino) -> Pin 2
* NC -> Pin 3
* NC -> Thermal pad
Connections consist of approximately 15cm test leads, vero board and 4-5cm lakker insulated cobber wire soldered directly onto the free hanging IC (with 100nF cap on it with 3-5mm wire to pins)
Code:
#include <Wire.h> void setup() { Wire.begin(); Wire.setClock(31000L); Serial.begin(9600); while (!Serial); Serial.println("\nI2C Scanner"); } void loop() { byte error, address; int nDevices; Serial.println("Scanning..."); nDevices = 0; address=0; for(address = 1; address < 127; address++ ) { // The i2c_scanner uses the return value of // the Write.endTransmisstion to see if // a device did acknowledge to the address. Wire.beginTransmission(address); error = Wire.endTransmission(); if (error == 0) { Serial.print("I2C device found at address 0x"); if (address<16) Serial.print("0"); Serial.print(address,HEX); Serial.println(" !"); nDevices++; } else if (error==4) { Serial.print("Unknown error at address 0x"); if (address<16) Serial.print("0"); Serial.println(address,HEX); } } if (nDevices == 0) Serial.println("No I2C devices found\n"); else Serial.println("done\n"); delay(5000); // wait 5 seconds for next scan }
Best Regards
A confused green engineer :)