tws可以在csr8670 adk4.0.1上面跑吗

CSR8670的TWS模式的应用笔记
CSR8670的TWS模式的应用笔记
1.1 非TWS会话
单个音箱最多可以连两个A2DP源。
当音箱A同时与两个A2DP源建立了连接,另一个音箱B不能与其建立TWS会话
同一时间一个音箱只能选择2个A2DP源中的一个来播放
1.2 TWS会话
1.2.1 准备工作
单个音箱最多可以连接1个A2DP源,1组TWS会话最多连接2个A2DP源。
在进入TWS会话之前,两个A2DP源必须分别与两个音箱完成配对,否则一旦开始建立TWS会话,A2DP源无法搜索到两个音箱,也就无法配对。
1.2.2 建立会话
两个音箱与两个A2DP源完成配对后,开始建立TWS会话:
音箱A调用EventUsrPeerSessionInquire,进入inquiry模式
音箱B调用EventUsrPeerSessionConnDisc,进入conndisc模式
音箱A搜索到音箱B,根据如下设定建立TWS连接:
链接丢失后自动回连。建议slave使能此选项,防止master出现音频抖动
使用受限呼叫访问码
连接设备过滤方式。如果音箱B的UUID能通过音箱A设定的滤波器规则,那么音箱A与音箱B开始建立TWS连接。此处的滤波器规则有设备ID和CSR对等设备服务UUID,后者是由客户定义的非零值。
是否支持作为音频中继者和音频被中继者
音频中继模式:双立体声、主左从右、主右从左、缩混
音量削减。TWS的音量由系统音量和削减音量控制。系统音量由AVRCP指令设定,削减音量的默认值存储在PSR配置中。master会将配置发送给slave,模式切换时master会再发送给slave
单设备模式。此模式使能后,A2DP源的AVRCP指令可以在master,slave和A2DP源之间保持同步,否则slave接收的AVRCP指令不能中继到master
1.2.3 播放音频
TWS会话建立成功后,连接两个A2DP源中的一个并播放音频文件。假设A2DP源1正在播放,那么与A2DP源1配对的音箱作为TWS会话的master,另一个音箱作为slave。A2DP1的音频数据会从master中继到slave。
假设此时播放A2DP源2,则与源2配对的音箱作为TWS会话的master,另一个音箱自动切换成slave
A2DP源可以是其它蓝牙设备,也可以是本地的音频接口。
蓝牙设备必须支持A2DP,AVRCP协议。可支持的蓝牙设备的音频编码方式有SBC,MP3,AAC,aptX。
本地音频接口包括USB接口和analog接口(ADC/SPDIF/I2S)。本地音频接口将音频数据缓存在内部RAM中,使用SBC编码后,通过master与slave之间建立的连接传送给slave。
slave接收后用SBC解码,将解码后的音频数据通过DAC转换成音频信号,或是用I2S接口输出给外部音频芯片。
1.2.4 设置命令
TWS模式支持AVRCP 1.4中定义的命令,包括快进快退,播放暂停等。
TWS模式也支持特有的AVRCP命令如下:
TWS模式支持的GAIA命令如下,且这些指令在TWS会话的两个设备之间同步(音量控制和设备音量削减控制不能同步):
TWS模式的音量控制分两部分:
系统音量:可以通过AVRCP命令设定,如果需要同步到A2DP源,需支持AVRCP的绝对音量控制(absolute volume control)
音量削减:可以由master通过如下用户事件调用
1.2.5 切换音频源
TWS模式建立时的默认音频源由PSR决定。可选项有auto,A2DP,USB,analog。
选择auto选项后,TWS连接建立时选择当前可用的音频源,优先级为A2DP&USB&analog。
运行时可调用下列事件以手动切换音频源:
可调用EventUsrSelectAudioSourceNone再切换回自动切换模式。
1.2.6 结束TWS会话
调用EventUsrPeerSessionEnd以结束TWS会话。
调用EventUsrEstablishPeerConnection以请求重新连接已配对完成的TWS会话。
建立VM应用
2.1 修改VM应用工程properties
2.2 使能对等设备支持
设定对等设备支持“true wireless”
使能MP3,AAC和aptX A2DP编解码
安装对应的ADK编解码包
将对应的解码器工程包含在工作站内
申请解码算法的授权
修改speaker.mak,将kap文件加入到工程的映像文件夹
使能扩展编解码extra codec
使能USB / 有线音频
sbc_decoder的配置文件选择TWS_WIRED_MODE
2.3 使能调试信息
修改sink_debug.h
使能DEBUG_PRINT_ENABLE
使能DEBUG_PEER
使能DEBUG_PEER_SM
添加库文件
打开库文件目录C:\ADK4.0.0\tools\lib\BlueLab-7.0.1-Release\assisted
找到libcsr_a2dp_decoder_common_plugin_stereo_tws_debug.a
xIDE-&project-&properties-&libraries,添加csr_a2dp_decoder_common_plugin_stereo_tws_debug
3 扩展应用——analog模式的I2S接口
在CSR的官方demo中,当TWS模式的音频源是analog时,程序中设定的硬件接口是ADC。而本项目中需要用到I2S接口作为音频输入。修改步骤如下:
第一步:将CSR8670的I2S设为master,采样率设为48KHz。
第二步:按下暂停键后,I2S时钟会消失。修改sink_audio_routing.c的代码如下:
第三步:修改csr_a2dp_decoder_common_plugin.c的函数MusicConnectAudio如下:
第四步:重新编译库文件。开始菜单-&adk4.0.0-&rebuild-&vm libraries
第五步:修改sink_wired.c
1: 修改宏定义,用程序来控制ADC设备的接入检测的结果
2: 新建函数wiredAudioSetAnalogConnect(uint8 status)
第六步: 只有inquriy的设备才会enable analog connect,当收到发送inquiry事件的请求时,使能模拟连接;当收到发送conndisc事件的请求时,关闭模拟连接。
第七步:如果A2DP源发生切换,master和slave的规则也会发生转换,因此需修改sink_a2dp.c的sinkA2dpSetLinkRole
TWS模式的特点是帧与帧之间有同步时间戳,两个音箱之间的音频数据延迟只有±5Sample。
在使用过程中遇到过长时间不能进入TWS会话的情况,还需继续深入探寻原因。
我的热门文章
即使是一小步也想与你分享查看: 963|回复: 16
CSRA64系列TWS串音BUG
连续签到天数:20天签到总天数:752天签到总奖励:23662金币
马上注册,享用更多功能,让你轻松玩转社区。
才可以下载或查看,没有帐号?
开启TWS时,master作为左声道,slave作为右声道,测试结果会出现左声道master端(左声道正常,无串音),右声道slave端出现串音(即会播放比较小声左声道的声音),
上一篇:下一篇:
- 让您的金币更有价值!|| - 让您的沟通更加及时!
享有帖子相关版权3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和的同意4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意7、管理员和版主有权不事先通知发贴者而删除本文', this.href);">论坛版权
连续签到天数:1天签到总天数:377天签到总奖励:6112金币
好棒啊!!!!!
- 让您的金币更有价值!|| - 让您的沟通更加及时!
连续签到天数:1天签到总天数:115天签到总奖励:2793金币
表示关注!!!!!!!!!!!
- 让您的金币更有价值!|| - 让您的沟通更加及时!
连续签到天数:1天签到总天数:40天签到总奖励:494金币
同样求解,,
- 让您的金币更有价值!|| - 让您的沟通更加及时!
连续签到天数:4天签到总天数:21天签到总奖励:119金币
关注了,到时测试看看
- 让您的金币更有价值!|| - 让您的沟通更加及时!
连续签到天数:1天签到总天数:43天签到总奖励:237金币
我测试没有发现这个问题,左右声道分离度100%
- 让您的金币更有价值!|| - 让您的沟通更加及时!
连续签到天数:7天签到总天数:532天签到总奖励:8640金币
:):):):):):)
- 让您的金币更有价值!|| - 让您的沟通更加及时!
连续签到天数:2天签到总天数:34天签到总奖励:246金币
关注了,到时测试看看
- 让您的金币更有价值!|| - 让您的沟通更加及时!
连续签到天数:2天签到总天数:37天签到总奖励:237金币
我也测到这个问题,210,110都是一样的。不知道能解决吗
- 让您的金币更有价值!|| - 让您的沟通更加及时!
连续签到天数:6天签到总天数:250天签到总奖励:2128金币
无解,耳机搞TWS本身就是一个死胡同。
- 让您的金币更有价值!|| - 让您的沟通更加及时!
站长推荐 /1
如下载权限不够,可以通过发帖、回帖、上传附件等方式升级,点击查看更多详情......
Powered by查看: 359|回复: 6
8670用ADK4.0.0开发TWS
连续签到天数:20天签到总天数:662天签到总奖励:13700金币
各位大神,8670用ADK4.0.0开发TWS下载到板子时提示merge.xpv过大是怎么问题?file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\\QQ\WinTemp\RichOle\{W%1]M{}W2S6X4M8NUKC~%G.png如下:
D:/ADK4.0.0/tools/bin/remove image/usb_root
D:/ADK4.0.0/tools/bin/remove image/usb_fat
D:/ADK4.0.0/tools/bin/remove image/config/*
headset.mak:269: No voice prompts defined for this application
D:/ADK4.0.0/tools/bin/packfile image image.fs
53 words used to enforce data alignment.
D:/ADK4.0.0/tools/bin/vmbuilder -size 16064 merge.xpv D:/ADK4.0.0/firmware/assisted/unified/gordon/stack_unsigned.xuv image.fs
Filesystem is 6933211 words too large for use with this firmware.
make: *** [merge.xpv] Error 1
本帖子中包含更多资源
才可以下载或查看,没有帐号?
上一篇:下一篇:
- 让您的金币更有价值!|| - 让您的沟通更加及时!
享有帖子相关版权3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和的同意4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意7、管理员和版主有权不事先通知发贴者而删除本文', this.href);">论坛版权
连续签到天数:20天签到总天数:162天签到总奖励:4076金币
换一下模式如native 等试试
- 让您的金币更有价值!|| - 让您的沟通更加及时!
连续签到天数:20天签到总天数:662天签到总奖励:13700金币
换一下模式如native 等试试
换了native模式又出现这情况了:
D:/ADK4.0.0/tools/bin/xapnative-local-xapnative-gcc-3.3.3 -BD:/ADK4.0.0/tools/lib/gcc-lib/xapnative-local-xapnative/3.3.3\\ -xap2+ -large -mbig-function-pointers -mleaf-optim -munderscore -g -O -fno-builtin-memcpy -ansi -pedantic -Wall -Wmissing-prototypes -Wstrict-prototypes -Wsign-compare -Wredundant-decls -Werror -ID:/ADK4.0.0/tools/include/firmware -ID:/ADK4.0.0/tools/include/standard -ID:/ADK4.0.0/tools/include/profiles/BlueLab-7.0.1-Release -Wp,-MD,./depend/sink_upgrade -Wp,-MQ,sink_upgrade.o -DENABLE_BATTERY_OPERATION -DDEVICE_ID_PSKEY -DGATT_ENABLED -DBLE_ENABLED_WHEN_OFF -DGATT_ANCS_CLIENT -DGATT_IAS_CLIENT -DGATT_BATTERY_SERVER -DGATT_BATTERY_SERVER_PEER -DGATT_IAS_SERVER -DGATT_GAIA_SERVER -DGATT_IAS_SERVER -DGATT_LLS_SERVER -DGATT_TPS_SERVER -DENABLE_CAPSENSE -DENABLE_AVRCP -DINCLUDE_DSP -DINCLUDE_CVC -DTHREE_WAY_CALLING -DINCLUDE_APTX_ACL_SPRINT -DINCLUDE_FASTSTREAM -DENABLE_PEER -DPEER_TWS -DPEER_AVRCP -DENABLE_UPGRADE&&-I./ -c sink_upgrade.c -o sink_upgrade.o
D:/ADK4.0.0/tools/bin/xapnative-local-xapnative-gcc-3.3.3 -BD:/ADK4.0.0/tools/lib/gcc-lib/xapnative-local-xapnative/3.3.3\\ -xap2+ -large -mbig-function-pointers -mleaf-optim -munderscore -g -O -fno-builtin-memcpy -ansi -pedantic -Wall -Wmissing-prototypes -Wstrict-prototypes -Wsign-compare -Wredundant-decls -Werror -ID:/ADK4.0.0/tools/include/firmware -ID:/ADK4.0.0/tools/include/standard -ID:/ADK4.0.0/tools/include/profiles/BlueLab-7.0.1-Release -Wp,-MD,./depend/sink_usb -Wp,-MQ,sink_usb.o -DENABLE_BATTERY_OPERATION -DDEVICE_ID_PSKEY -DGATT_ENABLED -DBLE_ENABLED_WHEN_OFF -DGATT_ANCS_CLIENT -DGATT_IAS_CLIENT -DGATT_BATTERY_SERVER -DGATT_BATTERY_SERVER_PEER -DGATT_IAS_SERVER -DGATT_GAIA_SERVER -DGATT_IAS_SERVER -DGATT_LLS_SERVER -DGATT_TPS_SERVER -DENABLE_CAPSENSE -DENABLE_AVRCP -DINCLUDE_DSP -DINCLUDE_CVC -DTHREE_WAY_CALLING -DINCLUDE_APTX_ACL_SPRINT -DINCLUDE_FASTSTREAM -DENABLE_PEER -DPEER_TWS -DPEER_AVRCP -DENABLE_UPGRADE&&-I./ -c sink_usb.c -o sink_usb.o
D:/ADK4.0.0/tools/bin/xapnative-local-xapnative-gcc-3.3.3 -BD:/ADK4.0.0/tools/lib/gcc-lib/xapnative-local-xapnative/3.3.3\\ -xap2+ -large -mbig-function-pointers -mleaf-optim -munderscore -g -O -fno-builtin-memcpy -ansi -pedantic -Wall -Wmissing-prototypes -Wstrict-prototypes -Wsign-compare -Wredundant-decls -Werror -ID:/ADK4.0.0/tools/include/firmware -ID:/ADK4.0.0/tools/include/standard -ID:/ADK4.0.0/tools/include/profiles/BlueLab-7.0.1-Release -Wp,-MD,./depend/sink_utils -Wp,-MQ,sink_utils.o -DENABLE_BATTERY_OPERATION -DDEVICE_ID_PSKEY -DGATT_ENABLED -DBLE_ENABLED_WHEN_OFF -DGATT_ANCS_CLIENT -DGATT_IAS_CLIENT -DGATT_BATTERY_SERVER -DGATT_BATTERY_SERVER_PEER -DGATT_IAS_SERVER -DGATT_GAIA_SERVER -DGATT_IAS_SERVER -DGATT_LLS_SERVER -DGATT_TPS_SERVER -DENABLE_CAPSENSE -DENABLE_AVRCP -DINCLUDE_DSP -DINCLUDE_CVC -DTHREE_WAY_CALLING -DINCLUDE_APTX_ACL_SPRINT -DINCLUDE_FASTSTREAM -DENABLE_PEER -DPEER_TWS -DPEER_AVRCP -DENABLE_UPGRADE&&-I./ -c sink_utils.c -o sink_utils.o
D:/ADK4.0.0/tools/bin/xapnative-local-xapnative-gcc-3.3.3 -BD:/ADK4.0.0/tools/lib/gcc-lib/xapnative-local-xapnative/3.3.3\\ -xap2+ -large -mbig-function-pointers -mleaf-optim -munderscore -g -O -fno-builtin-memcpy -ansi -pedantic -Wall -Wmissing-prototypes -Wstrict-prototypes -Wsign-compare -Wredundant-decls -Werror -ID:/ADK4.0.0/tools/include/firmware -ID:/ADK4.0.0/tools/include/standard -ID:/ADK4.0.0/tools/include/profiles/BlueLab-7.0.1-Release -Wp,-MD,./depend/sink_volume -Wp,-MQ,sink_volume.o -DENABLE_BATTERY_OPERATION -DDEVICE_ID_PSKEY -DGATT_ENABLED -DBLE_ENABLED_WHEN_OFF -DGATT_ANCS_CLIENT -DGATT_IAS_CLIENT -DGATT_BATTERY_SERVER -DGATT_BATTERY_SERVER_PEER -DGATT_IAS_SERVER -DGATT_GAIA_SERVER -DGATT_IAS_SERVER -DGATT_LLS_SERVER -DGATT_TPS_SERVER -DENABLE_CAPSENSE -DENABLE_AVRCP -DINCLUDE_DSP -DINCLUDE_CVC -DTHREE_WAY_CALLING -DINCLUDE_APTX_ACL_SPRINT -DINCLUDE_FASTSTREAM -DENABLE_PEER -DPEER_TWS -DPEER_AVRCP -DENABLE_UPGRADE&&-I./ -c sink_volume.c -o sink_volume.o
D:/ADK4.0.0/tools/bin/xapnative-local-xapnative-gcc-3.3.3 -BD:/ADK4.0.0/tools/lib/gcc-lib/xapnative-local-xapnative/3.3.3\\ -xap2+ -large -mbig-function-pointers -mleaf-optim -munderscore -g -O -fno-builtin-memcpy -ansi -pedantic -Wall -Wmissing-prototypes -Wstrict-prototypes -Wsign-compare -Wredundant-decls -Werror -ID:/ADK4.0.0/tools/include/firmware -ID:/ADK4.0.0/tools/include/standard -ID:/ADK4.0.0/tools/include/profiles/BlueLab-7.0.1-Release -Wp,-MD,./depend/sink_wired -Wp,-MQ,sink_wired.o -DENABLE_BATTERY_OPERATION -DDEVICE_ID_PSKEY -DGATT_ENABLED -DBLE_ENABLED_WHEN_OFF -DGATT_ANCS_CLIENT -DGATT_IAS_CLIENT -DGATT_BATTERY_SERVER -DGATT_BATTERY_SERVER_PEER -DGATT_IAS_SERVER -DGATT_GAIA_SERVER -DGATT_IAS_SERVER -DGATT_LLS_SERVER -DGATT_TPS_SERVER -DENABLE_CAPSENSE -DENABLE_AVRCP -DINCLUDE_DSP -DINCLUDE_CVC -DTHREE_WAY_CALLING -DINCLUDE_APTX_ACL_SPRINT -DINCLUDE_FASTSTREAM -DENABLE_PEER -DPEER_TWS -DPEER_AVRCP -DENABLE_UPGRADE&&-I./ -c sink_wired.c -o sink_wired.o
D:/ADK4.0.0/tools/bin/xapnative-local-xapnative-gcc-3.3.3 -BD:/ADK4.0.0/tools/lib/gcc-lib/xapnative-local-xapnative/3.3.3\\ -xap2+ -large -mbig-function-pointers -mleaf-optim -munderscore -g -O -fno-builtin-memcpy&&-Xlinker -s0&&-ldisplay_plugin_cns10010_scroll -ldisplay_example_plugin -ldisplay -lavrcp -lpower -lconnection -lbdaddr -lhfp_min_cfm -lregion -lservice -lcodec -laudio -lcsr_cvc_common_plugin_all -lcsr_voice_prompts_plugin -lcsr_a2dp_decoder_common_plugin_stereo_bidir -la2dp -lcsr_common_example_plugin -lobex -lsdp_parse -lmd5 -lusb_device_class -lspp_common -lspps -lsppc -lpblock -laudio_plugin_common -lcsr_dut_audio_plugin -lpio_common -lpbapc -lmapc -lfm_rx_plugin -lfm_rx_api -lswat -lcsr_i2s_audio_plugin -lgaia -lgatt -lgatt_imm_alert_client -lgatt_apple_notification_client -lgatt_battery_client -lgatt_device_info_client -lgatt_hid_client -lbyte_utils -lupgrade -lgatt_manager -lgatt_battery_server -lgatt_server -lgatt_gap_server -lgatt_transmit_power_server -lgatt_imm_alert_server -lgatt_link_loss_server -lcsr_multi_channel_plugin -lgatt_client -lgatt_scan_params_client&&-Wl,-ID:/ADK4.0.0/tools/lib/gcc-lib/xapnative-local-xapnative/3.3.3/ -Xlinker -pass -Xlinker 250 -LD:/ADK4.0.0/tools/lib/BlueLab-7.0.1-Release/native main.o sink_a2dp.o sink_anc.o sink_at_commands.o sink_audio.o sink_audio_prompts.o sink_audio_routing.o sink_auth.o sink_avrcp.o sink_avrcp_browsing.o sink_avrcp_browsing_channel.o sink_avrcp_qualification.o sink_ble.o sink_ble_advertising.o sink_ble_gap.o sink_ble_scanning.o sink_buttonmanager.o sink_buttons.o sink_callmanager.o sink_config.o sink_configmanager.o sink_csr_features.o sink_device_id.o sink_devicemanager.o sink_display.o sink_dut.o sink_fm.o sink_gaia.o sink_gatt.o sink_gatt_client.o sink_gatt_client_ancs.o sink_gatt_client_battery.o sink_gatt_client_dis.o sink_gatt_client_gatt.o sink_gatt_client_hid.o sink_gatt_client_ias.o sink_gatt_client_spc.o sink_gatt_db.o sink_gatt_hid_remote_control.o sink_gatt_init.o sink_gatt_manager.o sink_gatt_server.o sink_gatt_server_battery.o sink_gatt_server_gap.o sink_gatt_server_gatt.o sink_gatt_server_ias.o sink_gatt_server_lls.o sink_gatt_server_tps.o sink_indicators.o sink_init.o sink_input_manager.o sink_inquiry.o sink_ir_remote_control.o sink_led_manager.o sink_leds.o sink_link_policy.o sink_mapc.o sink_multi_channel.o sink_multipoint.o sink_partymode.o sink_pbap.o sink_peer.o sink_peer_qualification.o sink_pio.o sink_powermanager.o sink_scan.o sink_slc.o sink_speech_recognition.o sink_statemanager.o sink_swat.o sink_tones.o sink_upgrade.o sink_usb.o sink_utils.o sink_volume.o sink_wired.o -o 8670.app
Library libdisplay_plugin_cns10010_scroll.a not found.
make: *** [8670.app] Error 1
- 让您的金币更有价值!|| - 让您的沟通更加及时!
连续签到天数:20天签到总天数:162天签到总奖励:4076金币
提示库文件缺失,少了库文件
- 让您的金币更有价值!|| - 让您的沟通更加及时!
连续签到天数:2天签到总天数:13天签到总奖励:115金币
8760芯片比较贵,这款芯片开发资料好像还不错!
- 让您的金币更有价值!|| - 让您的沟通更加及时!
连续签到天数:5天签到总天数:51天签到总奖励:693金币
CSR8670做TWS效果真的不行!价格也老贵了!
- 让您的金币更有价值!|| - 让您的沟通更加及时!
连续签到天数:6天签到总天数:250天签到总奖励:2128金币
TWS仍然还是一个死胡同
- 让您的金币更有价值!|| - 让您的沟通更加及时!
站长推荐 /1
如下载权限不够,可以通过发帖、回帖、上传附件等方式升级,点击查看更多详情......
Powered by}

我要回帖

更多关于 csr8670 adk4.0.1 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信