AUX和I2S 高通Le Audio广播接收Auracast™ broadcast audio
蓝牙版本:V5.4
开关机:开机脚上升沿开机,下降沿关机。
广播主从:PIO15 高电平为广播模式,低电平为接收模式。
支持动态切换。
AMP:有音频输出时PIO4高电平,无音频输出时PIO4低电平。
音量调节:PIO22短按音量加,PIO23短按音量减。
Led:开机后呼吸灯指示。
AUX输入检测:PIO5高电平未插入,低电平插入,仅仅在广播模式下生效,接收模式无效。
I2S输入检测:PIO20高电平未插入,低电平插入, 仅仅在广播模式下生效,接收模式无效。
I2S优先级大于AUX,即I2S和AUX同时检测到时,取I2S音频。
I2S引脚定义:
SCK: PIO16
WS: PIO17
SD_IN:PIO19
I2S格式配置如下:
I2S做从
采样率48K
左对齐,1 Bit Delay
void Kymera_ConfigureMusicProcessing(uint32 sample_rate)
{
if(Kymera_IsMusicProcessingPresent())
{
kymera_chain_handle_t chain = KymeraGetTaskData()->chain_music_processing_handle;
Operator eq;
Operator user_eq;
PanicNull(chain);
PanicFalse(Kymera_SetOperatorUcid(chain, OPR_ADD_HEADROOM, UCID_PASS_ADD_HEADROOM));
PanicFalse(Kymera_SetOperatorUcid(chain, OPR_SPEAKER_EQ, UCID_SPEAKER_EQ));
PanicFalse(Kymera_SetOperatorUcid(chain, OPR_REMOVE_HEADROOM, UCID_PASS_REMOVE_HEADROOM));
eq = PanicZero(ChainGetOperatorByRole(chain, OPR_SPEAKER_EQ));
OperatorsStandardSetSampleRate(eq, sample_rate);
user_eq = ChainGetOperatorByRole(chain, OPR_USER_EQ);
if(user_eq)
{
OperatorsStandardSetSampleRate(user_eq, sample_rate);
#if defined(INCLUDE_MUSIC_PROCESSING)
Kymera_SelectEqBankNow(KymeraGetTaskData()->eq.selected_eq_bank);
#endif
}
if(KymeraGetTaskData()->chain_config_callbacks && KymeraGetTaskData()->chain_config_callbacks->ConfigureMusicProcessingChain)
{
kymera_music_processing_config_params_t params = {0};
params.sample_rate = sample_rate;
KymeraGetTaskData()->chain_config_callbacks->ConfigureMusicProcessingChain(chain, ¶ms);
}
ChainConnect(chain);
}
}