TI E2E 英文论坛海量技术问答的中文版全新上线,可点击相关论坛查看,或在站内搜索 “参考译文” 获取。

This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[FAQ] BLE入门和常见问题解答

Other Parts Discussed in Thread: CC2642R, CC2652R, CC2652RB, CC2640R2F, CC2650, CC2640, CC1352R, CC1350

欢迎使用德州仪器新一代基于Arm®Cortex®-M3和Arm Cortex-M4F的蓝牙5.0/5.1芯片——SimpleLink™CC26xx和CC13xxBluetooth®低功耗(BLE)微控制器(MCU)!

对BLE不太熟悉,想了解有关德州仪器片上系统(SoC)BLE解决方案的更多信息?请参阅www.ti.com/ble

本指南和常见问题解答贴将包含有关使用SimpleLink Bluetooth超低功耗系列——CC1352R,CC2642R/CC2652R/CC2652RB,CC2640R2F和CC26x0无线MCU、开发套件和软件开发套件(SDK)的最常见问题列表。

以下是故障排除章节,帮助解决常见问题。有关已知问题和修复的更多信息,请访问Epic 关于已知问题的贴以及关于所有SDK的修复

本指南基于以下几个部分:

入门指南: 选择开发套件并了解BLE协议

CC2640R2F- 支持更多可用闪存和Bluetooth 5的新型SimpleLink BLE无线MCU

故障排除- 常见问题和解决方案

传感器控制器 - 传感器控制器引擎(SCE)的常见问题

入门指南

问:如何入门?

答:您需要一个开发套件,具体取决于您要使用的无线MCU。请选择以下任何一个选项:

适合Bluetooth 5应用的具有Arm Cortex-M4F256+ kB闪存的CC1352xCC26x2R 

1)    CC26x2R LaunchPad™  (LAUNCHXL-CC26x2R1).CC26x2R LaunchPad用于评估和开发SimpleLink CC2642R Bluetooth 低功耗无线MCU和SimpleLink CC2652R多标准无线MCU的Bluetooth 5 LE应用

2)    CC2652RB LaunchPad (LP-CC2652RB) LP-CC2652RB LaunchPad用于评估和开发SimpleLink无晶体BAW CC2652RB多协议2.4GHz无线MCU的Bluetooth 5 LE应用。 有关BAW技术如何通过真正的无晶体设计简化电路板布局的更多详细信息,请参见此处

3)    CC1352R LaunchPad (LAUNCHXL-CC1352R1).CC1352RLaunchPad用于评估和开发SimpleLink CC1352R 多频段无线MCU的Bluetooth 5 LE应用

4)    CC1352PLaunchPad (LAUNCHXL-CC1352P).CC1352P LaunchPad用于集成功率放大器【+20 dBm】的SimpleLink CC1352P多频带无线MCU评估和开发Bluetooth 5 LE应用

LAUNCHXL-CC26x2R1LP-CC2652RB、和LAUNCHXL-CC1352P具有板载XDS110调试器、EnergyTrace™功率测量技术和作为主要应用处理器48 MHz、32位Arm Cortex-M4F处理器、352 kB系统可编程闪存、256kB的器件内置ROM、80kB的低泄漏SRAM、完整的外设(如I2C、SPI和UART)、高级加密加速器(ECC,AES256,SHA256等)以及传感器控制器引擎(SCE)。

CC2640R2F适用于需要内存优化的Bluetooth 4.2 LE或支持Bluetooth 5的应用 设计:

1) CC2640R2 LaunchPad™ (LAUNCHXL-CC2640R2)。支持Bluetooth 5的CC2640R2 LaunchPad是德州仪器推荐的BLE嵌入式开发套件(价格为29美元)。它提供板载XDS110调试器、CC2640R2F采用7x7 QFN封装,是Bluetooth 低功耗片上系统(SoC)无线MCU,并可通过BoosterPack™扩展连接器访问GPIO。该LaunchPad还支持CC2640R2F-Q1【符合汽车标准的Bluetooth 低功耗无线MCU】的开发。不太了解LaunchPad?请查看LaunchPad生态系统的更多详细信息主站点。这是最经济的开发套件,用于原型化了解嵌入式Bluetooth 低功耗系统、开发软件和测量功率。LaunchPad是嵌入式BLE应用程序的主要开发套件,德州仪器推荐使用该套件开始基于Bluetooth v5.1(使用v4.2定义的LE功能)和基于v5.0的应用程序的嵌入式(单器件)开发。

用于Bluetooth 4.2应用程序的具有40kB闪存的CC26x0

1)    CC2650 LaunchPad (LAUNCHXL-CC2650)。CC2650 LaunchPad是一款全套BLE嵌入式开发套件(价格为29美元)。其提供板载XDS110调试器、7x7 QFN封装的多标准片上系统(SoC)CC2650,并可通过BoosterPack连接器访问GPIO。不太了解LaunchPad?请查看更多LaunchPad生态系统详细信息的主站点。这是最经济的开发套件,用于原型化了解嵌入式Bluetooth 低功耗系统、开发软件和测量功率。LaunchPad是嵌入式BLE应用程序的主要开发套件,德州仪器推荐使用该套件开始您的嵌入式(单器件)开发。

2)    CC2650 SensorTag (CC2650STK) + XDS110 DevPack Debugger (CC-DEVPACK-DEBUG) 开发套件(TI eStore捆绑价为44美元)。SensorTag具有10个传感器(运动、温度、湿度等),且使用纽扣电池供电,因此这是IoT应用程序开发的最佳平台。在此处查看如何使用SensorTag加速物联网开发。

3)    CC2650 Module BoosterPack (BOOSTXL-CC2650MA) 开发套件集成了德州仪器(CC2650MODA)的CC2650模块。该BoosterPack是在 LaunchPad生态系统中开发BLE应用程序最简易的方法。请参阅 Simple Network Processor SimpleLink Academy module了解如何在BoosterPack上进行BLE网络处理器开发。只想使用该模块进行单芯片BLE开发吗?尽管我们建议在LaunchPad上进行单器件BLE开发,但此板子包含一个10管脚的JTAG接线,可与支持的XDS100v3或XDS110调试器(请参见下述详细信息)连接,以对BoosterPack模块进行编程/调试。

4)    CC2650 远程控制(CC2650RC)开发套件。借助CC2650RC-BLEDEV BLE开发包,可通过PC在遥控器上评估TI的BLE语音(VoBLE)解决方案。远程控制页面上有更多详细信息,包括快速入门用户指南。

接下来,您需要一些软件。这些软件均可免费使用!

Bluetooth 低功耗软件开发套件

下载基于所选器件和Bluetooth LE版本支持的Bluetooth低功耗软件协议栈:

器件

软件开发套件

Bluetooth LE版本(合格)

生产/评估

CC2642R/ CC2652R / CC1352R / CC1352P

SIMPLELINK-CC13X2-26X2-SDK

v5.0(高速+ AE/远程),v5.1 RTLS AoA(预览)

生产

CC2640R2F

SIMPLELINK-CC2640R2-SDK

v5.1,v5.0(高速+ AE/远程)

生产(v5.1)/生产(v5.0)

CC2640/ CC2650

BLE-Stack v2.2.3

v5.1(使用v4.2 LE功能)

生产

该SDK包含为这些器件开发应用程序所需的所有组件,包括TI-RTOS、驱动程序、示例应用程序和免版税BLE协议栈。有关在SDK中设置和构建示例应用程序的说明,请参阅随附的release note。这些SDK通过Code Composer Studio™(CCS)和 IAR Embedded Workbench for Arm进行项目开发。有关所需的IDE和工具链版本,请参阅release note。

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

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

Project Zero

Project Zero是Bluetooth 低功耗LaunchPad开发套件的基本示例,并演示了自定义BLE外设。通过Project Zero开发首个Bluetooth LE应用程序并控制LaunchPad的LED、发送字符串并通过iOS或Android应用程序按钮进行监控。这些操作呈现了BLE器件使用的一些最常见的功能。Project Zero可在SimpleLink academy中获得。它是一种基于模块的学习模式,涵盖了从入门指南到高级BLE开发的主题。了解如何向/从智能手机发送简单的数据字符串,以及如何通过BLE执行任务(例如控制传感器或开发自己的自定义服务)。

  • 对于CC2x62R和CC1352R/CC1352P,可通过SDK文件夹在TI Resource Explorer 中找到SimpleLinkacademy:SIMPLELINK-CC13X2-26X2-SDK展开Labs 选项卡可显示可用的Bluetooth 5培训资料,包括扫描、使用2 Mbps PHY进行广播以及使用远程(LEcoded PHY)连接
  • 对于CC2640R2F,SimpleLinkacademy可从www.ti.com/simplelinkacademy获得,且可在CCS Cloud™版以及CCS桌面版中构建。
  • 对于CC26x0,SimpleLink Academy随附了Project Zero,作为BLE Stack SDK的附加下载。该版本需要安装桌面版 CCS,并需要支持CC2650 LaunchPad(LAUNCHXL-CC2650)以及 CC2650 SensorTag + DevPack调试器。仅通过桌面版 CCS 软件中的Resource Explorer Classic在此平台上使用SimpleLinkacademy和Project Zero。请参阅下载页面上的详细设置和安装说明。观看Project Zero和SimpleLink academy的入门视频。

CC13x2/CC26x2 SDK的SimpleLink Academy

CC2640R2 SDK的SimpleLink Academy

其他资源

在任何开发套件上开发自己的应用程序:从《SW Developer's Guide 》中的simple_peripheral示例着手,了解蓝牙LE和TI BLE SW Stack。

 

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

答:SDK随附的《Software User's Guide》中详细介绍了BLE。除配置文件和服务外,您还可从Bluetooth Special Interest Group(SIG)网站免费下载BT核心规范。尽管该核心规范多达2,000页,但在开发蓝牙LE应用程序的过程中通常仅引用几个章节:

  • 通用访问配置文件(GAP)-设定器件的作用(Peripheral, Central, Broadcaster,等):第3卷,C部分
  • 属性协议(ATT)-定义离散数据类型。这些数据类型是特征的“'building blocks”:第3卷,F部分
  • 通用属性配置文件(GATT)-定义特征或属性使用的高效方法。第3卷,G部分
  • 安全管理器规范(SMP)-定义生成和交换安全密钥(也称为配对)的过程【可选】。第3卷,H部分。Bluetooth SIG有一些关于此主题的优秀博客,查看此处。
  • 链路层规范——管理器件连接的最低层,包括在开始连接时对链路进行加密并定义通道数据类型。第6卷,B部分

绝大多数与蓝牙核心规范相关的德州仪器在线支持社区询问都在核心规范的上述各节中解答。,上述各节介绍了经典模式以及双模式操作。有关仅针对BLE的信息,请参见相应的介绍章节。

由于该标准的普及,也出现了很多专门介绍BLE的技术书籍。可在您喜欢的书店的搜索引擎中搜索“Getting started with Bluetooth Low Energy”。

 

问:如何用CC2640R2F/ CC26x2RCC1352R开发蓝牙5BLE5)应用程序,包括远程连接、高速度(2 Mbps)和广告扩展(AE)?

答:首先,请确保下载包含TI 蓝牙5协议栈(BLE5-Stack)的SDK。每个支持BLE5的SDK均包含相关BLE5功能的说明文档和示例应用程序。另外,为能够更好地理解蓝牙5技术,请确保BLE论坛的Bluetooth® 5 Is Here: Top Five Questions Answered 

 

问:如何将TI OAD配置文件添加到我的智能手机应用程序?

答:德州仪器提供的库可简化将TI OAD配置文件添加到智能手机应用程序的过程。该库包含实现TI BLE配置文件的功能,如Simplelink Starter Apps(Android)/(iOs)中所示。

对于iOs,TI提供了一个cocoapod。将“ti_oad”添加到您的pod文件中,可实现自动安装。

对于Android,德州仪器提供了一个Android Studio module。

 

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

答:可在SensorTag工具文件夹中找到有关SensorTag工具文件夹、传感器、原理图、BLE自定义传感器配置文件以及如何从PC或智能手机访问的详细技术信息。

BLE-Stack SDK中提供了SensorTag固件——源代码和预构建的hex格式提供。可使用SmartRF Flash Programmer 2和受支持的jtag调试器进行编程。

 

问:CC2650 & CC2640SDK有什么区别? 如何从CC2650迁移到CC2640 或不同的封装尺寸?

答:多标准CC2650无线MCU支持BLE以及其他无线协议,如802.15.4。CC2640仅支持低功耗蓝牙,建议将其用于完全基于BLE的设计。BLE-Stack v2.x SDK生成的所有代码都与相同QFN封装的CC2650CC2640兼容,因此,从基于CC2650的开发套件切换到基于CC2640的自定义电路板时,无需移植。此外,用于CC2650CC2640BLE-Stack v2.x SDK中的IDE项目配置设置相互兼容;但是,强烈建议不要更改IDE中的CPU设置。尽管CC2650具有支持其他无线协议的HW和ROM功能,但是给定的软件只能支持一种无线协议。多标准CC2650无线MCU的开发套件适用于基于CC2640的自定义电路板设计的开发。如要使用CC2640R2F进行开发,需要用到CC2640R2 LaunchPad,请参见上述套件描述。

所有封装选项的软件编程界面均相同。当从一种封装选项更改为另一种封装选项(例如从7x7到4x4 QFN)时,仅需要考虑电路板文件中定义的DIO数量,以及RF布局(如需要的话)。

有关CC2640R2F的详细概述,请参见专门章节。德州仪器建议所有新的BLE设计都使用CC2640R2F,以提高应用程序可用的闪存。

 

问:是否支持蓝牙网状网络?

2017年7月,Bluetooth SIG发布了首个针对低功耗器件的网状网络规范。该实现使用“flooding”方法来跨网状网络中继数据的有效载荷(即消息)。必须注意:网状规范不属于蓝牙核心规范,也不是蓝牙 5或任何先前的蓝牙 4规范的一部分。有关蓝牙网状网络的更多详细信息,请访问SIG网站:bluetooth.com/mesh。德州仪器打算在未来的SDK产品中支持网状网络。

 

问:有GitHub页面吗?

答:有! 演示CC2640 / CC2640R2F的其他高级BLE功能的示例项目,例如通过BLE和Multi-Role实现最大的数据吞吐量——根据配置,最多可同时连接8个从机,可在TI SimpleLink GitHub页面上找到。请参阅“ble_examples”repo,以获取如何访问与先前BLE Stack SDK版本相关的示例的说明。

 

问:支持HomeKit吗?

答: CC26x2R上支持HomeKit,通过SimpleLink™软件开发工具包(SDK)插件启用。SimpleLink™ software development kit (SDK) plug-in for HomeKit .

 

问:支持哪些调试器?

答: 

  • XDS100v3独立版本(来自第三方制造商)
  • LaunchPad上的XDS110,例如CC2650 (LAUNCHXL-CC2650)和MSP432(MSP-EXP432P401R)红色版LaunchPads。其他LaunchPad可能带有外露10-pin Jtag连接器的XDS110,可用于调试外部设备。请参阅LaunchPad的文档。XDS110支持cJTAG 2线配置
  • XDS200(来自第三方组件制造商)
  • 使用XDS100v3的SmartRF06EB(包含在电路板上)
  • 用于新SensorTag的DevPack调试器(CC-DEVPACK-DEBUG)(请参阅以下有关自定义电路板的用法说明)

 

问:我可以使用DevPack调试器(CC-DEVPACK-DEBUG)编程/调试自定义CC26xx/CC13xx电路板吗?

答:尽管DevPack调试器使用的是CC2650CC2640R2F LaunchPads上的XDS110 JTAG调试器,但DevPack调试器仅适用于SensorTag(CC2650STK)评估套件。与LaunchPad上的XDS110不同,DevPack调试器不可用作自定义电路板的独立调试器,因为它没有电平转换器、无vsense管脚等。德州仪器建议使用上面所列独立调试器或 CC2650CC2640R2F LaunchPad的“XDS110 out”标头以及标准10-pinARM JTAG电缆,来对定制电路板进行编程和调试。应用指南“在CC2650模块上运行独立BLE应用程序【Running Standalone BLE Applications on CC2650 Module】”(SWRA534)中描述了将LaunchPad用作自定义电路板的外部调试器的步骤。

 

问:如何将固件烧录到CC13xx/CC26xx器件?

答:所有开发套件都已预先内置了演示固件,但是单独购买的CC26xx器件的内部存储器内容为空白/已擦除。包括CC2650MODA模块在内的这些器件可以使用支持的JTAG编程器(请参见上面调试器一节)或通过CC26xx ROM串行引导程序进行编程。有关如何使用ROM引导加载程序对CC26xx进行编程的更多详细信息,请参见CC26xx TRM(SWCU117)应用指南的Bootloader SWRA466

 

问:每个CC13xx/CC26xx BLE无线MCU是否具有唯一的蓝牙器件地址(BDADDR)?

答:是的,德州仪器的所有BLE无线MCU均已把一个唯一的48位IEEE BDADDR预编程到芯片的工厂配置区域(FCFG)。在生产过程中,德州仪器会为芯片提供由TI专属的24位IEEE OUI模块之一生成的BDADDR。使用TI编程的IEEE地址不收取额外费用。可以在此处的IEEE网站上找到OUI列表。请注意:我们只能保证BDADDR是唯一的,不保证是连续的或者来自同一德州仪器OUI模块,即使是同一批芯片。除非已将 secondary address编程到客户配置区域(CCFG),或者在BLE协议栈初始化过程中应用程序通过供应商特定的HCI命令指定了备用地址,否则IEEE BDADDR将用作器件的公共蓝牙身份地址。可使用JTAG编程工具(例如Flash Programmer 2或Uniflash)或通过调用HCI_ReadBDADDRCmd API从软件读取器件的BDADDR。

 

问:如何在应用程序中实现电源管理以降低功耗?

答:默认情况下,SDK中的所有独立或嵌入式示例应用程序均配置为,在没有应用程序或RF活动发生时进入待机(或“睡眠”)状态。此配置由应用程序项目中定义的POWER_SAVING预处理器控制。此定义将TI Power Driver配置为自动控制器件功率状态,以响应RTOS和RF状态/事件,从而始终实现最低功耗状态。举个例子,如果已定义POWER_SAVING,MCU将在广播或连接事件之间或在空闲任务运行时进入待机状态。不需要运行实时应用控制程序即可管理电源状态。网络处理器应用程序需要使用其他信号管脚来控制器件的唤醒和待机状态。如果这些管脚不可用,则必须删除/取消定义POWER_SAVING,然后再构建应用程序。有关此主题的更多信息,请参考应用指南测量蓝牙低功耗”(SWRA478)和SDK(SPRUI18)中的电源管理用户指南。

 

问:我可将CC调试器与CC26XX一起使用吗?

答:很遗憾,不可以。CC26XX/CC13XX系列使用cJTAG或4-pin JTAG作为其调试接口,而CC Debugger不支持。

 

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

答:有关所需的工具链和IDE版本,请参阅SDK中的release note。通常来讲,需要IAR>=7.70.2或CCS 6.2.0及以上(构建50或更新版本)。两者对TI RTOS提供同样良好的支持。请参阅SDK中的《BLE Software User’s Guide 》中的“Setting up the Development Environment”一节。可在SDK的Release Note中找到用于测试BLE-Stack SDK的实际IDE版本。不可使用低于SDK release note中指定版本的工具链/IDE版本。

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

BLE-Stack v 2.2.3 SDK版本已使用TI Arm Compiler v16.9.4.LTS进行构建和测试。与CCS中其他TI Arm编译器版本的兼容性尚未经过测试,因此使用其他编译器版本可能会导致未定义的错误。有关安装未与CCS捆绑的特定TI Arm编译器的程序,请参阅BLE软件开发人员指南(SWRU393C)的第2.6.3.2节或在线软件用户指南中的安装TI编译器一节。

IAR更改了EWARM 8.11.x IDE版本中wchar_t定义,这会导致使用IAR EWARM 7.80.3和更早版本的BLE SDK出现警告。德州仪器尚未测试这些SDK与8.11.x EWARM的兼容性,因此建议使用SDK release note中列出的工具链版本。TI BLE SDK使用的IAR版本可在此处找到。

 

问:我可将CCS 7.xTI BLE-StackBLE v2.2.x一起使用吗?

答:尽管在发布CCS v7.4时进行了测试,但德州仪器尚未发现与CCS v8的任何不兼容性。请确保按照上述步骤以及在线《SW Developer's Guide 》的安装特定TI ARM编译器的说明进行安装。

 

问:是否有适用于LinuxMacBLE-StackSDK安装包?

答:CC2640/CC2650的BLE-StackSDK安装程序适用于Windows®7和更高版本的Windows PC系统。一些社区用户提供并分享了在非Windows系统上安装的建议。有关在Linux系统上安装的建议,请参见此贴。从BLE-Stackv2.2着手,SDK“tools”文件夹中提供了lib_search.exe和frontier.exe工具的python源。该源应有助于在非Windows主机系统上运行这些工具。

从用于CC2640R2FCC2642RCC2652RCC1352R器件的SimpleLink SDK 2.20开始,在受支持的Windows、Linux和macOS平台上启用了主机构建支持。有关特定于平台的构建选项,请参阅相应器件的SDKrelease note。

 

问:下载代码时在何处编程?内部还是外部存储?

答:CC13xx/CC26xx是基于flash的无线MCU,具有128kB或352kB的内部可编程闪存。通过IDE或SmartRF Flash Programmer 2(仅CC26x0)或Uniflash独立闪存编程器(所有CC13xx/CC26xx器件)下载/编程的所有代码均位于内部闪存中并从中执行。一些开发套件具有通过SPI连接的可选串行闪存组件。该外部闪存用于使用TI自定义无线下载(OAD)配置文件进行固件升级。该配置文件与软件启动映像管理器一起使用时,可更新内部存储器的内容。不可直接从外部存储器件执行固件。请注意:MCU无法直接从外部存储器执行代码。

 

问:如何将CC254x应用程序迁移到CC26xx

答:CC254x SDK中的大多数参考项目已移植到CC2640。有关移植的更多信息,请参考CC2640 BLE SW Developer’s Guide porting一节。尽管大多数BLE-Stack API保持不变,但所需的移植工作量将取决于现有应用程序的复杂性。

 

问:如何将CC26xx CCSIAR BLE项目移植到最新的 BLE-StackSDK

答:BLE Wiki上提供了v2.x项目移植指南。对于基于CC2640R2F和CC26x2R/CC1352R的项目,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具有外部闪存,用于OAD例程。

对于CC2640R2F,可以在SW Developer's Guide中找到OAD 指南CC2640R2F 带有BLE-Stack v3.x,可支持片上(内部)和片外(外部)OAD选项。从CC2640R2 SDK v1.40 BLE-Stack v3.1.0开始,OAD配置文件已进行增强,可更快下载以及进行片上堆栈升级。请参阅指南,以详细了解优点和相关限制信息。

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

 

问:如何同时进行主从器件(即Peripheral & Central )连接?

答:请在“ble_examples”repo下的SimpleLink GitHub页面上查看multi-role 示例应用。使用multi-role 示例应用程序,可以在任何GAP角色(Peripheral Central)下建立多设备同时连接。对于CC2640R2、CC13x2和CC26x2 SDK,该SDK中包含multi-role 例程。

 

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

答:德州仪器提供了参考设计以及源代码,BLE-Stack v2.2.x SDK内的SensorTag例程,可以控制和导出MPU9250运动传感器中的数据。由于运动传感器并非德州仪器制造,因此我们无法通过德州仪器在线支持社区提供其他支持来修改例程。想要启用其他功能的开发人员查看MPU9250数据表并与Invensense联系以获得更多支持。有关相关源代码文件,请参阅SensorTag在线用户指南

 

问:在哪里可以找到CC2650DK的原始出厂演示例程【out of box demo】?

答:可在这篇帖子中找到PER Test演示的hex文件。独立的PER project源代码也可以在TI-RTOS 2.21 SDKTI Resource Explorer中找到。 

 

问:新的德州仪器-RTOS版本是否与当前的BLE-StackSDK兼容?

答:如release note中所述,特定的TI BLE-Stack版本已与BLE-Stack SDK里的TI-RTOS一起进行了测试。有时,德州仪器可能会提供针对较新的TI-RTOS版本的移植指南,以进行特定的功能增强(例如使用更新的驱动程序),然而只有列在TI BLEBLE-Stack的release note中的TI-RTOS版本才能保证兼容性。因此,即使有移植指南,也应考虑使用其他TI-RTOS版本。有关最新的TI-RTOS支持的详细信息,请参见TI BLE Wiki上的移植指南。

由于coreSDK与SimpleLink SDK紧密集成,因此无法在另一个SDK中使用不同的coreSDK组件。

 

问:我可以使用较新的CC26x0 TI-RTOS SDK> =TI-RTOS 2.20)附带的驱动程序吗?

答:可以。您可将驱动程序从较新的TI-RTOS版本向后移植到BLE stack2.2。为便于使用,我们创建了移植指南。  processors.wiki.ti.com/.../CC2640_Porting_Projects

 

问:关于Sweyntooth漏洞是否有下文?

答:是的。您可在以下两篇博文中找到我们对Sweyntooth的回复:

低功耗蓝牙–意外的公钥崩溃(SweynTooth)

低功耗蓝牙–无效的连接请求(SweynTooth)

 

CC2640R2F

CC2640R2FCC2640R2F-Q1是德州仪器的第一代蓝牙5无线MCU,支持更高吞吐量和更远范围的配置,并为蓝牙4.2配置(符合蓝牙5.1)的应用开发提供了更多的闪存。用于CC2640R2F开发的SIMPLELINK-CC2640R2-SDK现已支持BLE5CC2640R2F-Q1已通过汽车应用AEC-Q100认证,具有与7x7 QFN封装的CC2640R2F相同的所有功能和软件支持。

问:CC2640R2F与现有的BLE芯片SimpleLink CC2640/CC2650/CC1350等有何区别?

:除支持BLE5新的PHY功能之外,CC2640R2F的非易失性(NV)存储器映射布局也得到了更新,并且ROM中内置了最新的BLE 4.2主机和控制器协议栈。这些更新将先前存于CC26xx无线MCU上闪存中的协议栈代码移至ROM,从而允许客户在flash中存放更大的应用程序。除这些更改外,大多数系统和性能规范与CC2640/CC2650无线MCU相同,包括Cortex-M3应用CPU、RAM大小、RF内核和传感器控制器引擎接口。

 

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

CC2640R2F与封装相同的CC2650/CC2640 pin-to-pin兼容。这意味着您可将CC2640R2F置于现有的电路板布局中——该电路板使用相同QFN封装尺寸的CC2640CC2650。此外,可以用CC2640R2F替代现有的CC26xx BLE参考设计中。除更新NV存储布局以支持更大的客户应用程序外,大多数器件规格与CC2640/CC2650相同。其他详细信息,请参见CC2640R2F数据手册。请注意,CC2640R2F仅支持低功耗蓝牙(BLE)。

 

问:我的CC2640/CC2650 BLEfirmware是否与CC2640R2F兼容?

:通常来讲,BLE-Stack v2 API和应用程序框架基本相同,包括GAP/GATT和TI-RTOS接口。但是,由于更新了NV存储器映射布局,因此您不能在CC2640/CC2650和CC2640R2F无线MCU之间使用相同的binary firmware image。CC2640R2 SDK中提供了迁移指南,其中包含将现有BLE-Stack v2.2应用程序移植到CC2640R2F的说明。

 

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

:德州仪器现已更新SIMPLELINK-CC2640R2-SDK v2.30.00.28。其具有经过蓝牙 5生产认证的协议栈组件(ble5stack),支持新的BLE 5 2Mbps高速模式、LE coded PHY(远距离模式)和广播扩展(AE)功能。随附的simple_peripheral和simple_central例程已通过示例代码进行了更新,以利用这些功能。

许多情况下,更新现有BLE应用程序以使用最新的蓝牙5功能需要的改动很少,因为它们是由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高速、远程和广播扩展模式的支持。

 

问:CC2640R2 SDKBLE-Stack SDK有什么区别?

:CC2640R2 SDK使用德州仪器的新的SDK布局,这是SimpleLink MCU常见的布局。此类SDK格式使用一致的目录和命名约定、安装过程和核心RTOS接口,为使用SimpleLink MCU的客户提供便利。BLE-Stack v3.0.1现在作为一个组件合并到CC2640R2 SDK中。BLE-Stack SDK先前提供的所有功能(包括TI-RTOS)现都包含在CC2640R2 SDK中。也可以通过dev.ti.com上的的TI Resource Explorer 访问CC2640R2 SDK。

 

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

:否,CC2640R2 SDK仅支持CC2640R2F器件。如要在其他蓝牙低功耗的SimpleLink无线MCU上使用BLE-Stack,请使用BLE-Stack v2.2.x SDK。

 

问:如果我改用CC2640R2F,是否需要重新认证我的产品?

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

为获得蓝牙 SIG认证,所有SimpleLink CC26x0和CC1350 BLE无线MCU均使用相同的蓝牙 5.1协议栈合格设计ID(QDID)。请注意:更改应用程序所使用的协议栈配置(例如从BT 4.1更改为4.2)或更改任何电路板布局都可能需要重新认证。请检查蓝牙 SIG网站上的认证要求。可在蓝牙认证应用指南SWRA601中找到其他认证详细信息。

德州仪器创建了一个应用指南硬件迁移:从CC2640F128到 CC2640R2F(SWRA535) , 从CC2640过渡到CC2640R2F时,可参考该指南以获取更多与硬件相关的详细信息。

 

问:CC2640R2F提供哪些开发套件?

:TI eStore可提供CC2640R2 蓝牙低功耗LaunchPad(LAUNCHXL-CC2640R2)。CC2640R2 LaunchPad是一个完整的低成本BLE开发和原型设计套件,具有XDS110 JTAG调试器/编程器、用于固件更新的板载串行闪存、带有BooserPack™的扩展附件、LED和IOs访问。CC2640R2 LaunchPad使用具有31个IO的7x7 QFN封装。

 

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

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

 

问:CC2640/CC2650仍然可用并受支持吗?

:与第一代CC254x BLE MCU一样,德州仪器尚未宣布任何终止支持CC2640 / CC2650无线MCU的计划。产品支持将继续通过德州仪器在线支持社区提供。我们推荐那些希望升级到蓝牙 5或需要更多闪存供应用使用的客户选择CC2640R2F进行新设计。

 

故障排除指南

问:在电路板或LaunchPad上切换示例应用程序时,我的iOSAndroid器件无法看到新的特性或服务

答:发生这种情况是因为智能器件缓存了GATT attribute handles,目的是为了加快重新连接过程。例如,在先前运行SimplePeripheral之后用Project Zero对器件进行重新编程时,它将在BLE应用程序(如Light Blue或BLE扫描仪)中显示旧的Simple GATT配置文件特征。如要强制手机重新发现属性,必须清除手机的BT GATT缓存。如果器件先前已配对/绑定,请在蓝牙 设置菜单中点击器件名称,然后根据手机操作系统版本选择“Forget this Device”或“Unpair”。接下来,基于iOS或Android完成以下过程:

iOS 10及更早版本中,在“Settings”或“Control Center”菜单中将“Aeroplane mode”设置为“ON”然后“OFF”(这会关闭然后再打开蓝牙无线电)。对于iOS 11及更高版本,由于由于这些iOS版本中的Bluetooth Radio的管理方式发生了变化,,因此必须从“Settings”>“Bluetooth”菜单中先将“Bluetooth”从“OFF”切换为“ON”

在Android上,此过程可能因品牌和型号而异,但最新版本可选择“Settings”>“Apps”>“Scroll over to All ”>“Choose Bluetooth Share”,然后点击“Clear Cache”。与iOS一样,如果先前已绑定了器件,则取消配对。

 

问:我的Project Zero正确构建并烧录,但设备未广播和/或产生CPUabort

答:请确保使用正确的CCS开发环境。对于使用BLE-Stack v2.2.2的最新“Project Zero”示例,建议使用带TI Compiler v16.9.4.LTS的CCS v7.4。请参阅BLE-Stack SDK的Documents文件夹中的BLE-Stack release note和CC26x0 BLE Software Developer’s Guide(SWRU393)中的“Setting up the Development Environment”章节。使用非推荐的编译器可能会导致任务堆栈利用率提高,从而导致未知错误。

 

问:RF性能在TI硬件上一切正常,但是在自定义CC26xx电路板上出现RF性能不良和范围问题?

答:假如设计遵循德州仪器参考设计指南(http://processors.wiki.ti.com/index.php/CC26xx_HW_Checklist),出现RF性能不良或范围问题的最常见原因是软件中的RF前端和偏置设置与在自定义HW上的实际前端配置不当/不匹配。如果自定义电路板使用不同的封装(即5x5),且IDE的project里使用了TI的board file,该文件与定制板的前端配置不匹配,通常会发生这种问题。为获得最佳的RF性能,软件设置必须要与实际电路板布局相匹配

例如,CC2650EM_5XD board file 适用于5x5封装,使用带有部偏置的差分端配置。如果自定义电路板使用部偏置的布局,则使用5XD board file将导致偏置设置不匹配,从而严重降低RX灵敏度。相同的原理适用于不匹配的单端与差分前端配置。

确保使用的board file里已更新了正确的前端配置设置。该设置由bleUserConfig.h中的RF_FE_MODE_AND_BIAS定义。有关可用的SW定义,请参见此头文件。建议确认预处理器包含了正确的board file和RF_FE_MODE_AND_BIAS设置。如需要,请使用正确的RF设置创建一个新的board file。更多的详细信息,请参见CC2640 BLE Software Developer’s Guide(SWRU393)中的“10 Creating a Custom BLE Application”。

有关CC26xx硬件故障排除的更多信息,请参考以下Wiki:http://processors.wiki.ti.com/index.php/CC26xx_HW_Troubleshooting

 

问:为什么我的器件报错No source available for 0x1001bbd6

答:这说明您遇到了CPU中止/异常,例如由于访问了不存在的内存地址、堆栈溢出等。如要调试此情况(即查找导致CPU中止的原因),请参阅《CC2640 Software Developer’s Guide(SWRU393)》第9章中的“Deciphering CPU Exceptions”一节。当应用程序尝试访问设备上不可用的IO引脚时,例如从使用7x7封装的LaunchPad移植应用程序时,也会发生这种情况。例如,在5x5 QFN器件上尝试访问高于IOID_14的IO将导致hardware abort,因为此管脚仅在7x7 QFN封装器件上可用。

 

问:我正在使用simplelink_cc2640r2_sdk_1_00_00_22 TI-RTOS驱动程序示例,但是当前项目给出以下错误 信息("..\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>,此文件可在C:\ti\simplelink_cc2640r2_sdk_1_00_00_22\source\ti\boards\CC2640R2_LAUNCHXL中找到,并重新import项目。 

设置files / drivers的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 kernel库文件夹:IAR\Application\CC2640\configPkg [仅适用于IAR]
  • 删除OS kernel 源构建文件夹:IAR\Config\src [仅适用于IAR构建]
  • 关闭workspace并重新打开以使更改生效

CCS:

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

 

问:当使能CACHE_AS_RAM功能时,我的项目编译正常,但无法运行。这是什么原因导致的?

答:打开内存浏览器,找到rfRegTbl的位置。如果您看到rfRegTbl的起始地址不是4字节对齐的,则整个rfRegTbl都会倾斜。RF Core(M0)需要所有地址都是4字节对齐,否则RFcore会崩溃。要解决此问题,请在ble_user_config.c中的 rf override table前面添加“ #pragma DATA_ALIGN(rfRegTbl, 4)”。

代码示例: 

问:我找不到BDS,为什么会这样? [NEW Aug 9]

答:蓝牙SIG决定终止支持BDS,因此您无法再找到BDS(也是SLA BDS培训部分)。

https://www.bluetooth.com/download-developer-studio

 

问:如何从simple_peripheral_example中删除display和两个button menu?是否有更多可减少simple_peripheral 例程FLASH使用的方法?[NEW Feb 14]

:有一些贴子讨论了如何减少simple_peripheral示例的FLASH使用。参见:

  • 删除 display ——CC26x2/CC13x2:e2e.ti.com/.../879276
  • 删除 display ——CC2640R2:e2e.ti.com/.../3252666
  • 删除#2 advertisement ——CC26x2/ CC13x2:e2e.ti.com/.../3255504
  • 删除#2 advertisement ——CC2640R2:e2e.ti.com/.../88013
  • 删除RSSI监控和PHY自动更新——CC26x2/CC13x2:e2e.ti.com/.../880155
  • 删除RSSI监控和自动PHY自动更新——CC2640R2:e2e.ti.com/.../880151
  •  删除连接参数更新——CC26x2/CC13x2:e2e.ti.com/.../880171
  • 删除连接参数更新——CC2640R2:e2e.ti.com/.../880163
  •  删除配对——CC26x2/CC13x2:e2e.ti.com/.../880181
  •  删除配对——CC2640R2:e2e.ti.com/.../880177

 

问:如何将调试器连接到正在运行的目标?(也称为将调试器加到正在运行的目标上[NEW Feb 24]

答:请参见此贴。

—传感器控制器引擎常见问题解答—

什么是传感器控制器,什么是Sensor Controller Studio(SCS)?

传感器控制器是用于描述CC26xx和CC13xx系列器件中的传感器模块的术语。位于单独的电源域(AUX_PD)中,其中包含专用的低功耗16位处理器、2 KB RAM、外设(ADC、比较器、定时器、TDC等)。该模块设计用于实现超低功耗和高灵活性。传感器控制器能够独立于MCU域,对AUX-PD进行自己的电源和时钟管理。Sensor Controller Studio(SCS)是一个GUI工具,用于编写、测试和调试CC26xx/CC13xx传感器控制器的代码。此GUI工具生成一个传感器控制器接口驱动器——一组C源文件,这些源文件会编译到系统CPU(Arm Cortex-M3或Cortex-M4F)的应用程序中。这些源文件包含传感器控制器固件映像,并允许System CPU应用程序控制和与传感器控制器交换数据。

如何快速入门SCS?哪里可以找到文档?

阅读此应用指南:http://www.ti.com/lit/pdf/swra578

下载并安装SCS。请查看“Start Page”右上角的“Getting Started Guide/Tutorial”。

我们在 Resource Explorer中提供了传感器控制器的SimpleLink Academy培训:dev.ti.com/#/tirex

如要打开全面的帮助文档,您可在SCS中按F1(Help Menu)或在 打开“Help-> Sensor Controller Studio Help”菜单项。除了生成的driver API文档【可直接在driver源文件中找到的scif.c, scif_framework.c, scif_osal_tirtos.c/scif_osal_none.c等】,此文档基本涵盖了所有其他内容。

传感器控制器的功率是多少?

简而言之,很少。请查看此帖以获取更多详细信息。未来将提供更详细的描述:

e2e.ti.com/.../1681248

传感器控制器以什么时钟频率运行?

请参阅TRM中的17.5.2.1Active Mode 。AUX电源域中的传感器控制器具有独立于器件电源的电源模式。在active mode下,SCS框架将使能24 MHz时钟源(源自SCLK_HF)。在待机模式下,如果开启了TIMER或GPIO事件触发,则SCS框架将关闭时钟或切换至低速32 kHz时钟。这也是传感器控制器处理器运行的速度。最大频率为24 MHz,时钟分频的配置由系统CPU通过配置AON_WUC:UXCLK.SCLK_HF_DIV寄存器来控制。