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.

LMK05318: Writing EEPROM by I2C

Part Number: LMK05318
Other Parts Discussed in Thread: USB2ANY

Dear Team,

How does LMK05318 read and write the internal EEPROM register from I2C?
The problem currently encountered is that the value can be read, but it cannot be written.

Verify EEPROM image revision (address byte #11, 0xb) read/write test steps are as follows
1. First read 0xb=0 with USB2ANY tool
2. The system reads I2C 0x66 0xb=0
3. Write 1 to 0xb with USB2ANY tool
4. USB2ANY reads 0xb=1
5. System reads I2C 0x66 0xb=1 ==>read ok
6. System write I2C 0x66 0xb=0
7. The system reads I2C 0x66 0xb=1 ==>write fail

Is there any special format for write? I want to confirm whether it is a cmd problem or a protocol problem.

BR

Kevin

  • Hello,

    This ticket has been assigned. We will get back to you soon.

    Regards
    Hao

  • Hello Kevin,

    Section 9.5.6, EEPROM Programming Flow of datasheet on page 60 highlights the two methods to write to the EEPROM.

    Method #1 is through register commit.
    Method #2 is through direct write.

    Register 11 corresponds with EEPROM address 11.  When writing the EEREV in address 11 of EEPROM, however you can not update R11 by writing to the register.  You must write to the SRAM, then commit to EEPROM, then on next restart, R11 will have updated value.

    When using method #1, after doing REGCOMMIT but before doing NVMUNLK/NVM_ERASE_PROG, you can use MEMADR (R159:R160) to set address 11, then write your updated value to RAMDAT (R162).

    When using method #2, when writing address 11 using MEMADR/RAMDAT before EEPROM programming, be sure to program your desired value.

    Please note all the other fields in Table 9 which you show must be programmed in this fashion.

    73,
    Timothy