Need help for reading I2C Sensor


Closed Thread
Results 1 to 14 of 14

Hybrid View

  1. #1
    Join Date
    Mar 2008
    Location
    Switzerland
    Posts
    7

    Default Thank for your Input

    I will tray out the new code on Monday. Can you tell me for what is the [ ] ?
    The Pull Up resistors are on the board.

    Thanks
    Last edited by Omalik; - 1st June 2008 at 18:17.

  2. #2
    skimask's Avatar
    skimask Guest

    Default

    Quote Originally Posted by Omalik View Post
    I will tray out the new code on Monday. Can you tell me for what is the [ ] ?
    It's in the manual...

  3. #3
    Join Date
    Jan 2006
    Location
    Toronto
    Posts
    109

    Default

    Here is an example of how I use I2C with an EEPROM and the I/O Expander, I hope it helps.



    DEFINE I2C_HOLD 1

    Address VAR WORD
    SCL VAR PORTC.3 ' I2C Clock pin
    SDA VAR PORTC.4 ' I2C Data pin

    Address = 0



    '------------------------------------------------------------------------------------------------
    ' Read Password from EEPROM
    '------------------------------------------------------------------------------------------------
    ReadPassword:
    Address = 0
    I2CREAD SDA,SCL,$A0,Address,[Password[1],Password[2],Password[3],Password[4]]
    Return
    '------------------------------------------------------------------------------------------------



    '------------------------------------------------------------------------------------------------
    ' Save Password to EEPROM
    '------------------------------------------------------------------------------------------------
    SavePassword:
    Address = 0
    I2CWRITE SDA,SCL,$A0,Address,[Password[1],Password[2],Password[3],Password[4]]
    Return
    '------------------------------------------------------------------------------------------------



    '------------------------------------------------------------------------------------------------
    ' Subroutine to handle I2C errors
    '------------------------------------------------------------------------------------------------
    I2CError:
    LCDOut $fe,1
    LCDOut $fe,2, "I2C Bus Timed Out" ' I2C command timed out
    Pause 1000

    GoTo loop
    '------------------------------------------------------------------------------------------------



    '------------------------------------------------------------------------------------------------
    ' Setup I2C I/O Expander
    '------------------------------------------------------------------------------------------------
    SetupIOExpander:
    '*** Setup I/O Expander PortA as Output, PortB as Input ***
    I2CWrite SDA,SCL,$40,[6,0,31], I2CError
    Pause 150

    '*** Set the Interrupt Capture Rate to Fast ***
    'I2CWrite SDA,SCL,$40,[11,1], I2CError
    'Pause 150

    '*** Set I/O Expander PortA Outputs to LOW ***
    I2CWrite SDA,SCL,$40,[0,0], I2CError
    Pause 150

    RESUME
    '------------------------------------------------------------------------------------------------


  4. #4
    Join Date
    Mar 2008
    Location
    Switzerland
    Posts
    7

    Default

    I tray out

    I2CRead I2C_data,I2C_clock,$F1,0,[druck,druck2]

    but it does not work at all. I find a lot of examples for Eeprom but not one for the sensor I use.

    does some have any idea ?

    Thanks

  5. #5
    Join Date
    Jan 2006
    Location
    Toronto
    Posts
    109

    Default

    Quote Originally Posted by Omalik View Post
    I tray out

    I2CRead I2C_data,I2C_clock,$F1,0,[druck,druck2]

    but it does not work at all. I find a lot of examples for Eeprom but not one for the sensor I use.

    does some have any idea ?

    Thanks
    From what I can see in the data sheet you should be using this:

    I2CRead I2C_data,I2C_clock,$F1,[druck,druck2]

    I don't know what the 0 you had there was for but the R/W bit is set by the I2CRead/I2CWrite command, you don't need to set it.

    also check what you have druck and druck2 declared as, byte or word.

  6. #6
    skimask's Avatar
    skimask Guest

    Default

    Quote Originally Posted by PJALM View Post
    From what I can see in the data sheet you should be using this:
    I2CRead I2C_data,I2C_clock,$F1,[druck,druck2]
    I don't know what the 0 you had there was for but the R/W bit is set by the I2CRead/I2CWrite command, you don't need to set it.
    Probably should be using $F0 instead of $F1 also.

  7. #7
    Join Date
    Mar 2008
    Location
    Switzerland
    Posts
    7

    Default

    i did a picture on the KO.
    blue is clock and red are data.

    and i can not read the sensor.
    Attached Images Attached Images   
    Last edited by Omalik; - 8th June 2008 at 18:46.

  8. #8
    Join Date
    Mar 2008
    Location
    Switzerland
    Posts
    7

    Default

    Quote Originally Posted by skimask View Post
    Probably should be using $F0 instead of $F1 also.

    see datasheet
    Attached Images Attached Images  

Similar Threads

  1. Need a cheap touch sensor idea.. here it is
    By mister_e in forum Code Examples
    Replies: 20
    Last Post: - 16th April 2016, 23:42
  2. I2C Master/Slave 16F88/16F767 working code
    By DanPBP in forum Code Examples
    Replies: 2
    Last Post: - 23rd October 2012, 23:31
  3. HARDWARE I2C SAMPLE CODE question
    By Michael Wakileh in forum Code Examples
    Replies: 2
    Last Post: - 16th June 2009, 22:07
  4. I2C Master Slave issues.
    By cpayne in forum mel PIC BASIC Pro
    Replies: 9
    Last Post: - 29th March 2008, 20:33
  5. Using a TC74A0 with PBP(Thermal sensor via I2C)
    By navaismo in forum mel PIC BASIC Pro
    Replies: 0
    Last Post: - 1st November 2006, 19:25

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