Найти в Дзене

Разработка умных Bluetooth-колонок на Jieli: Ключевые аспекты для SoC AC696N

Важно: Вывод RTCVDD должен питаться от внешнего источника, такого как батарейка-таблетка или IOVDD. Не оставляйте его неподключенным и не подключайте к неподходящей шине питания. Следующие функции могут использоваться для вывода текущего состояния регистров аудио ЦАП и АЦП, что крайне важно для отладки аудиопроблем. void audio_adda_dump(void) {
printf("DAC_VL0:%x", JL_AUDIO->DAC_VL0);
printf("DAC_TM0:%x", JL_AUDIO->DAC_TM0);
printf("DAC_DTB:%x", JL_AUDIO->DAC_DTB);
printf("DAC_CON:%x", JL_AUDIO->DAC_CON);
printf("ADC_CON:%x", JL_AUDIO->ADC_CON);
printf("DAC RES: DA0:0x%x DA1:0x%x DA2:0x%x DA3:0x%x ,ADC RES:ADA0:0X%x ADA1:0X%x ADA2:0X%x ADA3:0X%x\n", \
JL_ANA->DAA_CON0, JL_ANA->DAA_CON1, JL_ANA->DAA_CON2, JL_ANA->DAA_CON3, \
JL_ANA->ADA_CON0, JL_ANA->ADA_CON1, JL_ANA->ADA_CON2, JL_ANA->ADA_CON3);
}
void audio_adda_gain_dump(void) {
u8 dac_again_fl = JL_ANA->DAA_CON1 & 0x1F;
u8 dac_again_fr = (JL_ANA->DAA_CON1 >> 5) & 0x1F;
u8
Оглавление

1. Разработка с функцией RTC

Важно: Вывод RTCVDD должен питаться от внешнего источника, такого как батарейка-таблетка или IOVDD. Не оставляйте его неподключенным и не подключайте к неподходящей шине питания.

2. Вывод значений регистров, связанных с чипом

Вывод значений регистров ADDA

Следующие функции могут использоваться для вывода текущего состояния регистров аудио ЦАП и АЦП, что крайне важно для отладки аудиопроблем.

  • Вывод всех регистров ЦАП и АЦП:

void audio_adda_dump(void) {
printf("DAC_VL0:%x", JL_AUDIO->DAC_VL0);
printf("DAC_TM0:%x", JL_AUDIO->DAC_TM0);
printf("DAC_DTB:%x", JL_AUDIO->DAC_DTB);
printf("DAC_CON:%x", JL_AUDIO->DAC_CON);
printf("ADC_CON:%x", JL_AUDIO->ADC_CON);
printf("DAC RES: DA0:0x%x DA1:0x%x DA2:0x%x DA3:0x%x ,ADC RES:ADA0:0X%x ADA1:0X%x ADA2:0X%x ADA3:0X%x\n", \
JL_ANA->DAA_CON0, JL_ANA->DAA_CON1, JL_ANA->DAA_CON2, JL_ANA->DAA_CON3, \
JL_ANA->ADA_CON0, JL_ANA->ADA_CON1, JL_ANA->ADA_CON2, JL_ANA->ADA_CON3);
}

  • Вывод всех настроек усиления АЦП и ЦАП:

void audio_adda_gain_dump(void) {
u8 dac_again_fl = JL_ANA->DAA_CON1 & 0x1F;
u8 dac_again_fr = (JL_ANA->DAA_CON1 >> 5) & 0x1F;
u8 dac_again_rl = (JL_ANA->DAA_CON1 >> 10) & 0x1F;
u8 dac_again_rr = (JL_ANA->DAA_CON1 >> 15) & 0x1F;

u32 dac_dgain_fl = JL_AUDIO->DAC_VL0 & 0xFFFF;
u32 dac_dgain_fr = (JL_AUDIO->DAC_VL0 >> 16) & 0xFFFF;
u32 dac_dgain_rl = JL_AUDIO->DAC_VL1 & 0xFFFF;
u32 dac_dgain_rr = (JL_AUDIO->DAC_VL1 >> 16) & 0xFFFF;

u8 mic0_gain = (JL_ANA->ADA_CON0 >> 8) & 0x1F;
u8 mic0_db = (JL_ANA->ADA_CON4 >> 29) & 0x1;
// 0дБ или 6дБ

u8 linein_r_gain = (JL_ANA->ADA_CON0 >> 4) & 0xF;
u8 linein_l_gain = JL_ANA->ADA_CON0 & 0xF;
printf("MIC_G:%d,MIC_0_6:%d, linein_gain:%d,%d,DAC_AG:%d,%d,%d,%d,DAC_DG:%d,%d,%d,%d\n",
mic0_gain, mic0_db, linein_l_gain, linein_r_gain,
dac_again_fl, dac_again_fr, dac_again_rl, dac_again_rr,
dac_dgain_fl, dac_dgain_fr, dac_dgain_rl, dac_dgain_rr);
}

3. Включение поддержки формата AAC

Для добавления поддержки декодирования аудио AAC в ваш проект:

1) Включите основное определение макроса в вашей конфигурации:

#define TCFG_BT_SUPPORT_AAC 1 // Включить поддержку формата AAC

2) Важно: Для версий SDK AC696N Soundbox (1.5.0 и выше) вы также должны включить следующую конфигурацию в файле:
SDK\apps\soundbox\log_config\lib_media_config.c

const int config_aac_dec_use_malloc = 1;

4. Отключение функции плавного включения (fade-in) ЦАП

Принцип: Предотвратить уменьшение громкости ЦАП до нуля при остановке. В зависимости от конструкции вашего оборудования, это может привести к заметному увеличению фонового шума.

  • Вызовите эту функцию перед воспроизведением аудио:

audio_dac_vol_mute_lock(1);

  • Примечание: Из-за ограничений конструкции аппаратного обеспечения функцию плавного выключения (fade-out) ЦАП отключить нельзя. Сравните выходной сигнал ЦАП при включенном и выключенном переключателе, чтобы оценить влияние на вашу конкретную конструкцию.
-2

Итог
Внимание к этим аспектам — правильное питание RTC, использование функций вывода регистров, корректное включение AAC и управление поведением затухания ЦАП — поможет избежать распространенных ошибок и упростить процесс разработки продуктов на базе AC696N.