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.

TMP468EVM: Reasons for I2C NACK of Data Written to Registers

Part Number: TMP468EVM
Other Parts Discussed in Thread: TMP468,

I am trying to write a word (16-bits) to the configuration register of the TMP468 using the TMP468 Evaluation Board and have replicated the I2C commands described by Figure 16 of the datasheet. However, despite the device acknowledging the device address and the register pointer, it will not acknowledge the MSB 8-bit data and the LSB 8-bit data being written to the device. 

In addition, I have tried reading from the TMP468 and have replicated Figure 17 of the datasheet with ACKs from the device and NACK from master. When trying to read from the lock register, manufacturing identification register, and device identification register, the device returns the values 0x1C30 for all three of those registers which does not seem like valid data from any of those registers. 

Do you have any suggestions or ideas as to what my problem might be? I am connecting to the TMP468EVM using a PIC microcontroller and have verified the data going across the I2C bus using a logic analyzer. 

  • Hi Erin,

    Thank you for posting to the Sensing forum.

    Are you able to provide logic analyzer captures for these transactions? This will help us to troubleshoot any potential communication issues.

    Best regards,
    Nicole

  • Hey Nicole,

    I can definitely share the logic analyzer captures but do not have a way to link these images as a URL in this forum. Is there any way that I can email you the images?

  • Hi Erin,

    You should be able to copy/paste an image into your response, let me know if that works.

    Best regards,
    Nicole

  • It does work! Stuck out tongue

    Here is the capture for a write to the TMP468 config register (0x30):

    Here is the capture of trying to read from the lock register (0xC4):

  • Hi Erin,

    Thank you for providing those captures.

    I tested the TMP468EVM with the same commands but am not able to recreate the issue you're seeing. Is this behavior being seen on more than one device?

    Best regards,
    Nicole

  • Hey Nicole,

    Yes, I tried this on two different TMP468EVM modules our team has purchased (most likely from Mouser). I have separated the USB side of the eval board along the perforation (although, I imagine even if it was connected that it shouldn't cause any issues). I imagine the odds that we have gotten two faulty evaluation boards would be very slim but cannot imagine what else could be causing the problem. 

  • Hi Erin,

    If the device registers are locked then the TMP468 will not acknowledge any data bytes being written. This is the behavior you're seeing in the first logic analyzer capture, and I confirmed this on my setup as well. The TMP468 device powers up in locked mode, so the registers must be unlocked before any new data writes.

    You mentioned reading 0x1C30 for the Lock Register and ID registers, and in the second waveform you're reading back 0x1C2D. Both of these values appear to be temperature readings, which suggests that the pointer is not being set correctly. I'm not sure what would be causing this, unless there is some sort of other violation or noise that is not being caught on the logic analyzer. It may be helpful to have oscilloscope captures of this read transaction to confirm proper waveforms.

  • Thanks Nicole. Good catch. I decided to find an oscilloscope to capture the waveforms, and the pull up resistors were not strong enough which explains the likelihood the pointer not being set properly, and the ACK not being recognized by the logic analyzer. 

  • That's great news! Let me know if you have any further questions.

    Best regards,
    Nicole