How to read write EEPROM on 12C671?


Closed Thread
Results 1 to 7 of 7

Hybrid View

  1. #1

    Question How to read write EEPROM on 12C671?

    Hello, I am having errors while compiling my code for reading and writing on EEPROM with my 12C671.
    I tried using read, write, I2CREAD etc but there are errors always.
    Can someone please guide me as to what I could do?
    Thanks
    ___________________
    WHY things get boring when they work just fine?

  2. #2
    Join Date
    May 2004
    Location
    NW France
    Posts
    3,648


    Did you find this post helpful? Yes | No

    Post

    Hi,

    You can find on firsts pages of the manual, $ MCU Specific issues : " ... those chips have I2C interfaced EEPROMS so, you have to use I2CRead and I2CWrite ... "

    you'll find further infos either in the Pic Datasheet and in respective commands pages of PBP Manual.

    Alain

    PS: Will you show some code ???
    Last edited by Acetronics2; - 27th February 2010 at 13:07.
    ************************************************** ***********************
    Why insist on using 32 Bits when you're not even able to deal with the first 8 ones ??? ehhhhhh ...
    ************************************************** ***********************
    IF there is the word "Problem" in your question ...
    certainly the answer is " RTFM " or " RTFDataSheet " !!!
    *****************************************

  3. #3


    Did you find this post helpful? Yes | No

    Default

    I did tried to do as per the manual, but seems to be missing something:
    This is what I did:

    Code:
    DEFINE I2C_INTERNAL 1
    EEPROM 0,[0,0,0,0] 
    read 0,gpio.0
    read 1,gpio.1
    read 2,gpio.4
    read 4,gpio.5
    
    Also tried the above 4 statements using 12CREAD but :(
    Can you please add one example to read and one to write?
    I went through the manual but it does not have an example on how to write statements for INTERNAL EEPROM.
    ___________________
    WHY things get boring when they work just fine?

  4. #4
    Join Date
    May 2004
    Location
    NW France
    Posts
    3,648


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by financecatalyst View Post
    Can you please add one example to read and one to write?
    I went through the manual but it does not have an example on how to write statements for INTERNAL EEPROM.
    Straight from the SAMPLES folder of your compiler ...

    Code:
    ' I2CREAD and I2WRITE Commands
    '
    ' Write to the first 16 locations of internal I2C EEPROM
    ' Read first 16 locations back and send to serial out repeatedly
    ' Note: for PIC12CE67x MCU's
    
            Include "modedefs.bas"          ' Include serial modes
    
    Define  I2C_INTERNAL  1
    
    ADCON1 = 7				' Set ADC pins to digital operation
    
    SO      con     1                       ' Define serial output pin
    DPIN    var     GPIO.6                 	' Data line to internal EEPROM
    CPIN    var     GPIO.7                 	' Clock line to internal EEPROM
    B0      var     byte
    B1      var     byte
    B2      var     byte
    
            For B0 = 0 To 15                ' Loop 16 times
                    I2CWRITE DPIN,CPIN,$A0,B0,[B0]  ' Write each location's address to itself
                    Pause 10                ' Delay 10ms after each write
            Next B0
    
    mainloop: For B0 = 0 To 15 step 2       ' Loop 8 times
                    I2CREAD DPIN,CPIN,$A0,B0,[B1,B2]        ' Read 2 locations in a row
                    Serout SO,N2400,[#B1," ",#B2," "]       ' Print 2 locations
            Next B0
    
            Serout SO,N2400,[10]            ' Print linefeed
    
            Goto mainloop
    also available @ Melabs site in the support section ...

    Alain
    ************************************************** ***********************
    Why insist on using 32 Bits when you're not even able to deal with the first 8 ones ??? ehhhhhh ...
    ************************************************** ***********************
    IF there is the word "Problem" in your question ...
    certainly the answer is " RTFM " or " RTFDataSheet " !!!
    *****************************************

  5. #5


    Did you find this post helpful? Yes | No

    Default

    Perfect, thank you so much. Hopefully it should solve my problem.

    Will this read write operation be affected by DT-Interrupts in any way as they are also running in my code?

    Thanks again
    ___________________
    WHY things get boring when they work just fine?

  6. #6
    Join Date
    May 2004
    Location
    NW France
    Posts
    3,648


    Did you find this post helpful? Yes | No

    Default

    my point of view is to disable interrupts before writing to EEPROM and re-enable after.

    For DT Ints ... I do not remember exactly if there's a trick to do that automatically ... I think yes ( something like "DEFINE EEPROM_USED 1" ... may be ), but you'd much better verify on the relevant thread.

    Alain
    ************************************************** ***********************
    Why insist on using 32 Bits when you're not even able to deal with the first 8 ones ??? ehhhhhh ...
    ************************************************** ***********************
    IF there is the word "Problem" in your question ...
    certainly the answer is " RTFM " or " RTFDataSheet " !!!
    *****************************************

Similar Threads

  1. Can't read sequential addresses in external EEPROM
    By tjkelly in forum mel PIC BASIC Pro
    Replies: 2
    Last Post: - 18th February 2010, 14:46
  2. Cleaning up code
    By Tobias in forum mel PIC BASIC Pro
    Replies: 3
    Last Post: - 2nd December 2009, 07:14
  3. Problem with I2C EEPROM addressing
    By Atom058 in forum General
    Replies: 14
    Last Post: - 3rd November 2009, 03:17
  4. PIC16F684 + LCD to use the 256bytes of EEPROM - HELP
    By xnihilo in forum mel PIC BASIC Pro
    Replies: 3
    Last Post: - 7th March 2008, 14:19
  5. word variable to 25lc640
    By TONIGALEA in forum mel PIC BASIC Pro
    Replies: 5
    Last Post: - 6th July 2004, 19:59

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