I2C Communication, PIC 16F616 to Honeywell humiditysensor HIH6131


Closed Thread
Results 1 to 12 of 12

Hybrid View

  1. #1


    Did you find this post helpful? Yes | No

    Default Re: I2C Communication, PIC 16F616 to Honeywell humiditysensor HIH6131

    Yup, I got my samples to work fine also. In fact, I found an error in my original design that uses the HIH5031 because the values read back from the HIH6131 was so much lower than I read back from the analog part.
    Tim Barr

  2. #2
    Join Date
    Feb 2012
    Posts
    6


    Did you find this post helpful? Yes | No

    Default Re: I2C Communication, PIC 16F616 to Honeywell humiditysensor HIH6131

    Hi Tim,

    I noted in my last post that the new samples were working fine. That is, I was able to enter command mode with no problems.

    Another situation popped up: When attempting to set an Atarm_low_on limit, It appears to write to the sensor normally. When I attempted to read back what I had written, I received a different value.

    Do you have the application note, Entering and Using Command Mode on .....? If so on page 5, configuration steps. Step 8 it shows a read (read bit set) and a $5A (write) to the EEPROM location. Do you think this is proper? When I do this, I see on the 'scopeThat the address is changed ( by the processor,I think) from $4F to $4E. Do you think this should be an I2CWRITE? or a I2CREAD as it appears is suggested?

    Just when I thought all was well. Nothing is easy. Let me know if you have the app note. If not I will scan and send the page to which I referred .

    Thanks for your help.


    Joe Rapoza

  3. #3


    Did you find this post helpful? Yes | No

    Default Re: I2C Communication, PIC 16F616 to Honeywell humiditysensor HIH6131

    FYI my copy of the doc shows step 8 with the R/W bit set to Write (0).

    It looks like they don't follow a standard EEPROM process for reading and writing.
    Writing is pretty straightforward. Write the slave address, then the register address, and then the data to be written using one start/stop.
    Now, a typical I2C EEPROM read function writes the starting address, then uses a restart to change the R/W bit, and then reads data. But the Honeywell part, in command mode, looks like it requires a command to be sent to set the address to be read as one I2C transaction, and then a basic read transaction without an address byte to read the register content.
    So you would need to do a I2CWRITE to set the register address, and then a I2CREAD with a blank address byte to read the data. It looks like the data read back is the command/status/response byte and 16 bits of register data.
    Tim Barr

Members who have read this thread : 0

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts