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.

[参考译文] LP-EM-CC2340R5:BLE 入门帮助

Guru**** 1831610 points
Other Parts Discussed in Thread: MSP430FR2110, CC2340R5
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1311436/lp-em-cc2340r5-help-getting-started-with-ble

器件型号:LP-EM-CC2340R5
主题中讨论的其他器件:MSP430FR2110CC2340R5SysConfigSysBios

您好!
我有这个 LaunchPad、希望顺利进入外围设备开发、但是、我似乎有点过头了。
虽然我在 MCU 编程方面拥有经验、但我不熟悉 RTOS、并且这种架构似乎比我习惯的要复杂得多。

我要尝试实现的是具有一些板载传感器的外围器件、在收到来自主机应用程序的命令后、它将与相关的板载传感器进行交互、并将测量结果发送回主机。

我尝试查看 basic_BLE 和 data_stream 示例以了解如何调整它们(在完成各自的在线实验教程和阅读 SimpleLink 入门手册后)、 但它们似乎都包含比我的应用所需的器件更多的器件、并且具有如此多的抽象层、以至于我丢失了尝试修整它们的方法。

我也 没有找到关于从空项目开始并只构建我认为合适的项目的文档。

如果有人能向我推荐有关如何编写 如此简单的 BLE 应用的文档、或者对给定示例进行详尽的解释、以及真正优秀的阅读来开始使用 BLE 和 RTOS 进行开发、我会非常感激。

谢谢!
加仑

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、gal、

    我希望你们做得好。 basic_BLE 应该是您的应用的良好起点。 我们在 SimpleLink Academy 中提供了丰富的内容、但如果您已经完成了这些实验、我也建议您查看 SDK 中的指南。  

    BLE5-Stack 用户指南—SimpleLink CC23xx SDK BLE5-Stack 用户指南3.02.04.00文档

    TI BLE5-Stack 快速入门—SimpleLink CC23xx SDK BLE5-Stack 用户指南3.02.04.00文档

    BLE5-Stack—SimpleLink CC23xx SDK BLE5-Stack 用户指南3.02.04.00文档

    我们还有有关 RTOS 的文档(根据 CC13xx CC26xx SLA)、建议您重温 RTOS 概念和 FreeRTOS 基础知识。  

    RTOS 概念(TI.com)

    BLE 是一种经过多年开发/迭代经历的复杂协议、因此它已经变得相当大。  

    谢谢。
    亚历克斯

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    高加仑、

    您非常喜欢我的 UART 转 BLE 桥接器示例文章、因此我很乐意帮助您以及 E2E 上的其他 CC2340新用户开始使用这一开创性的(相对)新入门级通用 BLE 器件、 这是一项精湛的技术成就、从优雅、多功能性、平衡性和性价比方面来说、是"TI 的核心"。 几乎引用一首著名的德雷海峡歌曲,你得到你的"蓝牙什么都没有,你的芯片(几乎)免费"。 我将尝试在学习方法/路径中、从自学(当然是在优秀的 E2E TI 员工的帮助下)的角度、为您提供有用的指导和练习、此用户自早期选择性预览阶段就一直使用该器件并关注其开发。 有时、TI 工程师是如此博学和经验丰富、真诚地给予许多理所当然的东西。 通常、TI 文档是使用 TI 器件的一个强大竞争优势、可以理解的是、它没有其他器件那么优秀和完整、这主要是由于以下原因:1)它是一款非常新的器件(根据 TI 标准);2)它使用新的(针对 TI 和单个) M0+内核、 MSPM0系列已同时设计和发布、这是我知道的首款 TI M0+ MCU、但我不记得其具体涉及的相对模糊的特定器件除外。 3)与他们之前的多核、并且至少使用一个 M£作为应用内核的未连接/有线和无线器件不同;3)我记得、它是首款不支持 TI 内部 TI-RTOS (SYS/BIOS)内核的32位无线器件 (过去随着 FreeRTOS 提供双支持、由于 TI 不断推动 POSIX 层的发展、因此内核可能具有一定程度的独立性(即使 POSIX 标准从来不适用于 MCU、也不能仅使用这些调用实现真正的完全运行); 4) 4)由于一切都在单个内核上运行、因此与其他 TI (和其他供应商的) BLE 器件相比、存在某些架构、行为和编程限制是不常见的: 5) BLE 标准可能是最复杂的(有时,显然是过度工程)网络标准,它不是很灵活,因为它必须保证多供应商和多设备的互操作性,并涵盖大多数(如果不是全部) OSI 层。 我将努力为您提供一种学习途径、从而引导您实现所说的外设 BLE 感应器件目标。 为了继续、我需要您回答以下问题:

    1)您的技术/学术背景是什么(例如工程师、自学黑客、"创客")? 您是否能够将与特定部件不具体相关的优秀材料改编为新材料?

    2)您对 C 语言的熟练程度如何、比如 MCU 编程中常用的"Embedded C"(嵌入式 C)(如果您在这里、我认为非常好);

    3) 3)您是否在使用混合信号非无线 MCU 方面有实际经验、您目前使用哪些 MCU (即8/16/32位以及其他 TI 器件、例如 MSP430)?

    4) 4)您通常使用什么编译器/工具链、您是否使用 IDE、最好是 Code Composer Studio?

    5) 5)您尝试使用哪种类型的传感器(商用/自行构建)、它们如何连接(ADC、定制数字接口、通用串行接口(如 UART、I2C、SPI)、您是否熟悉这些传感器?);

    6) 6)您当前使用的编程方法(即基于裸机/寄存器、低级驱动程序、高级框架(如有线/Arduino)、并且您只使用了"主循环"架构、您是否开发了任何类型的自定义调度程序、或者您是否在实践中使用过 RTOS/内核?

    7) 7)如果您从未在实践中使用过 RTOS、您是否至少了解使用 RTOS 的理论和 SWOT (优势、劣势、机会和威胁)、如多任务/资源管理、告别确定性/更难调试、网络/GUI 功能、任务饥饿/内存泄漏等、以及优先级/调度和任务/线程通信技术?

    8)正如 Alex 在其出色的博文中提到的、蓝牙、尤其是其新变体 BLE (现在的版本为 v5.4)、是一种非常复杂的无线协议(或协议系列)、在拆分为不同的硬件架构(主机/网络处理器或一体机)时、可以使用这种协议、 这最初是电信行业开发的、在那里、它们被用于基于委员会的、电信级的、可互操作的标准、最终成为 OSI/ISO。 您是否熟悉它的架构模型(即 GAP、GATT、配置文件、特性、HCI)、 定义的角色和限制。 您是否已经设计了 BLE 外设、并且您是否知道它的主要强制性软件组件是什么?

    在您回答这些问题后、我将尽最大努力指导您调整先前存在的应用和基础非无线应用框架(在主机 MCU +网络处理器配置或双核 BLE 器件上运行)的方法。 网络堆栈在与框架和应用完全独立的内核上运行)、对于这种技术上的硬件/软件、对于在单个最简单的 ARM M0+内核上平稳运行感到惊叹。 我希望即使是具有不同技术背景和能力的其他用户也能发现我的建议有益、例如跳过他们已经精通的要点。 简单地说,这将是一个普通用户(不是顶级专家)作出的"最大努力",而且会受到错误、更正和批评的影响,我非常欢迎。

    (待续...)

    再见

    斯特凡诺

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Stefano。 感谢您的回复!

    1.我是一名电气工程师、担任电路板设计人员/现场应用工程师。 我可以在不同的产品之间改编学习材料、只是因为我对这个平台非常陌生(无论是 RTOS 还是 BLE)。
    2.我觉得我比较精通低层次的 C 语言(不会把自己称为专家、但正如我之前提到的、这是我为了谋生而做的事情 )。
    3.I 有一个  使用 MSP430FR2110 MCU 的小项目。
    为使用 MSP/CC MCU、我将 CCS 与 TI Clang 编译器配合使用、并使用 LaunchPad 进行闪存(但迁移到另一种工具时没有问题)。
    5.在原型设计的第一部分、我将使用商用传感器、之后、我将使用自己的实现。 商用端使用 UART 进行通信、对于我的实施、我需要提供一个方波输出并读回数字 IO (慢速解调 ASK 信号)。
    6.我通常使用裸机和低级驱动程序方法进行编程。 而且 我仅 使用主环路架构对 MCU 进行编程(具有用于不同功能和其他更高级功能的基于计数器的运行时间限制)
    我在某种程度上理解了 RTOS 的 SWOT、但肯定需要更深入地了解如何使用不同的同步选项(更多的是实际方面、而不是理论方面、这与任何类型的操作系统都没有什么不同)。
    我以前从未设计过 BLE 外设( 使用 UART BT4模块最接近的东西)。 我在某种程度上对架构模型的一部分(GAP、GATT、Characteristics)都很熟悉、但这就是它。

    我很高兴了解这两个主题(RTOS 和 BLE 堆栈)、并开始使用这款有前景的新产品(CC2340R5、并希望 R2在发布时使用)

    感谢您的参与!

    加仑

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您发送编修。


    我通读了您推荐的材料、我认为这些材料假定您已预先了解和熟悉使用 RTOS 框架进行编程、以及可能具有一定程度的 BLE 应用经验。

    我觉得我可以使用示例构建一个应用程序、但对于我不需要的模块、会产生很大的开销、而且许多部分都以"魔法函数"的形式工作、我对程序中发生的情况有着深刻的了解。

    由于我习惯了对裸机进行编程(或使用低级驱动程序)、因此我发现如果不了解"幕后"发生的情况(并由于这种理解而尽可能进行优化)、使用高级抽象会不能令人满意。

    我感谢您的答复,但我认为在正确利用这些来源之前,我缺乏进一步的、更基本的理解。

    谢谢!
    加仑  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、gal、

    首先、我要感谢  Stefano 提供的意见、我认为他的回复非常详细、对于有兴趣了解 BLE 和 RTOS 的人也有很好的信息。  

    接下来我想询问您的目标具体应用、如果您只想发送 BLE 数据包、那么您可以坚持使用裸机、但是如果您想连接到手机、 或者类似的内容、您将需要使用 BLE 堆栈(以符合 BLE 标准)。  在使用我们的器件以及基于  这些器件的 SDK 示例和文档进行开发时、BLE 堆栈和 RTOS 会使工作变得更简单。  

    谢谢。
    A·F