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.

[参考译文] CC3220:ADC 测量

Guru**** 2553260 points
Other Parts Discussed in Thread: CC3200

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/750236/cc3220-adc-measurement

器件型号:CC3220

您好!

当运行在 while (1)循环中且没有任何"睡眠"延迟时、我想检查实际 ADC 转换率。 在我的测试用例中、"adc_converf"是 while (1)循环中的唯一操作。 我创建了一个测试电路来监控 ADC 测量的周期性。

测试电路包含一个输出电阻较高的电阻分压器、输出电压为1.1V、电源电压为3.3V:

VOUT = 3.3V *[100k /(100k + 200k)]= 1.1V

我将 Vout 连接到 ADC 输入。 但是、我不会在 Vout 上添加任何电容、这样我就可以在将 Vout 连接到 ADC 输入时看到电荷共享效应。 随着测量以及电荷共享的周期性发生、我的目的是通过监控示波器上的 Vout 波形来测量 ADC 测量的周期性。

我的预期是16秒、但实际上大约是2秒。

这是预期吗?

谢谢、

David

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

    您好!

    让我们暂时忽略缺失的电容器。 我不清楚您在这里探测什么-它是 Vout 吗?

    单通道的采样率确实为500kSPS/8=62.5KHz、这是您预期的16us。 每个采样将为您提供相对于基准输入的12位。

    如果您调用它是一个循环、根据 MCU 的速度、您将获得一系列样本。 您看到的2秒与 ADC_convert() API 无关。

    您能否准确解释一下您的意思?

    此致、

    Shlomi

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

    您好、Shlomi、

    是的、我正在探测 Vout。  

    如果在 while (1)循环内调用 adc_convert ()、应多久获取一次样本?

    谢谢、

    David

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

    取决于 MCU 速度。 如果这是唯一的命令、那么它应该非常快、但您没有显示采样值、对吧?

    您正在探测 Vout、它是 ADC 的输入。

    Shlomi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    测量实际采样频率的最佳方法是什么?

    我所做的是、我尝试提出一种测量示波器采样频率的方法。 通过将 Vout 应用到 ADC、我认为我可以监控 Vout 波形中的骤降频率、该频率应与 SAR ADC 采样输入电压时的时间点相对应。 您能否告诉我测量实际采样频率的正确方法?

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

    您好!

    我尚未测量 ADC 的采样率、但即使在您的捕获中、我也可以看到 Vout 上有很多"采样"。 2秒是"宏"周期、但如果放大、会发生什么情况? 您能看到样片吗?

    Shlomi

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

    您好、Shlomi、

    请查找随附的放大照片。

    您能否提出建议、如何使用 UART_PRINT 命令以微秒为单位进行实时打印、也许我可以将该 UART_PRINT 命令放入 while (1)循环中、并检查两个连续打印输出之间的差值。

    谢谢、

    David

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

    您好!

    您可以使用和打印

    Clock_gettime (clock_realtime、abstime); 

    不过、这不能告诉您 ADC 的采样率是多少、而只需打印在此特定时间在 ADC 中捕获的样本。

    每次调用 ADC_convert()都会捕获当前可用的样本,如果调用该样本的速度快于预期的 ADC 采样率(62.5KHz ),则该样本可能相同。

    此致、

    Shlomi

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

    感谢您的命令。 您是不是说 ADC 转换是以62.5KHz 的速率独立进行的,而 ADC_CONVERT()函数实际上本身并不会触发转换,而是读取已经存在的转换结果? 我的理解是否正确?

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

    尊敬的 David:

    是的、您的理解是正确的。

    也许您可以查看以下描述传统 CC3200器件上的 ADC 操作的 wiki (应尽快弃用)、但对于 CC3220应该是相同的。  http://processors.wiki.ti.com/index.php/CC3200_ADC_Appnote

    此致、

    Shlomi