TI的下一代SimpleLink™ CC26xx和CC13xx ARM® Cortex®-M3基的Bluetooth®低能耗(BLE)片上系统(SoC)器件,支持蓝牙版本4.2和当前蓝牙5!

是否对BLE感到陌生或想了解有关TI的BLE解决方案的更多信息?请参阅www.ti.com.cn/ble

本指南和常见问题博文将包含有关SimpleLink™蓝牙低功耗超低功耗CC2640R2FCC2640/CC2650无线微控制器(MCU)、开发套件和BLE-Stack软件开发工具包(SDK)的最常见问题的列表。以下提供疑难解答章节,以帮助解决常见问题的解决方案。

本指南基于以下章节进行组织:

入门:选择开发工具包并了解BLE协议

CC2640R2F——有关支持更多可用闪存和蓝牙5的新型SimpleLink BLE无线MCU的信息

疑难解答——常见问题和解决方案

入门

问:入门前我需要了解哪些信息?

答:您需要一个开发工具包,具体取决于您打算使用的无线MCU。请选择以下的其中一个选项:

对于CC2640R2F设计,需要高达80kB的可用闪存用于蓝牙4.2 LE外设应用或蓝牙5高速支持:

1)      CC2640R2 LaunchPad™(LAUNCHXL-CC2640R2)。新型支持蓝牙5的CC2640R2 LaunchPad是TI推出的完整的BLE嵌入式开发套件,价格为29美元,提供板载XDS110调试器、采用7x7 方形扁平无管脚封装的蓝牙低功耗CC2640R2F片上系统(SoC)无线MCU,并通过BoosterPack访问GPIO™扩展连接器。新到LaunchPad?使用更多LaunchPad生态系统详情查看主站点。这是为您的嵌入式蓝牙低能耗系统进行原型设计,开发软件,测量功耗的最经济的开发套件。LaunchPad是嵌入式BLE应用程序的主要开发工具包,TI推荐您使用此工具包启动嵌入式(单设备)开发。

适用于CC2650/CC2640 设计,具有适用于蓝牙4.2应用的高达40kB的闪存:

1)      CC2650 LaunchPad(LAUNCHXL-CC2650)。CC2650 LaunchPad是一款完整的BLE嵌入式开发套件,价格为29美元,提供板载XDS110调试器,采用7x7方形扁平无管脚封装的多标准CC2650片上系统(SoC),并通过BoosterPack连接器访问GPIO。对LaunchPad是否感到陌生?通过更多LaunchPad生态系统细节查看主站点。这是为您嵌入式蓝牙低能耗系统进行原型设计、开发软件、测量功耗的最经济的开发套件。LaunchPad是嵌入式BLE应用程序的主要开发工具包,由TI推荐,用于您启动嵌入式(单器件)开发。

2)      CC2650 SensorTag(CC2650STK)+ XDS110 DevPack调试器(CC-DEVPACK-DEBUG)开发套件(TI eStore捆绑价$ 44)。这是IoT应用程序开发的最佳平台,因为SensorTag具有10个传感器(运动、温度、湿度等),并通过一个纽扣电池运行。了解如何使用SensorTag加速您的IoT开发。

3)      CC2650模块BoosterPack(BOOSTXL-CC2650MA)开发套件具有TI(CC2650MODA)的CC2650模块。这个BoosterPack是在LaunchPad生态系统中开发无线网络处理器BLE应用程序和原型的最简单的方法。请参阅简单网络处理器SimpleLinkAcademy模块,显示如何在BoosterPack上开始使用BLE网络处理器开发。只想用模块进行单片BLE开发?尽管我们建议在LaunchPad上进行单设备BLE开发,但我们还纳入10管脚JTAG电缆,以连接支持的XDS100v3或XDS110调试器(详见下文),以对BoosterPack模块进行编程/调试。其他第三方CC2640模块选项可用,有关详细信息,请参阅TI BLE Wiki。

4)      CC2650遥控装置(CC2650RC)开发套件。使用CC2650RC-BLEDEV BLE开发包,可以使用PC在形状系数遥控装置上评估TI的Voice over BLE(VoBLE)解决方案。详情可在主遥控装置页面上查阅,包括快速入门用户指南。

5)      CC2650 SmartRF06开发套件(CC2650DK)。一个完整的开发套件,具有两个SmartRF06EBK开发板、两个CC2650EM(7x7)、集成LCD和支持访问所有IO。所有CC2650 QFN封装参考设计可通过更改CC2650EM评估模块进行评估。

接下来,您将需要一些软件。好消息是,这些软件可免费使用!

根据所选设备下载蓝牙低能耗软件堆栈:

设备

软件

CC2640R2F

SIMPLELINK-CC2640R2-SDK

CC2650/CC2640/CC1350

BLE-Stack v2.2.1

 

SDK包括TI-RTOS、驱动程序、示例应用程序和免版税的BLE协议栈。有关在SDK中设置和构建示例应用程序的说明,请参阅随附的发行说明。这些SDK支持使用Code Composer Studio™(CCS)和用于ARM的IAR Embedded Workbench进行项目开发。有关所需的IDE和工具链版本,请参阅发行说明。

其他示例项目和高级演示可以在TI SimpleLink GitHub页面上找到

一些套件具有专门的SW示例:

Project Zero是蓝牙低功耗LaunchPads的主要示例,并演示了一种定制的BLE外设。通过您的iOS或带Project Zero的Android应用程序开发您的首个蓝牙LE应用程序,并控制LaunchPad的LED、发送字符串和监视按钮器按键。这些操作代表BLE设备中使用的一些最常用的功能。 Project Zero可用于SimpleLink Academy,这是一种基于模块的学习格式,涵盖从入门到高级BLE开发的主题。了解如何向智能手机发送/从智能手机接收简单的数据串,并通过BLE执行任务,例如控制传感器或开发自己的定制服务。

对于CC2640R2F,SimpleLink Academy可在 www.ti.com/simplelinkacademy上获得,并且可内置在CCS Cloud™以及支持的CCS桌面安装中。

适用于CC2650 LaunchPad的SimpleLink Academy可通过BLE-Stack SDK的附加元件下载获得,并可通过Resource ExplorerClassic访问。此版本需要桌面CCS安装并支持CC2650 LaunchPad以及SensorTag + DevPack Debugger:

请参阅Project Zero和SimpleLink Academy的入门视频

SimpleLinkAcademy:开发您的Bluetooth®低能耗项目

TI培训

Simplelink Academy介绍使用project zero在cc2650启动板和云开发工具上开发。

在任何开发套件上开发自己的应用程序:从SW开发人员指南中的simple_peripheral示例开始,以了解蓝牙LE和TI BLE SW Stack。TI BLE Wiki。使用BLE软件开发人员指南(SWRU393)中的“示例应用程序”章节,TI BLE Wiki上的TI DesignsCC2640示例创建您的蓝牙低能耗应用程序!

所有的工具包、培训资料和样品应用都可在TI BLE Wiki上找到。

可在这里找到CC26xx系列软件快速入门指南。

 

问:我在哪里可以了解有关蓝牙低能耗规格、配置文件、通知、配对等的更多信息?

答:CC2640 BLE软件开发人员指南(SWRU393)中详细介绍了蓝牙LE。除了采用的配置文件和服务,您还可免费从蓝牙特别兴趣组(SIG)网站下载BT核心规范。虽然核心规范超过2,000页,但是在开发蓝牙LE应用程序的过程中通常仅引用几个章节:

  • 通用访问配置文件(GAP)——指定设备的角色(外设、中央、广播机构等):卷3,C部分
  • 属性协议(ATT)——定义离散数据类型,它们是特征的组成部分:卷3,第F部分
  • 通用属性配置文件(GATT)——定义特征,或使用属性的组织方法。卷3,第G部分
  • 安全管理器规范(SMP)——定义生成和交换安全密钥的过程,也称为配对。卷3,第H部分。同样在蓝牙SIG LE安全页面上进行了详细介绍。
  • 链路层规范——管理设备间连接的最下层,并定义通道数据类型。卷6,第B部分

与蓝牙核心规范有关的绝大部分E2E查询都是通过核心规范的上述章节来解决的。某些情况下,上述章节涵盖传统操作和双模操作。请参阅LE-only子部分的相应介绍章节。

由于标准的知名度,还有一些专门用于理解BLE的技术书籍。在您喜爱的书店的搜索引擎中搜索“蓝牙低能耗入门”。

 

问:在哪里可找到有关CC2650 SensorTag的更多信息,包括传感器详细信息、固件、服务/配置文件、PC和智能手机应用等?

答:有关SensorTag、传感器、原理图、BLE定制传感器配置文件以及如何从PC或智能手机访问的技术细节,请参见SensorTag主页的“入门”和“分述”选项卡。

SensorTag设备固件在TI BLE-Stack SDK中提供,包括源和预置十六进制格式。它可使用SmartRF Flash编程器2和支持的JTAG调试器进行编程。

有关如何构建/编程固件,如何通过BLE访问传感器数据以及更多详细信息(包括OAD)的详细信息,请参阅TI BLE Wiki上的SensorTag用户指南。虽然可开发任何智能设备应用程序以与SensorTag交互,但TI的确会提供AndroidiOS示例代码。

问:CC2650CC2640有何区别?如何从CC2650转到CC2640或不同的封装尺寸?

答:多标准CC2650无线MCU支持BLE以及其他无线协议,如ZigBee。CC2640仅支持蓝牙低功耗,并建议用于完全基于BLE的设计。从BLE-Stack v2.x SDK生成的所有代码与具有相同方形扁平无管脚封装尺寸的CC2650CC2640的二进制兼容性,因此在从基于CC2650的开发套件切换到基于CC2640的定制板时不需要移植。此外,用于CC2650CC2640BLE-Stack v2.x SDK中的IDE项目配置设置是交叉兼容的;但是,强烈建议不要更改IDE中的CPU设置。虽然CC2650具有硬件和ROM功能以支持附加无线协议,但是给定的SW版本只能支持一种无线协议。具有多标准CC2650无线MCU功能的开发套件适用于基于CC2640定制板设计的开发。要使用CC2640R2F开发,需要CC2640R2 LaunchPad,请参阅上述套件说明。

所有软件包选项的SW编程接口相同。当从一个封装选项更改为另一个封装选项时,例如7x7到4x4 QFN,只需要考虑板文件中定义的DIO数量,若需要,需要考虑RF布局。

有关新的CC2640R2F的详细概述,请参阅下面的专门章节。TI建议所有新的BLE设计使用CC2640R2F来提高应用闪存可用性。

 

问:CC2640是否支持蓝牙版本4.2Mesh Networks

具有BLE-Stack v2.2.1的CC2640/CC2650/CC1350和具有BLE-Stack v3.0.1的CC2640R2F支持蓝牙核心规范版本4.2,包括所有新的LE功能(LE安全连接、LE数据长度扩展、LE Privacy 1.2)。此外,还支持所有蓝牙版本4.1核心规范LE功能,包括用于多达8个设备的连接的多主/从功能(“Multi-Role”)。与初始蓝牙4.0规范之后添加的所有LE功能一样,v4.1和v4.2功能的支持是可选的。TI BLE-Stack允许您仅选择性地配置应用程序所需的功能(v4.0,v4.1和v4.2)。

CC2640 BLE软件开发人员指南(SWRU393)中提供了使用v4.2功能的说明。

2015年11月11日,蓝牙SIG宣布在2017年推出蓝牙低功耗增强功能,包括对Mesh Networks的官方支持。在SIG采用官方标准后,TI打算支持SIG Mesh标准。

 

问:CC2640/CC2650/CC1350是否支持蓝牙5

答:蓝牙5支持CC2640R2F无线MCU。请参阅ConnecTIng Wirelessly博客“使用Bluetooth®5快速移动的秘诀”,了解新的2 Mbps高速模式如何通过CC2640R2F实现应用。有关蓝牙5的更多详细信息,请参见下面的CC2640R2F章节

 

问:您有GitHub页面吗?

答:有!在TI SimpleLink GitHub页面上可以找到演示CC2640 / CC2640R2F的高级BLE功能的其它示例项目,例如通过BLE的最大数据吞吐量及多达8个并发连接的Multi-Role。请参阅'ble_examples' repo。

 

问:支持哪些调试器?

答:

  • XDS100v3单机(来自第三方制造商)
  • 支持的LaunchPads上的XDS110,如CC2650 (LAUNCHXL-CC2650)和MSP432(MSP-EXP432P401R)Red Edition LaunchPads。其他LaunchPads可能具有一个带暴露10管脚JTAG连接器的XDS110,用于调试外部目标。请参阅LaunchPad的文档。XDS110支持cJTAG 2线配置
  • XDS200(来自第三部分制造商)
  • SmartRF06EB使用XDS100v3(包含在板上)
  • 用于新SensorTag的DevPack调试器(CC-DEVPACK-DEBUG)(参见下面关于使用定制板的说明)

有关支持的调试器的更多详细信息,请参阅 Tools wiki ,包括适用于量产/工厂环境的兼容的第三方ARM闪存编程器。请注意,CC26xx不支持XDS100v2调试器。

问:我可以使用DevPack DebuggerCC-DEVPACK-DEBUG)来编程/调试我的CC26xx / CC13xx板吗?

答:尽管DevPack Debugger使用与CC2650CC2640R2F LaunchPads相同的XDS110 JTAG调试器,但DevPack Debugger设计仅适用于SensorTag(CC2650STK)评估板。与LaunchPad上的XDS110相反,DevPack Debugger并不适合用作独立调试器,因为它没有电平转换器、没有vsense管脚等。TI建议使用上述列出的支持的独立调试器或CC2650CC2640R2F LaunchPad的“XDS110输出”标头以及标准的10管脚ARM JTAG电缆来编程和调试定制板。应用注释“在CC2650模块上运行独立BLE应用程序”(SWRA534)中描述了将LaunchPad用作定制板的外部调试器的步骤。

问:如何将固件编程到CC26xx设备?

所有开发套件都使用演示固件进行了预编程,然而,单独购买的CC26xx设备(例如,在卷线器上)的内部存储器内容被留白/删除。这些设备,包括CC2650MODA模块,可以使用支持的JTAG编程器(见上面的调试器部分)或CC26xx ROM串行引导加载程序进行编程。有关如何使用ROM引导加载程序对CC26xx进行编程的更多详细信息,请参阅CC26xx TRM(SWCU117)的Bootloader章节以及应用注释SWRA466

 

问:如何使用CCSIAR设置CC-DEVPACK-DEBUGXDS110)?

答:请参阅工具概述wiki文章。用户/应用程序COM端口是示例应用程序中使用的USB串行“反向信道”。

问:我可以使用带CC26XXCC调试器吗?

答:很遗憾,不能。CC26XX / CC13XX系列使用cJTAG或4管脚JTAG作为调试接口,CC调试器不支持。

问:支持哪些IDE /编译器?

答:请参阅实际SDK中有关所需工具链和IDE版本的发行说明。通常,支持IAR> = 7.70.2或CCS 6.2.0(Build 50或更高版本)(应用更新)。两者都对TI RTOS有同样良好的支持。请参阅位于BLE-Stack SDK的“文档”文件夹中的“CC2640 BLE软件开发人员指南”(SWRU393)的“设置开发环境”章节。用于测试BLE-Stack SDK的实际IDE版本可在SDK的发行说明中找到。使用低于SDK发行说明中指定版本中的工具链/ IDE版本不兼容。

注意:7.50.3之前的IAR 7.50版本具有BLE-Stack 2.1.x的链接器问题。请使用IAR 7.50.3或更高版本。使用特定版本的IAR打开项目将不允许使用先前版本的IAR打开该项目。

BLE-Stack v 2.2.1 SDK版本已使用TI ARM Compiler v5.2.6进行了构建和测试。与CCS中其他TI ARM编译器版本的兼容性尚未测试,使用其他编译器版本可能会导致未定义的行为。有关安装TI ARM Compiler v5.2.6的过程,请参见“BLE软件开发人员指南”(SWRU393C)的2.6.3.2章节或有关安装一个TI编译器的“在线SW用户指南”章节。请注意,TI Compiler v16.6.0.STS与BLE-Stack v2.2.1不兼容。

IAR已经更改了EWARM 8.11.x IDE版本中的wchar_t的定义,这些定义导致了具有与IAR EWARM 7.80.3及更早版本相关的BLE SDK的警告。TI没有测试这些SDK与8.11.x EWARM的兼容性,并建议使用SDK发行说明中列出的工具链版本。TI BLE SDK使用的IAR版本可以在这里找到。

问:我可以使用带TI BLE-Stack v2.2.xCCS 7.1吗?

答:虽然在CCS v6.1发布时进行了测试,但TI并没有发现与CCS v7.1的不兼容性。请务必按照上述说明,并按照在线SW开发人员指南章节“安装特定TI ARM编译器”来安装TI ARM编译器v5.2.6。

问:您有一个适用于LinuxMacBLE-Stack SDK安装程序吗?

答:BLE-Stack SDK安装程序适用于Windows®7及更高版本的Windows PC主机系统。一些社区用户提供并分享了在非Windows系统上安装的提示。有关在Linux系统上安装的提示,请参阅此跟帖。从BLE-Stack v2.2开始,SDK“tools”文件夹中提供了lib_search.exe和frontier.exe工具的python源代码。此源应该有助于在非Windows主机系统上运行这些工具。

MacOS X CCSv6 Beta Wiki页面上介绍了Mac / OSX受CCS实验性支持。

您也可以使用“Download All”图标链接,将TI Resource Explorer的SimpleLink CC2640R2 SDK下载到非Windows系统设备。

问:当我下载我的代码时,它在何处进行编程?内部或外部闪存?

答:CC26xx是一款基于闪存的无线MCU,具有128kB的系统可编程闪存。由支持的IDE或SmartRF Flash Programmer 2下载/编程的所有代码驻留在内部闪存中并从其执行。一些开发套件具有通过SPI连接的可选串行闪存组件。该外部闪存是使用TI的自定义空中下载(OAD)配置文件来支持固件升级,其中,当配置文件与软件引导映像管理器一起使用时,可以更新内部存储器内容。不可能从外部存储设备执行固件。有关OAD配置文件的更多详细信息,请参阅TI BLE Wiki上的CC2640 BLE OAD用户指南文章。请注意,MCU不能直接从外部存储器执行代码。

问:如何将CC254x应用程序移植到CC2640

答:CC254x SDK中的大多数参考项目已经移植到CC2640。有关移植的更多信息,请参阅CC2640 BLE SW开发人员指南移植章节。虽然大多数BLE-Stack API都保持不变,但是所需的移植工作量将根据现有应用程序的复杂程度而有所差异。

问:如何将CC2640 CCSIAR项目移植到最新的BLE-Stack SDK

答:一个v2.x项目移植指南可在BLE Wiki上找到。对于基于CC2640R2F的项目,迁移和移植指南包含在CC2640R2 SDK中。

问:如何在我的应用程序中添加UARTSPI

答:多种选项可用于将串行通信添加到蓝牙低能耗应用中。请参阅TI BLE Wiki文章:“CC2640串行通信”。

问:如何为CC2640 / CC2640R2F实施设备固件升级(DFU)或空中下载(OAD)固件升级?

答:通过使用TI的自定义OAD(a/k/a DFU)服务、PC工具和外部串行闪存,实现通过BLE无线连接升级固件。有关如何在CC2640上实现OAD的更多详细信息,请参阅“TI BLE Wiki”上的CC2640 BLE OAD用户指南文章。目前,内部闪存的OAD的支持受到应用程序大小的限制,请参阅OAD指南了解更多详细信息。CC2650 LaunchPad具有外部闪存,并用于该示例。

对于CC2640R2F,可以在SW开发人员指南中找到OAD指南。带有BLE-Stack v3.x的CC2640R2F可支持片上(内部)和片外(外部)OAD选项。有关优点和相关限制的详细说明,请参阅指南。

对于使用主机MCU的非无线DFU或应用,CC2640固件可使用ROM串行引导加载程序通过UART或SPI接口进行升级。有关详细信息,请参阅CC26xx TRM(SWCU117),引导加载程序章节。

问:我如何同时进行主&从(即外设&中枢角色)连接?

答:请参阅“Flex_examples”repo上的SimpleLink GitHub页面上的多角色示例应用程序。通过多角色示例应用程序,可在任何GAP角色(中枢或外围设备)中建立多达八(8)个并发连接。对于CC2640R2 SDK,多角色示例应用程序包含在SDK中。

问:如何使用CC2650 SensorTag上的Invensense MPU-9250运动传感器启用更多功能?

答:TI提供了一个参考实现以及源代码,用于在BLE-Stack v2.2.1 SDK中的SensorTag示例应用程序中启用来自MPU9250运动传感器的数据控制和导出。由于运动传感器非由TI制造,因此我们无法通过我们的德州仪器在线支持社区提供额外的支持来修改参考实现。鼓励想要启用其他功能或功能的开发人员查看MPU9250数据表,并与Invensense连接以获得其他支持。有关相关源代码文件,请参阅SensorTag在线用户指南

问:在哪里可以找到CC2650DK的原装开箱即用演示?

答:在这个帖子中可以找到PER测试演示的十六进制文件。TI-RTOS 2.21 SDK中还提供独立源PER项目。

问:在哪里可以找到有关传感器控制器引擎(SCE)和传感器控制器工作室(SCS)的更多信息?

答:请参阅传感器控制器工作室(SCS)常见问题博文

问:较新的TI-RTOS版本是否与现有的BLE-Stack SDK兼容?

答:如发行说明中所述,特定的TI BLE-Stack版本将使用随附BLE-Stack SDK安装程序的TI-RTOS版本进行测试,这在发行说明中有描述。有时,TI可能会为更新的TI-RTOS版本提供特定功能增强功能的移植指南(例如,使用更新的驱动程序),但兼容性只能保证TI BLE-Stack发行说明中列出的TI-RTOS版本。因此,即使有可用的移植指南,也应该使用不同的TI-RTOS版本进行实验。有关TI-RTOS最新支持的详细信息,请参阅TI BLE Wiki上的“移植指南”。

问:我可以使用新的TI-RTOS版本(> = TI-RTOS 2.20)的驱动程序吗?

答:可以,您可以将驱动程序从较新的TI-RTOS版本回移到与BLE堆栈2.2一起使用的驱动程序。为方便起见,我们创建了一个移植指南。 http://processors.wiki.ti.com/index.php/CC2640_Porting_Projects#Porting_Drivers_From_TI-RTOS_2.20_or_higher_To_TI-RTOS_2.18

CC2640R2F 

CC2640R2F是支持蓝牙5配置的SimpleLink CC26xx无线MCU系列的最新成员,可提供更高的吞吐量和更长的范围,并为蓝牙4.2配置中的应用程序开发提供更多闪存。CC2640R2F的软件开发由CC2640R2 SDK 1.35支持蓝牙5 LE。

问:CC2640R2F与支持BLE的现有SimpleLink CC2640/CC2650/CC1350无线MCU有什么区别?

答:除了支持新的蓝牙5低能耗PHY功能外,CC2640R2F具有更新的非易失性(NV)存储器映射布局,此布局具有置于ROM中的最新蓝牙4.2 LE主机和控制器协议栈。这些更新将先前的CC26xx无线MCU的闪存中的协议栈代码移植到ROM,从而允许更多的客户应用使用闪存。对于CC2640R2F,蓝牙4.2外设应用可提供高达80kB的额外免费闪存。除了这些变化,大多数系统和性能规格与CC2640/CC2650无线MCU相同,包括Cortex-M3应用CPU、RAM大小、RF Core和Sensor Controller Engine接口。

问:CC2640R2F是否与现有的CC2640/CC2650无线MCU兼容?

答:CC2640R2F与等效的CC2650/CC2640 QFN封装和参考设计管脚对管脚兼容。这意味着您可将CC2640R2F插入到目前使用相同QFN封装尺寸的CC2640CC2650的现有电路板布局。此外,CC2640R2F可在现有的CC26xx BLE参考设计中被替代。除了NV存储器布局的更新以外,大多数器件规格与CC2640/CC2650保持一致。有关详细信息,请参阅CC2640R2F数据手册。请注意,CC2640R2F仅支持蓝牙低功耗(BLE)。

问:我的CC2640/CC2650 BLE固件应用是否兼容CC2640R2F

答:一般来说,BLE-Stack v2 API和应用程序框架大都相同,包括GAP / GATT和TI-RTOS接口。但是,由于NV存储器映射布局的更新,您无法在CC2640/CC2650CC2640R2F无线MCU之间使用相同的二进制固件映像。CC2640R2 SDK中提供了迁移指南,其中包含将现有BLE-Stack v2.2应用程序移植到CC2640R2F的说明。

问:如何开发我的应用程序以使用蓝牙5

答:许多情况下,更新BLE应用程序以利用新的蓝牙5(BLE5)功能需要最低限度的应用程序更改,因为它们由TI BLE协议栈自动管理。我们撰写了一个单独的蓝牙5博文,描述如何利用新的蓝牙5协议栈(BLE5-Stack)来利用这些功能。

问:BLE-Stack v3.xBLE5-Stack v1.x协议栈有什么区别?

答:目前许多器件仍然使用蓝牙4.0 - 4.2的功能,因此TI在SIMPLELINK-CC2640R2-SDK中包含了内存优化的蓝牙4.2协议栈(BLE-Stack)。该协议栈支持所有蓝牙4.x器件,并经过内存优化,可为应用程序提供高达80 kB的闪存。为了利用蓝牙5的尖端性能,TI增加了一个新的协议栈——BLE5-Stack,其中包括蓝牙4.x的所有现有功能,并增加了对蓝牙5高速模式的支持。蓝牙5功能在系统闪存中实现,根据功能配置允许40-50kB的应用大小。
问:CC2640R2 SDKBLE-Stack SDK有什么区别?

答:CC2640R2 SDK使用TI的新型SDK布局,这对SimpleLink MCU是一个常用布局。通过使用一致的目录和命名约定、安装程序和核心RTOS接口,该SDK格式为在SimpleLink MCU上开发的客户增加价值。BLE-Stack v3.0.1现在作为CC2640R2 SDK中的一个组件被并入。以前由BLE-Stack SDK提供的所有功能(包括TI-RTOS)现已并入CC2640R2 SDK。也可登录dev.ti.com通过TI Resource Explorer访问CC2640R2 SDK。

问:CC2640R2F SDK是否支持CC2640/CC2650/CC1350无线MCU

答:不支持,只有CC2640R2F器件受CC2640R2 SDK支持。对于在启用SimpleLink无线MCU的其他支持蓝牙低功耗的BLE-Stack支持,请使用BLE-Stack v2.2.1 SDK。

问:若我更改为CC2640R2F,我需要重新认证或再次认证我的产品吗?

答:CC2640R2F相对于CC2640/CC2650器件没有频率确定电路的变化。因此,它将具有与CC2640/CC2650相同的RF PHY性能。TI建议与经认证的测试实验室联系,了解有关法规遵从性的所有问题和主题,包括如何将现有的认证设计升级为CC2640R2F

对于蓝牙SIG认证,所有SimpleLink CC26xx和CC13xx BLE器件都使用相同的蓝牙4.2协议栈限定设计ID(QDID)。请注意,更改应用程序使用的协议栈配置(例如,从BT 4.1到4.2)或任何电路板布局更改可能需要重新认证和/或监管重新认证。请查询蓝牙SIG网站的认证要求。有关其他认证的详细信息,请参阅TI BLE Wiki“测试与认证”。

TI从CC2640CC2640R2F(SWRA535)创建了一个应用注释:从CC2640F128 到 CC2640R2F (SWRA535)迁移的硬件,当从CC2640转换到CC2640R2F时可作为额外的硬件相关详情进行参考。

问:CC2640R2F有哪些开发套件?

答:新型CC2640R2蓝牙低功耗LaunchPad(LAUNCHXL-CC2640R2)可从TI eStore上购买。CC2640R2 LaunchPad是一款完整的、低成本BLE开发和原型设计套件,具有XDS110 JTAG调试器/编程器、用于固件更新的板载串行闪存、BooserPack™附件扩展、LED和IO访问。CC2640R2 LaunchPad采用带有31个IO的7x7 方形扁平无管脚封装。

问:哪些开发环境支持开发BLE应用程序?

答:CC2640R2 SDK支持用于ARM的IAR Embedded Workbench和Code Composer Studio v7。有关所需的工具链和IDE版本,请参阅CC2640R2F SDK中的发行说明。

问:SensorTag是否通过CC2640R2F更新?

答:TI还没有宣布任何计划发布带CC2640R2F的SensorTag。CC2650 SensorTag(CC2650STK)仍可用于IoT应用程序原型设计和多标准(例如ZigBee)开发。对于基于传感器的应用开发,Sensor BoosterPack™可与CC2640R2 LaunchPad一起使用。我们创建了一个SimpleLInk Academy模块,演示如何使用Sensor BoosterPack轻松将I2C传感器添加到您的CC2640R2F BLE应用程序。

问:CC2640R2F模块是否可用?

答:TI还没有宣布任何基于CC2640R2F模块的计划,尽管客户可将所有现有的CC26xx参考设计用于并入以QFN封装的CC2640R2F的板布局。第三方模块提供商的列表可以在TI BLE Wiki上找到,包括最近由LSR(Laird)发布的SaBLE-x-R2 2.4GHz蓝牙低功耗(BLE)模块

问:CC2640/CC2650是否仍然可用和受支持?

答:与第一代CC254x BLE MCU一样,TI还未宣布任何计划停止CC2640/CC2650无线MCU。产品支持将继续通过E2E提供。鼓励想要升级蓝牙5或针对其应用,需要其他闪存的客户通过CC2640R2F开始新的设计。

疑难解答

问:我的Project Zero构建并闪烁确定,但不会传播和/或遭遇CPU中断

答:请确保您正在使用正确的CCS开发环境。对于使用BLE-Stack v2.2.1的最新的Project Zero示例,这是采用TI Compiler v5.2.6的CCS v6.2.0。请参阅位于BLE-Stack SDK的Documents文件夹中的CC2640 BLE软件开发人员指南(SWRU393)的BLE-Stack发行说明和“设置开发环境”章节。使用非推荐的编译器可能会导致任务堆栈利用率增加,从而导致未定义的行为。

问:在CC2640/CC2650上切换项目时,我的iOSAndroid设备无法看到新特性或服务

答:出现这种情况,因为智能设备缓存属性句柄,以加速重新连接过程。例如,使用Project Zero重新编程器件后,在其之前运行后,SimplePeripheral将在BLE应用程序(如浅蓝色或BLE扫描仪)中显示“旧”简单GATT配置文件特性。要强制手机发现属性,必须清除手机的BT缓存。在iOS中,在“设置”或“控制中心”菜单中,先关掉然后再打开蓝牙。若设备先前已绑定,请点击设备名称,然后选择“Forget this Device”。在Android上,该过程可能会因构造和型号而异,但最新版本可选择Settings > Apps > Scroll over to All > Choose Bluetooth Share,然后点击“清除缓存”。如同iOS一样,若先前绑定了设备,则将其取消配对。

问:在TI Reference HW上的所有功能都正常的情况下,为何我的自定义CC2640板上的RF性能和范围问题不佳?

答:当遵循TI参考设计指南(http://processors.wiki.ti.com/index.php/CC26xx_HW_Checklist)时,RF性能不良或范围问题的最常见原因是SW中的RF前端和偏置设置与自定义HW上的实际前端配置不正确/不匹配。这种不匹配通常发生在定制板使用不同的封装(即5x5)且包含与定制板前端配置不匹配的其中一个TI CC2650EM eval模块板文件时。为了实现最大的RF性能,将正确的SW设置与实际的电路板布局相匹配至关重要。

例如,CC2650EM_5XD板文件用于5x5封装,其使用带有eXternal偏置的差分前端配置。若定制板使用具有内部偏置的布局,则使用5XD板文件将导致偏置设置不匹配,从而严重降低RX灵敏度。同样的原则适用于不匹配的单端和差分前端配置。

确保使用正确的前端配置设置更新电路板文件。该设置由bleUserConfig.h中的RF_FE_MODE_AND_BIAS定义。有关可用的SW定义,请参阅此页眉文件。建议确认预处理器包含正确的板文件和RF_FE_MODE_AND_BIAS设置。若需要,创建一个具有正确RF设置的新板文件。有关详细信息,请参阅“CC2640 BLE软件开发人员指南”(SWRU393)中的“10创建自定义BLE应用程序”。

有关更多CC26xx HW疑难解答,请参阅以下wiki:http://processors.wiki.ti.com/index.php/CC26xx_HW_Troubleshooting

问:为何我的设备处于无限循环中,无可用于0x1001bbd6”CPU中断)的源

答:这意味着您遇到CPU中断/异常的情况,例如正访问一个不存在的内存地址、栈溢出的副作用等。为了调试此条件,即查找导致CPU中断的原因,请参阅“CC2640 BLE SW开发指南”(SWRU393)第9章中的“解密CPU异常”一节。当您尝试从器件上不可用的应用程序访问IO管脚时,例如从使用7x7的LaunchPad移植应用程序时也可能发生。例如,试图在5x5 QFN器件上访问高于IOID_14的IO将导致硬件中止,因为该管脚仅适用于7x7 QFN封装器件。

问:如何在IAR中启用TI-RTOS对象查看器(ROV)?

答:ROV可在应用程序的Project Options -> Debugger -> Plugins选项卡下启用。在滚动列表中选择“TI-RTOS”。

问:我的开箱即用”BLE示例不会在IAR中编译,我收到一个错误,说变量扩展失败。哪里出错?

答:IAR有时不能包含TI RTOS和CC26XXWARE的路径变量,您需要手动将其导入。

Goto Project->配置自定义参数变量,选择Import并选择相应的变量文件。示例位置:Projects\ble\SimpleBLEPeripheral\CC26xx\IAR\SimpleBlePeripheral.custom_argvars

问:我遇到一个预构建错误,指出在BLE-Stack v3.0 / CC2640R2 SDK v1.0.0.22中无法识别lib_search.exe

答:在此SDK中使用的堆栈预构建步骤期间使用的lib_search.exe可执行文件需要Windows 64位安装系统。对于32位Windows安装系统,请使用此32位版本的lib_search.exe(zip)。

问:我无法使用顶部标记闪存CC2640程序:CC2640 128 IT 59I A90C G4

答:请确保您使用的是最新版本的SmartRF Flash Programmer 2 v1.7.x。最新版本可从主CC2640CC2650产品文件夹的“工具与软件”选项卡下载。

问:我的CC-DEVPACK-DEBUGGERDevPack Debugger / XDS110)在SmartRF Flash Programmer 2 v1.7.x +中没有检测到SensorTag

答:可能需要更新固件。请根据CC2640 BLE软件开发人员指南(SWRU393)安装CCS。当启动调试会话时,CCS将检测是否需要固件更新。打开并构建SensorTag项目,然后通过CCS调试器对SensorTag进行编程。记住关闭SmartRF Flash Programmer 2。

问:在构建Stack项目时,我遇到了Boundary.exe的链接器或后构建错误。

答:(适用于BLE-Stack v2.1.1及更早版本的SDK版本)Boundary工具用于将堆栈闪存/ RAM边界调整到最佳值。这些错误通常发生在堆栈配置被修改,以使RAM / Flash使用情况发生变化时。

  1. 验证您的参数变量/路径是否指向安装Boundary.exe的位置。默认位置:C:\Program Files (x86)\Texas Instruments\Boundary。若工具安装到不同的路径,将需要更新IDE:
  2. IAR: Tools-> Configure Custom Argument Variables ->”CC26xx TI-RTOS” -> BOUNDARY
  3. CCS:Stack Project Properties -> Build,“步骤”选项卡,“后构建步骤”。
  4. 有关如何解决由Boundary工具或链接器生成的构建错误的详细信息,请参见“CC2640 BLE软件开发人员指南”(SWRU393)中“3.12章节:使用Boundary工具配置RAMFlash Boundary”。

 

对于BLE-Stack v2.2.0 +:使用Frontier工具,并且不需要重建Stack项目。详细信息在CC2640 BLE软件开发人员指南中提供,但过程是构建堆栈,然后构建应用程序。只有更改Stack项目时,才需重建堆栈。

问:我在IAR中获得预构建错误,然后单击Tools->Options->Messages->Show all构建消息后,它看起来像这样

gmake[1]: Entering directory `C:/ti/simplelink/ble_cc26xx_2_00_00_42893/Projects/ble/SimpleBLEPeripheral/CC26xx/IAR/Config/src/sysbios'
预处理库源文件...

C:/Users/<user>/AppData/Local/Temp/make904-3.sh: 1: Syntax error: "(" unexpected

答:您的系统无论什么原因禁用了路径IAR所安装的8.3路径名别名(例如PROGRA〜2)。目前唯一已知的可用解决方案是在如C:\IAR\EWARM7401或其他没有空格或长名称的路径安装IAR。

问:我在应用程序项目中获得资源暂时不可用预构建错误类似于:

创建包含未包含在ROM中的API的SYS/BIOS库

0 [main] sh 6420 sync_with_child:child 6332(0x19C)在初始化前死机,状态码为0xC0000142

23 [main] sh 6420 sync_with_child:*** child状态等待longjmp

C:/Users/username/AppData/Local/Temp/make6628-1.sh:fork:资源暂时不可用

答:XDCTools安装中有可能与sh.exe有冲突,并安装了其他一些软件包。请在系统中搜索sh.exe并禁用冲突的安装包。此外,文件系统工具,如cygwin可能会导致与XDCTools的冲突;这些安装也应被禁用。

问:当切换到5x5封装时,我的BLE-Stack v2.1.x项目中的UART会崩溃,例如初始化NPI时。

答:TI-RTOS 2.13 CC2650EM_5XD板文件中存在一个问题,即放置了uartCC26XXHWAttrs结构。请在5XD板文件中进行以下更改,通常位于child:

#pragma DATA_SECTION(uartCC26XXObjects,“.const:uartCC26XXObjects”)

将其替换为:

#pragma DATA_SECTION(uartCC26XXHWAttrs, ".const:uartCC26XXHWAttrs")

这个问题在以后的CC26xx的TI-RTOS SDK版本中得到纠正,并在BLE-Stack v2.2 SDK中完全修复。

问:我的CCS项目无法构建。

答:首先验证您是否使用相应SDK的发行说明中指定的最低CCS IDE版本和TI编译器版本。此外,请勿在BLE-Stack SDK路径和CCS工作区中使用空格。在这些路径中使用空格将导致构建错误。建议将SDK安装到默认位置,以确认您的设置是否正常工作。

问:我的器件仍存在某种构建错误。

答:请使用E2E Rich Formatting Option,并附加您的IAR或CCS构建日志(回形针图标)。请注意,对于IAR,您必须启用Tools -> Options -> Messages -> Log将构建消息记录到文件。请根据需要压缩文件。连接构建文件,而不仅是显示错误的代码片段,对于确定构建环境和诊断构建错误所需的其他因素至关重要。

 

问:当调试或加载Stack FlashROM项目时,我收到错误,表示无法找到向量表或无法运行到主域。

答:Stack项目不是可执行文件,因此它不能直接从IDE进行调试。Stack必须从Application项目工作区进行调试。在IAR中,若使用“下载有源应用程序”来下载(编程)堆栈图像,则不会遇到这些警告。在CCS中,您将看到这些警告,但是只要闪存成功编程,可将其忽略。堆栈下载后,切换到应用程序工作区/项目并启动调试会话。更多详细信息,请参见“CC2640 BLE软件开发人员指南”(SWRU393)。

问:我的CC-DEVPACK-DEBUGDevPack Debugger / XDS110)在Windows Device Manager中总是报告固件升级模式

答:请确保您已在SensorTag中插入电池,并按照wiki上的步骤进行操作:http://processors.wiki.ti.com/index.php/CC13xx_CC26xx_Tools_Overview#XDS110_2

问:如何解除设备?

答:使用SmartRF Flash Programmer 2。在扳手图标(右上角)下,选择“CC26xx / CC13xx Forced Mass Erase”。请注意,执行整体擦除时,闪存编程工具将始终报告“成功”。若CC26xx设备配置(CCFG)已设置为禁用整体擦除功能,则尽管闪存编程工具报告“成功”,但操作将无法成功。

问:我的SensorTagCC2650STK)与Windows 8.1不配对?

答:请使用iOS或Android SensorTag应用程序中的固件下载选项,或使用BLE-Stack V2.1 SDK中预先构建的SensorTag十六进制文件将SensorTag升级到固件版本v1.20或更高版本。请注意,由于尺寸原因,SensorTag固件构建时,并未启用配对功能,而是会从中枢设备正确响应配对请求。

问:我正在使用预先发布的硅(Rev2.0Rev2.1),并且我的软件不运行或从来到达不了主域()。当我停止时,CPU被停在一个名为hisCodeIsBuiltForCC26xxHwRev22AndLater_HaltIfViolated的函数中。哪里出错?

答:只有在BLE-Stack V2.0版本中,才能使用以下步骤来支持预发布硅。BLE-Stack V2.1 +中不支持预发布硅。

问:我正在使用simplelink_cc2640r2_sdk_1_00_00_22 TI-RTOS 驱动程序示例,但是开箱即用项目给出以下错误msg("..\CC2640R2_LAUNCHXL.h", line 54: fatal error #1965: cannot open source file "ti/devices/cc26x0/driverlib/ioc.h")。我该怎么办?

答:在CC2640R2_LAUNCHXL.h中将#include <ti/devices/cc26x0/driverlib/ioc.h>更改为<ti/devices/cc26x0r2/driverlib/ioc.h> in CC2640R2_LAUNCHXL.h,可在C:\ti\simplelink_cc2640r2_sdk_1_00_00_22\source\ti\boards\CC2640R2_LAUNCHXL找到并重新导入项目。

设置文件/驱动程序的默认CC26XXWARE路径设置为支持发行版本(Rev2.2)。要使用旧材料运行软件,需要更改此变量。

IAR:

  • 转到Tools->Configure Customer Argument Variables-->CC26xx TI-RTOS-->CC26XXWARE
  • 修改CC26XXWARE
  • 从:C:\ti\tirtos_simplelink_2_11_01_09\products\cc26xxware_2_20_06_14829
  • 到 C:\ti\tirtos_simplelink_2_11_01_09\products\cc26xxware_2_00_06_14829
  • 删除OS内核库文件夹:IAR\Application\CC2640\configPkg [仅IAR构建]
  • 删除OS内核源代码构建文件夹:IAR\Config\src [仅IAR构建]
  • 关闭工作区并重新打开以使更改生效

CCS:

  • 右键单击应用程序项目,选择Properties
  • 转到Resource->Linked Resources,“Path Variables”选项卡
  • 按照上述说明修改CC26XXWARE
  • 转到Build-> ARM compiler->Advanced Options->Predefined symbols
  • 寻找CC2650F128RGZ并将其替换为CC2650F128RGZ_R21或CC2650F128RGZ_R20。
  • 重建应用程序项目

 

原文链接:

http://e2e.ti.com/support/wireless_connectivity/bluetooth_low_energy/f/538/t/404236