Thanks in advance for any assistance!
I'm having an issue with the DA7212 where I only see the positive side of the waveform when I drive the headphone output. It doesn't matter if it is audio received through the DAI or sine waves from the tone generator. I've tried a number of different charge pump configurations and continue to have the same issue. One of the charge pump configurations tried is listed below.
static const reg_entry_t da7212_primaryConfig[] = { /* ... General setup and routing entries removed for brevity ... */ { CP_DELAY, (CP_LIMITER_AUTO | CP_TAU_DELAY_4MS | CP_FCONTROL_0KHZ) }, { CP_VOL_THRESHOLD1, 0x20 }, { CP_DETECTOR, CPDET_DROP_25MV }, { CP_CTRL, (CP_EN | CP_SMALL_SWITCH_FREQ_EN | CP_MCHANGE_BY_DAC | CP_MOD_STANDBY | CP_ANALOG_LVL_BOOST) } };
I'm working off of a custom PCB, but I based it on the ard-audio-da7212 schematic foundhere.
Any ideas?
Gary
Device:
In case it's helpful, the following are DC voltage measurements at some of the caps. Taken with a Fluke 45 desktop multimeter.
Capacitor
Description
High-Side
Low-Side
C24
VDD_A bypass
1.9002V
GND
C37
HPCFP/N Flyback cap
1.8357V
0.9107V
C40
HPCSN
-0.8589V
GND
C41
HPCSP
0.9722V
GND
C39
Vref
1.1971V
GND
C43
Vmid
0.7024V
GND
C38
Vdig
1.0743V
GND
促
DACref
1.6883V
GND
C21
VDD_IO bypass
3.317V
GND
C22
VDD_SP bypass
3.317V
GND
So, if HPCSN really is the negative rail for the headphone output then I do seem to have a negative rail at -0.86V. But yet I don't see that on my HP_L/HP_R output.
Just to try something, I took the codec init settings from bmcadam in another recent post (attachment was named Initial setup slave mode PLL with SRM 8khz 16bit I2S to HP.zip) and replaced my original config. I changed SR to 16kHz, but otherwise left it untouched. Despite the filename, the PLL is set to bypass in the config not PLL with SRM.
I get the same result with the negative side of the generated tone not being present. The only difference was because of the different charge pump settings, the voltage at HPCSN was -1.8947V.
For completeness, the settings from the file are given below.
WRITE DA7212 0x92 0x00 //Set Ramp rate to default
DELAY 40
WRITE DA7212 0x90 0x80 //Enable Digital LDO
WRITE DA7212 0x29 0xC0 //Enable AIF 16bit I2S mode
WRITE DA7212 0x22 0x05 //Set incoming sample rate to 16kHz - originally was 1 for 8kHz
WRITE DA7212 0x94 0x02 //Set PC sync to resync
WRITE DA7212 0x27 0x04 //PLL_CTRL PLL disabled
WRITE DA7212 0x2A 0x32 //Route DAI to Outputs
WRITE DA7212 0x4B 0x08 //MIXOUT_L input from DACL
WRITE DA7212 0x4C 0x08 //MIXOUT_R input from DACR
WRITE DA7212 0x47 0xCD //Enable charge pump, CP_MOD mode, CPVDD/1 and Boost CP
WRITE DA7212 0x95 0x36 //Set CP threshold to 0x36
WRITE DA7212 0x96 0xA5 //Set CP Tau DELAY to 64ms
WRITE DA7212 0x48 0x2D //Set volume to -12dB
WRITE DA7212 0x49 0x2D //Set volume to -12dB
WRITE DA7212 0x51 0xF1 //Enable DAC, Mix and HP amplifiers
WRITE DA7212 0xB5 0x60 //Set tone gen gain to -18dB
And then waited for busy to clear in SYSTEM_STATUS before continuing.
Made direct contact with customer to resolve issue.