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.

CCS/TMP75: Getting NAK from Valid configuration values

Part Number: TMP75
Other Parts Discussed in Thread: MSP430FR2433, ENERGIA

Tool/software: Code Composer Studio

Hello,

I am trying to get the TMP75 to go into Shutdown mode, but for some reason I am get NAK response. 

I write the 0x01 to the devies address which gets an ACK, followed by a variety of values which return NAK. So far any value that isn't 0x01 or 0x02 returns NAK.

I can read data from the TMP75 just fine.

Any suggestions would be greatly appreciated- I am experiencing the same behaviour on multiple chips when using an MSP430FR2433 with Energia on Code Composer Studio

Thanks

  • Hello Jame,

    Can you please take a bus transaction snapshot so that we can check what is happening?
  • Hey Amit,

    See attached xls of output from salae when attempting to write 0-255 to register 01.

    Really hoping I have just blanked somewhere and am doing something completely silly. 


    The value I actually want to write looks like this:

    Contains Contents Description Target Value Target =
    OS/ALERT Enable One-Shot Measurement mode 1 Enable One-Shot
    R1 Converter Resolution One 0 10 bit resolution (0.25)
    R0 Converter Resolution Zero 1 10 bit resolution (0.25)
    F1 Fault Queue One 1 6 Consecutive Faults
    F0 Fault Queue Zero 1 6 Consecutive Faults
    POL Polarity 0 Polarity (Default low)
    TM Thermostat Mode 0 Comparator Mode
    SD Shutdown Mode 1 Shutdown Enable

    outputsalae.xls

  • Can I also get some clarity on the necessity to have the alert pin pulled high externally / connected at all.
    We do not need it in our application so it would be better than we can just leave it NC.

    I have experimented with pulling this high but this has made no difference in my success so just want to confirm as such . Thanks :)
  • Here is a screenshot of a failed transaction in Logic. 

  • Hello Jame,

    When writing to the TMP75 the first byte is the pointer byte which is correct and you get an ACK. However the master puts a STOP condition. This causes the next transaction to be treated as a new transaction. When the new transaction is initiated, the byte is being interpreted as a Pointer byte with an illegal value and hence the NAK.

    To correct this behavior you would need to follow the pointer register with the write value to the register without a Stop condition. In other words

    START-0x48-0x01-STOP START-0x48-0x7C-STOP should instead be

    START-0x48-0x01-0x7C-STOP
  • I just realized what I was doing wrong.... completely my fault for restarting the tranmission. And that's why 0-3 was returning ACK.

    Thanks anyway!