PCM5121: PCM5121: TMD8 configuration and demo code

Part Number: PCM5121

Tool/software:

Hi Arash

Per our discussion in the email, let use this e2e to track the issue investigation:

Current progress:  modify  Page 0 / Register 40 and then the needed shift was set in   Page 0 / Register 41.

Tied below 2 ways configuration:

Config Page0/register 14 as below besides your suggestion

Hi Wang

Please update your newest CDST status on page0/register 94 and page0/register 95 here

Thanks

Thomas

  • Hello Thomas,

    Code:

                    uint8_t idx;
                    uint8_t temp;
            
                    sRegWrite(0,0x02,0x00);//"Standby Request" //"Powerdown Request" All to 0, normal mode.
                    LOG_INFO("PCM5121: PCM5121 Read 0x02 = %02x.... \r\n",Pcm5121_ReadByte(0x02));
                    sRegWrite(0,0x04,0x00);
                    sRegWrite(0,0x0e,0x10);
                    //sRegWrite(0,0x0d,0x10);
                    sRegWrite(0,0x0d,0x00);
                    sRegWrite(0,0x0e,0x30);


                    for (idx = 0; idx < 7; idx++){
                                    sRegWrite(0, pllcfg_96[idx][0],pllcfg_96[idx][1]);
                    }

                    sRegWrite(0,0x25,0x1a);
                    sRegWrite(0,0x04,0x01);
                    
                    sRegWrite(0,0x23,0x03);
                    sRegWrite(0,0x24,0x00);
                    
                    sRegWrite(0,0x28,0x13);
                    
    #if 1                 //VCOM Mode
                    sRegWrite(1,0x08,0x01);
                    sRegWrite(1,0x09,0x00);//VCOM power on.
                    sRegWrite(1,0x08,0x00);
                    sRegWrite(1,0x01,0x01);//"Output Amplitude Type" set to 1, VCOM mode.
    #else   //VREF Mode
                    sRegWrite(1,0x08,0x01);
                    sRegWrite(1,0x09,0x01);
                    delay_1ms(10);
                    sRegWrite(1,0x08,0x00);
                    sRegWrite(1,0x01,0x00);
                    
    #endif
                    
                    sRegWrite(0,0x02,0x00);
                    LOG_INFO("PCM5121: PCM5121 Read 0x25 = %02x.... \r\n",Pcm5121_ReadByte(0x25));
                    
                    sRegWrite(0,61,0x30);
                    sRegWrite(0,62,0x30);
                    
                    //sRegWrite(0,0x3D,0x1F);  //gain
                    //sRegWrite(0,0x3E,0x1F);
                    //Pcm5121_ReadByte(0x28);
                    //Pcm5121_WriteByte(0x00,0x00);
                    printf("PCM5121: PCM5121 Read 0x28 = %02x.... \r\n",Pcm5121_ReadByte(0x28));
                    Pcm5121_WriteByte(0x00,0x00);
                    printf("PCM5121: PCM5121 Read 0x5B = %02x.... \r\n",Pcm5121_ReadByte(0x5B));
                    Pcm5121_WriteByte(0x00,0x00);
                    printf("PCM5121: PCM5121 Read 0x5E = %02x.... \r\n",Pcm5121_ReadByte(0x5E));
                    Pcm5121_WriteByte(0x00,0x00);
                    printf("PCM5121: PCM5121 Read 0x5F = %02x.... \r\n",Pcm5121_ReadByte(0x5F));
                    LOG_INFO("PCM5121: PCM5121 init success.... \r\n");

    result:

    (note:Hexadecimal)

    Best Regards

    Joseph

  • Hi Thomas, Joseph,

    Arash was out of office today and will get to this thread tomorrow.

    Best,

    Garret

  • Hello,

    I am not clear what is the specific ask here?  Can you please let me know what your question is?

    If you want to discuss some registers, would you please send me in the simple format such as

    W   device_ID   Reg   Value  ( all in HEX)

    and if you are reading any register in question please give me the reg number and the value it is reading.

    Regards,

    Arash