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.

[参考译文] RTOS:(CC2640R2F) ADCBuf 驱动程序问题

Guru**** 2604115 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/747506/rtos-cc2640r2f-adcbuf-driver-questions

工具/软件:TI-RTOS

您好!

我想使用 ADCBuf 驱动程序、但我对此有一些问题。

1) 1) ADCBuf_convert()调用和正在采集的第一个样本之间经过了多少时间?

2) 2)为什么当 ti-RTOS 中的所有其他定时器(我知道)都由周期(以时钟节拍为单位)指定时、指定采样频率(作为整数)。 我的问题是、测量可能与系统的其余部分不同步、而系统其余部分由使用周期而非频率指定的计时器进行控制。 由于我的应用程序对时间非常敏感、我需要确保不会发生这种情况。 这是否意味着我只能为导致整数频率值的计时器使用周期值? 为 ADCBuf 提供的频率值是否变为一个周期、以便对频率进行舍入足够好?

此致、

Lukas

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

    首先,ADCBuf_convert()调用和第一个采样之间的时间为一个周期(采样频率)加上启动前设置 DMA 和 ADC 模块所需的代码开销。 这意味着在时间上很难说、因为在设置阶段您可能会有一个上下文切换。

    您可以查看 ADCBufCC26XX.c 源文件( /source/ti/drivers/adcbuf)并尝试估算这个值(如果您确定应用程序中永远不会有挤占(没有 Hwi、Swi 或任务)、则应该是非常确定的。

    关于2、ADCBuf 驱动程序使用 GPTimer 硬件对采样进行计时。 通过将频率重新计算为周期计数、将计时器设置为与给定频率匹配的周期。 您可以在 ADCBuf_open()调用中看到这是如何完成的。 为了节省您的工作量、周期计数的计算公式为:count =(freq.lo / frequency)-1、其中 freq.lo 是系统时钟(48 000 000)。