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.

[参考译文] TMS320F28379D:CMPSSS + ECAP 精度问题测量频率

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1083237/tms320f28379d-cmpss-ecap-accuracy-problem-measuring-frequency

部件号:TMS320F28379D
“线程”中讨论的其它部件: LAUNHXL-F28379DSN74LS14AMC1200

大家好,

我希望使用  TMS320F28379D 的 cmpss 和 ECAP 模块来测量网格频率,但准确度存在一些问题。

首先,我用一台函数发生器开始工作。 我注意到,如果输入信号为方波(50Hz),则测量工作正常(误差约为±3MHz),如果将其更改为正弦波信号,则误差会增加很多(形式为±20至±50 MHz)。 我也尝试测量网格频率(可能是与函数发生器的连接不稳定),结果几乎相同。 我还尝试更改滤波器和滞后参数,但我没有找到解决方案。

我认为我做了一些错误的事情,因为周边地区的速度非常快,我必须测量的频率也不是很高,所以我正在寻找一些帮助。 或者可能需要一些外部筛选器或其他东西(我认为不是这样)?

下面是代码的简要描述:

输入信号到达 ADCA4引脚,用作 CMPSSS (CMPSS2 Hight),滞后和数字滤波器均已配置。 对于 DAC,它配置了一个与0不同的值,以避免接近零 的振荡。

void initCMPSS(void)
{
    
    CMPSS_enableModule(CMPSS2_BASE);
    CMPSS_configHighComparator(CMPSS2_BASE, CMPSS_INSRC_DAC);

    CMPSS_configDAC(CMPSS2_BASE, CMPSS_DACREF_VDDA | CMPSS_DACVAL_SYSCLK |
                                 CMPSS_DACSRC_SHDW);
    CMPSS_setDACValueHigh(CMPSS2_BASE, 2365);

    CMPSS_setHysteresis(CMPSS2_BASE,4);


    CMPSS_configFilterHigh(CMPSS2_BASE, 0x3FF, 32, 31);


    CMPSS_initFilterHigh(CMPSS2_BASE);


    CMPSS_configOutputsHigh(CMPSS2_BASE, CMPSS_TRIP_FILTER |
                                         CMPSS_TRIPOUT_FILTER);

 
    XBAR_setOutputMuxConfig(XBAR_OUTPUT3, XBAR_OUT_MUX02_CMPSS2_CTRIPOUTH);
    XBAR_enableOutputMux(XBAR_OUTPUT3, XBAR_MUX02);
}

从 CMPSSS 输出到 xbar3,其中连接了 GPIO (14),并通过此接口传递给 ECAP。 通过 GPIO 14 I,我还可以监控 ECAP 的输出方波(在正弦波的情况下,这似乎有点“干扰”)。

ECAP 配置为一个注射模式并捕获2个事件(一个下降边缘和一个上升边缘),ISR 连接到第二个事件。 每次 ISR 呼叫时,ECAP 都会重新布设。

void initECAP()
{
    ECAP_disableInterrupt(ECAP1_BASE,
                          (ECAP_ISR_SOURCE_CAPTURE_EVENT_1  |
                           ECAP_ISR_SOURCE_CAPTURE_EVENT_2  |
                           ECAP_ISR_SOURCE_CAPTURE_EVENT_3  |
                           ECAP_ISR_SOURCE_CAPTURE_EVENT_4  |
                           ECAP_ISR_SOURCE_COUNTER_OVERFLOW |
                           ECAP_ISR_SOURCE_COUNTER_PERIOD   |
                           ECAP_ISR_SOURCE_COUNTER_COMPARE));
    ECAP_clearInterrupt(ECAP1_BASE,
                        (ECAP_ISR_SOURCE_CAPTURE_EVENT_1  |
                         ECAP_ISR_SOURCE_CAPTURE_EVENT_2  |
                         ECAP_ISR_SOURCE_CAPTURE_EVENT_3  |
                         ECAP_ISR_SOURCE_CAPTURE_EVENT_4  |
                         ECAP_ISR_SOURCE_COUNTER_OVERFLOW |
                         ECAP_ISR_SOURCE_COUNTER_PERIOD   |
                         ECAP_ISR_SOURCE_COUNTER_COMPARE));


    ECAP_disableTimeStampCapture(ECAP1_BASE);

    ECAP_stopCounter(ECAP1_BASE);
    ECAP_enableCaptureMode(ECAP1_BASE);

    ECAP_setEventPrescaler(ECAP1_BASE,0);

    ECAP_setCaptureMode(ECAP1_BASE, ECAP_ONE_SHOT_CAPTURE_MODE, ECAP_EVENT_2);

    ECAP_setEventPolarity(ECAP1_BASE, ECAP_EVENT_1, ECAP_EVNT_FALLING_EDGE);
    ECAP_setEventPolarity(ECAP1_BASE, ECAP_EVENT_2, ECAP_EVNT_RISING_EDGE);

    ECAP_enableCounterResetOnEvent(ECAP1_BASE, ECAP_EVENT_2);

    XBAR_setInputPin(XBAR_INPUT7, 14);

    ECAP_enableLoadCounter(ECAP1_BASE);
    ECAP_setSyncOutMode(ECAP1_BASE, ECAP_SYNC_OUT_DISABLED);
    ECAP_startCounter(ECAP1_BASE);
    ECAP_enableTimeStampCapture(ECAP1_BASE);
    ECAP_reArm(ECAP1_BASE);

    ECAP_enableInterrupt(ECAP1_BASE, ECAP_ISR_SOURCE_CAPTURE_EVENT_2);
}

__interrupt void ecap1ISR(void)
{
    cap1Count = ECAP_getEventTimeStamp(ECAP1_BASE, ECAP_EVENT_1);
    cap2Count = ECAP_getEventTimeStamp(ECAP1_BASE, ECAP_EVENT_2);

    ECAP_clearInterrupt(ECAP1_BASE,ECAP_ISR_SOURCE_CAPTURE_EVENT_2);

    ECAP_clearGlobalInterrupt(ECAP1_BASE);

    ECAP_reArm(ECAP1_BASE);

    Interrupt_clearACKGroup(INTERRUPT_ACK_GROUP4);
}

在 ISR 之后,我通过将时钟(200MHz)除以 cap2Count 值来计算频率。 我在调试模式下检查了是否可能是计算错误,但 ECAP 计数器与预期值有太大的区别(对于 cap2Count,我期望值为4000000,但它与 ±4000不同,因为错误 值为±50MHz)。

提前感谢你,盖塔诺。

PS。 这是我的第一个帖子,我希望我没有犯错。

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

    盖塔诺,您好!

    下面是几个问题:

    50MHz 错误是标准偏差错误还是峰对峰错误?

    SYSCLK 的来源是什么? INTOSC 还是外部时钟?

    3.您提到比较器输出正在 GPIO 上输出。 您能否提供这方面的范围图? 确保启用范围的频率测量和统计。

    使用 CMPSSS 捕获类似的定期信号时,最好不要使用过滤器。 使用过滤器可能会在结果中增加不确定性。 这是由于过滤器的记忆性质及其工作方式。 不过,启用滞后是很好的。

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

    你好,弗兰克,

    感谢您的回答。

    首先,我意识到我没有说我在使用 LAUNCJXL-F28379D,也许这很有用。

    我将回放您的问题。

    50MHz 是 pk 到 pk 错误。

    2. SYSCLK 的源是外部时钟。

    #define DEVICE_SETCLOCK_CFG         (SYSCTL_OSCSRC_XTAL | SYSCTL_IMULT(40) |  \
                                         SYSCTL_FMULT_NONE | SYSCTL_SYSDIV(2) |   \
                                         SYSCTL_PLL_ENABLE)

    这是在整个 GPIO 14 (黄色)和输入信号(蓝色)下产生的 cmpsss 输出的范围。 我附上了一个屏幕和一个关于这次收购的视频,以便更好地解释我在原稿中提到的“小干扰”。 在此范围内,我使用了函数生成器。

    CFS 文件/__key/communityserver-discussion-components-files/171/VID_5F00_20220309_5F00_184657.mp4

    关于筛选,我在发现一些问题后添加了筛选。 为了更好地理解,我将附加一些屏幕。

     在测量网格频率时,我添加了一个屏幕,介绍不带滤波器的 cmpss 输出(蓝色)的范围。

    以下图像是上升边缘的缩放

    谢谢。

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

    盖塔诺,您好!

    感谢您提供屏幕截图。 一般来说,使用 CMPSSS 捕获50Hz 正弦信号总是一项挑战,因为比较器速度非常快,对缓慢过渡信号的响应不是很好。 缓慢的过渡信号及其噪声频段通常需要一段时间才能通过比较器的跳闸区域。 这会导致您已经看到的在整个行程区域发生非常嘈杂的过渡。

    但是,如果您关心的是频率精度,则使用 CMpss 过滤器来对抗这种情况是不正确的。 您会在结果中看到很多抖动。 50Hz 正弦波足够慢,您可能可以利用引脚前面的一些重型模拟滤波来消除高频噪音组件。 基本上你所看到的是预期的。  

    或者,您是否考虑使用 ADC 采样50Hz 正弦波并执行 FFT?

    当您使用示波器测量正弦波时,是否还会看到50MHz 的峰对峰误差?

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

    你好,弗兰克,  

    感谢您的回复。

    因此,在信号缓慢过渡的情况下,确实存在一些困难。

    我们尝试使用一些模拟滤波器,但结果不好( 但 cmpss 输出有 高频率干扰)。 您认为我们可以使用其他解决方案进行一些改进吗? (例如模拟比较器或使用任何组件以某种方式将正弦转换为方形)。

    实际上,我们没有考虑 FFT 解决方案。 可以告诉我更多详情吗?

    在范围上,我们看不到50MHz 错误。

    谢谢。

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

    您好,盖托诺,

    [引用 userid="482569" url="~/support/icros/c2000微控制器-组/CC2000 /f/c2000微控制器-论坛/1083237/tms320f28379d-cmps-ecapp 准确性-问题-测量频率/4012002#4012002"],因此信号传输速度缓慢,确实有些困难[引用/引述]。

    正确。 但是,这并不是 C2000器件上的 CMPSSS 所特有的。 大多数比较器也会显示这一点,因为它们具有高带宽性质。

    [  引用 userid="482569" url="~/support/icros/c2000微控制器-组/CC2000 /f/c2000微控制器-论坛/1083237/tms320f28379d-cmps-ECAP-Accurity-problem-measuring-frequence/4012002#4012002"]我们尝试使用了一些模拟滤波器,但我们没有产生良好的频率/频率干扰[但结果不正确]

    好的。 您能否提供更多有关您尝试使用哪种模拟滤波器的详细信息?

    [引用 userid="482569" url="~/support/icros/c2000微控制器-组/CC2000 /f/c2000微控制器-论坛/1083237/tms320f28379d-cmps-ecapp 精确度-度量度问题频率/4012002#4012002]您认为我们可以使用其他解决方案进行一些改进吗? (例如模拟比较器或使用任何组件以某种方式将正弦转换为方形)。

    将正弦转换为方形实际上是您已经在使用比较器时所做的。 ADC 和比较器是设备上唯一的2个模拟输入。

    ~引用 userid="482569" url="ë/support/icros/c2000微控制器-组/CC2000 /f/c2000微控制器-论坛/1083237/tms320f28379d-cmps-ecapp 精确度-问题-测量频率/4012002#4012002"实际上我们没有考虑 FFT 解决方案。 可以告诉我更多详情吗?

    我与一位同事核对了。 应该可以使用 ADC 执行此操作,但需要采集大量样本,这需要很长时间。

    您是否尝试了所有4个滞后值?

    您是否可以捕获大量的频率点以检查分布情况? 如果频率变化是随机的或正常分布的,您可能能够进行一些平均处理以消除错误

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

    你好,弗兰克,

    [引用 userid="146390" url="~/support/icros/c2000微控制器-组/CC2000 /f/c2000微控制器-论坛/1083237/tms320f28379d-cmps-ecapp 准确性-问题-测量频率/40124012401#4012401"]您能否提供更多有关所尝试的模拟滤波器类型的详细信息[引用/引述]

    我们尝试了一些简单的 RC 滤波器,这些滤波器具有不同的切削频率(50 Hz,100 Hz,500 Hz,1kHz,5 kHz), 在最好的情况下,我们的边缘仍有尖峰。 您认为我们应该更改过滤器类型吗?

    [引用 userid="146390" url="~/support/icros/C2000 -微控制器-组/CC2000 /f/C2000 -微控制器-论坛/1083237/tms320f28379d-cmps-ECAP-Accurity-probe-measuring-frequence/40124012401#4012401]\n 将正弦转换为方形是您对比较器的实际操作。 ADC 和比较器是设备上唯一的2个模拟输入。

    是的,我的问题是关于其他一些外部解决方案,而不是我们没有考虑的筛选器或比较器。

    [引用 userid="146390" url="~/support/icros/c2000微控制器-组/CC2000 /f/c2000微控制器-论坛/1083237/tms320f28379d-cmps-ecapp 精确度-问题-测量频率/4012401#4012401"]您是否尝试了所有4个滞后值?[/立体声]

    事实上,我们直接尝试了,考虑到我们遇到的问题,我们的尝试是最大的价值。 我们将尝试其他价值观,我会告诉您结果。

    [引用 userid="146390" url="~/support/icros/c2000微控制器-组/CC2000 /f/c2000微控制器-论坛/1083237/tms320f28379d-cmpse-ecap-Accurity-problem-measuring-frequence/40124012401#4012401]]您是否可以按频率顺序捕获大量的频率点以检查频率分布? 如果频率变化是随机的或正常分布的,您可能能够进行一些平均化来消除错误

    我也尝试获得两个周期,并达到平均值,但没有任何变化。 不幸的是,我们需要如此快速地检测变化(最多两个周期),这样我们就无法捕获大量频率。

    再次感谢您的帮助。

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

    盖塔诺

    [引用 userid="482569" url="~ë/support/icros/c2000-icroms-group/c2100/f/c2000微控制器-forume/1083237/tms320f28379d-cmpsss-ecap-Accurity-probe-measure-frequence/4013403409#4013409]\n 我们尝试使用了一些简单的 RC 滤波器,频率为不同的频率,频率,频率,频率,频率,频率,频率,频率,频率和频率,频率,频率,频率,频率,频率和频率 在最好的情况下,我们的边缘仍有尖峰。 您认为我们应该更改过滤器类型吗?

    您尝试了哪些 RC 值? 您是否拥有可以提供的波形的前后 RC 的范围捕获?

    [引用 userid="482569" url="~/support/icros/C2000 -微控制器组/CC2000 /f/C2000 -微控制器-论坛/1083237/tms320f28379d-cmps-ECAP-Accurity-question-measuring-frequency/C403409#4013409"]是的,我的问题是的,我的问题是关于某些滤波器/外部比较器的,我们认为没有不同的解决方案。]

    ADC + FFT 是上述的另一种方式。 您可以尝试使用外部比较器,但您可能会看到与噪声类似的灵敏度。

    [引用 userid="482569" url="~/support/icros/C2000 -微控制器-组/CC2000 /f/C2000 -微控制器-论坛/1083237/tms320f28379d-cmps-ECAP-Accurity-problem-measuring-frequence/401340409#4013409")实际上不,我们直接尝试了最大值,考虑了我们遇到的问题。 我们将尝试使用其他值,我将告诉您结果。

    好的。 如果您已经尝试了最大值,则不需要尝试较低的值。 这实际上意味着噪声超过了大约48LSB 的最大滞后值。 您可能需要尝试将外部施密特触发器配置发送到比较器以增加滞后量。

    [引用 userid="482569" url="~/support/icros/C2000 -微控制器-组/CC2000 /f/C2000 -微控制器-论坛/1083237/tms320f28379d-cmps-ECAP-Accurity-probe-measuring-frequence/401340409#4013409"]我也尝试获得2个周期,但没有改变。 不幸的是,我们需要如此快速地检测变化(最多两个周期),这样我们就无法捕获大量频率。

    我仍然希望看到这一点。 您能否捕获1000个频率的样本并查看其分布情况? 如果是随机噪声或固定增量,这将给我们一个好主意。

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

    你好,弗兰克,

    [引用 userid="146390" url="~/support/icros/c2000微控制器-组/CC2000 /f/c2000微控制器-论坛/1083237/tms320f28379d-cmps-ecapp 精确度-问题-测量频率/4014267#4014267">您尝试了哪些 RC 值? 您是否拥有可以提供的波形的前后 RC 的范围捕获?

    RC 值为 R=100欧姆,C 更改为具有不同的切割频率。 我们再次尝试了大约1 kHz 的切频(R=100 Ohm 和 C=1.5 UF),并在滤波器前后获得了以下正弦范围和方波范围。

    -滤波器前(黄色)和后(蓝色)正弦

       

    -方波

        

    [引用 userid="146390" url="~/support/icros/C2000 -微控制器-组/CC2000 /f/C2000 -微控制器-论坛/1083237/tms320f28379d-cmps-ECAP-Accurity-problem-measuring-frequence/4014267#4014267]',我仍然希望看到这一点。 您能否捕获1000个频率的样本并查看其分布情况? 如果是随机噪声或固定增量,这将给我们一个好主意。

    我们尝试以三种不同的配置采集2k 个样本,这些样本是分布(正常分布的发育不全):

    -仅限模拟滤波器(R=100欧姆,C=1.5 UF)

    频率值太错误,因为您可以模仿观看以前的范围

    仅限数字滤波器

    —使用模拟和数字滤波器

    在这种情况下,我们还具有以下范围:

       

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

    盖塔诺,您好!

    [引用 userid="482569" url="~/support/icros/c2000微控制器-组/CC2000 /f/c2000微控制器-论坛/1083237/tms320f28379d-cmps-ECAP-Accurity-problem-measuring-frequence/4015127#4015127]RC 值为 R=100欧姆和 C,变化频率以改变不同的频率。 我们再次尝试了大约1 kHz 的切频(R=100 Ohm 和 C=1.5 UF),并在滤波器前后获得了以下正弦范围以及获得的方波范围。

    过滤当然应该有所帮助,但我认为,在这里,您可能需要更好地了解输入信号的特性,以便正确设计一个过滤网,消除您所瞄准的所有噪音。 被动式遥控器只是起步缓慢的第一个订单。 这里可能会发生的情况是,过滤器的滚动速度不够快,无法消除所有的低幅度振荡。 您可以使用范围绘制正弦的 FFT 图解来查看频谱的外观。 我们可以先看看其他几个选项,然后再回到这里。

    [引用 userid="482569" url="~ë/support/icontrs/c2000-微控制器-组/CC2000 /f/c2000-微控制器-论坛/1083237/tms320f28379d-cmps-ecap-Accurity-problem-measure-frequency/4015127#4015127""-使用模拟和数字滤波器

    感谢您获取该分发。 这表明频率变化不是固定误差,而是围绕50Hz 目标的正常分布信号。 这意味着如果您的应用允许平均化,您可以从多个样本中获得平均结果。

    您是否能够尝试施密特触发器配置? 您可以查看 此论坛帖子,其中用户正在执行类似操作。 我建议在添加外部施密特触发器配置之前禁用内部磁滞和滤波器。 您还需要对反馈电阻值进行实验,但您可能可以从100mV 滞后开始,然后继续操作。

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

    你好,弗兰克,

    [引用 userid="146390" url="~/support/icros/C2000 -微控制器组/CC2000 /f/c2000 -微控制器-论坛/1083237/tms320f28379d-cmps-ecap-Accurity-problem-measuring-frequence/4015576#4015576"],这意味着如果您的应用允许求平均值,您可以获得一定数量的样本/报价。]

    不幸的是,我们需要50毫秒的最长响应时间,因此我们无法达到平均值。 我们尝试了2项测量(40毫秒),但结果没有改变。

    [引用 userid="146390" url="~/support/icros/c2000微控制器-组/CC2000 /f/c2000微控制器-论坛/1083237/tms320f28379d-cmps-ecapp 精确度-问题-测量频率/4015576#4015576"]您是否能够尝试施密特触发器配置[引用]

    我们使用前面  所述的 RC 滤波器尝试了 TI 施密特触发器。 我们使用的 SN74LS14具有较大的滞后,但 我们没有太多的优势。 您认为我们需要建立一个特定的触发器吗?

    此时,我们认为您是对的,我们需要构建更好的筛选器,但如果您有任何其他想法,我们可以尝试。 如果您同意我们的意见,您是否对过滤器设计有任何建议?

    谢谢

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

    盖塔诺,您好!

    [引用 userid="482569" url="~/support/icros/C2000 -微控制器-组/CC2000 /f/C2000 -微控制器-论坛/1083237/tms320f28379d-cmps-ECAP-Accurity-problem-measure-frequence-frequence/4018077#4018077"]不幸的是,我们需要的最大响应时间平均为50毫秒,我们不能这样做。 我们尝试了2项测量(40毫秒),但结果没有改变。

    好的,我理解。 我们将了解其他选项。

    [引用 userid="482569" url="~/support/icros/C2000 -微控制器组/CC2000 /f/C2000 -微控制器-论坛/1083237/tms320f28379d-cmps-ECAP-Accurity-problem-measuring-frequence/4018077#4018077"]我们使用前面  描述的 RC 滤波器尝试了 TI 施密特触发器。 我们使用的 SN74LS14具有较大的滞后,但 我们没有太多的优势。 您认为我们需要构建特定触发器吗?

    很抱歉,这不是我的意思。 我希望您向 CMPSSS 添加施密特触发器配置,即将输出(即 GPIO)的反馈电阻器连接到输入(即 CMPSS 引脚)。 反馈电阻器的实际值将取决于正弦有多少噪声。 您需要绕过这一点,但您可以从一个值开始,该值为100mV 有效滞后,然后从该值开始。 请务必禁用内部磁滞和滤波器,同时卸下 RC,以免将不同的旋钮混在一起。 如果这一点不清楚,请告诉我们。

    [引用 userid="482569" url="~/support/icros/C2000 -微控制器-组/CC2000 /f/C2000 -微控制器-论坛/1083237/tms320f28379d-cmps-ECAP-Accurity-problem-measuring-frequence/4018077#4018077"]此时,我们认为您是对的,我们需要做得更好,但我们可以尝试构建更好的方法。 如果您同意我们的意见,您是否对过滤器设计有任何建议?

    您能捕获正弦的 FFT 吗? 确保 FFT 增益足够大,从而可以看到任何潜在的增益。 希望这能让我们知道是否有特定频率或特定频率集导致这种情况,这将有助于您的滤波器设计。

    P.S 不要尝试纠正水槽的问题,您是否可以在来源处做些什么来使其产生更清洁的正弦?

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

    你好,弗兰克,

    [引用 userid="146390" url="~/support/icros/c2000微控制器-组/CC2000 /f/c2000微控制器-论坛/1083237/tms320f28379d-cmps-ecapp 精确度-问题-测量频率/4019024#4019024"]对不起,这不是我的意思。 我希望您向 CMPSSS 添加施密特触发器配置,即将输出(即 GPIO)的反馈电阻器连接到输入(即 CMPSS 引脚)。 反馈电阻器的实际值将取决于正弦有多少噪声。 您需要绕过这一点,但您可以从一个值开始,该值为100mV 有效滞后,然后从该值开始。 请务必禁用内部磁滞和滤波器,同时卸下 RC,以免将不同的旋钮混在一起。 如果这一点不清楚,请告诉我们。

    因此,我们只需要在 cmpss 的输出 GPIO 和 cmpss 的输入引脚之间添加反馈电阻器(R2),或者我们也需要添加施密特触发器的另一个通用电阻器(R1),如下所示:

    我们尝试了一个非常大的磁滞和几个电阻器 R1=220欧姆和 R2=1千欧姆,但结果不是很好。 我们还注意到正弦波(由函数发生器生成)受到干扰(如图所示):

    [引用 userid="146390" url="~/support/icros/c2000微控制器-组/CC2000 /f/c2000微控制器-论坛/1083237/tms320f28379d-cmps-ecapp 精确度-问题-测量频率/4019024#4019024">您能否捕获正弦的 FFT? 确保 FFT 增益足够大,从而可以看到任何潜在的增益。 希望这能让我们知道是否有特定频率或特定频率集导致这种情况,这将有助于您的滤波器设计。

    结果如下:

    -0至50 kHz,5 kHz/div

    -0至1.25 kHz,125 Hz/div

    从123.75 kHz 到136.25 kHz,1.25 kHz/div

    我们的50 Hz ,谐波和130 kHz 似乎会产生问题。 对吗?

    [引用 userid="146390" url="~/support/icros/c2000微控制器-组/CC2000 /f/c2000微控制器-论坛/1083237/tms320f28379d-cmpsss-ecap-Accurity-problem-measuring-frequence-frequence/4019024#4019024"]P. S 而不是 sink 尝试在消息来源处纠正问题,以确保您能在消息来源处制作出任何内容[,以确保无误]。

    实际上,我们使用网格正弦并使用 分压器和 TI AMC1200获得0至3 V 之间的正弦

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

    盖塔诺,您好!

    您是否使用函数发生器而不是相关电网的信号来运行调试实验? 如果是,您能否提供型号? 我将看到我是否可以尝试在实验室中使用变通办法重现。

    另一个问题是,从您测量的分辨率(即50MHz)看,这是您50Hz 信号的0.1%。 考虑到这一点,我不确定 CMPSS 是否足够准确,无法在一次拍摄中进行测量而不对多个样本求平均值,但我需要再考虑一下这一点,然后再回来。

    其他答复如下。

    [引用 userid="482569" url="~/support/microsofts/c2000-microsoft-group/c2f/c2000微控制器-forum/1083237/tms320f28379d-cmps-ecapp 精确度问题测量频率/4020304#4020304"],因此我们只需添加反馈(类似于 R2或命令的输出电阻器),就可以在 R2和其他的输出端子之间(例如:

    是的,这就是我的意思。

    [引用 userid="482569" url="~/support/microsofts/c2000-microsoft-group/c2f/c2000微控制器-forum/1083237/tms320f28379d-cmps-ecap-accurity-problem-measuring-frequency/C4020304#4020304"]我们尝试了一个非常大的断路器,使用了1 Ω 和1 Ω 的立体声电阻器,但没有结果,我们只使用了一对1 Ω 的 R2[。]

    这很奇怪。 磁滞应会产生一些影响。 您进入 R1的源阻抗是否相当低,即远低于220欧姆值? 您提供的值应计算为滞后约0.6V。

    您提到施密特触发滞后设置未能获得良好结果。 您能否详细了解一下哪些方面不起作用或更好一些,同时提供反馈电阻器在几个周期内发生的情况的范围图。

    [引用 userid="482569" url="~/support/icros/c2000微控制器-组/CC2000 /f/c2000微控制器-论坛/1083237/tms320f28379d-cmps-ecapp 精确度-问题-测量频率/4020304#4020304"]我们还注意到正弦波(由函数生成器产生)[如图/引述中所示]

    我不太明白“被打扰”的意思。 你能解释吗? 您是否意味着跳闸电压和断开电压不再相同? 如果是,这是由于滞后所致。

    [引用 userid="482569" url="~/support/icros/c2000微控制器-组/CC2000 /f/c2000微控制器-论坛/1083237/tms320f28379d-cmpse-ecapp 精确度-问题-测量频率/4020304#4020304"]-从0到1.25 kHz,125 dV/dV/报价 单[]

    明白了。 您能否在100Hz/div 下捕获另一个频率为0至1KHz 的频率? 这将使您的基础是50Hz,因此更易于阅读。

    [引用 userid="482569" url="~/support/moncs/c2000微控制器-组/CC2000 /f/c2000微控制器-论坛/1083237/tms320f28379d-cmps-ECAP-Accurity-problem-measuring-frequence-frequence/4020304#4020304]50 Hz 和 130 kHz 谐波似乎会造成问题和130 kHz。 对吗?

    我认为您不需要一直使用130KHz,因为您在接近50Hz 信号时构建的任何 LPF 都将在130KHz 之前切断。

    ~引用 userid="482569" url="ë/support/icles/c2000-icroms-group/c2f/c2000微控制器-forum/1083237/tms320f28379d-cmpsss-ecapp 精确度问题测量频率/4020304#4020304"]我们实际使用栅 格分频器并使用电压在 C0和 Ar A V 之间。[

    好的,我明白了。 用于分压器的电阻器的公差是多少?

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

    你好,弗兰克,

    首先再次感谢大家的支持。 我们非常感谢。

    [引用 userid="146390" url="~/support/icros/c2000微控制器-组/CC2000 /f/c2000微控制器-论坛/1083237/tms320f28379d-cmps-ecapp 准确性-问题-测量频率/4021749#4021749]\n 您是否使用发生器的函数而不是发生器发出的信号来运行调试实验? 如果是,您能否提供型号? 我将看到我是否可以尝试在实验室中使用变通办法进行复制

    事实上,我们正在同时使用这两种方法。  起初,我们尝试使用 TTi TG2000函数发生器,而不是使用真实网格(如果我们认为它可能有用)。

    [引用 userid="146390" url="~/support/icros/c2000微控制器-组/CC2000 /f/c2000微控制器-论坛/1083237/tms320f28379d-cmps-ecapp 精确度-问题-测量频率/4021749#4021749"]

    这很奇怪。 磁滞应会产生一些影响。 您进入 R1的源阻抗是否相当低,即远低于220欧姆值? 您提供的值应计算为滞后约0.6V。

    您提到施密特触发滞后设置未能获得良好结果。 您能否详细了解一下哪些方面不起作用或更好一些,同时提供反馈电阻器在几个周期内发生的情况的范围图

    [/引用]

    函数发生器电缆的输出阻抗为50欧姆。 是的,我们已经计算了0.6 V 的滞后值

    关于没有好的结果,在调试中,我们注意到,捕捉2个周期的下降和上升事件几乎同时发生(计数器具有相同的值)。 因此,我们 认为真实网格的问题是相同的,即使在范围内我们没有注意到它,但边缘越多越接近。

    [引用 userid="146390" url="~/support/icros/C2000 -微控制器-组/CC2000 /f/C2000 -微控制器-论坛/1083237/tms320f28379d-cmps-ECAP-Accurity-problem-measuring-frequence-frequence/4021749#4021749"]我没有完全明白您对“干扰”的意思。 你能解释吗? 您是否意味着跳闸电压和断开电压不再相同? 如果是,这是由于滞后所致。[/quot]

    捕获结果表明,蓝色正弦波的边缘与方波的边缘形成了一种类似的小步:

    [引用 userid="146390" url="~/support/icros/c2000微控制器-组/CC2000 /f/c2000微控制器-论坛/1083237/tms320f28379d-cmps-ecapp 精确度-问题-测量频率/4021749#4021749"]获得了该信息。 您能否在100Hz/div 下捕获另一个频率为0至1KHz 的频率? 这将使您的基础知识更易于阅读,因为您的基础知识是50Hz。

    我们将在星期一尝试这样做,我们将向您发送范围

    [引用 userid="146390" url="~/support/icros/c2000微控制器-组/CC2000 /f/c2000微控制器-论坛/1083237/tms320f28379d-cmps-ecapp 精确度-问题-测量频率/4021749#4021749"]好的消息,我看。 用于分压器的电阻器的公差是多少?

    它应该是1%的容差。

    谢谢,

    盖塔诺

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

    盖塔诺,您好!

    ~引用 userid="482569" url="ë/support/icros/c2000-微控制器组/CC2000 /f/c2000-微控制器-论坛/1083237/tms320f28379d-cmps-ecapp 精确度-问题-测量频率/4021818#4021818">我们实际上正在使用两者。  起初,我们尝试使用 TTi TG2000函数发生器,而不是使用真实网格(如果我们认为它可能有用)。

    好的。 我将在实验室中看到是否可以重现这种情况。 您可以在下周中到周末获得结果。

    [引用 userid="482569" url="~/support/icros/C2000 -微控制器-组/CC2000 /f/C2000 -微控制器-论坛/1083237/tms320f28379d-cmps-ECAP-Accurity-problem-measuring-frequence/4021818#4021818"]函数发生器电缆的输出阻抗为50欧姆。 是的,我们已经计算了滞后值0.6 V。

    好的,这符合我的计算。

    [引用 userid="482569" url="~/support/icros/c2000微控制器-组/CC2000 /f/c2000微控制器-论坛/1083237/tms320f28379d-cmps-ecapp 准确性-问题-测量频率/4021818#4021818"],在调试过程中,我们注意到,两个计数器的值几乎同时在下降(两个计数器)。 因此,我们 认为真实网格存在同样的问题,即使在范围内我们没有注意到它,但更多的边线会彼此接近。

    很抱歉,仍然没有得到。 施密特触发滞后时,您对频率有何了解?

    [引用 userid="482569" url="~/support/icros/c2000-icroms-group/c2f/c2000微控制器-forume/1083237/tms320f28379d-cmps-ecapp 精确度问题-测量频率/4021818#4021818"]捕获结果表明,蓝色波浪边缘有一小方形/四弦:

    好的,我明白了。 我认为这是意料之中的事。 当 R2在跳闸过程中将位置输入拉高并在跳闸过程中将其拉低时,您可以查看它。 因为这实际上只是在旅行活动中发生的,所以我不认为这是个问题。 但是,如果担心,您可能会缓冲输入信号以保持其隔离。 如果您最终选择了低通滤波器路由,则可以将滤波器构建到此缓冲区中以获取活动滤波器。 您可能需要有一个有效的过滤器,因为到目前为止,它看起来像系统需要一个强大的砖墙过滤器(即2个以上的级)。

    [引用 userid="482569" url="~/support/icros/c2000微控制器-组/CC2000 /f/c2000微控制器-论坛/1083237/tms320f28379d-cmps-ecapp 准确性-问题-测量频率/4021818#4021818"]我们将在星期一尝试执行此操作,并发送报价单[您]

    好的,听起来不错。

    [引用 userid="482569" url="~/support/icros/C2000 -微控制器-组/CC2000 /f/C2000 -微控制器-论坛/1083237/tms320f28379d-cmps-ECAP-Accurity-probe-measuring-frequency/4021818#4021818"]它应该是1%的容差。

    好的,我明白了。 如果分禾器中的2个电阻器匹配(即相同的品牌,型号等),1%应该可以正常工作,这样您就不会在一个方向上变化,另一个方向变化的情况下结束工作。 我们可以在探索其他可能性后回到这一点。

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

    你好,弗兰克,

    [引用 userid="146390" url="~/support/icros/c2000-icroms-group/c2000 /f/c2000微控制器-forume/1083237/tms320f28379d-cmps-ecap-accurity-problem-measuring-frequence/4022111#40221111"]确定。 我将在实验室中看到是否可以重现这种情况。 您可以在下周中到周末获得结果

    好的,谢谢。

    [引用 userid="146390" url="~/support/icros/c2000微控制器-组/CC2000 /f/c2000微控制器-论坛/1083237/tms320f28379d-cmps-ecapp 精确度-问题-测量频率/4022111#40221111]抱歉,仍然没有得到这一点。 施密特触发滞后时,您对频率有何反应?

    频率值非常高(与函数发生器也是如此)。 问题在于我们捕捉到了急剧上升/下降的事件。 正如您所看到的,计数器的值不是预期值。 事实上,cap1应该捕获第一个半周期(大约2000000),CAP2应该捕获第一个半周期(大约4000000),等等(cap3 6000000和 cap4 8000000)。

    [引用 userid="146390" url="~/support/icros/c2000-icroms-group/c2f/c2000微控制器-forume/1083237/tms320f28379d-cmps-ecap-accurity-probe-measuring-frequence/4022111#4022111111]OK,我见。 我认为这是意料之中的事。 当 R2在跳闸过程中将位置输入拉高并在跳闸过程中将其拉低时,您可以查看它。 因为这实际上只是在旅行活动中发生的,所以我不认为这是个问题。 但是,如果担心,您可能会缓冲输入信号以保持其隔离。 如果您最终选择了低通滤波器路由,则可以将滤波器构建到此缓冲区中以获取活动滤波器。 您可能无论如何都需要一个有效的过滤器,因为到目前为止,它看起来像系统需要一个强大的砖墙过滤器(即两个以上的阶段)。

    我们正在考虑使用相同的 ADC 来读取电压值,因此可能我们需要解决这个问题。 但我们可以在以后再考虑一下。

    [引用 userid="146390" url="~/support/icros/c2000微控制器-组/CC2000 /f/c2000微控制器-论坛/1083237/tms320f28379d-cmps-ecapp 精确度-问题-测量频率/4022111#4022111"],听起来不错。

    很明显,除法的最小值为125 Hz/div。

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

    盖塔诺,您好!

    [引用 userid="482569" url="~/support/icros/c2000微控制器-组/CC2000 /f/c2000微控制器-论坛/1083237/tms320f28379d-cmps-ecapp 精确度-问题-测量频率/4024232#4024232]\n 频率值非常高(函数发生器也是如此)。 问题在于我们捕捉到了急剧上升/下降的事件。 正如您所看到的,计数器的值不是预期值。 事实上,cap1应该捕获第一个半周期(约为2000000),CAP2应该捕获第一个半周期(约为4000000),等等(cap3 6000000和 cap4 8000000)。

    您能否提供示波器显示范围的屏幕截图(即产生的方波滞后频率)?

    [引用 userid="482569" url="~/support/icros/c2000微控制器-组/CC2000 /f/c2000微控制器-论坛/1083237/tms320f28379d-cmps-ecap-Accurity-probe-measuring-frequence/4024232#4024232]\n 我们正在考虑使用相同的 ADC 读取电压值,以解决此问题。 但我们可以在以后再考虑一下。

    因此,由于您非常关注针脚的准确性,除非您正确驱动针脚,否则 ADC 会在对针脚采样时导致电压骤降,从而影响比较器的结果。

    ~引述 userid="482569" url="ë/support/minors/c2000-minor-group/c2c/f/C2000微控制器-forume/1083237/tms320f28379d-cmpsd-cmpss-ecap-Accurity-problem-measuring-frequence/4024232#4024232"]Unfortheme[The minimum value for the division for the division is 125/Hz]。

    好的,我们必须回到这个地方。

    -----

    我在实验室中使用台式函数发生器进行了一些实验。 结果如下:

    设置如下:从函数发生器馈入到比较器正输入的3.3vpp 50Hz 正弦波。 比较器的跳闸输出输出出现在 GPIO 上。 比较器的负输入使用内部压实线驱动,并设置为1.65。 未使用数字滤波器。 此处使用的设备是100MHz 设备。

    scope_shot_1:缩小范围捕获,无滞后。 缩小图解从外观上看起来很好,但下面的放大捕获显示过渡点周围有多个过渡,与您在应用程序中看到的情况类似。

    zoomed_out_no_hysteresis

    scope_shot_2:放大上述范围捕获,无滞后。 您可以按预期看到多个过渡。 因此,ECAP 也会为此返回垃圾值。

    zoomed_in_no_hysteresis

    scope_shot_3和4:以4倍滞后放大范围捕获。 跳闸点周围的所有多个过渡都已删除。 来自函数发生器的信号不是很嘈杂,因此4倍滞后已足够。 希望这能向您表明,使用一些 LPF 对信号进行清理后,磁滞可以解决此问题。

    zoomed_in_hysteresis_4x_1

    zoomed_in_hysteresis_4x_2

    ECAP 的结果为4倍滞后。

    watchwindow_capture

    ECAP 配置为捕获上升->下降->上升->下降。 预期滞后会影响占空比,如您在上述结果中所见,但它不会影响频率。 在将 cap1添加到 CAP2和 cap3添加到 cap4后,我连续两个周期获得50.0004 Hz 和49.9995 Hz。

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

    你好,弗兰克,

    因此,您建议我们为 cmpss 的正弦输入建立一个更好的滤波器,这样我们就可以获得与函数发生器所获得的结果相当的结果。

    事实上,今天我们找到了另一个可能的解决方案,现在我们正在尝试获得方波作为放大器的输出(如零交叉方案),它似乎提供了可以接受的结果。 (我们正在考虑使用 LM358AP9)

    此时,我想我们将比较两个链(滤波器+cmps(有滞后)+ECAP 与放大器+ECAP),我们将选择更好的一个。

    所以,我认为我们可以考虑这个问题是否得到解决,我对吗? 如果是,我会选择您的“轻松回答”,就像“解决问题”一样。

    我要感谢你对我们的所有支持,我希望这次讨论对其他人有用。

    再次感谢

    盖塔诺

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

    盖塔诺,您好!

    [引用 userid="482569" url="~ë/support/微处理器/CC2000微控制器-组/CC2000 /f/CC2000 -微控制器-论坛/1083237/tms320f28379d-cmps-ECAP-Accurity-problem-measure-frequence-frequence/4025873#4025873"],您建议我们构建一个能够以更好的正弦/正弦函数获得的滤波器,以便我们可以通过这些滤波器获得更好的函数。]

    正确。 我认为,正确设计的过滤器+ cmpss 的内部磁滞不会有问题。

    [引用 userid="482569" url="~ë/support/微处理器/C2000微控制器-组/CC2000 /f/C2000微控制器-论坛/1083237/tms320f28379d-cmps-ECAP-Accurity-problem-measure-measure-frequence/4025873#4025873 ]\n 事实上,今天我们找到了另一个可以接受的方形输出方案,我们现在正试图获得零波转换的结果(作为一个方形放大器)。 (我们正在考虑使用 LM358AP9)

    好的,我明白了。 LM358AP 只是一个运算放大器,而比较器确实是一个特殊的运算放大器,旨在实现一个目的。 问题的关键在于比较器的带宽对于非常慢的50Hz 正弦信号太高。 在开放循环模式下,LM358AP 会出现同样的问题。 但是,如果您能够围绕 LM358AP 构建一个闭环以显著降低其带宽,我可以看到这将如何更好地发挥作用。

    [引用 userid="482569" url="~ë/support/icns/c2000-icroms-group/c2f/c2000微控制器-forume/1083237/tms320f28379d-cmpsss-ecapp 精确度问题测量频率/4025873#4025873 "],我认为我们将与两个 ECP+hys[相比,我们将选择更好的 ECAP/e+滤波器+电流链。]

    好极了。 您应该采用能提供更好,更稳定结果的方法。

    [引用 userid="482569" url="~/support/icros/c2000微控制器-组/CC2000 /f/c2000微控制器-论坛/1083237/tms320f28379d-cmps-ecapp 精确度-问题-测量频率/4025873#4025873 "]

    所以,我认为我们可以考虑这个问题是否得到解决,我对吗? 如果是,我会选择您的“轻松回答”,就像“解决问题”一样。

    我要感谢你对我们的所有支持,我希望这次讨论对其他人有用。

    [/引用]

    听起来不错,很高兴能提供帮助。 您可以继续并将此线程标记为“已解决”。 如果您遇到了更多问题,或者您正在探索的两种解决方案都不能解决,请放心创建另一个线程。 祝您好运!