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.

[参考译文] F28M36P63C2:是否可以对比较器输出的边沿进行计数?

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/732499/f28m36p63c2-is-it-possible-to-count-edges-on-the-output-of-the-comparators

器件型号:F28M36P63C2

您好!

我使用的是 Concerto f28m36、除了许多其他东西之外、我希望它对来自外部温度传感器的脉冲序列进行计数。 温度传感器的工作原理如下:

当对其施加电源(例如 Concerto 可以控制此情况)时、它将花费一些时间来测量温度、一段时间(最大50ms)后、它将开始输出脉冲数映射到测量温度的脉冲序列。 脉冲数少意味着温度低。 许多脉冲意味着高温。 为简单起见、我们可以说每个脉冲对应于1度、与-40度摄氏度偏移。 10个脉冲表示温度为-30度。 在脉冲序列之后、传感器将再次执行温度测量、然后输出与该温度对应的新脉冲序列。 只要它有电源、它就会继续如此。

脉冲序列的振幅低于 Concerto 的工作电压、因此我想将脉冲序列输入到 Concerto 中的比较器之一、以便比较器的输出仅以更高的振幅输出相同的脉冲序列 (可由 Concerto 计时器解释)。 最后、我想对所有脉冲进行计数以了解温度。  

问题是:在 f28m36上是否可以这样做? 我看到比较器的输出可以路由到 ePWM 跳闸模块区域、但坦率地说、通过阅读有关 ePWM 模块的信息、我无法判断这是否能满足我的需求。 感谢您对此提供的任何帮助。

Kristoffer

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

    Kristoffer、

    到 ePWM 的比较器连接到跳闸区域子模块(TZ)。 TZ 设计用于在错误或危险条件下关闭 PWM。 它不会执行您想要的操作。

    其次、PWM 发送一些脉冲是不好的。 它可以实现、但最好发送占空比变化的恒定脉冲链。 我建议您选择固定频率并改变编码数据的职责。

    比较器应用于测量您谈到的脉冲序列、但这会导致一些软件开销、具体取决于脉冲数。 我建议先使用电平转换器、然后再使用 QEP 模块、该模块在脉冲计数方面非常好。

    此致、
    Cody  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Kristoffer、
    我的一位同事提出了一个好问题、您可以将比较器输出端连接到 GPIO、然后将该信号回路到 QEP、从而避免使用 SW over head 或电平转换器。

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

    您好、Cody、


    感谢您的回答。 现在、我只需要澄清几件事。 我的应用确实是这样
    GPIO 数量太少、所以我有6个问题需要回答...

    我已经在 TRM 中了解了 eQEP。 我看到 eQEP 接受4个输入信号:
    - EQEPxA/XCLK
    - EQEPxB/XDIR
    - EQEPxI
    - EQEPxS

    我看到它的方式只需要 EQEPxA/XCLK (我的脉冲序列将进入这里)。 如果我使用向上计数模式、QDIR 将为1。 我认为
    我可以完全忽略引脚 EQEPxB/XDIR (这会为我提供一个额外的 GPIO)。 问题1:此假设是否正确?

    我想、在对这些脉冲进行计数时、我不会将索引引脚用于任何东西。 问题2:我是否也可以忽略这个引脚、这将会是
    再给我另外一个 GPIO 吗?

    我认为、在我的案例中、选通引脚也将不使用。 问题3:我能否也忽略这个引脚、这将为我提供帮助
    另一个额外的 GPIO?

    实际上、我的设计中将有4个温度传感器、我计划仅使用一个比较器(例如 COMP1)来对所有传感器进行计数。 我计划使用引脚 ADC1INA0、ADC1INA2、ADC1INA3、ADC1INA4。 问题4:是否可以一次将所有这些 ADC1INAx 引脚路由到 COMP1的同相输入? 从 TRM 中我实际上看不到如何将不同的 ADCxINAx 引脚映射到不同的比较器。 您能在这里稍作说明吗?

    我看到我可以将 COMP1的输出映射到 GPIO193。 问题5:那么、我是否需要从外部将此输出(PCB 布线)路由到支持 EQEPxA/XCLK 功能的 GPIO? 或者是否有某种方法将比较器输出路由到内部的此类引脚?

    如果我出于某种原因不得不使用四个比较器、 理想情况下、我只想使用一个 EQEPxA/XCLK 引脚、该引脚应该能够在所有4个比较器输出上进行计数。 问题6:这是可能的吗? 例如、如果我一次只启用一个比较器、并禁用其他三个比较器、那么禁用的比较器的输出是否为高阻态? 在这种情况下、我可以将所有比较器输出连接到一个节点、并将该节点连接到 EQEPxA/XCLK。

    Kristoffer

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

    Kristoffer、

    [引用 USER="Kristoffer S">我看到它的方式只需要 EQEPxA/XCLK (我的脉冲序列将进入这里)。 如果我使用向上计数模式、QDIR 将为1。 我认为
    我可以完全忽略引脚 EQEPxB/XDIR (这会为我提供一个额外的 GPIO)。 问题1:此假设是否正确?

    正确。

    [报价 USER="Kristoffer S">我想在计数这些脉冲时不会对任何脉冲使用 INDEX 引脚。 问题2:我是否也可以忽略这个引脚、这将会是
    再给我一个额外的 GPIO 吗?[/报价]

    正确。

    [引述 USER="Kristoffer S">我认为在我的案例中也不使用 STROBE 引脚。 问题3:我能否也忽略这个引脚、这将为我提供帮助
    另一个额外的 GPIO?[/报价]

    正确

    [报价用户="Kristoffer S">我的设计中实际上将有4个温度传感器、我计划仅使用一个比较器(例如 COMP1)来计算所有传感器的数量。 我计划使用引脚 ADC1INA0、ADC1INA2、ADC1INA3、ADC1INA4。 问题4:是否可以一次将所有这些 ADC1INAx 引脚路由到 COMP1的同相输入? 从 TRM 中我实际上看不到如何将不同的 ADCxINAx 引脚映射到不同的比较器。 您能在这里介绍一下吗?[/引述]

    除非您想直接比较这两个输入的值、否则无法将多个输入路由到一个 COMP。 此外、对于 Compx 输入、没有太多的配置需要、它们直接连接到引脚。 请查看 数据表中的"表4-1信号说明" 、了解输入的引脚编号。

    [引述 USER="Kristoffer S">问题5:我是否需要将此输出(PCB 布线)从外部路由到支持 EQEPxA/XCLK 功能的 GPIO? 或者、是否有某种方法可以将比较器输出从内部路由到此类引脚?[/quot]

    在某些较新的器件上、有一些方法可以在内部回路信号、但在该器件上、您需要使用 PCB 迹线。

    [报价用户="Kristoffer S">如果出于某种原因我必须使用四个比较器。 理想情况下、我只想使用一个 EQEPxA/XCLK 引脚、该引脚应该能够在所有4个比较器输出上进行计数。 问题6:这是可能的吗? 例如、如果我一次只启用一个比较器、并禁用其他三个比较器、那么禁用的比较器的输出是否为高阻态? 在这种情况下、我可以将所有比较器输出连接到一个节点、并将该节点连接到 EQEPxA/XCLK。[/quot]

    是的、这应该没问题。 您可以通过将其他 COMPxOUT 信号配置为输入(三态)来隔离它们。

    我希望它能有所帮助!

    此致、
    Cody  

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