首页 > 无线通信 > WiFi和蓝牙技术问答 > 蓝牙移植的问题

蓝牙移植的问题

来源:    评论: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

硬件的人跑去问了经销商,那边只负责卖片,啥也不懂。
网上搜到不少蓝牙开发板和开发软件的信息。是不是蓝牙芯片里面自带的固件不是全功能的,其他功能要自己用开发板开发?
芯片手册上写芯片有自带Codec、有PCM口,我之前理解是只要修改PSKEY让SCO链路使用PCM或者是Codec的Line-in,在主机Linux下用bluez建立起芯片和蓝牙耳机之间的SCO连接之后,芯片就会自动处理从PCM口或者Codec的Line-in接受到的数据,然后通过蓝牙信号发送到耳机。还是说这些功能要实现的话要自己开发固件,原有的固件未必支持?

相关热词搜索:蓝牙 固件 芯片

上一篇:Wi-Fi WiMax 3G 对比
下一篇:MFRC530简介及典型应用电路

  网站地图