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.

TLV320AIC3204: Can not capture valid pcm data except reopening the ADC channel

Part Number: TLV320AIC3204

Hi,

We are having an issue that the Codec some times can not capture valid pcm data(i.e. recording mute sounds) after device powered up.

Our device is designed to keep the codec in a audio capture & playback state once the device is turning on.  The host will read/write the audio data to Codec when needed. The codec is init & configured to a certain state, after the configuration the host will NOT touch the codec's registers in all circumstances.

I've compared the faulty cases and the good cases, the registers' value are the same(see the attachment below),  expect that in faulty cases no valid pcm data can be read from codec. However, if I reopen(turn off then turn on) the ADC channel via Page 0 / Register 81(ADC Channel Setup Register), the codec will be back in good shape and started providing valid data.

Looks like the ADC channel is not actually opened at the first place though the register is indicated it is being opened. Is any requirement or sequences before turning the ADC channel powered up?

[  224.267203] JK--->Reg:01= 0x00
[  224.268134] JK--->Reg:02= 0x60
[  224.269951] JK--->Reg:03= 0x00
[  224.270884] JK--->Reg:04= 0x03
[  224.271797] JK--->Reg:05= 0x91
[  224.272718] JK--->Reg:06= 0x04
[  224.273625] JK--->Reg:07= 0x00
[  224.274532] JK--->Reg:08= 0x00
[  224.275439] JK--->Reg:09= 0x00
[  224.276348] JK--->Reg:10= 0x00
[  224.277255] JK--->Reg:11= 0x84
[  224.278161] JK--->Reg:12= 0x81
[  224.281128] JK--->Reg:13= 0x01
[  224.282065] JK--->Reg:14= 0xe0
[  224.282974] JK--->Reg:15= 0x02
[  224.283881] JK--->Reg:16= 0x00
[  224.284787] JK--->Reg:17= 0x08
[  224.285697] JK--->Reg:18= 0x81
[  224.286605] JK--->Reg:19= 0x8f
[  224.287511] JK--->Reg:20= 0x80
[  224.290209] JK--->Reg:21= 0x01
[  224.291169] JK--->Reg:22= 0x00
[  224.292082] JK--->Reg:23= 0x04
[  224.292988] JK--->Reg:24= 0x00
[  224.293896] JK--->Reg:25= 0x00
[  224.294805] JK--->Reg:26= 0x01
[  224.295713] JK--->Reg:27= 0x4c
[  224.296621] JK--->Reg:28= 0x01
[  224.297529] JK--->Reg:29= 0x09
[  224.300388] JK--->Reg:30= 0x8f
[  224.301341] JK--->Reg:31= 0x00
[  224.302255] JK--->Reg:32= 0x00
[  224.303161] JK--->Reg:33= 0x00
[  224.304069] JK--->Reg:34= 0x00
[  224.304977] JK--->Reg:35= 0x00
[  224.305885] JK--->Reg:36= 0xc8
[  224.306792] JK--->Reg:37= 0xcc
[  224.307711] JK--->Reg:38= 0x11
[  224.310401] JK--->Reg:39= 0x00
[  224.311349] JK--->Reg:40= 0x00
[  224.312264] JK--->Reg:41= 0x00
[  224.313171] JK--->Reg:42= 0x00
[  224.314079] JK--->Reg:43= 0x00
[  224.314984] JK--->Reg:44= 0x00
[  224.315889] JK--->Reg:45= 0x00
[  224.316795] JK--->Reg:46= 0x00
[  224.317704] JK--->Reg:47= 0x00
[  224.320474] JK--->Reg:48= 0x00
[  224.321427] JK--->Reg:49= 0x00
[  224.322339] JK--->Reg:50= 0x00
[  224.323245] JK--->Reg:51= 0x00
[  224.324152] JK--->Reg:52= 0x00
[  224.325061] JK--->Reg:53= 0x12
[  224.325978] JK--->Reg:54= 0x02
[  224.326887] JK--->Reg:55= 0x02
[  224.327795] JK--->Reg:56= 0x02
[  224.330389] JK--->Reg:57= 0x00
[  224.331341] JK--->Reg:58= 0x00
[  224.332255] JK--->Reg:59= 0x00
[  224.333162] JK--->Reg:60= 0x01
[  224.334068] JK--->Reg:61= 0x01
[  224.334974] JK--->Reg:62= 0x00
[  224.335881] JK--->Reg:63= 0xd8
[  224.336788] JK--->Reg:64= 0x00
[  224.337694] JK--->Reg:65= 0xef
[  224.340385] JK--->Reg:66= 0xef
[  224.341340] JK--->Reg:67= 0x00
[  224.342253] JK--->Reg:68= 0x6f
[  224.343163] JK--->Reg:69= 0x38
[  224.344081] JK--->Reg:70= 0x00
[  224.344991] JK--->Reg:71= 0x00
[  224.345896] JK--->Reg:72= 0x00
[  224.346804] JK--->Reg:73= 0x00
[  224.347712] JK--->Reg:74= 0x00
[  224.350443] JK--->Reg:75= 0xee
[  224.351391] JK--->Reg:76= 0x10
[  224.352302] JK--->Reg:77= 0xd8
[  224.353207] JK--->Reg:78= 0x7e
[  224.354110] JK--->Reg:79= 0xe3
[  224.355012] JK--->Reg:80= 0x00
[  224.355914] JK--->Reg:81= 0x80
[  224.356818] JK--->Reg:82= 0x08
[  224.357721] JK--->Reg:83= 0x7c
[  224.360229] JK--->Reg:84= 0x7c
[  224.361185] JK--->Reg:85= 0x00
[  224.362093] JK--->Reg:86= 0x00
[  224.362995] JK--->Reg:87= 0x00
[  224.363898] JK--->Reg:88= 0x7f
[  224.364801] JK--->Reg:89= 0x00
[  224.365703] JK--->Reg:90= 0x00
[  224.366603] JK--->Reg:91= 0x00
[  224.367507] JK--->Reg:92= 0x00
[  224.368485] JK--->Reg:93= 0x00
[  224.370957] JK--->Reg:94= 0x00
[  224.371882] JK--->Reg:95= 0x00
[  224.372791] JK--->Reg:96= 0x7f
[  224.373694] JK--->Reg:97= 0x00
[  224.374595] JK--->Reg:98= 0x00
[  224.375498] JK--->Reg:99= 0x00
[  224.376399] JK--->Reg:100= 0x00
[  224.377312] JK--->Reg:101= 0x00
[  224.378216] JK--->Reg:102= 0x00
[  224.380796] JK--->Reg:103= 0x00
[  224.381717] JK--->Reg:104= 0x00
[  224.382624] JK--->Reg:105= 0x00
[  224.383525] JK--->Reg:106= 0x00
[  224.384429] JK--->Reg:107= 0x00
[  224.385331] JK--->Reg:108= 0x00
[  224.386235] JK--->Reg:109= 0x00
[  224.387467] JK--->Reg PAGE1:1= 0x08
[  224.388376] JK--->Reg PAGE1:2= 0x01
[  224.390763] JK--->Reg PAGE1:3= 0x00
[  224.391684] JK--->Reg PAGE1:4= 0x00
[  224.392589] JK--->Reg PAGE1:5= 0x00
[  224.393490] JK--->Reg PAGE1:6= 0x00
[  224.394392] JK--->Reg PAGE1:7= 0x00
[  224.395293] JK--->Reg PAGE1:8= 0x00
[  224.396194] JK--->Reg PAGE1:9= 0x0c
[  224.397098] JK--->Reg PAGE1:10= 0x03
[  224.397999] JK--->Reg PAGE1:11= 0x10
[  224.400742] JK--->Reg PAGE1:12= 0x08
[  224.401664] JK--->Reg PAGE1:13= 0x10
[  224.402571] JK--->Reg PAGE1:14= 0x10
[  224.403472] JK--->Reg PAGE1:15= 0x08
[  224.404374] JK--->Reg PAGE1:16= 0x40
[  224.405286] JK--->Reg PAGE1:17= 0x40
[  224.406189] JK--->Reg PAGE1:18= 0x07
[  224.407090] JK--->Reg PAGE1:19= 0x07
[  224.407992] JK--->Reg PAGE1:20= 0x00
[  224.410767] JK--->Reg PAGE1:21= 0x00
[  224.411688] JK--->Reg PAGE1:22= 0x00
[  224.412594] JK--->Reg PAGE1:23= 0x00
[  224.413496] JK--->Reg PAGE1:24= 0x00
[  224.414398] JK--->Reg PAGE1:25= 0x00
[  224.415562] JK--->Reg PAGE1:26= 0x00
[  224.416481] JK--->Reg PAGE1:27= 0x00
[  224.417384] JK--->Reg PAGE1:28= 0x00
[  224.418287] JK--->Reg PAGE1:29= 0x00
[  224.420791] JK--->Reg PAGE1:30= 0x00
[  224.421713] JK--->Reg PAGE1:31= 0x00
[  224.422616] JK--->Reg PAGE1:32= 0x00
[  224.423520] JK--->Reg PAGE1:33= 0x00
[  224.424421] JK--->Reg PAGE1:34= 0x00
[  224.425324] JK--->Reg PAGE1:35= 0x00
[  224.426224] JK--->Reg PAGE1:36= 0x00
[  224.427125] JK--->Reg PAGE1:37= 0x00
[  224.428028] JK--->Reg PAGE1:38= 0x00
[  224.430772] JK--->Reg PAGE1:39= 0x00
[  224.431696] JK--->Reg PAGE1:40= 0x00
[  224.432602] JK--->Reg PAGE1:41= 0x00
[  224.433506] JK--->Reg PAGE1:42= 0x00
[  224.434408] JK--->Reg PAGE1:43= 0x00
[  224.435310] JK--->Reg PAGE1:44= 0x00
[  224.436211] JK--->Reg PAGE1:45= 0x00
[  224.437113] JK--->Reg PAGE1:46= 0x00
[  224.438013] JK--->Reg PAGE1:47= 0x00
[  224.440428] JK--->Reg PAGE1:48= 0x00
[  224.441390] JK--->Reg PAGE1:49= 0x00
[  224.444092] JK--->Reg PAGE1:50= 0x00
[  224.445040] JK--->Reg PAGE1:51= 0x68
[  224.445948] JK--->Reg PAGE1:52= 0x08
[  224.446850] JK--->Reg PAGE1:53= 0x00
[  224.447750] JK--->Reg PAGE1:54= 0x08
[  224.450051] JK--->Reg PAGE1:55= 0x00
[  224.451000] JK--->Reg PAGE1:56= 0x00
[  224.451906] JK--->Reg PAGE1:57= 0x00
[  224.452809] JK--->Reg PAGE1:58= 0x00
[  224.453711] JK--->Reg PAGE1:59= 0x05
[  224.454612] JK--->Reg PAGE1:60= 0x85
[  224.455513] JK--->Reg PAGE1:61= 0x00
[  224.456414] JK--->Reg PAGE1:62= 0x03
[  224.457315] JK--->Reg PAGE1:63= 0x30
[  224.458217] JK--->Reg PAGE1:64= 0x00
[  224.494309] JK--->Reg PAGE1:65= 0x00
[  224.495376] JK--->Reg PAGE1:66= 0x00
[  224.496366] JK--->Reg PAGE1:67= 0x00
[  224.497530] JK--->Reg PAGE1:68= 0x00
[  224.498504] JK--->Reg PAGE1:69= 0x00
[  224.499689] JK--->Reg PAGE1:70= 0x00
[  224.500611] JK--->Reg PAGE1:71= 0x00
[  224.501517] JK--->Reg PAGE1:72= 0x00
[  224.502417] JK--->Reg PAGE1:73= 0x00
[  224.503319] JK--->Reg PAGE1:74= 0x00
[  224.504219] JK--->Reg PAGE1:75= 0x00
[  224.505120] JK--->Reg PAGE1:76= 0x00
[  224.506022] JK--->Reg PAGE1:77= 0x00
[  224.506924] JK--->Reg PAGE1:78= 0x00
[  224.507831] JK--->Reg PAGE1:79= 0x00
[  224.508767] JK--->Reg PAGE1:80= 0x00
[  224.509915] JK--->Reg PAGE1:81= 0x00
[  224.510908] JK--->Reg PAGE1:82= 0x00
[  224.511913] JK--->Reg PAGE1:83= 0x00
[  224.512890] JK--->Reg PAGE1:84= 0x00
[  224.513920] JK--->Reg PAGE1:85= 0x00
[  224.514916] JK--->Reg PAGE1:86= 0x00
[  224.515887] JK--->Reg PAGE1:87= 0x00
[  224.516888] JK--->Reg PAGE1:88= 0x00
[  224.517823] JK--->Reg PAGE1:89= 0x00
[  224.518753] JK--->Reg PAGE1:90= 0x00
[  224.519738] JK--->Reg PAGE1:91= 0x00
[  224.520743] JK--->Reg PAGE1:92= 0x00
[  224.521672] JK--->Reg PAGE1:93= 0x00
[  224.522580] JK--->Reg PAGE1:94= 0x00
[  224.523494] JK--->Reg PAGE1:95= 0x00
[  224.524400] JK--->Reg PAGE1:96= 0x00
[  224.525306] JK--->Reg PAGE1:97= 0x00
[  224.526214] JK--->Reg PAGE1:98= 0x00
[  224.527119] JK--->Reg PAGE1:99= 0x00
[  224.528024] JK--->Reg PAGE1:100= 0x00
[  224.529024] JK--->Reg PAGE1:101= 0x00
[  224.530053] JK--->Reg PAGE1:102= 0x00
[  224.531044] JK--->Reg PAGE1:103= 0x00
[  224.532056] JK--->Reg PAGE1:104= 0x00
[  224.533059] JK--->Reg PAGE1:105= 0x00
[  224.534041] JK--->Reg PAGE1:106= 0x00
[  224.535026] JK--->Reg PAGE1:107= 0x00
[  224.536038] JK--->Reg PAGE1:108= 0x00
[  224.536974] JK--->Reg PAGE1:109= 0x00
[  224.537882] JK--->Reg PAGE1:110= 0x00
[  224.538830] JK--->Reg PAGE1:111= 0x00
[  224.539871] JK--->Reg PAGE1:112= 0x00
[  224.540869] JK--->Reg PAGE1:113= 0x00
[  224.541859] JK--->Reg PAGE1:114= 0x00
[  224.542788] JK--->Reg PAGE1:115= 0x00
[  224.543698] JK--->Reg PAGE1:116= 0x00
[  224.544605] JK--->Reg PAGE1:117= 0x00
[  224.545512] JK--->Reg PAGE1:118= 0x00
[  224.546420] JK--->Reg PAGE1:119= 0x00
[  224.547327] JK--->Reg PAGE1:120= 0x00
[  224.548233] JK--->Reg PAGE1:121= 0x00
[  224.549237] JK--->Reg PAGE1:122= 0x00
[  224.550220] JK--->Reg PAGE1:123= 0x04

  • Hi,

    The registers should not change if all powers are powered and enabled, in other words you should not need to set the registers again.

    I suggest that you check/monitor codec supplies on your setup if somehow it has temporary powered down the supply or disabled Page 1 Register 2 D3.

    Regards.