蓝牙移植的问题
来源: 评论:0 点击:
小弟初次接触蓝牙,公司要做个产品用到蓝牙功能,用的CSR公司BC413159A蓝牙芯片。
网上东找西找移植了bluez-3.36上去,设备查找配对等功能算是基本实现了。然后要做蓝牙耳机,因为要使用CPU的PCM口直接往蓝牙芯片的PCM接口发送音频数据,所以要修改PSKEY。这时候发现手头上的芯片没有EEPROM,网上找了半天,找到了这个帖子:
http://thread.gmane.org/gmane.linux.bluez.devel/15797/focus=15816
也是修改PSKEY的。按照上面说的做,修改pskey然后再读出成功,但是热重启后ram里面的数据就全部没了,还是使用ROM上面保存的PSKEY,鼓捣了几天无果。
请公司硬件的人帮焊了块EEPROM上去(虽然型号不一样但是读写什么的都是兼容的,应该不会是这个问题吧),然后用bccmd命令读写psi、psf均失败,都是No such device or address (6)。
bccmd -t bcsp -d /dev/tts/10 memtypes
psi (0x0001) = EEPROM (1)
psf (0x0002) = EEPROM (1)
psram (0x0008) = RAM (transient) (2)
bccmd -t bcsp -d /dev/tts/10 psset -s 0x2 mapsco 1
Can't execute command: No such device or address (6)
bccmd -t bcsp -d /dev/tts/10 psset -s 0x1 mapsco 1
Can't execute command: No such device or address (6)
这样又折腾了几天无果。其间修改了bluez的代码把和串口通讯具体的数据都print出来了,看了半天看不懂,网上搜到CSR的BCCMD Protocol又下不了(没帐户),不过感觉这个通讯应该没有问题(bccmd除了读写eeprom之外都正常工作),怀疑是不是片上的固件有问题。用bccmd读取固件版本:
bccmd -t bcsp -d /dev/tts/10 chiprev
Chip revision: 0x0012 (NA)
从硬件处确认这片芯片应该是BlueCore4-ROM,chiprev应该为0x30。现在不知道要怎么做了。请教各位大大,这种情况会是固件的问题吗?如果不是的话可能是什么地方有问题呢?
顺便贴上读到的固件buildname:
bccmd -t bcsp -d /dev/tts/10 buildname
Build name: pug_6compact_rom_fs_fl_bt2.0_21_0603231520_encr56 2006-03-23
网上东找西找移植了bluez-3.36上去,设备查找配对等功能算是基本实现了。然后要做蓝牙耳机,因为要使用CPU的PCM口直接往蓝牙芯片的PCM接口发送音频数据,所以要修改PSKEY。这时候发现手头上的芯片没有EEPROM,网上找了半天,找到了这个帖子:
http://thread.gmane.org/gmane.linux.bluez.devel/15797/focus=15816
也是修改PSKEY的。按照上面说的做,修改pskey然后再读出成功,但是热重启后ram里面的数据就全部没了,还是使用ROM上面保存的PSKEY,鼓捣了几天无果。
请公司硬件的人帮焊了块EEPROM上去(虽然型号不一样但是读写什么的都是兼容的,应该不会是这个问题吧),然后用bccmd命令读写psi、psf均失败,都是No such device or address (6)。
bccmd -t bcsp -d /dev/tts/10 memtypes
psi (0x0001) = EEPROM (1)
psf (0x0002) = EEPROM (1)
psram (0x0008) = RAM (transient) (2)
bccmd -t bcsp -d /dev/tts/10 psset -s 0x2 mapsco 1
Can't execute command: No such device or address (6)
bccmd -t bcsp -d /dev/tts/10 psset -s 0x1 mapsco 1
Can't execute command: No such device or address (6)
这样又折腾了几天无果。其间修改了bluez的代码把和串口通讯具体的数据都print出来了,看了半天看不懂,网上搜到CSR的BCCMD Protocol又下不了(没帐户),不过感觉这个通讯应该没有问题(bccmd除了读写eeprom之外都正常工作),怀疑是不是片上的固件有问题。用bccmd读取固件版本:
bccmd -t bcsp -d /dev/tts/10 chiprev
Chip revision: 0x0012 (NA)
从硬件处确认这片芯片应该是BlueCore4-ROM,chiprev应该为0x30。现在不知道要怎么做了。请教各位大大,这种情况会是固件的问题吗?如果不是的话可能是什么地方有问题呢?
顺便贴上读到的固件buildname:
bccmd -t bcsp -d /dev/tts/10 buildname
Build name: pug_6compact_rom_fs_fl_bt2.0_21_0603231520_encr56 2006-03-23
硬件的人跑去问了经销商,那边只负责卖片,啥也不懂。
网上搜到不少蓝牙开发板和开发软件的信息。是不是蓝牙芯片里面自带的固件不是全功能的,其他功能要自己用开发板开发?
芯片手册上写芯片有自带Codec、有PCM口,我之前理解是只要修改PSKEY让SCO链路使用PCM或者是Codec的Line-in,在主机Linux下用bluez建立起芯片和蓝牙耳机之间的SCO连接之后,芯片就会自动处理从PCM口或者Codec的Line-in接受到的数据,然后通过蓝牙信号发送到耳机。还是说这些功能要实现的话要自己开发固件,原有的固件未必支持?
上一篇:Wi-Fi WiMax 3G 对比
下一篇:MFRC530简介及典型应用电路
评论排行
- ·HFSS天线设计入门中文视频教程(1)
- ·CST2013破解文件,和谐万岁(1)
- ·关于打不开ADS帮助文档(1)
- ·基于左手介质的小型微带天线(1)
- ·HFSS10中仿真出现的错误(1)
- ·HFSS仿真螺旋天线模型的脚本程序(1)
- ·HFSS能仿真线圈天线吗?(1)
- ·Momentum中无法设置Substrate?(1)
- ·大家ADS2008中PIN二极管如何设定啊(1)
- ·请教ADS中的MSub个参数的意思(1)
- ·HFSS中怎么设置一个平面波激励啊(1)
- ·Hfss局部加密网格(1)
- ·HFSS使用心得(1)
- ·HFSS设计微带发夹型滤波器,求耦合系数请教(1)
- ·Microstrip Antenna Technology (Ke...(0)
- ·跟大家分享个宽频带90度功分移相网络(0)
- ·求教ADS中倍频器与频率源设置(0)
- ·30多个ADS视频教程在线观看(0)
- ·微波射频电路仿真100例(0)
- ·射频功率放大器设计资料(0)