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.

[参考译文] CC2640R2L:如何提高 CC2640R2L 中的 ADC 吞吐量?

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/991691/cc2640r2l-how-to-improve-the-adc-throughput-in-cc2640r2l

器件型号:CC2640R2L
主题中讨论的其他器件: CC2640

您好、团队、帮助客户发布帖子。 正在更新其配置文件。

_________________

大家好、

我不是这个组的新成员。 我正在尝试使用 CC2640R2开发一个微不足道的应用(因为我需要 BLE 连接)。 我最近购买了 CC2640R2_LAUNCHXL 套件、并正在使用给出的示例程序使用 TI-RTOS 开发一些评估代码。 首先、让我告诉大家、我一直是裸机开发人员、在使用 TI-RTOS 实现应用要求时非常坚持、我发现自己的担忧是非常真实的。

我的应用需要对多(3)个 ADC 通道进行"同步"(通过多路复用)采样、每个通道@ 4至5KSPS、这意味着从能够达200KSPS 的 SAR ADC 进行12至15KSPS 采样。我使用了"连续"和"连续"(示例应用)、并对其进行微调以在运行时更改采样通道。 我可以从"adcsinglechanel"(直列式采样)获得的最佳性能是所有通道的每次采样扫描270uS。 当我用"adcbufcontinent"尝试相同的方法时(其中"code-in -in -line documentaon"表示采样频率为200Hz、可以增加采样频率。 我尝试了10000 KSPS、但它不起作用。 我担心这个 AD 转换模式也会有每通道转换和切换大约300 μ s 的限制(我在 callBackFxn 中执行的操作)、这是整个 ADC 谷底大约3300 KSPS。 令我失望的是、我发现开发基于 TI-RTOS 的(与提供的 API 库链接)专业应用几乎是不可能的。 我希望我被证明是错误的。 我不是匆忙地发表这一评论,而是在花了一个月时间之后才发表这一评论。

我可以编写裸机代码、CC2640R2技术参考手册清楚地说明了"ADC 使用的控制基准。 仅可通过 TI 提供的 API 使用"。 我的问题是:

1.是否可以通过 API 调用实现更高的 KSPS ADC 吞吐量?
2.是否可以编写裸机 ADC 处理代码并与 TI-RTOS 应用程序集成?
3.如果是、是否可以通知 TI-RTOS 将 ADC 保留在托管/共享资源之外?
4."adcbufcontinent"不允许 ADC 值4095的 FSR、而"adcsinglechane"则允许这样做
如果设置如下所示(在 CC2640R2_LAUNCHXL.c 中)。 如何在"连续"中实现这一目标?
const ADCCC26XX_HWAttrs adcCC26xxHWAttrs[CC2640R2_LAUNCHXL_ADCCOUNT]={

.adcDIO = CC2640R2_LAUNCHXL_DIO23_ANALOG、
.adcCompBInput = ADC_COMPB_IN_AUXIO7、
.refSource = ADCCC26XX_VDDS_reference、
.samplingDuration = ADCCC26XX_SAMPLING_DURAY_2P7_US、
.inputScalingEnabled = true、
triggerSource = ADCCC26XX_TRIGGER_MANUAL、
.returnAdjustedVal = true
}、

5.是否没有可用于时间戳的自由运行时钟@ 48MHz? 我无法整合提供的时间戳例程。 我所能成功的就是拥有时钟戳(只有10微秒的粒度)。
6.我还发现 TI-RTOS 中的上下文切换平均大约需要40uSec (从触发时钟回调到 swi 进入)。 是否有各种 TI-RTOS 服务(旨在帮助开发人员做出明智决策)设计合适软件的时序图?
7.我正在寻找 PRO-s/Guru-s 的建议、是否值得尝试使用 CC2640R2L 和 TI-RTOS 构建专业产品?

总体而言、这是一个迷宫、开发人员需要借助这一艰苦努力来构建基于 TI 产品的解决方案。

欢迎使用任何指针(文档参考/TI E2E 帖子)来澄清问题。

感谢您的患者阅读。

祝你度过美好的一天!

_________________

谢谢、此致、

-Mark

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

    您好、Mark、

    我对这一拖延表示歉意, 我正在请一位专家审查这一主题,他们将尽快提供他们能提供的任何答案。

    此致、
    Ryan

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

    测试

    请看

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

    Mark、

    请为延误道歉;我被绕过了路。

    这些要求确实很激进;因为我没有执行任何类似的操作、所以我只能提供一些指导、希望能够为您已经一个月的调查做补充。  

    正如您可能看到的那样、由 ADCBuf_init 初始化的默认 ADCBuf_Params 为10kSPS、尽管在单个通道上且处于阻塞模式。 在连续模式下、我找不到 ADC 采样率的硬性限制、但您提到凭经验、您无法将其保留为默认值。 我必须在这里进行测试,看看这方面是否有任何阻碍。 我将使用单个通道开始此评估、然后进行扩展。

    2.您的成功机会是使用 TI-RTOS 示例开始开发并将代码集成到现有的 BLE Stack 项目中。 我们的 BLE 堆栈需要 TI-RTOS。

    TI-RTOS 不直接驱动 ADC、而是对来自其驱动程序的事件做出反应-就像回调函数一样。 通过适当确定传入样本的缓冲器大小、您可以降低中断频率、并为整个系统提供响应时间-不是每秒数千个事件、而是以较慢的速度进行响应。 这会增加延迟、但允许在同一器件中运行两个系统。

    4、我要检查一下。 如果您尚未看到 它、ADCBufCC26XX.h 引用 包含一些初始化示例。

    如17.4.8.7所述、ADC 由24MHz 驱动。 M3内核本身以48MHz 的频率运行、但我找不到以该频率运行的内部计时器。

    6. TI-RTOS 上的各种时序是可配置的,尽管您的限制是 BLE 堆栈本身,它设计为以特定频率(检测信号)运行。 如果您想查看其配置、请查看 TI-RTOS 主配置文件和 TI-RTOS 用户指南的第5章

    适用于 BLE 项目的 TI-RTOS 配置文件:C:\ti\simplelink_cc2640r2_sdk_4_40_00_10\source\ti\ble5stack\ccommon\cc26xx\kernel\cc2640\config\cc2640_r2_csdk.cfg (此文件由典型 BLE 项目中的 fiel tools/app_ble.cfg 引用)

    https://dev.ti.com/tirex/explore/node?node=ALClAD.5LZKCXi9Ff7.hWg__krol.2c__LATEST

    7.遗憾的是我们不提供设计服务。 抱歉。

    希望这对您有所帮助、

    拉斐尔