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.

LMK04821: Writing/Reading into registers 0x106, 0x144

Part Number: LMK04821
Other Parts Discussed in Thread: USB2ANY

Tool/software:

Hi,

on the LMK04821 chip, when writing 0xff into the register 0x106, 0x10e, 0x11e, 0x12e and 0x136 to

power down clock delay, I always read back 0x00.

Writing a different value e. g. 0x07 or 0x7f however works.

It seems as soon as I write the highest bit (DCLKoutX_DDLY_PD), the register is not written properly.

Equally when writing a value of 0xff into register 0x144 (SYNC_DISSIREF, SYNC_DISX) I read back 0x00.

Other values like 0x03, 0x7f work.

Again, it seems as soon as I write the highest bit (SYNC_DISSYREF), the register is not written properly.

Is that a bug or am I doing something wrong?

Regards,

Ralf

  • Hi Ralf,

    How are you interfacing with the device? Are you using TICS Pro?

    Thanks,

    Michael

  • Hi Michael,

    it is our own board. The LMK chip is connected to a FPGA. As all the other registers are showing the correct

    value and we have tested the communication on several boards I don't expect an error with the communication.

    Ralf

  • Hi Ralf,

    Just to clarify, if you write some value to a register that is not 0xFF (like 0x7F, 0x88, etc), you can read back the value you wrote? It is only when you write 0xFF that the readback value is 0x00?

    Furthermore, would it be possible for you to attach your register configurations for this device? Both before you send these writes and after? That way, I can try to replicate them with the complete register profile in lab.

    Thanks,

    Michael

  • Hi Michael,

    i can write any value into register 0x106 as long as the high bit is not set (e. g. 0x1f, 0x48 etc) and read back.

    As soon as the high bit is set (e. g. 0xff, 0xf1) the value I read back is wrong.

    I've attached the register sequence how I write it into the LMK chip.

    The last few lines are the wrong values.

    R0 0x000080
    R2 0x000200
    R256 0x010005
    R257 0x0101FF
    R258 0x010255
    R259 0x010300
    R260 0x010422
    R261 0x010500
    R262 0x010670
    R263 0x010766
    R264 0x010805
    R265 0x0109FF
    R266 0x010A55
    R267 0x010B00
    R268 0x010C22
    R269 0x010D00
    R270 0x010E70
    R271 0x010F66
    R272 0x011005
    R273 0x0111FF
    R274 0x011255
    R275 0x011300
    R276 0x011422
    R277 0x011500
    R278 0x011670
    R279 0x011766
    R280 0x011814
    R281 0x011955
    R282 0x011A55
    R283 0x011B00
    R284 0x011C00
    R285 0x011D00
    R286 0x011E71
    R287 0x011F00
    R288 0x012005
    R289 0x0121FF
    R290 0x012255
    R291 0x012300
    R292 0x012422
    R293 0x012500
    R294 0x012670
    R295 0x012766
    R296 0x012814
    R297 0x012955
    R298 0x012A55
    R299 0x012B00
    R300 0x012C00
    R301 0x012D00
    R302 0x012EF0
    R303 0x012F11
    R304 0x013014
    R305 0x0131FF
    R306 0x013255
    R307 0x013300
    R308 0x013400
    R309 0x013500
    R310 0x013671
    R311 0x013700
    R312 0x013800
    R313 0x013900
    R314 0x013A00
    R315 0x013BA0
    R316 0x013C00
    R317 0x013D00
    R318 0x013E00
    R319 0x013F19
    R320 0x014003
    R321 0x014117
    R322 0x014200
    R323 0x014391
    R324 0x01447F
    R325 0x01457F
    R326 0x014608
    R327 0x01470E
    R328 0x014801
    R329 0x014942
    R330 0x014A03
    R331 0x014B16
    R332 0x014C00
    R333 0x014D00
    R334 0x014E00
    R335 0x014F7F
    R336 0x015003
    R337 0x015102
    R338 0x015200
    R339 0x015300
    R340 0x01540A
    R341 0x015500
    R342 0x01560A
    R343 0x015700
    R344 0x01580A
    R345 0x015900
    R346 0x015A0A
    R347 0x015BD7
    R348 0x015C3F
    R349 0x015DFF
    R350 0x015E00
    R351 0x015F0B
    R352 0x016000
    R353 0x016101
    R354 0x016244
    R355 0x016300
    R356 0x016400
    R357 0x01650A
    R369 0x0171AA
    R370 0x017202
    R371 0x017300
    R372 0x017400
    R380 0x017C15
    R381 0x017D33
    R358 0x016600
    R359 0x016700
    R360 0x016801
    R361 0x016959
    R362 0x016A3F
    R363 0x016BFF
    R364 0x016C00
    R365 0x016D00
    R366 0x016E13
    R8189 0x1FFD00
    R8190 0x1FFE00
    R8191 0x1FFF53


    R323 0x014311
    R324 0x014468
    R262 0x010671 should be 0x0106F1
    R270 0x010E71 should be 0x010EF1
    R278 0x011671 should be 0x0116F1
    R294 0x012671 should be 0x0126F1
    R302 0x012E01
    R310 0x013671 should be 0x0136F1
    R320 0x014007
    R324 0x01447F should be 0x0144FF

  • Hi Ralf,

    Thank you for sharing that! I will try recreating this issue in lab and talking with experts to determine what could be causing this issue. I should be able to get back to you early next week.

    Thanks,

    Michael

  • Hi Michael,

    just want to ask about the status. Are there any new information regarding the registers?

    Regards,

    Ralf

  • Hi Ralf,

    I must admit I have gone on a bit of a wild goose chase to track down any new information.

    The TICS Pro interface is prone to overwriting registers and potentially writing incorrect values. I have been working on a method to interface with the device without TICS Pro, performing SPI communications over the USB2ANY connector. I have enough functionality to be able to write all of the registers, I just need to create a parsing algorithm for your hex file. I will keep you posted on my progress.

    Thanks,

    Michael

  • Hi again Ralf,

    For the sake of clarity, could you include a register file containing the register values that you intend to write (not the one you read back)? I want to make sure I am replicating your actions as precisely as possible.

    Thanks,

    Michael

  • Hi Michael,

    the registers I've sent you above is the exact order how I write into the LMK chip,

    except the last few registers, which didn't work (so I wrote 0x71 instead of 0xF1 into them).

    I've attached the register table again, with the values I write into the registers.

    Regards,

    Ralf

    R0 0x000080
    R2 0x000200
    R256 0x010005
    R257 0x0101FF
    R258 0x010255
    R259 0x010300
    R260 0x010422
    R261 0x010500
    R262 0x010670
    R263 0x010766
    R264 0x010805
    R265 0x0109FF
    R266 0x010A55
    R267 0x010B00
    R268 0x010C22
    R269 0x010D00
    R270 0x010E70
    R271 0x010F66
    R272 0x011005
    R273 0x0111FF
    R274 0x011255
    R275 0x011300
    R276 0x011422
    R277 0x011500
    R278 0x011670
    R279 0x011766
    R280 0x011814
    R281 0x011955
    R282 0x011A55
    R283 0x011B00
    R284 0x011C00
    R285 0x011D00
    R286 0x011E71
    R287 0x011F00
    R288 0x012005
    R289 0x0121FF
    R290 0x012255
    R291 0x012300
    R292 0x012422
    R293 0x012500
    R294 0x012670
    R295 0x012766
    R296 0x012814
    R297 0x012955
    R298 0x012A55
    R299 0x012B00
    R300 0x012C00
    R301 0x012D00
    R302 0x012EF0
    R303 0x012F11
    R304 0x013014
    R305 0x0131FF
    R306 0x013255
    R307 0x013300
    R308 0x013400
    R309 0x013500
    R310 0x013671
    R311 0x013700
    R312 0x013800
    R313 0x013900
    R314 0x013A00
    R315 0x013BA0
    R316 0x013C00
    R317 0x013D00
    R318 0x013E00
    R319 0x013F19
    R320 0x014003
    R321 0x014117
    R322 0x014200
    R323 0x014391
    R324 0x01447F
    R325 0x01457F
    R326 0x014608
    R327 0x01470E
    R328 0x014801
    R329 0x014942
    R330 0x014A03
    R331 0x014B16
    R332 0x014C00
    R333 0x014D00
    R334 0x014E00
    R335 0x014F7F
    R336 0x015003
    R337 0x015102
    R338 0x015200
    R339 0x015300
    R340 0x01540A
    R341 0x015500
    R342 0x01560A
    R343 0x015700
    R344 0x01580A
    R345 0x015900
    R346 0x015A0A
    R347 0x015BD7
    R348 0x015C3F
    R349 0x015DFF
    R350 0x015E00
    R351 0x015F0B
    R352 0x016000
    R353 0x016101
    R354 0x016244
    R355 0x016300
    R356 0x016400
    R357 0x01650A
    R369 0x0171AA
    R370 0x017202
    R371 0x017300
    R372 0x017400
    R380 0x017C15
    R381 0x017D33
    R358 0x016600
    R359 0x016700
    R360 0x016801
    R361 0x016959
    R362 0x016A3F
    R363 0x016BFF
    R364 0x016C00
    R365 0x016D00
    R366 0x016E13
    R8189 0x1FFD00
    R8190 0x1FFE00
    R8191 0x1FFF53
    R323 0x014311
    R324 0x014468
    R262 0x0106F1
    R270 0x010EF1
    R278 0x0116F1
    R294 0x0126F1
    R302 0x012E01
    R310 0x0136F1
    R320 0x014007
    R324 0x0144FF