@ adafruit_support_rick
The chip is soldered on this adapter board
http://www.proto-advantage.com/store/pr ... id=3100089
which was pretty tricky due to the 0,5mm pin pitch and a soldering iron which was not made for this...
@ franklin97355:
I can communicate with the chip, set register, read register.
The problem is that I don't know what exactly to read and how to transform it to temperature Celsius.
This is from the data sheet
http://cds.linear.com/docs/en/datasheet/2991fd.pdf
Data Format
The data registers are broken into 8-bit upper and lower
bytes. V
oltage and temperature conversions are 13-bits.
The upper bits in the MSB registers provide status on the
resulting conversions. These status bits are different for
temperature and voltage conversions.
Temperature
Temperature conversions are reported as Celsius or Kelvin
results described in Tables 11 and 12, each with 0.0625
degree weighted LSBs. The format is controlled by the
control registers. The temperature MSB result register
most significant bit (Bit 7) is the DATA_VALID bit, which
indicates whether the current register contents have been
accessed since the result was written to the register. This
bit will be set when new data is written to the register,
and cleared when accessed. The LTC2991 internal bias
circuitry maintains this voltage above this level during
normal operating conditions. Bit 4 through bit 0 of the
MSB register are the conversion result bits D[12:8], in
two’s compliment format. Note in Kelvin results, the
result will always be positive. The LSB register contains
temperature result bits D[7:0]. To convert the register
contents to temperature, use the following equation: T =
D[12:0]/16. See Table 16 for conversion value examples.
Remote diode voltage is digitized at ~50μA of bias current.
The ADC LSB value during these conversions is typically
38.15μV. Voltages are only available for the remote diodes,
not the internal sensor. This code repeats at a diode volt
age of approximately 0.3125V (see Tables 13 and 14).
The absolute temperature of the diode can be used to
detect whether the diode is operating (≤0.3125V or
≥ 0.3125V). This mode is useful for testing small relative
changes in temperature using the approximate relation
ship of –2.1mV/°C of voltage dependence on temperature.
With an LSB weight of 38.15μV and a diode temperature
relationship of –2.1mV/°C this yields ~0.018 degree resolu
tion. For sensor applications involving heaters, the ability
to sense small changes in temperature with low noise
can yield significant power savings, allowing the heater
power to be reduced. Table 16 has some conversion result
examples for various diode voltages.
From what I understood I need to add the 5 last bit of the MSB to the 8 bit of LSB to get the 13 result bits.
Should I therefore read the LSB and MSB register with readList or readU8 or readS8
and how to add them.
e.g. result_bits = Adafruit_I2C.readList(MSB_reg, 5) & Adafruit_I2C.readList(LSB_reg, 8)
and then just divide it through 16.
as seen in the datasheet:
equation: T = D[12:0]/16
br