Skip to main content

CODECs & Amplifiers

Full-range, high fidelity audio codecs

Our audio technology allows the capture of speech and audio with high quality and low power consumption while at the other end of the audio channel enables speaker playback at maximum volume and power efficiency while extending battery usage time.

 

man_touching_headphones.jpg

Improving customer access to voice recognition functionality

We offer a range of low power, Hi-Fi audio CODECs and Class Ds with different features and in different packages suitable for a variety of low power, digital portable audio products. CODECs are designed to offer different levels of dynamic range and improve the power consumption for the record and playback paths by optimizing the always ON mode and utilizing efficient charge pump technologies.

CODEC Product Portfolio
Product Description Applications
Ultra Low Power Stereo Audio CODEC
Portable Media Players  I Personal Navigation Devices
Ultra Low Power Stereo Audio CODEC with 650µW Always-On Mode
Portable Media players I Headphones I Headsets I Embedded Applications  I Wearables I
Arduino Compatible Development Systems
Ultra Low Power Stereo Audio CODEC with differential headphone driver
Headsets | Hearables | Headphones
Ultra Low Power Stereo Audio CODEC with single ended headphone driver
Headsets | Headphones | Portable Media Players | Audio Accessories
DA7219 Audio CODEC with Advanced Accessory Detect Headphone accessories | Tablets and eBooks | Gaming controllers | Remote controllers | Portable audio applications | Chromebooks
DA7400 Stereo high-performance CODEC Configurable headsets (Bluetooth / USB-C) | IoT devices | Consumer Hi-Res Audio systems
DA7401 Mono high-performance CODEC with ANC TWS earbuds | In-ear headsets (USB-C) | Hearables
DA7402 Stereo high-performance CODEC with ANC Wireless (Bluetooth) over- and on-ear headphones | Wired (USB-C) over- and on-ear headphones

 

Amplifier Product Portfolio
Product Description Applications
DA7202 10W Mono Class D for Dual Cell
Ultrabooks | Tablets | Personal Navigation Devices | Speaker Accessories | Handheld Gaming

Stay connected

Get in touch with us directly through our worldwide sales offices, or contact one of our global distributors and representatives.

Inquiries Distributors and Representatives Audio & Voice portal
Product ID Package Description ADC SNR A-weighted support(dB) @ 48kHz DAC SNR A-weighted support(dB) @ 48kHz Power consumption Record Power consumption Playback Headphone Pout Control Features Documents
                     
DA7210 49-WLCSP 0.4mm Ultra Low Power Stereo CODEC 96 @ 2.5V 102 @ 2.5V 3.5mW @ 1.8V 2.5mW @1.8V   2/4-wire General purpose filter engine Documentation
DA7211 36-WLCSP 0.5mm Ultra Low Power Stereo CODEC 96 @ 2.5V 102 @ 2.5V 3.5mW @ 1.8V 2.5mW @1.8V 2 x 58mW @ 2.5V into 16Ω 2-wire General purpose filter engine Documentation
DA7212 34-WLCSP 0.5mm (Staggered) Ultra low power Stereo CODEC with 650µW always On mode 90 @ 1.8V 100 @ 1.8V 2.0mW @ 1.8V 3.1mW @ 1.8V 2 x 67mW @ 2.5V 2-wire 5bd EQ, ALC, Noise gate, Beep generator Documentation
DA7217 32-WLCSP 0.5mm (Staggered) Ultra low power Stereo CODEC with differential outputs 105 @ 1.8V 110 @ 1.8V 2.5mW @ 1.8V 4mW @ 1.8V 2 x 57mW @ 2.5V 2-wire 5bd EQ, 3bd Sidetone, ALC, Noise gate, Beep generator Documentation
DA7218 32-WLCSP 0.5mm (Staggered) Ultra low power Stereo CODEC with single-ended outputs 105 @ 1.8V 110 @ 1.8V 2.5mW @ 1.8V 4mW @ 1.8V 2 x 58mW @ 1.8V 2-wire 5bd EQ, 3bd Sidetone, ALC, Noise gate, Beep generator Documentation
DA7219 32-WLCSP 0.5mm (Staggered) Ultra low-power audio codec with Advanced Accessory Detection (AAD) 90 @ 1.8V 100 @ 1.8V 2.75mW @ 1.8V 3.4mW @ 1.8V 2 x 70mW @ 2.5V 2-wire Advanced Accessory detection, polarity switching Documentation
DA7400 32-WLCSP 0.4mm High Performance Stereo Codec 95 @ 1.8V 115 @ 1.8V 3mW @ 1.8V 8.5mW @ 1.8V 2 x 67mW @ 1.8V 2-wire General purpose filter engine Documentation
DA7401 32-WLCSP 0.4mm Mono Active Noise Cancellation Codec 95 @ 1.8V 115 @ 1.8V 3mW @ 1.8V 5.8mW @ 1.8V 1 x 100mW @ 1.8V 2-wire Hybrid Active Noise Cancellation, Audio Processing Unit Documentation
DA7402 32-WLCSP 0.4mm Stereo Active Noise Cancellation Codec 95 @ 1.8V 115 @ 1.8V 3mW @ 1.8V 8.5mW @ 1.8V 2 x 67mW @ 1.8V 2-wire Hybrid Active Noise Cancellation, Audio Processing Unit Documentation
Product ID Package Description Prms Supply (V) Efficiency SNR A-weighted(dB) THD_N (dB) PSRR @ 217Khz (dB) Documents
DA7202 9-WLCSP 0.5mm 10W Mono Class D for Dual Cell 10.2W @ 8.2V 10% THD 4Ω 4.5 - 9.0 90% @ 8.2V, Pout = 3.5W 104dB @ 8.2W 90dB @ 3.0W 78 Documentation

Stay connected

Get in touch with us directly through our worldwide sales offices, or contact one of our global distributors and representatives.

Inquiries Distributors and Representatives Audio & Voice portal

Visit our Audio & Voice portal here

 

Back to results

DA7212

3 months ago

Microphone issue

Posted by CharlieB 35 points 12 replies
0 upvotes

I cannot seem to get Mic_1 working on the ARD-AUDIO-DA7212.  I have tried 3 different mics that work on the PC and 2 different ARD boards with the same result.

The AUX input work fine so I know MixIn-ADC-DAC-Mixout-HP as working correctly.

I have attached a copy of the register dump.  Any advice would be very welcome.

Attachment Size
Mic_1 Problem Register settings 225.56 KB

3 months ago

ED_Dialog

Hi Charlie,

I will look into this and get back to you.

Kind regards,
ED

3 months ago

ED_Dialog

Hi Charlie,

Could you share the set-script you are using?

Kind regards,
ED

2 weeks ago

 I have to admit that you have shown a great insperation in this wonderful site. I understood that we should teach a tactical approach in every learning opportunity that we received even in our own ways of learning before teaching technical skills and showing the result to others to come up for successful and contented result and through this i was able to modify each poject that i have specialy this one.............

https://www.mybalancenow.today/

2 months ago

CharlieB 35 points

/*
 * DA7212.c
 *
 * Created: 3/10/2021 7:39:48 PM
 *  Author: Charles
 */ 

/*  Global interrupts must be enabled 
    prior to calling this module
*/

#include <atmel_start.h>
#include <i2c_types.h>
#include <i2c_simple_master.h>
#include <utils/atomic.h>

#include <AVR_DA7212_System.h>

#define slave_7bit_adr 0x1A

uint8_t input_source = 1;   // 0 = AUX:  1 = Mic1_L
uint8_t output_source = 2;  // 0 = AUX:  1 = MixIn:  2 = DAC

#define HP_GAIN_default 0x39 // 0 db  //0x3F // +6db 
uint8_t HP_L_GAIN = HP_GAIN_default;
uint8_t HP_R_GAIN = HP_GAIN_default;

#define DAC_FILTERRS1_default 0x8C    // Voice FIlter Enabled (EQ disabled)
uint8_t DAC_FILTERRS1 = DAC_FILTERRS1_default;

i2c_error_t setup_result;
uint8_t I2C_reg_data[1];

void set_reg(uint8_t reg_adr, uint8_t reg_data){
     if (I2C_0_write1ByteRegister(slave_7bit_adr,reg_adr, reg_data)!=I2C_NOERR)
        setup_result=I2C_FAIL;
    else
        setup_result=I2C_0_do_transfer(reg_adr, I2C_reg_data,1); 
  }

i2c_error_t DA7212_Init(void)
{
    setup_result = I2C_NOERR;
    DA7212_System_Init();  // Set DA7212 globals
    DA7212_Input_Setup(input_source);
    
    DA7212_ADC_Setup();
    DA7212_DAC_Setup();
    
    DA7212_Output_Setup(output_source);
    DA7212_Tone_Control(99); // setup the Tone Generator
    
    return setup_result;
}
void DA7212_ALC(void){
// Setup ALC
set_reg(0xA1, 0x80); // ALC Anti Clip Enabled
set_reg(0x9A, 0x60); // Attack - Release
set_reg(0x9B, 0x48); // Hold time
set_reg(0x9F, 0xFF); // Max Gain
set_reg(0xA0, 0x61); // Max Gain +36db, Max Att = 0db
set_reg(0x9C, 0x2F); // Noise gate = -70.5db
set_reg(0x9D, 0x08); // Min Sig Threshold = -12db
set_reg(0x9E, 0x05); // Max Sig threshold = - 7.5db

// Mute Audio
set_reg(0x63, 0xC4);  // Mic 1
set_reg(0x67, 0x40); // ADCL

pause(600);

// Enable ALC
set_reg(0x2B, 0x10); // Configure offset Calibration
pause(600);

// Check for ALC Calibration Complete
set_reg(0x2B, 0x0B); // Enable ALC on L
pause(300);

// UnMute
set_reg(0x63, 0x84);  // Mic 1
set_reg(0x67, 0xA0); // ADCL

// Done with ALC calibration

    
}
void DA7212_Tone_Control(uint8_t band){
 uint8_t freq_U = 0;
 uint8_t freq_L = 0;
 
    switch(band)
    {
        case 1: freq_U = 0x0A; freq_L = 0xBB; break; 
        case 2: freq_U = 0x20; freq_L = 0x33; break; 
        case 3: freq_U = 0x40; freq_L = 0x67; break; 
        case 4: freq_U = 0x80; freq_L = 0xcE; break;
        case 99:
            // Tone Generator Setup
            set_reg(0xB5,0x01); // Select SWG2
            set_reg(0xB6,0x07); // Infinite cycles
            set_reg(0xBB,0x3F); // Continuous tone
            set_reg(0xBC,0x3F); // Continuous tone
            break;
        default:
            set_reg(0xB4,0x00);
            set_reg(0x2A,0x00); // DAC_Routing (from ADC_L)
            break; // Stop Beep
    }
    if (freq_U > 0){
        set_reg(0x2A,0x32); // DAC_Routing (to TONE Gen)
        set_reg(0xB7, freq_L);
        set_reg(0xB8, freq_U);
        set_reg(0xB4, 0x80); // Start Tone
        }
}
void DA7212_System_Init(void)
{
    set_reg(0x1D,0x80); //reset all reg
    set_reg(0xFD,0x01); // SYSTEM ACTIVE
    
    // LDO
    set_reg(0x23,0x88); // Enable Master Bias for LDO
    set_reg(0x91,0x01);    // LDO io voltage
    set_reg(0x90,0x90); // LDO Enable
    
    // Set up PLL
    set_reg(0x22,0x0A); // Sample Rate (SR) (0x0A default = 44.1khz)
    set_reg(0x26,0x00); // PLL_INTEGER
    set_reg(0x27,0x80); // PLL_Cntrl
    set_reg(0xF0,0x8B);  // adj required for 2-5 Mhx clk
    set_reg(0xF1,0x03);
    set_reg(0xF0,0x00); // End of adjustment
    set_reg(0x94,0x01); // PC_COUNT - Freerun for ADC -> DAC
    
    // Charge Pump
    set_reg(0x95,0x06); // CP_Threshold
    set_reg(0x96,0xA5); // more CP Delay
    set_reg(0x47,0xF1); //enable charge pump
    
}

void DA7212_Input_Setup(uint8_t selected_device)
{
    // Sets Up from input to MixIn

    switch(selected_device)
    {
        case 0: ;
            // Set up AUX input
            set_reg(0x30,0x35); // AuX_L_Gain
            set_reg(0x31,0x35); // AuX_R_Gain
            set_reg(0x32,0x01); // Mixin_L_Select
            set_reg(0x33,0x01); // Mixin_R_Select
            set_reg(0x34,0x03); // Mixin_L_Gain
            set_reg(0x35,0x03); // Mixin_R_Gain
            
            set_reg(0x60,0x84);    // AUX_L_CTRL
            set_reg(0x61,0x84); // AUX_R_CTRL
            
            set_reg(0x65,0x88); // MixIn_L_CTRL
            set_reg(0x66,0x88); // Mixin_R_CTRL
        break;
        case 1: ;
            // Setup Mic on MIC1_L
            set_reg(0x32,0x02); // Mixin_L_Select
            set_reg(0x34,0x03); // Mixin_L_Gain
            set_reg(0x39,0x07); // Mic 1 Gain
            set_reg(0x62,0x19); // MICBIAS_CTRL
            set_reg(0x63,0x84); // MIC_1_CTRL
            set_reg(0x65,0x88); // MixIn_L_CTRL
            
            DA7212_ALC();

        break;
    }
}

void DA7212_ADC_Setup()
{
    // Setup ADC (0x36->0x38)  |  ---> take default
    set_reg(0x67,0xA0); // ADC_L_CTRL
//    set_reg(0x68,0x80); // ADC_R_CTRL
    //  disable R when using Mic
}
void DA7212_DAC_Setup(void)
{
    // Setup DAC
    set_reg(0x2A,0x00); // DAC_Routing (from ADC)
    set_reg(0x69,0x88); // DAC_L_CTRL enabled
    set_reg(0x6A,0x80); // DAC_R_CTRL enabled
    //    set_reg(0x44,DAC_FILTERRS1); // Hi_Pass, Voice 0r Equalizer
    //    set_reg(0xB2,0x80); // Noise gate enabled

}
void DA7212_Output_Setup(uint8_t selected_device)
{
    switch (selected_device)
    {
        case 0:                        // Bypass ADC->DAC
                set_reg(0x4B,0x01); // MixOut_L_Select - AUX
                set_reg(0x4C,0x01); // MixOut_R_Select - AUX
            break;
        case 1:
                set_reg(0x4B,0x02); // MixOut_L_Select - Mixin_L
                set_reg(0x4C,0x02); // MixOut_R_Select - Mixin_R
                break;
        case 2:
                set_reg(0x4B,0x08); // MixOut_L_Select - DAC
                set_reg(0x4C,0x08); // MixOut_R_Select DAC
            break;
    }
    // Setup Mix Out, HP's
    set_reg(0x6E,0x98); // MixOut_L_CTRL
    set_reg(0x6F,0x98); // Mixout_R_CTRL
//    set_reg(0x48,0x3F); // HP_L_GAIN
//    set_reg(0x49,0x3F); // HP_R_GAIN
    set_reg(0x6B,0x89); // HP L enable
    set_reg(0x6C,0x88); // HP R enable    
}

 

2 months ago

Shabazz15 5 points

Thanks for the information, I will try to figure it out for more. Keep sharing such informative post keep suggesting such post. 

https://www.myaarpmedicare.guru/

2 months ago

Creminland 5 points

I faced similar kind of issue last time, I am still searching for some proper solution Same issue still no fix to this.

 

JCPenneyKiosk

2 months ago

ED_Dialog

Hello,

Sorry for the slow response. I will speak with the team and get back to you. 

1 month ago

ED_Dialog

Hello Charlie,

Could you send me a I2C register dump?

The MIC settings look to be ok, would it be possible to ship one board to us?

Kind regards,

ED

1 month ago

CharlieB 35 points

The first dump I sent you was an I2C dump - reformatted to make debugging easier. 

I am sure it is accurate.  I reattached it to this message as a pdf file

If the raw file is absolutely necessary I can possibly recreate it but not with much pain.

Where should I send the board?

 

Attachment Size
Mic_Prob_Dump.pdf 225.56 KB

1 month ago

ED_Dialog

Hello All,

We have tested the configuration with a ARD board on our side and find it is working correctly. 

Could you send a picture of your set-up, so we can check the mic connection? What is your mic bias voltage?

It might be the case we need to replace your boards, i will reach out with a private reply to get the contact and address info.

kind regards,
Elliott 

2 days ago

CharlieB 35 points

Could you post the code used to test with ARD board.  It would be a big help as I can duplicate your test.

 

2 days ago

CharlieB 35 points

Contact Info:

Charles Becklein

400 N Federal Hwy Suite 515

Deerfield Beach FL 33441

(561) 271- 2609

carolcharlesb@msn.com

 

Thanks for your help