CSR8675项目实战:BlueAg蓝牙一拖二发射器 您所在的位置:网站首页 蓝牙芯片8675 CSR8675项目实战:BlueAg蓝牙一拖二发射器

CSR8675项目实战:BlueAg蓝牙一拖二发射器

#CSR8675项目实战:BlueAg蓝牙一拖二发射器| 来源: 网络整理| 查看: 265

为了让CSR867x的开发更容易,现与思度科技联合推出CSR867x学习板【淘宝链接:思度科技CSR开发板】。

技术交流QQ群号:743434463 开发板会员QQ群号:725398389(凭订单号入群,赠PPT、项目源码、视频教程) ——————————正文分割线———————————–

1. 引言

最近刚完成一个蓝牙一拖二发射器的项目。这个项目的软件需求来自一款竞品——Bluetooth Multipoint Transmitter - Priva III。

2. 主要功能

系统框图如下: 这里写图片描述

BlueAg是一款中高端的蓝牙发射器。主要规格如下:

序号规格参数1蓝牙版本BT4.22蓝牙profileA2DP,AVRCP,HFP3支持解码格式SBC,FastStream,aptX,aptX-LL,aptx-HD4工作距离Class 2,空旷地域30英尺或10米5一拖二功能能同时给两台耳机提供音乐,数据包交替发给两台耳机,但是APTX-HD、APTX-LL、APTX解码时不能支持两路,此时自动使用Faststream或SBC解码6USB音频和AUX_in只要有USB音源信号,就发送USB音源信号;没有USB音源信号,有AUX_in信号,则播放AUX_in信号;如两路音源信号都没有,则进入低功耗待机状态7保存配对信息最多8个

状态指示如下:

序号功能LED指示备注1开机蓝灯常亮1s开机能回连之前配对过的设备,1MIN回连不上进入搜索状态。如果开机时没有连接过任何设备,直接进入搜索状态2关机红灯常亮1s设备进入省电模式3待机未连接红蓝灯交替闪烁搜索时间5分钟,5分钟内没和耳机,音箱或者其他接收器连接上,进入待机状态4配对成功蓝灯5s闪1次默认SBC解码模式5非连接待机状态蓝灯2s闪1次6连接待机状态(SBC)蓝灯5s闪1次7连接待机状态(FastStream)蓝灯5s闪2次8连接待机状态(aptX)绿灯5s闪1次9连接待机状态(aptX-LL)绿灯5s闪2次10连接待机状态(aptX-HD)绿灯5s闪3次11清除配对列表蓝灯常亮2s清除配对列表后进入搜索状态12耳机回连蓝灯5s闪1次断开连接后两分钟内在有效距离内会自动回连,如不回连,则短按MFB(GPIO 0)键连接13aux-in音乐发射器使用aux-in线连接手机或者其他媒体播放器,可以通过发射器把音频传输到耳机,音箱或者其他接收端。aux-in优先级低于USB14USB音乐发射器使用USB连接线连接到PC或laptop上,打开发射器和耳机,并配好对;右键点击屏幕右下角的喇叭图标;选择播放设备时将此产品作为默认设备;此时产品将可作为USB无线耳机使用,可听到电脑端播放的音乐,并可作为PC端的即时通讯设备使用(Skype或QQ)15一拖二1、如果发射器连接过A,B两个设备,A,B设备在正常的范围,开机能直接回连A,B这两个设备。2、如果发射器连接上A或者B设备(只连一个设备),MFB按键进入配对,可搜索连接新的设备,不会断开之前连接上的设备。3、如果发射器连接上A和B两个设备,MFB按键进入配对,断开早期连接的设备A,并进入搜索,可以连接新的设备。 3. 项目难点 3.1. 支持FastStream

FastStream是aptX的上一代音频编码格式,其已经包含在DSP工程sbc_encoder中,VM的代码中也能看到相关代码。修改source config tool的选项即可使能FastStream。

3.2. USB和AUX切源

ADK默认可支持USB或AUX源,如何实现在程序运行过程中的切源呢?在source_app_msg_handler.c的app_msg_handler中添加如下代码:

case APP_ANALOG_AUDIO_ACTIVE: { APP_MSG_DEBUG(("APP_ANALOG_AUDIO_ACTIVE\n")); theSource->ps_config->usb_config.usb_speaker_interface = 0; theSource->ps_config->usb_config.usb_mic_interface = 0; theSource->ps_config->features.input_source = A2dpEncoderInputDeviceAnalogue; theSource->audio_data.audio_a2dp_connect_params.input_device_type = theSource->ps_config->features.input_source; app_usb_audio_active(); } return; case APP_ANALOG_AUDIO_INACTIVE: { APP_MSG_DEBUG(("APP_ANALOG_AUDIO_INACTIVE\n")); theSource->ps_config->usb_config.usb_speaker_interface = 1; theSource->ps_config->usb_config.usb_mic_interface = 1; theSource->ps_config->features.input_source = A2dpEncoderInputDeviceUsb; theSource->audio_data.audio_a2dp_connect_params.input_device_type = theSource->ps_config->features.input_source; app_usb_audio_active(); } return;

当需要切换到analog源时,发送APP_ANALOG_AUDIO_ACTIVE消息;当需要切换到USB源时,发送APP_ANALOG_AUDIO_INACTIVE消息。

4. 总结

此项目已经成功量产。在此项目的基础上,可以继续丰富产品的功能,如增加SPDIF输入源、I2S输入源,或是增加蓝牙接收功能以支持蓝牙收发一体。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有