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.

[参考译文] TMS320F280039C:CMPSS 输出不在 IT 级别's 设置的级别

Guru**** 2554240 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1355011/tms320f280039c-cmpss-output-not-at-the-level-it-s-set

器件型号:TMS320F280039C

尊敬的先生:

   对于下面的图片、 CH3是 CTRIPOUTH、CH4是 CMPx_HP 信号。 DACHVALS 设置为2110 (1.7V@3.3V 回波)。 从图中可以看到、CTRIPOUTH 在1.72V (V1)左右被触发为高电平、在1.658V (V2)时被触发为低电平、不用作设置值。 我们检查所有设置、看起来一切正常。 您能帮助提供建议吗? 谢谢。

    EALLOW;
    cmpssRegx->COMPCTL.bit.COMPDACE = 1;        //1 Comparator/DAC enabled
    cmpssRegx->COMPCTL.bit.ASYNCLEN = 0;        //Asynchronous comparator output does not feed into OR gate with latched digital filter output
    cmpssRegx->COMPCTL.bit.CTRIPOUTLSEL = 0;    //0 Output of ASYNCH drives CTRIPOUTL
    cmpssRegx->COMPCTL.bit.CTRIPLSEL = 0;       // Output of ASYNCH drives CTRIPL
    cmpssRegx->COMPCTL.bit.COMPLINV = 1;        //1 Output of comparator is inverted
    cmpssRegx->COMPCTL.bit.COMPLSOURCE = 0;     //0 Inverting input of comparator driven by internal DAC
    cmpssRegx->COMPCTL.bit.ASYNCHEN = 0;        //Asynchronous comparator output does not feed into OR gate with latched digital filter output
    cmpssRegx->COMPCTL.bit.CTRIPOUTHSEL = 0;    //2 Output of ASYNCH drives CTRIPOUTH
    cmpssRegx->COMPCTL.bit.CTRIPHSEL = 0;       //2 Output of ASYNCH drives CTRIPH
    cmpssRegx->COMPCTL.bit.COMPHINV = 0;        //0 Output of comparator is not inverted
    cmpssRegx->COMPCTL.bit.COMPHSOURCE = 0;     //0 Inverting input of comparator driven by internal DAC

    cmpssRegx->COMPHYSCTL.bit.COMPHYS = 0;      //Comparator hysteresis. Sets the amount of hysteresis on the comparator inputs.

    cmpssRegx->COMPDACCTL.bit.SWLOADSEL = 0;    //0 DACxVALA is updated from DACxVALS on SYSCLK
    cmpssRegx->COMPDACCTL.bit.SELREF = 0;       //0 VDDA is the voltage reference for the DAC
    cmpssRegx->COMPDACCTL.bit.DACSOURCE = 0;    //0 DACHVALA is updated from DACHVALS
    cmpssRegx->COMPDACCTL.bit.RAMPSOURCE = 1;   //1 EPWM2SYNCPER

    //THRESH must be larger than SAMPWIN/2
    cmpssRegx->CTRIPLFILCTL.bit.THRESH = 2;     //Low filter majority voting threshold
    cmpssRegx->CTRIPLFILCTL.bit.SAMPWIN = 2;    //Low filter sample window size. Number of samples to monitor is SAMPWIN+1.
    cmpssRegx->CTRIPLFILCLKCTL = 12;            //Low filter sample clock prescale. Number of system clocks between samples.

    cmpssRegx->CTRIPLFILCTL.bit.FILINIT = 1;    //Low filter initialization.

    cmpssRegx->CTRIPHFILCTL.bit.THRESH = 2;     //High filter majority voting threshold
    cmpssRegx->CTRIPHFILCTL.bit.SAMPWIN = 2;    //High filter sample window size. Number of samples to monitor is SAMPWIN+1.
    cmpssRegx->CTRIPHFILCLKCTL = 12;            //High filter sample clock prescale. Number of system clocks between samples.

    cmpssRegx->CTRIPHFILCTL.bit.FILINIT = 1;    //High filter initialization.
    EDIS;

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

    尊敬的 Bishlant:

    感谢您的耐心等待。

    数据表中给出了 DAC 的偏移和增益误差。

    我想知道您要将哪个引脚用于  CMPx_HP 信号。

    此致、

    哈迪

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

    Hadi、您好!

       听得好。 该引脚为引脚22 (80引脚280039)。 我读取偏移/增益误差、它是否会导致触发不平衡(我的意思是 CMPx_HP 触发 CMPSS 高电平和低电平是不同的)?

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

    Bishlant,

    从此处提供的波形可以清楚地看出、开关噪声耦合到该信号、这会影响比较器模块的性能。 为了更好地理解该问题、请告诉我:

    1) 1)您在 CMPSS_DAC 中使用什么电压基准? 是内部电源还是您使用自己的外部电源?

    2) 2)您是否为信号使用了 RC 低通滤波器?

    此致、

    哈迪  

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

    Hadi、您好!

    这是"cmpssRegx->COMPDACCTL.bit.SELREF = 0;    //0 VDDA 是 DAC 的电压基准"、ADC 基准是外部电源。 因此、CMPSS 的 VDDA 应该是外部的?

    是的、信号具有 RC 滤波器、但波形显示引脚22上的信号、它是直接馈送到 CMPSS 的信号。

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

    Bishlant,

    如果 SELREF 字段为0、则表示 VDDA 是 CMPSS_DAC 的引用。 所以、这里您没有使用 VDAC。(这里无需外部电源)

    此致、

    哈迪  

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

    Bishlant,

    您观察到的行为是由输入失调电压引起的。 输入失调电压可由与理想比较器的一个输入串联的电压源表示。 因此、当 VIN+= VIN-时输出不会切换、就像在理想比较器中那样、但阈值电平会通过输入偏移值 VIO 位移。

    图1. 输入失调电压对跳变电平的影响

    我还有一个问题:什么是信号阻抗? 由于输入引脚上的高阻抗可以提高噪声敏感度、增加寄生结构和信号串扰的影响。

    此致、

    哈迪