找回密码
 注册
搜索
查看: 958|回复: 1

[讨论] [求助]蓝牙移植的问题

[复制链接]
发表于 2009-11-3 14:29:59 | 显示全部楼层 |阅读模式
小弟初次接触蓝牙,公司要做个产品用到蓝牙功能,用的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
 楼主| 发表于 2009-11-4 10:17:15 | 显示全部楼层
硬件的人跑去问了经销商,那边只负责卖片,啥也不懂。

网上搜到不少蓝牙开发板和开发软件的信息。是不是蓝牙芯片里面自带的固件不是全功能的,其他功能要自己用开发板开发?

芯片手册上写芯片有自带Codec、有PCM口,我之前理解是只要修改PSKEY让SCO链路使用PCM或者是Codec的Line-in,在主机Linux下用bluez建立起芯片和蓝牙耳机之间的SCO连接之后,芯片就会自动处理从PCM口或者Codec的Line-in接受到的数据,然后通过蓝牙信号发送到耳机。还是说这些功能要实现的话要自己开发固件,原有的固件未必支持?
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-10-6 20:31 , Processed in 0.057718 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表