1. 之前8723bu的蓝牙,蓝牙放音都是能用的,但是蓝牙record不能用,厂家回复如下
MIC数据走的是硬件PCM接口, 您需要将蓝牙的PCM接口与Codec的PCM接口相连,这样MIC数据直接通过硬件到达Codec.对上层程序来说,就像一个真实的MIC一样.
这部分需要将PCM参数设置正确, 另外将Codec的audio input path切换到蓝牙的PCM接口.
2. 那么需要复用,发现默认config里面认为是i2s1,看来需要used设置为i2s1_used
[i2s1]
i2s1_used = 0
i2s1_channel = 2
i2s1_master = 4
i2s1_select = 1
audio_format = 1
signal_inversion = 1
over_sample_rate = 512
sample_resolution = 16
word_select_size = 32
pcm_sync_period = 64
msb_lsb_first = 0
sign_extend = 0
slot_index = 0
slot_width = 16
frame_width = 1
tx_data_mode = 0
rx_data_mode = 0
i2s1_mclk =
i2s1_bclk = port:PG11<2><1><default><default>
i2s1_lrclk = port:PG10<2><1><default><default>
i2s1_dout = port:PG12<2><1><default><default>
i2s1_din = port:PG13<2><1><default><default>
设置完了之后,非常好asound设备里面多了card1。
3. 使用网上的andorid 蓝牙录音的BluetoothRecord 来测试,看看这次录制的是否是蓝牙mic的声音
1.结果不行,后来问厂家说PCM在8723里面是纯硬件的,也没有状态寄存器,数据也得不到,测量智能通过PCM 4个pin来测量。
但是从主机角度讲是标准的HFP协议。
HFP(Hands-free Profile),让蓝牙设备可以控制电话,如接听、挂断、拒接、语音拨号等,拒接、语音拨号要视蓝牙耳机及电话是否支持,是让蓝牙耳机进入高保真通话的一种可设置模式。所以android上面的sco实际上是建立HFP通道,如果建立成功那么其实就通知到8723bu把硬件链路建立起来,测试PCM接口就知道了。