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.

[参考译文] LAUNCHXL-CC26X2R1:adcsinglechchannel 不符合#39;t 正确接收信号

Guru**** 2589265 points
Other Parts Discussed in Thread: SYSCONFIG, CC2642R, CC2652R, LAUNCHXL-CC26X2R1

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1396410/launchxl-cc26x2r1-adcsinglechannel-doesn-t-receive-signals-correctly

器件型号:LAUNCHXL-CC26X2R1
主题中讨论的其他器件:SysConfigCC2642RCC2652R

工具与软件:

尊敬的 TI 工程师:

我目前正在尝试使用 C:\ti\simplelink_cc13xx_cc26xx_sdk_7_40_00_77\examples\rtos\CC26X2R1_LAUNCHXL\drivers\adcsinglechChannel 中的示例中的 ADC 函数。 我的目标是接收来自信号发生器的信号、并使用 MATLAB 将其作为图表输出。 我尝试的输入是正弦波和方波、但接收到的信号本质上是乱码、与任何可识别的波形都不类似。 我已经确认信号发生器工作正常、因为另一个元件可以正确接收信号。

我将在下面附上输出的图像。 此外、让我困惑的是、当我将 DIO24连接到3V3引脚时、我可以读取稳定的3V3信号。 这是否表示 LaunchPad 工作正常? 或者我在选择引脚时是否犯了错误? 我选择了右上角的 DIO24和 GND。 或者我是否还没有考虑过其他编码问题? 基本上、并未修改代码、因为我只是想测试 ADC 功能是否可以工作(UART 功能运行正常)。

如果我需要提供代码、请告诉我。 谢谢你。

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

    您好!

    信号发生器波形的频率是多少?  请注意、SysConfig -> TI drivers -> ADC 中的默认采样持续时间为2.7us (~370kHz)、也是 ADC TI 驱动程序可用的最低采样持续时间。  如果您的信号  在此采样期间显著波动、则结果将失真。  另外、您的信号发生器是否输出介于0和3.3V 之间的波形?  这是 CC2642R 的唯一允许范围、负电源轨或更高的电压也会对测量值进行排序。  此类指标记录在 数据表中。

    如果在进一步调试和调查后原始 ADC 值看起来没有问题、那么我们应进一步考虑 CC2652R 和 Matlab 之间的传输层和转换。

    此致、
    Ryan

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

    您好!

    感谢您的答复。 至于信号发生器的频率、方波介于0.125-2Hz 之间、幅值为0.5-5mV。 正弦波介于0.1-100Hz 之间、具有相同的0.5-5mV 振幅。 此外、是否只能在 SysConfig 中调整 ADC 采样时间? 我在中没有看到任何调整采样频率的部分main_rtos.c

    此致、

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

    频率不应该是个问题、 但振幅甚至没有利用允许的 ADC 范围的0.2%。  对于5mV 输入、范围为0V 至4.3V 的12位 ADC 将返回值4、 输出=输入(V)* 2^12 /(ADC 范围(V))= 0.005*4096/4.3、ADCC26XX.h  因此、请在将信号发生器电压提供给 CC2652R 输入引脚之前放大信号发生器电压。

    我在 这篇相关的 E2E 文章中介绍了动态调整 ADC 采样频率所需的全部资源

    此致、
    Ryan

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

    那么、LaunchPad 接收到的原始数据几乎为0的原因是信号发生器提供的电压过低、对吧?
    那么、转换后的数据为什么会大幅波动?
    因此、当前的解决方案是测试信号发生器和 LaunchPad 之间的外部信号放大器是否可以正确接收信号。 我的信号发生器的最大输出为5mV、合适的放大因子是多少? 信号输入频率和 LaunchPad 的采样持续时间是否一致? 可以在 SysConfig 中进行此类调整吗?
    使用传感器控制器的 ADC 与直接使用 ADC 的区别是什么?

    此致

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    那么转换后的数据为什么会大幅波动?

    这将取决于信号发生器输出的稳定性和 UART 传输的数据类型转换。  例如、示波器屏幕截图必须确认 CC2652R1直接报告的意外原始/转换结果。

    信号发生器的最大输出是5mV、合适的放大系数是什么?

    3.3V / 5mV = 660、这是您必须使用的放大范围。

    信号输入频率和 Launchpad 的采样持续时间是否应当匹配?

    否、LP 的采样持续时间应明显小于信号输入频率、以充分捕获信号发生器的电流波形状态。

    可以在 SysConfig 中进行此类调整吗?

    这些是编译时更改。

    使用传感器控制器的 ADC 与直接使用 ADC 有何区别?

    传感器控制器有一个单独的处理器、通过 Sensor Controller Studio进行控制和启用、可以在不唤醒主 CPU 的情况下进行 ADC 测量。  这应该 会影响功耗测量、但不会影响 ADC 分辨率或精度。

    此致、
    Ryan

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

    您好!

    首先、非常感谢您的帮助。 在使用另一个输入为1V 的信号发生器后、我们成功接收了来自 ADC 的方波信号。

    然而、当观察 MATLAB 图时、我们注意到绘制图表的过程似乎有延迟。 MATLAB 绘制数据的速度明显慢于信号发生器的输出频率、该输出频率设置为1和10Hz。

    这可能是采样点过多而导致 MATLAB 难以处理所收集的信号的原因吗?或者、是否还有其他原因?

    我们应该如何解决该问题?

    此外、我们的目标是使用 CC2642R 完成从传感器-> CC2642R (通过 ADC)-> UART/BLE ->手机/PC 的数据传输。 CC2642R 的允许 ADC 范围是否与 LaunchPad 的允许范围相同?

    在 CC2642R 数据表中、描述"启用/禁用电压调节"的章节对我来说有点困惑。 您能解释一下这意味着什么吗?

    此致

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

    您尝试发送 UART 数据包的频率如何?  为了获得10Hz 信号的精确读取、您应该不需要每10ms 进行 ADC 采样和 UART 发送超过一次。  您可以使用计时器或睡眠延迟来实现此效果。  您还可以将 UART 波特率增加到至少921600、以减少 传输延迟。

    CC2642R 的 ADC 与 LAUNCHXL-CC26X2R1上的 CC2652R 完全相同。

    ADCCC26XX.h 和 TRM 中都介绍了电压调节。  "默认情况下、在 ADC 中使用输入之前、输入会在内部按比例缩小1408 / 4095。 可以禁用 ADC 输入的下调比例以提高分辨率、但代价是减小输入范围。"

    此致、
    Ryan