Reading from ADT7410?

Why reading back from any Register requires a write Byte operation?

I want to read from Temperature value MSByte(0x00) & LSByte(0x01) Register & both pin A0 & A1 are connected to GND.

Are my setting below correct?

  • Serial Bus Adress Byte (write) = 0x90
  • Address Pointer Register Byte= 0x00
  • Serial Bus Adress Byte (read) = 0x91
  • ADT7310 clocks out Temperature Reading MSB
  • ADT7310 clock out Temperature Reading LSB
  • 0
    •  Analog Employees 
    on Feb 3, 2012 7:58 PM

    Hi tokbat,

    The I2C specification doesn't allow the master to transfer any data after the slave has acknowledged the address and the read command. After this bit, the master is expecting data from the slave.

    To read the temperature register from the ADT7410, you need to tell the device which register you want to read and this is done by the initial write command that includes the temperature register address. After this, the master can initiate the actual read command and expect to have the temperature data from the ADT7410 after the device has acknowledged the address and the read operation.

    If the master acknowledges the MSB temperature data, the slave will increment the register address and will provide the LSB temperature data without the need of a separate read transaction. If the master doesn't acknowledge the MSB temperature data, the slave will not increment the register address and the next byte will be the MSB data.

    In order to read continuously the temperature data, the master should acknowledge the MSB data and not acknowledge the LSB data which will force the ADT7410 to cycle through the MSB and LSB temperature data providing successive full 16 bit temperature data.

    Regards,

    FEB

  • Hi FEB,

    Just to make sure..Is my setting above for reading data from Temperature Value Register correct? Or is there anything i should change or modify?

    Thnx

  • 0
    •  Analog Employees 
    on Feb 6, 2012 3:35 PM

    Hi tokbat,

    The above settings are correct. As I mentioned in my previous post, you need to be careful on how the master will handle the data by acknowledging or nor acknowledging the sensor temperature bytes.

    Regards,

    FEB