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.

LMK03318: lmk03318 eeprom configure power off loss

Part Number: LMK03318
Other Parts Discussed in Thread: CODELOADER,

HI:

I refer the document to Write SRAM and then Write EEPROM via i2c,but reboot line-card EEPROM configure loss,Do you have any idea?

Best Regards

write SRAM:

1. Program the device registers to match a desired setting.
2. Write R145[3:0] with a valid SRAM page (0 to 5) to commit the current register data.
3. Write a 1 to R137.6. This ensures that the device registers are copied to the desired SRAM page.
4. If another device setting is desired to be written to a different SRAM page, repeat steps 1-3 and select an
unused SRAM page

write EEPROM:

1. Make sure the Write SRAM procedure (Write SRAM) was done to commit the register settings to the SRAM
page(s) with start-up configurations intended for programming to the EEPROM array.
2. Write 0xEA to R144. This provides basic protection from inadvertent programming of EEPROM.
3. Write a 1 to R137.0. This programs the entire SRAM contents to EEPROM. Once completed, the contents in
R136 will increment by 1. R136 contains the total number of EEPROM programming cycles that are
successfully completed.
4. Write 0x00 to R144 to protect against inadvertent programming of EEPROM.
5. If an EEPROM write is unsuccessful, a readback of R137.5 results in a 1. In this case, the device will not
function correctly and will be locked up. To unlock the device for correct operation, a new EEPROM write
sequence should be initiated and successfully completed.

shaocong

  • Hi shaocong,

    That is the correct process for programming EEPROM. It seems that you are using a board of your own design, and not the LMK03318EVM. Are you using the CodeLoader / TICS Pro to program the device, or another method?

    First, I want to confirm that you are properly programming EEPROM. I recommend the following steps to debug:
    -Check GPIO1 and confirm that you are communicating with the correct I2C address
    -Check GPIO[3:2] settings to make sure that you are powering up from the desired EEPROM page
    -Readback register R137.5 after EEPROM programming to see if the EEPROM write was unsuccessful
    -Readback the EEPROM before and after programming (See Datasheet section 10.5.7)
    -Readback the EEPROM after the power cycle

    Kind regards,
    Lane
  • HI,lane

    This is our design, we use codeloader create HEX file. The I2C address is correct , we can write/read the device , define EEPROM PAGE5.Please help confirm whether the following operation is correct。

    write SRAM sequence:

    1、Program the device registers use HEX file

    2、0x91 register write 0x05 —— R145[3:0] write page5

    3、0x89 register write 0x40 —— Write a 1 to R137.6

    write EEPROM sequence:

    1、0x90 register write 0xEA —— Write 0xEA to R144

    2、0x89 register write 0x11 —— Write a 1 to R137.0

    3、0x90 register write 0x00 —— Write 0x00 to R144


    After programming, the Readback data are as follows:

    1、Readback 0x88(R136) register is   0x01

    2、Readback 0x89(R137) register is   0x11

    3、Readback EEPROM(Datasheet section 10.5.7):R139&R140 register how to write,How to confirm the page number?

     

    CodeLoader

  • HI,lane

    This is our design, we use codeloader create HEX file. The I2C address is correct , we can write/read the device , define EEPROM PAGE5.Please help confirm whether the following operation is correct。

    write SRAM sequence:

    1、Program the device registers use HEX file

    2、0x91 register write 0x05 —— R145[3:0] write page5

    3、0x89 register write 0x40 —— Write a 1 to R137.6

    write EEPROM sequence:

    1、0x90 register write 0xEA —— Write 0xEA to R144

    2、0x89 register write 0x11 —— Write a 1 to R137.0

    3、0x90 register write 0x00 —— Write 0x00 to R144


    After programming, the Readback data are as follows:

    1、Readback 0x88(R136) register is 0x01

    2、Readback 0x89(R137) register is 0x11

    3、Readback EEPROM(Datasheet section 10.5.7):R139&R140 register how to write,How to confirm the page number?

    Kind regards,
    shaocong
  • Hi shaocong,

    This programming procedure looks OK.

    Your register readback after EEPROM programming has R137.0 = 1, which could mean that The EEPROM data transfer was not finished prior to locking EEPROM. After writing 0xEA to R144 then 0x11 to R89 (unlock EEPROM then program EEPROM), wait at least 230ms for the EEPROM programming cycle to complete before writing 0x00 to R144 (lock EEPROM).

    Attached is a spreadsheet that you can use to generate a register programming sequence for LMK03318. Be aware that the spreadsheet does not use the REGCOMMIT method, but direct writes to the RAMDAT register (procedure #2 in datasheet section 10.5.4).

    Kind regards,
    Lane

    7674.LMK033x8_EEPROM_programming_v1.xlsx