1.
设置bcsp的baud rate,网上查了一下需要 bccmd
只能重新cross compile bluez-4.18,增加--enable-bccmd选项
./configure --host=arm-xscale-linux-gnu --prefix=/usr/arm-xscale-linux-gnu --disable-audio --enable-test --enable-debug --enable-bccmd
生成bccmd命令
2.新建blue_core4.psr
编辑并拷贝到板子上
// PSKEY_ANA_FTRIM
&01f6 = 0025
// PSKEY_ANA_FREQ
&01fe = 0004
// PSKEY_HOST_INTERFACE
&01f9 = 0001
//CSR_PSKEY_HOSTIO_MAP_SCO_PCM
&01AB = 0001
// PSKEY_UART_BAUDRATE
&01BE = 0EBF //将baud 率设置成921600
// CSR_PSKEY_H_HC_FC_MAX_SCO_PKT_LEN
&0012 = 00F0
// CSR_PSKEY_HOSTIO_MIN_UART_HCI_SCO_SIZE
&01AE = 003C
// CSR_PSKEY_LOCAL_SUPPORTED_FEATURES
&00EF = FE3F 7E8F 1998 8000
// PSKEY_UART_CONFIG
&0205 = 0006
3.在板子上运行
#reset_bt_signal
#insmod bluetooth.ko
#insmod hci_uart.ko
#insmod l2cap.ko
#insmod rfcomm.ko
#./bccmd -t bcsp -d /dev/ttyS1 psload blue_core4.psr
Initialization timed out
出错
4.
查代码csr_bcsp.c
line 87
//cfsetospeed(&ti, B38400);
默认baud rate改成
cfsetospeed(&ti, B115200);
5.
再运行
#./bccmd -t bcsp -d /dev/ttyS1 psload blue_core4.psr
这次成功了
#./hciattach -s 921600 ttyS1 bcsp 921600
BCSP initialization timed out
#./bccmd -t bcsp -d /dev/ttyS1 psread
发现pskey的值根本没有设置进去
加log 到csr_bcsp.c 中将每一次读写操作都打印出来
发现pskey设置后没有进行 warm reset
加上-r 选项使pskey load成功后,csr 芯片自动warmreset 使设置有效.
#./bccmd -t bcsp -d /dev/ttyS1 psload -r blue_core4.psr
# ./hciattach -s 921600 ttyS1 bcsp 921600
BCSP initialization timed out
还是不行
查blue-core4 手册发现PSKEY_ANA_FTRIM 和 PSKEY_ANA_FREQ 频率值已经变了,
修改blue_core.psr后如下
// PSKEY_ANA_FTRIM
&01f6 = 001d
// PSKEY_ANA_FREQ
&01fe = 6590
// PSKEY_HOST_INTERFACE
&01f9 = 0001
//CSR_PSKEY_HOSTIO_MAP_SCO_PCM
&01AB = 0001
// PSKEY_UART_BAUDRATE
&01BE = 0EBF
// CSR_PSKEY_H_HC_FC_MAX_ACL_PKT_LEN
&0011 = 0180
// CSR_PSKEY_H_HC_FC_MAX_SCO_PKT_LEN
&0012 = 00F0
// CSR_PSKEY_HOSTIO_MIN_UART_HCI_SCO_SIZE
&01AE = 003C
// CSR_PSKEY_LOCAL_SUPPORTED_FEATURES
&00EF = FE3F 7E8F 1998 8000
// PSKEY_UART_CONFIG
&0205 = 0006
#./bccmd -t bcsp -d /dev/ttyS1 psload -r ./blue_core4.psr
# ./hciattach -s 921600 ttyS1 bcsp 921600
这下终于OK了
#./hciconfig hci0 reset
#./hciconfig -a
现在blue-core4 运行在了 921600 baud rate 上了.