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.

LMK04828 Not Responding to SPI

Other Parts Discussed in Thread: TM4C129ENCPDT, LMK04828

I am using TM4C129ENCPDT

I am trying to program LMK04828 with 4 wire SPI

My programming routine below

1
Power-up my custom design board 

2
Initailize SPI ( Speed: 4MHZ, Data frame format : polarity 0, phase 0 )

3
spiWrite(0x000,0x80);     // reset
spiWrite(0x000,0x10);     // disable 3-wire
spiWrite(0x14A,0x33);     // RESET_MUX : SPI Readback, RESET_TYPE : Output(push-pull)


Then, I want to write address 0x154, value 0x78.         ---->spiWrite(0x154,0x78);
But I cannot see what i write to 0x154                          -----> spiRead(0x154) ----> response NOTHING

what the problem might be ?

One more question:
According to LMK04828, section 9.5.1 Recommended Programming Sequence;
I see
address 0x145 value : 127(decimal)
address 0x17C  value : 21(decimal)
address 0x17D value : 51(decimal)

am i have to write these registers value ?

Last question :
Is there any routine for RESET pin (LMK04828 Pin5) ?

  • One potential cause for this issue could be if pin 5 (RESET/GPO) is held high prior to writing register 0x14A. At power up, pin 5 in configured as RESET, and will hold the system in RESET until pin 5 is set low. See the attachment for more information.

    Yes, program registers 0x145 with 127 (decimal), 0x17C with 21 (decimal), and 0x17D with 51 (decimal) for LMK04828.

    Kind regards,
    Lane

    LMK4820 Family SPI Read Back.pdf

  • Thanks for your response.

    It works.

    I succeed to communicate with LMK (4 WIRE)

    My final programming routine is :

        spiWrite(0x0000,0x80);                // RESET
        spiWrite(0x0000,0x10);                // DISABLE 3 WIRE
    
        spiWrite(0x0145,0x7F);                // MANDOTORY ACCORDING TO "LMK04821 Datasheet- 9.5.1 Recommended Programming Sequence"
        spiWrite(0x014A,0x33);                // RESET_MUX : SPI Readback, RESET_TYPE : Output(push-pull)
    
        spiWrite(0x0171,0xAA);                // MANDOTORY ACCORDING TO "LMK04821 Datasheet- 9.5.1 Recommended Programming Sequence"
        spiWrite(0x0172,0x02);                // MANDOTORY ACCORDING TO "LMK04821 Datasheet- 9.5.1 Recommended Programming Sequence"
        spiWrite(0x017C,21);                  // MANDOTORY ACCORDING TO "LMK04821 Datasheet- 9.5.1 Recommended Programming Sequence"
        spiWrite(0x017D,51);                  // MANDOTORY ACCORDING TO "LMK04821 Datasheet- 9.5.1 Recommended Programming Sequence"
    

    after this routine,
    i read what i wrote 

    Thanks.