NO audio output - shows buffer value zero

I did not get Audio - adc value shows zero all the timse why ??

const codec_register CODEC_DEF_REG_DATA[] = {

    // =====================================================
    // ===================== PAGE 0 ========================
    // =====================================================

    {0x00, 0x00}, // Select Page 0

    // Software reset
    {0x01, 0x01},

    // ---------- PLL CONFIG (MCLK = 4 MHz → 8 kHz Fs) ----------
    {0x04, 0x03}, // PLL input = MCLK, CODEC_CLK = PLL
    {0x05, 0xD4}, // PLL power up, P=5, R=4   D4   or 0x91
    {0x06, 0x20}, // J=32
    {0x07, 0x00}, // D MSB
    {0x08, 0x00}, // D LSB

    // ---------- DAC CLOCK TREE ----------
    {0x0B, 0x84}, // NDAC=4, power up
    {0x0C, 0x99}, // MDAC=25, power up
    {0x0E, 0x80}, // DOSR=128 → Fs = 8kHz
    {0x12, 0x84}, // NADC=4, power up
    {0x13, 0x99}, // MADC=25, power up
    {0x14, 0x80}, // AOSR=128

    // ---------- I2S DIGITAL ----------
    {0x1B, 0x0C}, // I2S, 16bit, BCLK and WCLK are output from device

    {0x1D, 0x01}, // DAC clock source  0x01 #bdiv_clkin=dac_mod_clk
    {0x1E, 0x84}, // BCLK divider  84 #bclk ndiv powered up, =4

    // Set the DAC Mode to PRB_P8
    {0x3C, 0x08},

    // 4Mhz * (R*j.d)/P
    // 4 * 4 * 32 / 5 = 102.4MHz
    // /ndac = 102.4/4 -> 25.6MHz = DAC_CLK
    // /mdac = 25.6MHz/25 = 1.024MHz = DAC_MOD_CLK
    // /dosr = 1.024/128 = 8khz = dac_fs

    // dac_mod_clk / 4 = 256kHz = bclk -> (2 channel 16 bit data)

    // =====================================================
    // ===================== PAGE 1 ========================
    // =====================================================

    {0x00, 0x01}, // Select Page 1

    // Disable Internal Crude AVdd in presence of external AVdd supply or before
    // powering up internal AVdd LDO
    {0x01, 0x08},

    // Enable Master Analog Power Control
    {0x02, 0x00},

    // Set the REF charging time to 40ms
    {0x7B, 0x01},

    {0x03, 0x00}, // Playback Configuration Register 1
    {0x04, 0x00}, // Playback Configuration Register 2
    {0x09, 0x30}, // Output Driver Power Control Register #hpl and hpr powered up, line outs powered down
    {0x0A, 0x00}, // Output Driver Power Control Register #avdd supply for hp
    {0x0C, 0x08}, // HPL Routing Selection Register #ldac pos terminal routed to hpl
    {0x0D, 0x08}, // HPR Routing Selection Register #rdac pos terminal routed to hpr
    {0x0E, 0x08}, // Left DAC → LOL #ldac routed to lol
    {0x0F, 0x08}, // Right DAC → LOR #rdac routed to lor
    {0x10, 0x00}, // HPL Driver Gain Setting Register #hpl driver not muted
    {0x11, 0x00}, // HPR Driver Gain Setting Register #hpr driver not muted
    {0x14, 0x25}, // Headphone Driver Startup Control Register #HP ramps over 5 time constants, power up determined with 6k
    {0x16, 0x00}, // IN1L to HPL Volume Control Register #in1l to hpl volume = 0db (path not set)

    // /* ---------- MIC (optional) ---------- */
    {0x33, 0x60}, // MIC Bias 2.5v #bias powered up set to 2.5V
    {0x34, 0x04}, // Left MICPGA Positive Terminal Input Routing Configuration #in3l routed to left micpa with 10k resistance
    {0x36, 0x40}, // Left MICPGA Negative Terminal Input Routing Configuration #cm1l to left neg terminal with 10k
    {0x3B, 0x00}, // Left MICPGA Volume Control Register #left micpga gain enabled, 0db
    {0x3C, 0x00}, // Right MICPGA Volume Control Register #same for right micpga (nothing connected)

    // {0x46, 0x0A}, // MICBIAS = 2.5V
    // {0x48, 0x40}, // MICPGA P = MIC 10k
    // {0x49, 0x40}, // MICPGA M = CM 10k
    // {0x47, 0x00}, // MIC gain = 0dB

    // =====================================================
    // ===================== PAGE 0 ========================
    // =====================================================

    {0x00, 0x00}, // Select Page 0

    {0x3F, 0xD6}, // Powerup DAC left channel #ldac and rdac powered up
    {0x40, 0x00}, // Left & Right channel DAC unmuted
    {0x41, 0x00}, // DAC digital gain = 0dB #ldac gain=0db
    {0x51, 0x80}, // Powerup ADC   C0 #ladc powered up, radc powered down
    {0x52, 0x00}, // ADC channel unmuted, 0dB #both ladc and radc unmuted
    {0x53, 0x00}, // ADC Digital Volume Control Coarse = 0dB

    // =====================================================
    // ===================== PAGE 1 ========================
    // =====================================================

    // {0x00, 0x01}, // Select Page 1

    // {0x35, 0x44}, // LDAC and RDAC router to L & R mixer amplifier
    // {0x36, 0x80},
    // {0x37, 0x80},

    // {0x38, 0x80}, // Left Analog Vol to SPR, unmuted
    // {0x39, 0x80}, // Right Analog Vol to SPR, unmuted
    // {0x42, 0x04}, // Left Speaker gain = 6dB, unmuted
    // {0x43, 0x04}, // Left Speaker gain = 6dB, unmuted
    // {0x32, 0xC6}, // Speaker drivers power up
};
audio out put is why ???  Use code " 3204"

  • [00:04:44.689,786] <dbg> i2s_nrfx: i2s_nrfx_write: Queued TX 0x2000cef8
    [00:04:44.700,047] <dbg> i2s_nrfx: data_handler: Queued RX 0x2000d178
    [00:04:44.700,229] <dbg> i2s_nrfx: free_tx_buffer: Freed TX 0x2000d678
    [00:04:44.700,412] <dbg> i2s_nrfx: supply_next_buffers: Next buffers: 0x2000cc78/0x2000d678
    [00:04:44.700,626] <dbg> i2s_nrfx: i2s_nrfx_read: Released RX 0x2000d178
    PCM raw: [00:04:44.700,829] <inf> audio: pair 0: L=0 R=0

    [00:04:44.700,970] <inf> audio: pair 1: L=0 R=0

    [00:04:44.701,108] <inf> audio: pair 2: L=0 R=0

    [00:04:44.701,246] <inf> audio: pair 3: L=0 R=0

    [00:04:44.701,384] <inf> audio: pair 4: L=0 R=0

    [00:04:44.701,522] <inf> audio: pair 5: L=0 R=0

    [00:04:44.701,655] <inf> audio:

    CHECK rawR: 0 0 0 0 0 0
    [00:04:44.701,851] <inf> audio: CHECK mono: 0 0 0 0 0 0

    [PCM] pcm_index=160 mono_samples=160
    [00:04:44.702,114] <dbg> i2s_nrfx: i2s_nrfx_write: Queued TX 0x2000d178
    [00:04:44.720,039] <dbg> i2s_nrfx: data_handler: Queued RX 0x2000d3f8
    [00:04:44.720,218] <dbg> i2s_nrfx: free_tx_buffer: Freed TX 0x2000d8f8
    [00:04:44.720,400] <dbg> i2s_nrfx: supply_next_buffers: Next buffers: 0x2000cef8/0x2000d8f8
    [00:04:44.720,613] <dbg> i2s_nrfx: i2s_nrfx_read: Released RX 0x2000d3f8
    PCM raw: [00:04:44.720,816] <inf> audio: pair 0: L=0 R=0

    [00:04:44.720,958] <inf> audio: pair 1: L=0 R=0

    [00:04:44.721,098] <inf> audio: pair 2: L=0 R=0

    [00:04:44.721,237] <inf> audio: pair 3: L=0 R=0

    [00:04:44.721,375] <inf> audio: pair 4: L=0 R=0

    [00:04:44.721,513] <inf> audio: pair 5: L=0 R=0

    [00:04:44.721,645] <inf> audio:

    CHECK rawR: 0 0 0 0 0 0
    [00:04:44.721,842] <inf> audio: CHECK mono: 0 0 0 0 0 0

    [PCM] pcm_index=320 mono_samples=160
    [ADPCM] size=163 data=[00:04:44.722,303] <inf> audio: 00
    [00:04:44.722,414] <inf> audio: 00
    [00:04:44.722,525] <inf> audio: 00
    [00:04:44.722,634] <inf> audio: 00
    [00:04:44.722,744] <inf> audio: 00
    [00:04:44.722,854] <inf> audio: 00
    [00:04:44.722,964] <inf> audio: 00
    [00:04:44.723,074] <inf> audio: 00
    [00:04:44.723,190] <inf> audio: 00
    [00:04:44.723,301] <inf> audio: 00
    [00:04:44.728,601] <inf> audio: 00
    [00:04:44.728,716] <inf> audio: 00
    [00:04:44.728,829] <inf> audio: 00
    [00:04:44.728,941] <inf> audio: 00
    [00:04:44.729,052] <inf> audio: 00
    [00:04:44.729,162] <inf> audio: 00
    [00:04:44.729,272] <inf> audio: 00
    [00:04:44.729,382] <inf> audio: 00
    [00:04:44.729,491] <inf> audio: 00
    [00:04:44.729,602] <inf> audio: 00
    [00:04:44.729,711] <inf> audio:

    [00:04:44.729,829] <inf> audio: [ADPCM] queue full, frame dropped

    [00:04:44.729,994] <dbg> i2s_nrfx: i2s_nrfx_write: Queued TX 0x2000d3f8
    [00:04:44.740,041] <dbg> i2s_nrfx: data_handler: Queued RX 0x2000d678
    [00:04:44.740,219] <dbg> i2s_nrfx: free_tx_buffer: Freed TX 0x2000cc78
    [00:04:44.740,401] <dbg> i2s_nrfx: supply_next_buffers: Next buffers: 0x2000d178/0x2000cc78
    [00:04:44.740,615] <dbg> i2s_nrfx: i2s_nrfx_read: Released RX 0x2000d678
    PCM raw: [00:04:44.740,818] <inf> audio: pair 0: L=0 R=0

    [00:04:44.740,960] <inf> audio: pair 1: L=0 R=0

    [00:04:44.741,100] <inf> audio: pair 2: L=0 R=0

    [00:04:44.741,241] <inf> audio: pair 3: L=0 R=0

    [00:04:44.741,380] <inf> audio: pair 4: L=0 R=0

    [00:04:44.741,518] <inf> audio: pair 5: L=0 R=0

    [00:04:44.741,650] <inf> audio:

    CHECK rawR: 0 0 0 0 0 0
    [00:04:44.741,847] <inf> audio: CHECK mono: 0 0 0 0 0 0

    [PCM] pcm_index=160 mono_samples=160
    [00:04:44.742,109] <dbg> i2s_nrfx: i2s_nrfx_write: Queued TX 0x2000d678
    [00:04:44.760,049] <dbg> i2s_nrfx: data_handler: Queued RX 0x2000d8f8
    [00:04:44.760,231] <dbg> i2s_nrfx: free_tx_buffer: Freed TX 0x2000cef8
    [00:04:44.760,413] <dbg> i2s_nrfx: supply_next_buffers: Next buffers: 0x2000d3f8/0x2000cef8
    [00:04:44.760,627] <dbg> i2s_nrfx: i2s_nrfx_read: Released RX 0x2000d8f8
    PCM raw: [00:04:44.760,830] <inf> audio: pair 0: L=0 R=0

    [00:04:44.760,972] <inf> audio: pair 1: L=0 R=0

    [00:04:44.761,112] <inf> audio: pair 2: L=0 R=0

    [00:04:44.761,253] <inf> audio: pair 3: L=0 R=0

    [00:04:44.761,394] <inf> audio: pair 4: L=0 R=0

    [00:04:44.761,533] <inf> audio: pair 5: L=0 R=0

    [00:04:44.761,665] <inf> audio:

    CHECK rawR: 0 0 0 0 0 0
    [00:04:44.761,862] <inf> audio: CHECK mono: 0 0 0 0 0 0

    [PCM] pcm_index=320 mono_samples=160
    [ADPCM] size=163 data=[00:04:44.762,323] <inf> audio: 00
    [00:04:44.762,434] <inf> audio: 00
    [00:04:44.762,544] <inf> audio: 00
    [00:04:44.762,654] <inf> audio: 00
    [00:04:44.762,764] <inf> audio: 00
    [00:04:44.762,874] <inf> audio: 00
    [00:04:44.762,983] <inf> audio: 00
    [00:04:44.768,098] <inf> audio: 00
    [00:04:44.768,210] <inf> audio: 00
    [00:04:44.768,323] <inf> audio: 00
    [00:04:44.768,435] <inf> audio: 00
    [00:04:44.768,547] <inf> audio: 00
    [00:04:44.768,659] <inf> audio: 00
    [00:04:44.768,771] <inf> audio: 00
    [00:04:44.768,884] <inf> audio: 00
    [00:04:44.768,996] <inf> audio: 00
    [00:04:44.769,108] <inf> audio: 00
    [00:04:44.769,220] <inf> audio: 00
    [00:04:44.769,330] <inf> audio: 00
    [00:04:44.769,441] <inf> audio: 00
    [00:04:44.769,550] <inf> audio:

    [00:04:44.769,667] <inf> audio: [ADPCM] queue full, frame dropped

    [00:04:44.769,833] <dbg> i2s_nrfx: i2s_nrfx_write: Queued TX 0x2000d8f8
    [00:04:44.780,036] <dbg> i2s_nrfx: data_handler: Queued RX 0x2000cc78
    [00:04:44.780,214] <dbg> i2s_nrfx: free_tx_buffer: Freed TX 0x2000d178
    [00:04:44.780,396] <dbg> i2s_nrfx: supply_next_buffers: Next buffers: 0x2000d678/0x2000d178
    [00:04:44.780,610] <dbg> i2s_nrfx: i2s_nrfx_read: Released RX 0x2000cc78
    PCM raw: [00:04:44.780,813] <inf> audio: pair 0: L=0 R=0

    [00:04:44.780,954] <inf> audio: pair 1: L=0 R=0

    [00:04:44.781,095] <inf> audio: pair 2: L=0 R=0

    [00:04:44.781,235] <inf> audio: pair 3: L=0 R=0

    [00:04:44.781,376] <inf> audio: pair 4: L=0 R=0

    [00:04:44.781,516] <inf> audio: pair 5: L=0 R=0

    [00:04:44.781,650] <inf> audio:

    CHECK rawR: 0 0 0 0 0 0
    [00:04:44.781,846] <inf> audio: CHECK mono: 0 0 0 0 0 0

    [PCM] pcm_index=160 mono_samples=160
    [00:04:44.782,109] <dbg> i2s_nrfx: i2s_nrfx_write: Queued TX 0x2000cc78
    [00:04:44.800,051] <dbg> i2s_nrfx: data_handler: Queued RX 0x2000cef8
    [00:04:44.800,233] <dbg> i2s_nrfx: free_tx_buffer: Freed TX 0x2000d3f8
    [00:04:44.800,415] <dbg> i2s_nrfx: supply_next_buffers: Next buffers: 0x2000d8f8/0x2000d3f8
    [00:04:44.800,629] <dbg> i2s_nrfx: i2s_nrfx_read: Released RX 0x2000cef8
    PCM raw: [00:04:44.800,832] <inf> audio: pair 0: L=0 R=0

    [00:04:44.800,973] <inf> audio: pair 1: L=0 R=0

    [00:04:44.801,114] <inf> audio: pair 2: L=0 R=0

    [00:04:44.801,255] <inf> audio: pair 3: L=0 R=0

    [00:04:44.801,395] <inf> audio: pair 4: L=0 R=0

    [00:04:44.801,536] <inf> audio: pair 5: L=0 R=0

    [00:04:44.801,671] <inf> audio:

    CHECK rawR: 0 0 0 0 0 0
    [00:04:44.801,870] <inf> audio: CHECK mono: 0 0 0 0 0 0

    [PCM] pcm_index=320 mono_samples=160
    [ADPCM] size=163 data=[00:04:44.802,331] <inf> audio: 00
    [00:04:44.802,442] <inf> audio: 00
    [00:04:44.802,553] <inf> audio: 00
    [00:04:44.802,663] <inf> audio: 00
    [00:04:44.802,774] <inf> audio: 00
    [00:04:44.802,885] <inf> audio: 00
    [00:04:44.802,995] <inf> audio: 00
    [00:04:44.803,106] <inf> audio: 00
    [00:04:44.803,217] <inf> audio: 00
    [00:04:44.803,328] <inf> audio: 00
    [00:04:44.803,438] <inf> audio: 00
    [00:04:44.803,549] <inf> audio: 00
    [00:04:44.808,664] <inf> audio: 00
    [00:04:44.808,777] <inf> audio: 00
    [00:04:44.808,890] <inf> audio: 00
    [00:04:44.809,003] <inf> audio: 00
    [00:04:44.809,115] <inf> audio: 00
    [00:04:44.809,228] <inf> audio: 00
    [00:04:44.809,341] <inf> audio: 00
    [00:04:44.809,453] <inf> audio: 00
    [00:04:44.809,563] <inf> audio:

    [00:04:44.809,680] <inf> audio: [ADPCM] queue full, frame dropped

    [00:04:44.809,847] <dbg> i2s_nrfx: i2s_nrfx_write: Queued TX 0x2000cef8
    [00:04:44.820,042] <dbg> i2s_nrfx: data_handler: Queued RX 0x2000d178
    [00:04:44.820,220] <dbg> i2s_nrfx: free_tx_buffer: Freed TX 0x2000d678
    [00:04:44.820,402] <dbg> i2s_nrfx: supply_next_buffers: Next buffers: 0x2000cc78/0x2000d678
    [00:04:44.820,616] <dbg> i2s_nrfx: i2s_nrfx_read: Released RX 0x2000d178
    PCM raw: [00:04:44.820,819] <inf> audio: pair 0: L=0 R=0

    [00:04:44.820,960] <inf> audio: pair 1: L=0 R=0

    [00:04:44.821,101] <inf> audio: pair 2: L=0 R=0

    [00:04:44.821,242] <inf> audio: pair 3: L=0 R=0

    [00:04:44.821,382] <inf> audio: pair 4: L=0 R=0

    [00:04:44.821,523] <inf> audio: pair 5: L=0 R=0

    [00:04:44.821,658] <inf> audio:

    CHECK rawR: 0 0 0 0 0 0
    [00:04:44.821,858] <inf> audio: CHECK mono: 0 0 0 0 0 0

    [PCM] pcm_index=160 mono_samples=160
    [00:04:44.822,121] <dbg> i2s_nrfx: i2s_nrfx_write: Queued TX 0x2000d178
    [00:04:44.840,051] <dbg> i2s_nrfx: data_handler: Queued RX 0x2000d3f8
    [00:04:44.840,233] <dbg> i2s_nrfx: free_tx_buffer: Freed TX 0x2000d8f8
    [00:04:44.840,415] <dbg> i2s_nrfx: supply_next_buffers: Next buffers: 0x2000cef8/0x2000d8f8
    [00:04:44.840,629] <dbg> i2s_nrfx: i2s_nrfx_read: Released RX 0x2000d3f8
    PCM raw: [00:04:44.840,832] <inf> audio: pair 0: L=0 R=0

    [00:04:44.840,974] <inf> audio: pair 1: L=0 R=0

    [00:04:44.841,114] <inf> audio: pair 2: L=0 R=0

  • Hello,

    I did make a small I2S example here that might be useful for debugging: https://github.com/kemegard/i2s_minimal 

    Kenneth

  • [00:21:07.101,760] <inf> audio: 91
    [00:21:07.106,875] <inf> audio: 91
    [00:21:07.106,988] <inf> audio: 91
    [00:21:07.107,100] <inf> audio: 91
    [00:21:07.107,213] <inf> audio: 91
    [00:21:07.107,325] <inf> audio: 91
    [00:21:07.107,438] <inf> audio: 91
    [00:21:07.107,548] <inf> audio:

    [00:21:07.107,678] <inf> audio: [ADPCM] queued len=163

    [00:21:07.107,836] <dbg> i2s_nrfx: i2s_nrfx_write: Queued TX 0x2000cef8
    [00:21:07.118,019] <dbg> i2s_nrfx: data_handler: Queued RX 0x2000d178
    [00:21:07.118,201] <dbg> i2s_nrfx: free_tx_buffer: Freed TX 0x2000d678
    [00:21:07.118,380] <dbg> i2s_nrfx: supply_next_buffers: Next buffers: 0x2000cc78/0x2000d678
    [00:21:07.118,589] <dbg> i2s_nrfx: i2s_nrfx_read: Released RX 0x2000d178
    PCM raw: [00:21:07.118,788] <inf> audio: pair 0: L=1 R=0

    [00:21:07.118,925] <inf> audio: pair 1: L=1 R=0

    [00:21:07.119,063] <inf> audio: pair 2: L=0 R=0

    [00:21:07.119,203] <inf> audio: pair 3: L=1 R=0

    [00:21:07.119,350] <inf> audio: pair 4: L=0 R=0

    [00:21:07.119,490] <inf> audio: pair 5: L=1 R=0

    [00:21:07.119,625] <inf> audio:

    CHECK rawR: 1 1 0 1 0 1
    [00:21:07.119,824] <inf> audio: CHECK mono: 1 1 0 1 0 1

    [PCM] pcm_index=160 mono_samples=160
    [00:21:07.120,091] <dbg> i2s_nrfx: i2s_nrfx_write: Queued TX 0x2000d178
    [00:21:07.137,997] <dbg> i2s_nrfx: data_handler: Queued RX 0x2000d3f8
    [00:21:07.138,179] <dbg> i2s_nrfx: free_tx_buffer: Freed TX 0x2000d8f8
    [00:21:07.138,361] <dbg> i2s_nrfx: supply_next_buffers: Next buffers: 0x2000cef8/0x2000d8f8
    [00:21:07.138,570] <dbg> i2s_nrfx: i2s_nrfx_read: Released RX 0x2000d3f8
    PCM raw: [00:21:07.138,769] <inf> audio: pair 0: L=1 R=0

    [00:21:07.138,907] <inf> audio: pair 1: L=1 R=0

    [00:21:07.139,044] <inf> audio: pair 2: L=0 R=0

    [00:21:07.139,181] <inf> audio: pair 3: L=1 R=0

    [00:21:07.139,318] <inf> audio: pair 4: L=0 R=0

    [00:21:07.139,459] <inf> audio: pair 5: L=1 R=0

    [00:21:07.139,593] <inf> audio:

    CHECK rawR: 1 1 0 1 0 1
    [00:21:07.139,792] <inf> audio: CHECK mono: 1 1 0 1 0 1

    [PCM] pcm_index=320 mono_samples=160
    [ADPCM] size=163 data=[00:21:07.140,257] <inf> audio: 00
    [00:21:07.140,369] <inf> audio: 01
    [00:21:07.140,482] <inf> audio: 00
    [00:21:07.140,594] <inf> audio: 00
    [00:21:07.140,706] <inf> audio: 91
    [00:21:07.140,819] <inf> audio: 91
    [00:21:07.140,931] <inf> audio: 91
    [00:21:07.146,047] <inf> audio: 91
    [00:21:07.146,159] <inf> audio: 91
    [00:21:07.146,272] <inf> audio: 91
    [00:21:07.146,384] <inf> audio: 00
    [00:21:07.146,496] <inf> audio: 91
    [00:21:07.146,609] <inf> audio: 91
    [00:21:07.146,721] <inf> audio: 00
    [00:21:07.146,833] <inf> audio: 91
    [00:21:07.146,946] <inf> audio: 91
    [00:21:07.147,058] <inf> audio: 00
    [00:21:07.147,170] <inf> audio: 91
    [00:21:07.147,283] <inf> audio: 91
    [00:21:07.147,395] <inf> audio: 91
    [00:21:07.147,505] <inf> audio:

    [00:21:07.147,636] <inf> audio: [ADPCM] queued len=163

    [00:21:07.147,794] <dbg> i2s_nrfx: i2s_nrfx_write: Queued TX 0x2000d3f8
    [00:21:07.157,968] <dbg> i2s_nrfx: data_handler: Queued RX 0x2000d678
    [00:21:07.158,150] <dbg> i2s_nrfx: free_tx_buffer: Freed TX 0x2000cc78
    [00:21:07.158,332] <dbg> i2s_nrfx: supply_next_buffers: Next buffers: 0x2000d178/0x2000cc78
    [00:21:07.158,544] <dbg> i2s_nrfx: i2s_nrfx_read: Released RX 0x2000d678
    PCM raw: [00:21:07.158,743] <inf> audio: pair 0: L=0 R=0

    [00:21:07.158,881] <inf> audio: pair 1: L=1 R=0

    [00:21:07.159,018] <inf> audio: pair 2: L=0 R=0

    [00:21:07.159,155] <inf> audio: pair 3: L=1 R=0

    [00:21:07.159,292] <inf> audio: pair 4: L=0 R=0

    [00:21:07.159,430] <inf> audio: pair 5: L=1 R=0

    [00:21:07.159,561] <inf> audio:

    CHECK rawR: 0 1 0 1 0 1
    [00:21:07.159,757] <inf> audio: CHECK mono: 0 1 0 1 0 1

    [PCM] pcm_index=160 mono_samples=160
    [00:21:07.160,020] <dbg> i2s_nrfx: i2s_nrfx_write: Queued TX 0x2000d678
    [00:21:07.177,929] <dbg> i2s_nrfx: data_handler: Queued RX 0x2000d8f8
    [00:21:07.178,108] <dbg> i2s_nrfx: free_tx_buffer: Freed TX 0x2000cef8
    [00:21:07.178,289] <dbg> i2s_nrfx: supply_next_buffers: Next buffers: 0x2000d3f8/0x2000cef8
    [00:21:07.178,502] <dbg> i2s_nrfx: i2s_nrfx_read: Released RX 0x2000d8f8
    PCM raw: [00:21:07.178,703] <inf> audio: pair 0: L=1 R=0

    [00:21:07.178,841] <inf> audio: pair 1: L=1 R=0

    [00:21:07.178,978] <inf> audio: pair 2: L=0 R=0

    [00:21:07.179,115] <inf> audio: pair 3: L=1 R=0

    [00:21:07.179,258] <inf> audio: pair 4: L=0 R=0

    [00:21:07.179,396] <inf> audio: pair 5: L=1 R=0

    [00:21:07.179,528] <inf> audio:

    CHECK rawR: 1 1 0 1 0 1
    [00:21:07.179,724] <inf> audio: CHECK mono: 1 1 0 1 0 1

    [PCM] pcm_index=320 mono_samples=160
    [ADPCM] size=163 data=[00:21:07.180,183] <inf> audio: 00
    [00:21:07.180,294] <inf> audio: 01
    [00:21:07.180,404] <inf> audio: 00
    [00:21:07.180,514] <inf> audio: 91
    [00:21:07.180,625] <inf> audio: 91
    [00:21:07.180,735] <inf> audio: 91
    [00:21:07.186,174] <inf> audio: 91
    [00:21:07.186,293] <inf> audio: 91
    [00:21:07.186,405] <inf> audio: 91
    [00:21:07.186,518] <inf> audio: 91
    [00:21:07.186,630] <inf> audio: 91
    [00:21:07.186,740] <inf> audio: 91
    [00:21:07.186,850] <inf> audio: 91
    [00:21:07.186,961] <inf> audio: 91
    [00:21:07.187,071] <inf> audio: 91
    [00:21:07.187,181] <inf> audio: 91
    [00:21:07.187,291] <inf> audio: 91
    [00:21:07.187,402] <inf> audio: 91
    [00:21:07.187,512] <inf> audio: 91
    [00:21:07.187,622] <inf> audio: 91
    [00:21:07.187,731] <inf> audio:

    [00:21:07.187,860] <inf> audio: [ADPCM] queued len=163

    [00:21:07.188,015] <dbg> i2s_nrfx: i2s_nrfx_write: Queued TX 0x2000d8f8
    [00:21:07.197,902] <dbg> i2s_nrfx: data_handler: Queued RX 0x2000cc78
    [00:21:07.198,084] <dbg> i2s_nrfx: free_tx_buffer: Freed TX 0x2000d178
    [00:21:07.198,265] <dbg> i2s_nrfx: supply_next_buffers: Next buffers: 0x2000d678/0x2000d178
    [00:21:07.198,478] <dbg> i2s_nrfx: i2s_nrfx_read: Released RX 0x2000cc78
    PCM raw: [00:21:07.198,681] <inf> audio: pair 0: L=1 R=0

    [00:21:07.198,820] <inf> audio: pair 1: L=1 R=0

    [00:21:07.198,957] <inf> audio: pair 2: L=0 R=0

    [00:21:07.199,095] <inf> audio: pair 3: L=1 R=0

    [00:21:07.199,232] <inf> audio: pair 4: L=0 R=0

    [00:21:07.199,369] <inf> audio: pair 5: L=1 R=0

    [00:21:07.199,501] <inf> audio:

    CHECK rawR: 1 1 0 1 0 1
    [00:21:07.199,697] <inf> audio: CHECK mono: 1 1 0 1 0 1

    [PCM] pcm_index=160 mono_samples=160
    [00:21:07.199,959] <dbg> i2s_nrfx: i2s_nrfx_write: Queued TX 0x2000cc78
    [00:21:07.217,880] <dbg> i2s_nrfx: data_handler: Queued RX 0x2000cef8
    [00:21:07.218,063] <dbg> i2s_nrfx: free_tx_buffer: Freed TX 0x2000d3f8
    [00:21:07.218,244] <dbg> i2s_nrfx: supply_next_buffers: Next buffers: 0x2000d8f8/0x2000d3f8
    [00:21:07.218,457] <dbg> i2s_nrfx: i2s_nrfx_read: Released RX 0x2000cef8
    PCM raw: [00:21:07.218,660] <inf> audio: pair 0: L=0 R=0

    [00:21:07.218,801] <inf> audio: pair 1: L=1 R=0

    [00:21:07.218,940] <inf> audio: pair 2: L=0 R=0

    [00:21:07.219,078] <inf> audio: pair 3: L=1 R=0

    [00:21:07.219,215] <inf> audio: pair 4: L=0 R=0

    [00:21:07.219,352] <inf> audio: pair 5: L=1 R=0

    [00:21:07.219,484] <inf> audio:

    CHECK rawR: 0 1 0 1 0 1
    [00:21:07.219,680] <inf> audio: CHECK mono: 0 1 0 1 0 1

    [PCM] pcm_index=320 mono_samples=160
    [ADPCM] size=163 data=[00:21:07.220,139] <inf> audio: 00
    [00:21:07.220,250] <inf> audio: 01
    [00:21:07.220,360] <inf> audio: 00
    [00:21:07.220,470] <inf> audio: 00
    [00:21:07.220,581] <inf> audio: 91
    [00:21:07.220,694] <inf> audio: 91
    [00:21:07.220,806] <inf> audio: 91
    [00:21:07.220,918] <inf> audio: 91
    [00:21:07.221,031] <inf> audio: 91
    [00:21:07.221,143] <inf> audio: 91
    [00:21:07.221,256] <inf> audio: 91
    [00:21:07.221,368] <inf> audio: 00
    [00:21:07.221,480] <inf> audio: 91
    [00:21:07.226,595] <inf> audio: 91
    [00:21:07.226,708] <inf> audio: 00
    [00:21:07.226,820] <inf> audio: 91
    [00:21:07.226,932] <inf> audio: 91
    [00:21:07.227,045] <inf> audio: 00
    [00:21:07.227,157] <inf> audio: 91
    [00:21:07.227,269] <inf> audio: 91
    [00:21:07.227,380] <inf> audio:

    [00:21:07.227,510] <inf> audio: [ADPCM] queued len=163

    [00:21:07.227,668] <dbg> i2s_nrfx: i2s_nrfx_write: Queued TX 0x2000cef8
    [00:21:07.237,842] <dbg> i2s_nrfx: data_handler: Queued RX 0x2000d178
    [00:21:07.238,025] <dbg> i2s_nrfx: free_tx_buffer: Freed TX 0x2000d678
    [00:21:07.238,206] <dbg> i2s_nrfx: supply_next_buffers: Next buffers: 0x2000cc78/0x2000d678
    [00:21:07.238,419] <dbg> i2s_nrfx: i2s_nrfx_read: Released RX 0x2000d178
    PCM raw: [00:21:07.238,621] <inf> audio: pair 0: L=1 R=0

    [00:21:07.238,762] <inf> audio: pair 1: L=1 R=0

    [00:21:07.238,902] <inf> audio: pair 2: L=0 R=0

    [00:21:07.239,041] <inf> audio: pair 3: L=1 R=0

    [00:21:07.239,178] <inf> audio: pair 4: L=0 R=0

    [00:21:07.239,322] <inf> audio: pair 5: L=1 R=0

    [00:21:07.239,454] <inf> audio:

    CHECK rawR: 1 1 0 1 0 1
    [00:21:07.239,650] <inf> audio: CHECK mono: 1 1 0 1 0 1

    [PCM] pcm_index=160 mono_samples=160
    [00:21:07.239,912] <dbg> i2s_nrfx: i2s_nrfx_write: Queued TX 0x2000d178
    [00:21:07.257,821] <dbg> i2s_nrfx: data_handler: Queued RX 0x2000d3f8
    [00:21:07.258,003] <dbg> i2s_nrfx: free_tx_buffer: Freed TX 0x2000d8f8
    [00:21:07.258,184] <dbg> i2s_nrfx: supply_next_buffers: Next buffers: 0x2000cef8/0x2000d8f8
    [00:21:07.258,397] <dbg> i2s_nrfx: i2s_nrfx_read: Released RX 0x2000d3f8
    PCM raw: [00:21:07.258,600] <inf> audio: pair 0: L=0 R=0

    [00:21:07.258,741] <inf> audio: pair 1: L=1 R=0

    [00:21:07.258,881] <inf> audio: pair 2: L=0 R=0

    [00:21:07.259,021] <inf> audio: pair 3: L=1 R=0

    [00:21:07.259,161] <inf> audio: pair 4: L=0 R=0

    [00:21:07.259,298] <inf> audio: pair 5: L=1 R=0

    [00:21:07.259,430] <inf> audio:

    CHECK rawR: 0 1 0 1 0 1
    [00:21:07.259,626] <inf> audio: CHECK mono: 0 1 0 1 0 1

    [PCM] pcm_index=320 mono_samples=160
    [ADPCM] size=163 data=[00:21:07.260,085] <inf> audio: 00
    [00:21:07.260,196] <inf> audio: 01
    [00:21:07.260,306] <inf> audio: 00
    [00:21:07.260,416] <inf> audio: 00
    [00:21:07.260,526] <inf> audio: 91
    [00:21:07.260,637] <inf> audio: 91
    [00:21:07.260,747] <inf> audio: 91
    [00:21:07.260,857] <inf> audio: 91
    [00:21:07.260,968] <inf> audio: 91
    [00:21:07.261,078] <inf> audio: 91
    [00:21:07.261,188] <inf> audio: 91
    [00:21:07.266,303] <inf> audio: 00
    [00:21:07.266,416] <inf> audio: 00
    [00:21:07.266,528] <inf> audio: 91
    [00:21:07.266,640] <inf> audio: 91
    [00:21:07.266,753] <inf> audio: 91
    [00:21:07.266,864] <inf> audio: 91
    [00:21:07.266,975] <inf> audio: 91
    [00:21:07.267,085] <inf> audio: 91
    [00:21:07.267,195] <inf> audio: 91
    [00:21:07.267,303] <inf> audio:

    [00:21:07.267,432] <inf> audio: [ADPCM] queued len=163

    [00:21:07.267,587] <dbg> i2s_nrfx: i2s_nrfx_write: Queued TX 0x2000d3f8
    [00:21:07.277,791] <dbg> i2s_nrfx: data_handler: Queued RX 0x2000d678
    [00:21:07.277,973] <dbg> i2s_nrfx: free_tx_buffer: Freed TX 0x2000cc78
    [00:21:07.278,155] <dbg> i2s_nrfx: supply_next_buffers: Next buffers: 0x2000d178/0x2000cc78
    [00:21:07.278,368] <dbg> i2s_nrfx: i2s_nrfx_read: Released RX 0x2000d678
    PCM raw: [00:21:07.278,571] <inf> audio: pair 0: L=1 R=0

    [00:21:07.278,712] <inf> audio: pair 1: L=1 R=0

    [00:21:07.278,852] <inf> audio: pair 2: L=0 R=0

    [00:21:07.278,992] <inf> audio: pair 3: L=1 R=0

    [00:21:07.279,132] <inf> audio: pair 4: L=0 R=0

    [00:21:07.279,273] <inf> audio: pair 5: L=1 R=0

    [00:21:07.279,404] <inf> audio:

    CHECK rawR: 1 1 0 1 0 1
    [00:21:07.279,600] <inf> audio: CHECK mono: 1 1 0 1 0 1

    [PCM] pcm_index=160 mono_samples=160
    [00:21:07.279,863] <dbg> i2s_nrfx: i2s_nrfx_write: Queued TX 0x2000d678
    [00:21:07.297,753] <dbg> i2s_nrfx: data_handler: Queued RX 0x2000d8f8
    [00:21:07.297,931] <dbg> i2s_nrfx: free_tx_buffer: Freed TX 0x2000cef8
    [00:21:07.298,113] <dbg> i2s_nrfx: supply_next_buffers: Next buffers: 0x2000d3f8/0x2000cef8
    [00:21:07.298,326] <dbg> i2s_nrfx: i2s_nrfx_read: Released RX 0x2000d8f8
    PCM raw: [00:21:07.298,528] <inf> audio: pair 0: L=1 R=0

    [00:21:07.298,669] <inf> audio: pair 1: L=1 R=0

    [00:21:07.298,809] <inf> audio: pair 2: L=0 R=0

    [00:21:07.298,949] <inf> audio: pair 3: L=1 R=0

    [00:21:07.299,089] <inf> audio: pair 4: L=1 R=0

    [00:21:07.299,229] <inf> audio: pair 5: L=1 R=0

    [00:21:07.299,370] <inf> audio:

    CHECK rawR: 1 1 0 1 1 1
    [00:21:07.299,567] <inf> audio: CHECK mono: 1 1 0 1 1 1

    [PCM] pcm_index=320 mono_samples=160
    [ADPCM] size=163 data=[00:21:07.300,026] <inf> audio: 00
    [00:21:07.300,137] <inf> audio: 01
    [00:21:07.300,247] <inf> audio: 00
    [00:21:07.300,357] <inf> audio: 00
    [00:21:07.305,794] <inf> audio: 91
    [00:21:07.305,915] <inf> audio: 91
    [00:21:07.306,027] <inf> audio: 91  i git thisoutput why ??

  • Hi,

    Please check my configuration , I have doubt on my current Configuration .

  • const codec_register CODEC_DEF_REG_DATA[] = {

        // =====================================================
        // ===================== PAGE 0 ========================
        // =====================================================

        {0x00, 0x00}, // Select Page 0

        // Software reset
        {0x01, 0x01},

        // ---------- PLL CONFIG (MCLK = 4 MHz → 8 kHz Fs) ----------
        {0x04, 0x03}, // PLL input = MCLK, CODEC_CLK = PLL
        {0x05, 0xD4}, // PLL power up, P=5, R=4   D4   or 0x91
        {0x06, 0x20}, // J=32
        {0x07, 0x00}, // D MSB
        {0x08, 0x00}, // D LSB

        // ---------- DAC CLOCK TREE ----------
        {0x0B, 0x84}, // NDAC=4, power up
        {0x0C, 0x99}, // MDAC=25, power up
        {0x0E, 0x80}, // DOSR=128 → Fs = 8kHz
        {0x12, 0x84}, // NADC=4, power up
        {0x13, 0x99}, // MADC=25, power up
        {0x14, 0x80}, // AOSR=128

        // ---------- I2S DIGITAL ----------
        {0x1B, 0x0C}, // I2S, 16bit, BCLK and WCLK are output from device

        {0x1D, 0x01}, // DAC clock source  0x01 #bdiv_clkin=dac_mod_clk
        {0x1E, 0x84}, // BCLK divider  84 #bclk ndiv powered up, =4

        // Set the DAC Mode to PRB_P8
        {0x3C, 0x08},

        // 4Mhz * (R*j.d)/P
        // 4 * 4 * 32 / 5 = 102.4MHz
        // /ndac = 102.4/4 -> 25.6MHz = DAC_CLK
        // /mdac = 25.6MHz/25 = 1.024MHz = DAC_MOD_CLK
        // /dosr = 1.024/128 = 8khz = dac_fs

        // dac_mod_clk / 4 = 256kHz = bclk -> (2 channel 16 bit data)

        // =====================================================
        // ===================== PAGE 1 ========================
        // =====================================================

        {0x00, 0x01}, // Select Page 1

        // Disable Internal Crude AVdd in presence of external AVdd supply or before
        // powering up internal AVdd LDO
        {0x01, 0x08},

        // Enable Master Analog Power Control
        {0x02, 0x00},

        // Set the REF charging time to 40ms
        {0x7B, 0x01},

        {0x03, 0x00}, // Playback Configuration Register 1
        {0x04, 0x00}, // Playback Configuration Register 2
        {0x09, 0x30}, // Output Driver Power Control Register #hpl and hpr powered up, line outs powered down
        {0x0A, 0x00}, // Output Driver Power Control Register #avdd supply for hp
        {0x0C, 0x08}, // HPL Routing Selection Register #ldac pos terminal routed to hpl
        {0x0D, 0x08}, // HPR Routing Selection Register #rdac pos terminal routed to hpr
        {0x0E, 0x08}, // Left DAC → LOL #ldac routed to lol
        {0x0F, 0x08}, // Right DAC → LOR #rdac routed to lor
        {0x10, 0x00}, // HPL Driver Gain Setting Register #hpl driver not muted
        {0x11, 0x00}, // HPR Driver Gain Setting Register #hpr driver not muted
        {0x14, 0x25}, // Headphone Driver Startup Control Register #HP ramps over 5 time constants, power up determined with 6k
        {0x16, 0x00}, // IN1L to HPL Volume Control Register #in1l to hpl volume = 0db (path not set)

        // /* ---------- MIC (optional) ---------- */
        {0x33, 0x60}, // MIC Bias 2.5v #bias powered up set to 2.5V
        {0x34, 0x40}, // 01: IN1L is routed to Left MICPGA with 10k resistanceresistance,, 0x04-inl3
        {0x36, 0x40}, // Left MICPGA Negative Terminal Input Routing Configuration #cm1l to left neg terminal with 10k
        {0x3B, 0x40}, // Left MICPGA Volume Control Register #left micpga gain enabled, 0db  0x30-gain increase
        {0x3C, 0x00}, // Right MICPGA Volume Control Register #same for right micpga (nothing connected)

        // {0x46, 0x0A}, // MICBIAS = 2.5V
        // {0x48, 0x40}, // MICPGA P = MIC 10k
        // {0x49, 0x40}, // MICPGA M = CM 10k
        // {0x47, 0x00}, // MIC gain = 0dB

        // =====================================================
        // ===================== PAGE 0 ========================
        // =====================================================

        {0x00, 0x00}, // Select Page 0
       
        {0x3D, 0x01}, // Page 0, Reg 61 → PRB_R1 (basic ADC path)
        {0x3F, 0xD6}, // Powerup DAC left channel #ldac and rdac powered up
        {0x40, 0x00}, // Left & Right channel DAC unmuted
        {0x41, 0x00}, // DAC digital gain = 0dB #ldac gain=0db
        {0x51, 0x80}, // Powerup ADC   C0 #ladc powered up, radc powered down
        {0x52, 0x00}, // ADC channel unmuted, 0dB #both ladc and radc unmuted
        {0x53, 0x00}, // ADC Digital Volume Control Coarse = 0dB

        // =====================================================
        // ===================== PAGE 1 ========================
        // =====================================================

        // {0x00, 0x01}, // Select Page 1

        // {0x35, 0x44}, // LDAC and RDAC router to L & R mixer amplifier
        // {0x36, 0x80},
        // {0x37, 0x80},

        // {0x38, 0x80}, // Left Analog Vol to SPR, unmuted
        // {0x39, 0x80}, // Right Analog Vol to SPR, unmuted
        // {0x42, 0x04}, // Left Speaker gain = 6dB, unmuted
        // {0x43, 0x04}, // Left Speaker gain = 6dB, unmuted
        // {0x32, 0xC6}, // Speaker drivers power up
    };
Related