I2CWRITE problem


Results 1 to 36 of 36

Threaded View

  1. #6
    Join Date
    Dec 2007
    Location
    Finland
    Posts
    191


    Did you find this post helpful? Yes | No

    Post

    Hi Art & All,

    Thanks to Art, I noticed similar I2CWRITE problem with different PIC and EEPROM (I use 18F4520 and 24C64).
    So far I haven't use external EEPROM for storing anything, just used I2CREAD and that has worked very well.

    Below is my test code for WRITE/READ for EEPROM. Test will be passed if X=0 (LED blinking slowly), if X > 0 then it fails immediately (LED blinking fast).

    Code:
    <code><font color="#000000">OSCCON = $70                <font color="#000080"><i>'Int CLK 8MHz
    </i></font>OSCTUNE.6 = 1               <font color="#000080"><i>'PLL 4x
    </i></font>ADCON1= %00001111           <font color="#000080"><i>'$0F = disable A/D converter
    </i></font>TRISD.0 = 0
    TRISD.1 = 1
    TRISD.3 = 0
    TRISE.4 = 0
    
    <b>DEFINE </b>OSC 32
    
    X       <b>VAR BYTE
    </b>Y       <b>VAR BYTE
    </b>SCL     <b>VAR </b>PortD.0 
    SDA     <b>VAR </b>PortD.1   
    LED     <b>VAR </b>PortD.3
    
    I2CDeviceEEprom     <b>VAR BYTE   
    </b>I2CAddressEEprom    <b>VAR WORD 
    </b>I2CDeviceEEprom=$A0
    
    X=0    <font color="#000080"><i>'OK if EEPROM content is 00h and X = 0, if X &gt; 0 then fails
    
    </i></font><b>FOR </b>I2CAddressEEprom = 0 <b>TO </b>8191
        <b>I2CWRITE </b>SDA, SCL, I2CDeviceEEprom, I2CAddressEEprom,[ X ], Error			
        <b>PAUSE </b>10
        <b>I2CREAD </b>SDA, SCL, I2CDeviceEEprom, I2CAddressEEprom,[ Y ], Error
        <b>IF </b>Y &lt;&gt; X <b>THEN GOTO </b>Error
    <b>NEXT </b>I2CAddressEEprom
    
    Blink:
    <b>HIGH </b>LED
    <b>PAUSE </b>1000
    <b>LOW </b>LED
    <b>PAUSE </b>1000
    <b>GOTO </b>Blink
    
    Error:
    <b>HIGH </b>LED
    <b>PAUSE </b>200
    <b>LOW </b>LED
    <b>PAUSE </b>200
    <b>GOTO </b>error
    
    <b>END</b>	
    </code>
    No help from DEFINE I2C_SLOW or any other that I have tried so far (increasing PAUSE time between write and read, etc...).
    Hardware is OK, because I have used it for other purpose and then PIC read only from EEPROM (same PIC and EEPROM). Pull-ups are 4.7k and very solid 5V (no dips). Data lines are quite short (~25mm). EEPROM is only device in I2C-bus. WP pin is grounded....
    Sounds very similar problems as Art has.

    BR,
    -Gusse-
    Last edited by Gusse; - 25th January 2010 at 16:37.

Similar Threads

  1. My I2CWRITE - timings and tricks
    By FinchPJ in forum Code Examples
    Replies: 5
    Last Post: - 3rd March 2008, 21:40
  2. Problem with I2Cread and I2CWRITE function
    By Tony85 in forum mel PIC BASIC Pro
    Replies: 7
    Last Post: - 6th June 2006, 20:03
  3. Problem with I2Cread and I2CWRITE function
    By Tony85 in forum mel PIC BASIC Pro
    Replies: 0
    Last Post: - 6th June 2006, 18:32
  4. Another I2CWRITE problem
    By ErnieM in forum mel PIC BASIC Pro
    Replies: 6
    Last Post: - 20th May 2006, 21:57
  5. I2CRead / I2CWrite Problem?
    By koossa in forum mel PIC BASIC Pro
    Replies: 2
    Last Post: - 31st October 2005, 18:26

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