TI中文支持网
TI专业的中文技术问题搜集分享网站

CC2540在Linux下使用USB的升级与控制

我想实现主控芯片通过USB通讯实现Linux下的控制和升级,我的主控芯片运行的是Linux系统,遇到以下三个问题:

1. 我使用UBL对CC2540进行再次升级,我在上电时按住按钮,UBL只出现了一秒钟,我根本来不及对它进行升级操作,就直接运行HostTestReleaseCC2540USB-UBL.bin了,我想将这个UBL停留时间延长,但我在BLE-CC254x-1.4.2.2提供的UBL源码中始终没有找到有效的修改方式。

2.我们在蓝牙芯片上下载UBL的boot之后,我们的主控芯片没有将其正确的识别为U盘之类的盘符,因此我们没有办法在主控芯片上执行升级操作

3.我的产品要对CC2540进行(FCC,IC, CE, UL,CB,RoHS,3C,南韩认证)认证,需要进入测试模式,按照http://processors.wiki.ti.com/index.php/FCC_ETSI_Test修改就可以吗?,修改完成后怎样进行测试,需要安装特定的测试软件吗?

目前我使用主控芯片通过USB线直接连接到CC2540,计划采用UBL的升级方式,控制使用hosttest示例代码生成的HostTestReleaseCC2540USB-UBL.bin

当我在windows下在USB DONGLE上实现UBL升级HostTestReleaseCC2540USB-UBL.bin成功后,可以实现Btool控制

程序完全运行起来(HostTestReleaseCC2540USB-UBL.bin),我们主控芯片的Linux系统上,ti的cc2540可以被识别为ttyACM usb串口设备

并且在ap370上可以通过串口发送HCI/ATT指令,并成功收到usb dongle设备的回复信息
目前串口程序实现了ATT_READRsp/HCI_ReadRSSI/HCIExt_SetBDADDR三个指令用于测试,效果附件图片一所示:
图片一:
但是当我想要进行再次升级时,我按照TI_BLE_Sample_Applications_Guide.pdf帮助文档中图片二所示的方式,在上电时按住按钮,UBL只出现了一秒钟,我根本来不及对它进行升级操作,就直接运行HostTestReleaseCC2540USB-UBL.bin了,我想将这个UBL停留时间延长,但我在BLE-CC254x-1.4.2.2提供的UBL源码中始终没有找到有效的修改方式。
图片二:
还有一个问题,我们在蓝牙芯片上下载UBL的boot之后,我们的主控芯片没有将其正确的识别为U盘之类的盘符,因此我们没有办法在主控芯片上执行升级操作,我在BLE-CC254x-1.4.2.2的Documents文件夹下的Universal Boot Loader for SOC-8051 by USB-MSD Developer's Guide.pdf文档中发现如图片三这段说明,请问现在这个问题有没有解决:
图片三:
Alvin Chen:

1.建议你提问E2E英文。 https://e2e.ti.com/support/wireless-connectivity/bluetooth/f/538 2.你的设备linux /dev/sdax 设备没有找到? 那应该是你主板的驱动问题。如果有, 你要自己挂在到你的文件系统里,mount 操作。 3.修改之后,需要使用HCI 命令去控制,比如HCI tester 上位机工具。

user5965025:

回复 Alvin Chen:

2.你的设备linux /dev/sdax 设备没有找到? 那应该是你主板的驱动问题。如果有, 你要自己挂在到你的文件系统里,mount 操作。

回复:

我开启Linux内核自带的USB mass storage驱动,系统启动有如图打印:

然而我并没有在/dev/目录下找到sdax设备,因此无法挂载,是我们的驱动使用错误还是别的原因,如果是驱动使用错误,我们应该使用哪个驱动,请提供一下,谢谢

Alvin Chen:

回复 user5965025:

我们不提供不提供ARM-linux 的驱动,请找你这个主控的厂商咨询。

user5965025:

回复 Alvin Chen:

我的这个驱动就是当前主控Linux内核自带的标准驱动,因此我排除驱动问题,怀疑有别的原因导致的麻烦您这边提供一下解决方案

Alvin Chen:

回复 user5965025:

你在windows下面可以识别吗?

我在beagleboneblack 下面烧录例程直接可以挂载。

user5965025:

回复 Alvin Chen:

我在windows下尝试过,可以正常识别并且升级
您的beagleboneblack运行的是Linux系统吗?什么版本

user5965025:

回复 Alvin Chen:

我在windows下尝试过,可以正确识别并且升级

您在beagleboneblack 使用的是Linux系统吗?什么版本

Alvin Chen:

回复 user5965025:

Debian 9.5, 那你的CC2540应该没问题,是否是你的那个HOST的硬件问题呢,如你所说USB设备通常是不需要安装驱动的,内核里面有这个驱动。

user5965025:

回复 Alvin Chen:

是的,我的CC2540正常,我的host硬件是没有问题的。

在CC2540使用UBL成功升级Hosttest固件之后,我的主控可以将CC2540正确识别为com口,并且可以使用HCI进行控制。

但是在升级之前,我的CC2540内只有UBL的boot,没有放入Hosttest固件,主控检测不到U盘设备,

在windows下是可以正确识别为U盘并进行升级

Alvin Chen:

回复 user5965025:

基本操作就是如下这样。

e2echina.ti.com/…/69222

你这个问题我想不到太多可能,你可以发个帖子去英文那边看看有没有网友和你一样的问题,或者我们其他同事有什么建议。
e2e.ti.com/…/538

赞(0)
未经允许不得转载:TI中文支持网 » CC2540在Linux下使用USB的升级与控制
分享到: 更多 (0)