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.

AER C6748

Hello, 

I have AER library from TI, c64x+. I try to run this lib. I call:

1.aer_sim_init(&siuSetup);

2. aerGetSizes()

3. siu_alloc_aer_buffs()

4. aerNew()

5. aerOpen()

6. aerControl ()

7.aerActivate()

and then I try to process data using aerReceiveIn(). I don't get error but this function doesn't make anything with this data (data flow through). I know that it is an example (which doesn't work on my PC). I use ccs 5.4. Has anybody working project with echo canceller?

Kind regards,

  • Hello Rafael,

    Please try the following:

    1. Check the return code of every AER API functions and make sure it is aer_NOERR.

    2. Please make sure that AER is enabled through aerControl().

    Regards,

    Jianzhong

  • Hello,

    1. Yes, I don't have any errors from functions.

    2. My control function was taken from TI's example: 

    aer_ctl.valid_bitfield_0 =aer_CTL_VALID0_MODES_CTL0
    | aer_CTL_VALID0_MODES_CTL1
    | aer_CTL_VALID0_Y2X_DELAY
    | aer_CTL_VALID0_PHONE_MODE
    | aer_CTL_VALID0_RX_ANALOG
    | aer_CTL_VALID0_TX_ANALOG
    | aer_CTL_VALID0_RX_DIGITAL
    | aer_CTL_VALID0_TX_DIGITAL
    | aer_CTL_VALID0_RX_EQ_PARAMS
    | aer_CTL_VALID0_TX_EQ_PARAMS;

    aer_ctl.modes_0.mask = 0xffff;
    aer_ctl.modes_0.value = 0x188f;
    aer_ctl.modes_1.mask = 0xffff;
    aer_ctl.modes_1.value = 0xc1ce;
    aer_ctl.modes_2.mask = 0xffff;
    aer_ctl.modes_2.value = 0x001d;
    aer_ctl.y2x_delay = aer_pars->y2x_delay >> srate_rxout_txin;
    aer_ctl.srate_bitfield = 6; /* Rx in 8kHz, Tx out 16kHz, Rx out/Tx in 16kHz */
    aer_ctl.tail_length = 800; /* 800 = 100msec/125usec */
    aer_ctl.delay_tx_ag_chg = AER_SIM_PIU_DEL_TX + 1;
    aer_ctl.delay_rx_ag_chg = AER_SIM_PIU_DEL_RX + 1;
    aer_ctl.num_samp_interp = 5;
    aer_ctl.phone_mode = aer_PHM_HES;
    aer_ctl.gain_rx_analog = 0;
    aer_ctl.gain_tx_analog = 0;
    aer_ctl.gain_rx_digital = 0;
    aer_ctl.gain_tx_digital = 0;
    aer_ctl.rxeq_params = (aerEqConfig_t *)&sampleEqBqParamsRx;
    aer_ctl.txeq_params = (aerEqConfig_t *)&sampleEqBqParamsTx;

    and so on. In aer.h there is also define:

    #define aer_CTL0_ENABLE_ECHO_CANCELLER 0x0001 /**< enable AER              */

    but I don't know how to use it.

    Raf

  • Did you call aerCreate() which must be called before aerGetSizes()?

    The code you have is test code to test AER API. You shouldn't take it and use without understanding the API. Again, you'll need to read the Integration Guide and API documentation aer.chm.

    Regards,

    Jianzhong

  • Yes, I call aerCreate() before aerGetSizes() but I forgot to write this in my first post. This example doesn't work unless you change buffer sizes manually (it took 2 weeks). I choose only aer functions from this example and try to run this basic component (without DRC etc).