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.

[参考译文] TMS320F28027:应该如何在运行期间改变采样率?

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/589474/tms320f28027-how-should-one-change-the-sampling-rate-during-operation

器件型号:TMS320F28027

您好!

我正在尝试将 C2000 LaunchPadXL 与 TMS320F28027配合使用、以作为项目的一部分、同时对两个通道进行采样。 我的目标是以给定的采样率存储50个样本、然后更改采样率并再存储50个样本、并执行此操作10个周期。 我正在做的其他工作与这里没有直接关系、这些工作是通过 SPI 对 DDS 进行编程并通过 SCI 发送数据。 因此、我必须确保在发生其他事情时不会干扰中断。

我使用 ePWM 来设置采样频率。  

初始化内容后、我将具有如下所示的永久循环:

for (;;)

if (未按下按钮){不执行任何操作;}

其他

对于(i=0;i<10 <i++)

>>此处应启用某些功能(ADC、通用中断、PMW 时钟?) [??????] <main question

>PWM 周期应该改变

while (对话<50)

LOC++;//等待中断并在中断中存储值和增量转换

>>此处应禁用某项功能

我不清楚的是、在每个周期中、应启用哪些功能、然后应禁用哪些功能。 我想的是 ADC_ENABLE (myAdc)和 ADC_DISABLE (myAdc)等看起来不起作用的器件。 但是、我应该也禁用/启用任何其他功能、还是清除或复位任何内容?

非常感谢、

Arsam

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

    Arsam、

    有许多方法可以解决这一问题。  听起来您没有严格的同步要求、因此我认为最简单的方法是:

    1. 初始化 ADC 以在 ePWM SOC 触发器上采样
    2. 启用 ADC EOC 中断
    3. 使用 ADC ISR 对转换结果进行计数并将其存储到数组中
    4. 初始化 EPWM 以在 PRD 上生成 SOC 触发器
    5. 配置 TBPRD 影子模式 TBCTL[PRDLD]=0、以便在需要时将 TBPRD 寄存器更改为新值
    6. 通过在递增计数和停止冻结之间更改 EPWM 计数器模式来启动/停止 ADC 转换;ADC 可保持启用状态

    您可以参考 ADC_SoC 示例了解大多数设置。

    Tommy

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢 Tommy。 我尝试了一种替代方法、包括在采样后禁用 PIE、在采样之前启用 PIE 以及在启用前更改周期。 它似乎以较低的采样率工作、并在较高的采样率下强制器件进入未知状态。 不过、您的解决方案似乎运行良好、更直观。

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

    Arsam、

    很高兴它能为您服务。  请不要忘记查看器件 勘误表文档 以避免 ADC 问题。

    Tommy