Jieli Bluetooth Smart Speaker Development: Key Considerations for AC696N SoCs
When developing Bluetooth smart speakers based on Jieli's AC696N series of SoCs, paying attention to certain hardware and software details can significantly improve development efficiency and system stability. This article summarizes several key points, including RTC power supply, register debugging, AAC format support, and DAC fade-in settings.
1. Developing with RTC Functionality
Note:The RTCVDD pinmust be powered by an external power source, such as a button cell battery or IOVDD. Do not leave it floating or connect it to an inappropriate voltage rail.

2. Chip-Related Register Printing
ADDA Register Value Printing
The following functions can be used to dump the current state of the Audio DAC/ADC registers, which is invaluable for debugging audio issues.
· Print all DAC and ADC registers:
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);}
· Print all DAC and ADC registers:Print all ADC and DAC gain settings: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; // 0dB or 6dB
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. Enabling AAC Format Support
To add AAC audio decoding support to your project:
1)Enable the main macro definition in your configuration:
#define TCFG_BT_SUPPORT_AAC 1 // Enable AAC format support2)Important: For AC696N Soundbox SDK versions (1.5.0 and above), you must also enable the following configuration in: SDK\apps\soundbox\log_config\lib_media_config.c const int config_aac_dec_use_malloc = 1;4. Disabling DAC Fade-In Function
Principle:Prevent the DAC from ramping the volume down to zero when stopping. This may lead to a perceptible increase in background noise, depending on your hardware design.
- Call this function before playing audio:
audio_dac_vol_mute_lock(1);
Note: Due to hardware design constraints, the DAC fade-out function cannot be disabled. Compare the DAC output with this switch toggled on and off to evaluate the impact on your specific design.
By keeping these points in mind—proper RTC power, utilizing register dump functions, correctly enabling AAC, and managing DAC behavior—you can avoid common pitfalls and streamline your development process for AC696N-based smart speaker products.
评论
发表评论