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.

LMK03328: Clock & timing forum

Part Number: LMK03328

Dear Technical Support Team,

I'm testing about writing SRAM through I2C.

I tried to do below flow.However R137.6 doesn't change "0" and it doesn't proceed. 

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.

【Questions】

1. I set a timeout after 1sec on my programing of CPU. Is it short for Step3?

2. Do you have other setting(register) to do correctly? 

Best Regards,

ttd

  • Hello ttd,

    Your procedure appears correct and I think that your one second time to allow clearing is plenty. I set the EVM up and went to the register map, selected R137, clicked on bit 6 (to turn it to edit mode). Then I moved the mouse over the read register button. Pushed "1" on the keyboard to program a "1" into R137.6, then immediately clicked the Read Register button. It came back clear. This resulted in a readback in much less than one second, and it returned clear.

    I'm not aware of any other special thing you need to do. I'm not sure the state of my LMK03328 GUI, but it the above procedure I did work before and after I selected the EVM Default configuration from the menubar.

    Are you doing this with an EVM or your own hardware?

    73,
    Timothy
  • Hi Timothy,

    Thank you for your reply.

    I understand that 1sec is enough time.
    I'm doing my hardware. Is it necessary to set soft pin mode for SRAM writinig?

    Best Regards,
    ttd
  • Hi Timothy,

    I could write a SRAM to change from primary clock to secondary clock.

    IPCLKSEL Register; R50 INSEL_PLL1[1:0] → 3 (0x3) Secondary Input Selected

    However input clock of my hardware configuration is PRIREF_P(single-end) .

    HW_SW_CTRL=0

    REFSEL = 0

    It's first time to write a SRAM after mounting chip on my board.

    Then I can't write SRAM, but changing from primary to secondary, I can write.

    After succeed once, I can write SRAM correctly  and no problem

    Maybe , your EVM is already written many time.

    Do you have a reason for this behavior?

    Best Regards,

    ttd

  • Can you please check if the AONAFTERLOCK bit, R12[2], is set to 1?  If not, please always set this bit to 1 to ensure the digital system clock is always enabled regardless of the PLL lock state.  Please try writing to SRAM with R12[2] = 1 going forward.

    Alan

  • Hi Alan,

    Thank you for your reply.

    I could write SRAM to change  AONAFTERLOCK   R12[2] from 0 to 1.

    However I don't know the reason why I could write when change secondary clock following setting.

    IPCLKSEL Register; R50 INSEL_PLL1[1:0] → 3 (0x3) Secondary Input Selected

    I attached my readback register settings.

    Both files has following settings.

    AONAFTERLOCK   R12[2] set 0(default).

    IPCLKSEL Register; R50 INSEL_PLL1[1:0] → 2 (0x2) Primary Input Selected

    @@@@ Read register 0h = 0x10 
    @@@@ Read register 1h = 0xB 
    @@@@ Read register 2h = 0x32 
    @@@@ Read register 3h = 0x1 
    @@@@ Read register 4h = 0x1 
    @@@@ Read register 5h = 0x0 
    @@@@ Read register 6h = 0x0 
    @@@@ Read register 7h = 0x0 
    @@@@ Read register 8h = 0x2 
    @@@@ Read register 9h = 0x0 
    @@@@ Read register Ah = 0xA8 
    @@@@ Read register Bh = 0x0 
    @@@@ Read register Ch = 0xD9 
    @@@@ Read register Dh = 0x0 
    @@@@ Read register Eh = 0x0 
    @@@@ Read register Fh = 0x0 
    @@@@ Read register 10h = 0x0 
    @@@@ Read register 11h = 0x0 
    @@@@ Read register 12h = 0x30 
    @@@@ Read register 13h = 0x0 
    @@@@ Read register 14h = 0x55 
    @@@@ Read register 15h = 0x55 
    @@@@ Read register 16h = 0xFF 
    @@@@ Read register 17h = 0x3 
    @@@@ Read register 18h = 0x0 
    @@@@ Read register 19h = 0xF5 
    @@@@ Read register 1Ah = 0x0 
    @@@@ Read register 1Bh = 0x20 
    @@@@ Read register 1Ch = 0x50 
    @@@@ Read register 1Dh = 0x2 
    @@@@ Read register 1Eh = 0x0 
    @@@@ Read register 1Fh = 0x20 
    @@@@ Read register 20h = 0x10 
    @@@@ Read register 21h = 0x6 
    @@@@ Read register 22h = 0x20 
    @@@@ Read register 23h = 0x10 
    @@@@ Read register 24h = 0x6 
    @@@@ Read register 25h = 0x50 
    @@@@ Read register 26h = 0x5 
    @@@@ Read register 27h = 0x50 
    @@@@ Read register 28h = 0x5 
    @@@@ Read register 29h = 0x8 
    @@@@ Read register 2Ah = 0x5 
    @@@@ Read register 2Bh = 0x8 
    @@@@ Read register 2Ch = 0x5 
    @@@@ Read register 2Dh = 0xA 
    @@@@ Read register 2Eh = 0x0 
    @@@@ Read register 2Fh = 0x0 
    @@@@ Read register 30h = 0xBF 
    @@@@ Read register 31h = 0xA 
    @@@@ Read register 32h = 0x8A 
    @@@@ Read register 33h = 0x3 
    @@@@ Read register 34h = 0x0 
    @@@@ Read register 35h = 0x0 
    @@@@ Read register 36h = 0x0 
    @@@@ Read register 37h = 0x0 
    @@@@ Read register 38h = 0xA 
    @@@@ Read register 39h = 0x8 
    @@@@ Read register 3Ah = 0x0 
    @@@@ Read register 3Bh = 0x30 
    @@@@ Read register 3Ch = 0x1 
    @@@@ Read register 3Dh = 0x86 
    @@@@ Read register 3Eh = 0x99 
    @@@@ Read register 3Fh = 0x1 
    @@@@ Read register 40h = 0x86 
    @@@@ Read register 41h = 0xA0 
    @@@@ Read register 42h = 0x3 
    @@@@ Read register 43h = 0x8 
    @@@@ Read register 44h = 0x0 
    @@@@ Read register 45h = 0x79 
    @@@@ Read register 46h = 0x0 
    @@@@ Read register 47h = 0x1E 
    @@@@ Read register 48h = 0x18 
    @@@@ Read register 49h = 0x0 
    @@@@ Read register 4Ah = 0x30 
    @@@@ Read register 4Bh = 0x0 
    @@@@ Read register 4Ch = 0x0 
    @@@@ Read register 4Dh = 0x0 
    @@@@ Read register 4Eh = 0x0 
    @@@@ Read register 4Fh = 0x0 
    @@@@ Read register 50h = 0x1 
    @@@@ Read register 51h = 0xC 
    @@@@ Read register 52h = 0x10 
    @@@@ Read register 53h = 0x0 
    @@@@ Read register 54h = 0x78 
    @@@@ Read register 55h = 0x0 
    @@@@ Read register 56h = 0x0 
    @@@@ Read register 57h = 0x0 
    @@@@ Read register 58h = 0x0 
    @@@@ Read register 59h = 0xDE 
    @@@@ Read register 5Ah = 0x1 
    @@@@ Read register 5Bh = 0x18 
    @@@@ Read register 5Ch = 0x1 
    @@@@ Read register 5Dh = 0x4B 
    @@@@ Read register 5Eh = 0x1 
    @@@@ Read register 5Fh = 0x86 
    @@@@ Read register 60h = 0x1 
    @@@@ Read register 61h = 0xBE 
    @@@@ Read register 62h = 0x1 
    @@@@ Read register 63h = 0xFE 
    @@@@ Read register 64h = 0x2 
    @@@@ Read register 65h = 0x47 
    @@@@ Read register 66h = 0x2 
    @@@@ Read register 67h = 0x9E 
    @@@@ Read register 68h = 0x0 
    @@@@ Read register 69h = 0x0 
    @@@@ Read register 6Ah = 0x5 
    @@@@ Read register 6Bh = 0x0 
    @@@@ Read register 6Ch = 0x8 
    @@@@ Read register 6Dh = 0xF 
    @@@@ Read register 6Eh = 0x1F 
    @@@@ Read register 6Fh = 0x0 
    @@@@ Read register 70h = 0x0 
    @@@@ Read register 71h = 0x0 
    @@@@ Read register 72h = 0x0 
    @@@@ Read register 73h = 0xD 
    @@@@ Read register 74h = 0x19 
    @@@@ Read register 75h = 0x80 
    @@@@ Read register 76h = 0x7 
    @@@@ Read register 77h = 0x1 
    @@@@ Read register 78h = 0x0 
    @@@@ Read register 79h = 0x0 
    @@@@ Read register 7Ah = 0x8 
    @@@@ Read register 7Bh = 0xF 
    @@@@ Read register 7Ch = 0x1F 
    @@@@ Read register 7Dh = 0x0 
    @@@@ Read register 7Eh = 0x0 
    @@@@ Read register 7Fh = 0x0 
    @@@@ Read register 80h = 0x0 
    @@@@ Read register 81h = 0xD 
    @@@@ Read register 82h = 0x19 
    @@@@ Read register 83h = 0x0 
    @@@@ Read register 84h = 0x7 
    @@@@ Read register 85h = 0x1 
    @@@@ Read register 86h = 0x0 
    @@@@ Read register 87h = 0xAF 
    @@@@ Read register 88h = 0x1 
    @@@@ Read register 89h = 0x10 
    @@@@ Read register 8Ah = 0xAF 
    @@@@ Read register 8Bh = 0x0 
    @@@@ Read register 8Ch = 0x0 
    @@@@ Read register 8Dh = 0x0 
    @@@@ Read register 8Eh = 0x0 
    @@@@ Read register 8Fh = 0x0 
    @@@@ Read register 90h = 0x0 
    @@@@ Read register 91h = 0x0 
    @@@@ Read register 92h = 0x0 
    @@@@ Read register 93h = 0x0 
    @@@@ Read register 94h = 0x0 
    @@@@ Read register 95h = 0x10 
    @@@@ Read register 96h = 0x18 
    @@@@ Read register 97h = 0xC0 
    @@@@ Read register 98h = 0x36 
    @@@@ Read register 99h = 0x2 
    @@@@ Read register 9Ah = 0x0 
    @@@@ Read register 9Bh = 0x0 
    @@@@ Read register 9Ch = 0x0 
    @@@@ Read register 9Dh = 0x0 
    @@@@ Read register 9Eh = 0x0 
    @@@@ Read register 9Fh = 0x20 
    @@@@ Read register A0h = 0xFF 
    @@@@ Read register A1h = 0x22 
    @@@@ Read register A2h = 0x1 
    @@@@ Read register A3h = 0x0 
    @@@@ Read register A4h = 0xC 
    @@@@ Read register A5h = 0x0 
    @@@@ Read register A6h = 0x0 
    @@@@ Read register A7h = 0x0 
    @@@@ Read register A8h = 0x0 
    @@@@ Read register A9h = 0x40 
    @@@@ Read register AAh = 0x0 
    @@@@ Read register ABh = 0x0 
    @@@@ Read register ACh = 0x24 
    @@@@ Read register ADh = 0x0 
    @@@@ Read register AEh = 0x7 
    @@@@ Read register AFh = 0x7 
    @@@@ Read register B0h = 0x0 
    @@@@ Read register B1h = 0x10 
    @@@@ Read register B2h = 0x80 
    @@@@ Read register B3h = 0x0 
    @@@@ Read register B4h = 0x0 
    @@@@ Read register B5h = 0x0 
    @@@@ Read register B6h = 0x0 
    @@@@ Read register B7h = 0x0 
    @@@@ Read register B8h = 0x0 
    @@@@ Read register B9h = 0x4 
    @@@@ Read register BAh = 0x0 
    @@@@ Read register BBh = 0x0 
    @@@@ Read register BCh = 0x40 
    @@@@ Read register BDh = 0x0 
    @@@@ Read register BEh = 0x0 
    @@@@ Read register BFh = 0x0 
    @@@@ Read register C0h = 0x0 
    @@@@ Read register C1h = 0x0 
    @@@@ Read register C2h = 0x0 
    @@@@ Read register C3h = 0x0 
    @@@@ Read register C4h = 0x0 
    @@@@ Read register C5h = 0x0 
    @@@@ Read register C6h = 0xA0 
    @@@@ Read register C7h = 0x0 
    @@@@ Read register C8h = 0xDE 

    @@@@ Read register 0h = 0x10 
    @@@@ Read register 1h = 0xB 
    @@@@ Read register 2h = 0x32 
    @@@@ Read register 3h = 0x1 
    @@@@ Read register 4h = 0x1 
    @@@@ Read register 5h = 0x0 
    @@@@ Read register 6h = 0x0 
    @@@@ Read register 7h = 0x0 
    @@@@ Read register 8h = 0x2 
    @@@@ Read register 9h = 0x0 
    @@@@ Read register Ah = 0xA8 
    @@@@ Read register Bh = 0x0 
    @@@@ Read register Ch = 0xD9 
    @@@@ Read register Dh = 0x0 
    @@@@ Read register Eh = 0x0 
    @@@@ Read register Fh = 0x0 
    @@@@ Read register 10h = 0x0 
    @@@@ Read register 11h = 0x0 
    @@@@ Read register 12h = 0x30 
    @@@@ Read register 13h = 0x0 
    @@@@ Read register 14h = 0x55 
    @@@@ Read register 15h = 0x55 
    @@@@ Read register 16h = 0xFF 
    @@@@ Read register 17h = 0x3 
    @@@@ Read register 18h = 0x0 
    @@@@ Read register 19h = 0xF5 
    @@@@ Read register 1Ah = 0x0 
    @@@@ Read register 1Bh = 0x20 
    @@@@ Read register 1Ch = 0x50 
    @@@@ Read register 1Dh = 0x2 
    @@@@ Read register 1Eh = 0x0 
    @@@@ Read register 1Fh = 0x20 
    @@@@ Read register 20h = 0x10 
    @@@@ Read register 21h = 0x6 
    @@@@ Read register 22h = 0x20 
    @@@@ Read register 23h = 0x10 
    @@@@ Read register 24h = 0x6 
    @@@@ Read register 25h = 0x50 
    @@@@ Read register 26h = 0x5 
    @@@@ Read register 27h = 0x50 
    @@@@ Read register 28h = 0x5 
    @@@@ Read register 29h = 0x8 
    @@@@ Read register 2Ah = 0x5 
    @@@@ Read register 2Bh = 0x8 
    @@@@ Read register 2Ch = 0x5 
    @@@@ Read register 2Dh = 0xA 
    @@@@ Read register 2Eh = 0x0 
    @@@@ Read register 2Fh = 0x0 
    @@@@ Read register 30h = 0xBF 
    @@@@ Read register 31h = 0xA 
    @@@@ Read register 32h = 0x8A 
    @@@@ Read register 33h = 0x3 
    @@@@ Read register 34h = 0x0 
    @@@@ Read register 35h = 0x0 
    @@@@ Read register 36h = 0x0 
    @@@@ Read register 37h = 0x0 
    @@@@ Read register 38h = 0xA 
    @@@@ Read register 39h = 0x8 
    @@@@ Read register 3Ah = 0x0 
    @@@@ Read register 3Bh = 0x30 
    @@@@ Read register 3Ch = 0x1 
    @@@@ Read register 3Dh = 0x86 
    @@@@ Read register 3Eh = 0x99 
    @@@@ Read register 3Fh = 0x1 
    @@@@ Read register 40h = 0x86 
    @@@@ Read register 41h = 0xA0 
    @@@@ Read register 42h = 0x3 
    @@@@ Read register 43h = 0x8 
    @@@@ Read register 44h = 0x0 
    @@@@ Read register 45h = 0x79 
    @@@@ Read register 46h = 0x0 
    @@@@ Read register 47h = 0x1E 
    @@@@ Read register 48h = 0x18 
    @@@@ Read register 49h = 0x0 
    @@@@ Read register 4Ah = 0x30 
    @@@@ Read register 4Bh = 0x0 
    @@@@ Read register 4Ch = 0x0 
    @@@@ Read register 4Dh = 0x0 
    @@@@ Read register 4Eh = 0x0 
    @@@@ Read register 4Fh = 0x0 
    @@@@ Read register 50h = 0x1 
    @@@@ Read register 51h = 0xC 
    @@@@ Read register 52h = 0x10 
    @@@@ Read register 53h = 0x0 
    @@@@ Read register 54h = 0x78 
    @@@@ Read register 55h = 0x0 
    @@@@ Read register 56h = 0x0 
    @@@@ Read register 57h = 0x0 
    @@@@ Read register 58h = 0x0 
    @@@@ Read register 59h = 0xDE 
    @@@@ Read register 5Ah = 0x1 
    @@@@ Read register 5Bh = 0x18 
    @@@@ Read register 5Ch = 0x1 
    @@@@ Read register 5Dh = 0x4B 
    @@@@ Read register 5Eh = 0x1 
    @@@@ Read register 5Fh = 0x86 
    @@@@ Read register 60h = 0x1 
    @@@@ Read register 61h = 0xBE 
    @@@@ Read register 62h = 0x1 
    @@@@ Read register 63h = 0xFE 
    @@@@ Read register 64h = 0x2 
    @@@@ Read register 65h = 0x47 
    @@@@ Read register 66h = 0x2 
    @@@@ Read register 67h = 0x9E 
    @@@@ Read register 68h = 0x0 
    @@@@ Read register 69h = 0x0 
    @@@@ Read register 6Ah = 0x5 
    @@@@ Read register 6Bh = 0x0 
    @@@@ Read register 6Ch = 0x8 
    @@@@ Read register 6Dh = 0xF 
    @@@@ Read register 6Eh = 0x1F 
    @@@@ Read register 6Fh = 0x0 
    @@@@ Read register 70h = 0x0 
    @@@@ Read register 71h = 0x0 
    @@@@ Read register 72h = 0x0 
    @@@@ Read register 73h = 0xD 
    @@@@ Read register 74h = 0x19 
    @@@@ Read register 75h = 0x80 
    @@@@ Read register 76h = 0x7 
    @@@@ Read register 77h = 0x1 
    @@@@ Read register 78h = 0x0 
    @@@@ Read register 79h = 0x0 
    @@@@ Read register 7Ah = 0x8 
    @@@@ Read register 7Bh = 0xF 
    @@@@ Read register 7Ch = 0x1F 
    @@@@ Read register 7Dh = 0x0 
    @@@@ Read register 7Eh = 0x0 
    @@@@ Read register 7Fh = 0x0 
    @@@@ Read register 80h = 0x0 
    @@@@ Read register 81h = 0xD 
    @@@@ Read register 82h = 0x19 
    @@@@ Read register 83h = 0x0 
    @@@@ Read register 84h = 0x7 
    @@@@ Read register 85h = 0x1 
    @@@@ Read register 86h = 0x0 
    @@@@ Read register 87h = 0xDE 
    @@@@ Read register 88h = 0x3 
    @@@@ Read register 89h = 0x10 
    @@@@ Read register 8Ah = 0xDE 
    @@@@ Read register 8Bh = 0x0 
    @@@@ Read register 8Ch = 0x0 
    @@@@ Read register 8Dh = 0x0 
    @@@@ Read register 8Eh = 0xFF 
    @@@@ Read register 8Fh = 0x0 
    @@@@ Read register 90h = 0x0 
    @@@@ Read register 91h = 0x0 
    @@@@ Read register 92h = 0x0 
    @@@@ Read register 93h = 0x0 
    @@@@ Read register 94h = 0x0 
    @@@@ Read register 95h = 0x0 
    @@@@ Read register 96h = 0x28 
    @@@@ Read register 97h = 0xA4 
    @@@@ Read register 98h = 0x36 
    @@@@ Read register 99h = 0x1 
    @@@@ Read register 9Ah = 0x0 
    @@@@ Read register 9Bh = 0x0 
    @@@@ Read register 9Ch = 0x0 
    @@@@ Read register 9Dh = 0x0 
    @@@@ Read register 9Eh = 0x0 
    @@@@ Read register 9Fh = 0x28 
    @@@@ Read register A0h = 0xC8 
    @@@@ Read register A1h = 0x36 
    @@@@ Read register A2h = 0x1 
    @@@@ Read register A3h = 0x0 
    @@@@ Read register A4h = 0xC 
    @@@@ Read register A5h = 0x0 
    @@@@ Read register A6h = 0x0 
    @@@@ Read register A7h = 0x0 
    @@@@ Read register A8h = 0x0 
    @@@@ Read register A9h = 0x40 
    @@@@ Read register AAh = 0x0 
    @@@@ Read register ABh = 0x0 
    @@@@ Read register ACh = 0x24 
    @@@@ Read register ADh = 0x0 
    @@@@ Read register AEh = 0x7 
    @@@@ Read register AFh = 0x7 
    @@@@ Read register B0h = 0x0 
    @@@@ Read register B1h = 0x10 
    @@@@ Read register B2h = 0x80 
    @@@@ Read register B3h = 0x0 
    @@@@ Read register B4h = 0x0 
    @@@@ Read register B5h = 0x0 
    @@@@ Read register B6h = 0x0 
    @@@@ Read register B7h = 0x0 
    @@@@ Read register B8h = 0x0 
    @@@@ Read register B9h = 0x4 
    @@@@ Read register BAh = 0x0 
    @@@@ Read register BBh = 0x0 
    @@@@ Read register BCh = 0x40 
    @@@@ Read register BDh = 0x0 
    @@@@ Read register BEh = 0x0 
    @@@@ Read register BFh = 0x0 
    @@@@ Read register C0h = 0x0 
    @@@@ Read register C1h = 0x0 
    @@@@ Read register C2h = 0x0 
    @@@@ Read register C3h = 0x0 
    @@@@ Read register C4h = 0x0 
    @@@@ Read register C5h = 0x0 
    @@@@ Read register C6h = 0xA0 
    @@@@ Read register C7h = 0x0 
    @@@@ Read register C8h = 0xDE 
    

    Best Regards,

    ttd

  • Comparing the differences in the reserved debug registers for the two dump files, I could see the PLL was NOT locked in the "SRAM_write_NG.txt" case. For this case, it is possible the digital system clock (derived from the PLL VCO domain when AONAFTERLOCK=0) was not functioning properly, which then could have caused the unsuccessful SRAM write. After you selected the SECREF input, it is possible the PLL achieved lock, so the digital system clock could become functional again and then allow successful SRAM write.

    Now that you are setting AONAFTERLOCK=1, the digital system clock will be derived from the internal "Always-ON clock" (not from the PLL VCO) and this will always operate regardless of PLL lock state, ensuring SRAM write will not be blocked due to the system clock.

    Alan