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.

[参考译文] TM4C1294KCPDT:模拟比较器 C0+阈值

Guru**** 2478765 points
Other Parts Discussed in Thread: TM4C1294KCPDT, EK-TM4C1294XL, INA240

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/690761/tm4c1294kcpdt-analog-comparator-c0-threshold

主题中讨论的其他器件:TM4C1294KCPDTEK-TM4C1294XLINA240

ART 编号:TM4C1294KCPDT

您好!

C2-输入具有与 C0-或 C1-相似的振幅、但在  外部 VREF C0+(PIN0)下输出高电平。  C0-/C1-   在达到外部共享阈值(C0+)之前、不要将输出 CO0/CO1跳闸为高电平。

一种全新的 MCU 固件,通过  ROM 或 MAP 配置 比较 器调用 ConfigureComparator()。   经 验证的 MCU 引脚119信号 也 通过100 Ω 串联隔离电阻器交叉连接到 MCU 引脚14 PE1 (AIN1) 、不应干扰比较器 C2-输入。  所有比较 器 Cn-输入的典型配置均具有100欧姆串联电阻器、分别连接 AIN2、AIN5、这两个电阻器按预期工作。 但是、C1+、C2+输入保持悬空、因为(+ve 备用1) 输入应 通过固件选择。 已验证与 MCU 引脚/焊盘的牢固连接、引脚119 (C2-) 与引脚118 (C2+)之间的电阻为1.6兆欧。    

当配置了 CO2输出时、内部电流 可能 会从 PWM0 GNE2 M2FAUT 引脚馈送、并使 模拟比较器2上的阈值更低?  3个模拟比较器输出分别馈入 MnFault 引脚。   此配置之前 通过 EK-TM4C1294XL Launch Pad 进行过测试。 但是、三个 ADC0输入的接地电阻为525欧姆、 Cn-输入 和 ANIx 通道之间没有100欧姆隔离电阻器。

为什么 C2-拒绝跟随外部 VREF、因为 C0-/C1-在 Cn-输入和 ANIx 通道之间隔离时表现良好、或者 这与之有任何关系?   

MAP_ComparatorRefSet (COMP_BASE、COMP_REF_OFF);

MAP_ComparatorConfigure (COMP_BASE、0、(COMP_ASRCP_PIN0 | COMP_OUTPUT_IN倒));
MAP_ComparatorConfigure (COMP_BASE、1、 (COMP_ASRCP_PIN0 | COMP_OUTPUT_IN倒 相);
MAP_ComparatorConfigure (COMP_BASE、2、(COMP_ASRCP_PIN0 | COMP_OUTPUT_IN倒 相)); 

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

    您好 BP101、

    [引用 user="BP101"]此 配置 之前是 通过 EK-TM4C1294XL 启动板进行测试的。[/quot]

    它是否在 LaunchPad 上成功工作?

    您是否仍有来自该测试的代码?

    是 LaunchPad 与您的设计之间的唯一区别、如所述:

    [引用 user="BP101"]但是,三个 ADC0输入在 Cn-输入 和 ANIx 通道之间具有525 Ω 接地电阻,并且没有100 Ω 隔离电阻器。

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

    在内部 VREF 梯形设置下、EKLP 似乎可以正常工作、但必须使 VREF 在 Cn-输入端高于540mv 阈值1.3V。 Cn-阈值电平现在为1.225v、外部电位计设置为2.3V、以停止触发进入 M2Fault 输入的 C0、C1-、禁用的 C02输出。 可在 c0+上将 POT 最高旋转至2.8V VREF、 而 COMP2仍会跳闸。 COMP2在 NCPDT 上可能无法正常工作、但 C2-阈值要低得多。 这似乎就是为什么内部 VREF+必须设置得远高于任何实际信号生成的跳闸电平的原因。

    主要525R 将 Cn-输入阈值降低至大约540mv、这是主要差异。 除每个 ANIx 输入之外;100R 不存在、200pf 去耦电容也不存在。 计算出 ANIx 从 PWM 驱动器进行的任何去耦都会使电流样本静音。 向接地源添加525R 会邀请 PWM 脉冲进入比较器 Cn-输入。 因此、我们选择了 INA240的1.225v 外部 Ref1/2来进一步设置 ANIx 输入阈值、然后再设置比接地高540mv。

    我认为最大的区别是 KCPDT 与 NCPDT。 从症状来看、似乎 Comp2 ve+不能替代 GPIO PC6上的 C0+ VREF。 将 Comp2 Ve+(PIN)作为测试思维在图22-1中发生了逆转、而 CO2在 POR 上跳闸、输出被反转。

    C2可能是向后的、不需要反转、PIN 设置可能使其工作?

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

    您好 BP101、

    [引用 user="BP101"]我认为 KCPDT 与 NCPDT 之间的较大区别。

    这不可能是根本原因、这些器件之间的比较器没有发生任何变化。

    [引用 user="BP101"]可能 C2是向后的,不需要反转,PIN 设置可以使其正常工作?

    我搜索以查看是否有类似的报告、并且未找到任何表明这一点的信息。

    我建议重新访问 LaunchPad 实验、并重新验证如果在正常设置下 C2能够按预期运行。 一旦您再次确认并对比较器的功能充满信心、您就可以逐步完成自己的系统、以确定导致问题的原因。

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

    [引用 USER="Ralph Jacobi]]我建议重新访问 LaunchPad 实验、并重新验证如果在正常设置下、C2是否能够按预期运行。 一旦您再次确认并对比较器的功能充满信心、您就可以逐步完成自己的系统、以确定导致问题的原因。[/QUERP]

    这是 定制 PCB 中阈值现在要高得多的一点、 因此任何人如我们以前所做的那样将 Cn-阈值设置为低于1.225v 时、都可能错过了这种异常。  当    其他两 个输入 c0-/C1- 阈值 不通过2.3Vdc 阈值触发时、没有理由触发低于设置为2.8V 的 C0+的 KCPDT MCU 模拟比较器2。 因为  Eratta #13、我们无法使用 ANI0。 因此、模拟输入存在影响定制 PCB 的已知问题、因为 由于布线导致 ANIx 输入不完全相同。  

    然而、似乎 C2-输入正常工作、但 C2+输入在寄存 器控制中从内部从 C0+上分离! 证明这一问题的一种方法是将 C2+输入引脚热接线至外部 VREF POT 并为外部引脚配置 C2-输入。 这是 DAM 列表中的下一个为什么我们必须处理这些事情、LOL。

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

    您好、Ralph、

    尝试将 C2-输入信号幅度减小到低于 C1-/C2-信号(1.225v)对在较低阈值停止触发 CO2输出没有影响 C1-/C2-输入没有任何影响。

    EK-TM4C129XL 上似乎存在 C2阈值问题、我们在不知情的情况下通过降低 Cn-信号电平(540mv)来解决该问题。 该信号电平远低于内部 VREF+梯形分压器、因此需要将 VREF+设置为更高的值。 谁甚至知道、除非他们像我们(最近)那样禁用 CO2输出、否则使用(1.225v) CN- VREF 可以实现更低的 C0+阈值。

    当 C2-/CO2误触发低于 C0+阈值时、生成的一个线索是 ADC1 SS0中断停止对通道 AIN9/AIN16上的数据进行采样。 假设 AC1 SS1 DCOMP1/DCOMP2通过 M2Fault/Group1在内部触发 Gen2也会受到影响。  

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

    您好 BP101:

    [引用 user="BP101"] EK-TM4C129XL 上似乎存在 C2阈值问题,我们在不知情的情况下通过降低 Cn-信号电平(540mv)来解决该问题。[/引用]

    您能否提供重新确认 LaunchPad 上也存在此问题的代码? 如果是、我可以使用我们的工作台电源在实验室中进行测试和调试。

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

    您好、Ralph、

    也许当我们在  OUT 方向配置所有比较器 XOR 输出时、EK-TM4C1294XL  的 CO2错误触发不再是一个问题 ? 似乎 过去了(2015年)我们修改了 Tivaware 库调用 GPIOPinTypeComparator(),以便在所有 EK-TM4C12942XL 模拟比较器 CON 输出上使用 Out Direction 与 HW。 不能忘记过去的原因、除了或许它解决了 一些一般的错误 MoFault 触发问题。

    即使如此、CN-输入也可通过 触摸示波器探针轻松跳闸 Co1、2、3输出、 跳线通过 BP1/2引脚连接到三个 MnFault 输入 Gen1、Gen2、Gen3。

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

    下面是 PWM0故障配置:

    /*配置每个 PWM 发生器的最小故障周期(0us)。
    *用于数字比较器故障源的传统锁存微控制器。
    *设置 PWM0发生器 M0nFault 检测输入极性。 *
    MAP_PWMGenFaultConfigure (PWM0_BASE、PWM_GEN_1、0、PWM_FAULT1_SENSE_HIGH);
    MAP_PWMGenFaultConfigure (PWM0_BASE、PWM_GEN_2、0、PWM_FAULT2_SENSE_HIGH);
    MAP_PWMGenFaultConfigure (PWM0_BASE、PWM_GEN_3、0、PWM_FAULT3_SENSE_HIGH);
    
    //配置(或) M0Fault 引脚的扩展故障组0中断源。
    *置位至 PWM 无效 TFaultMax = 40ns、(24ns+1PWMCLK)*/
    MAP_PWMGenFaultTriggerSet (PWM0_BASE、PWM_GEN_1、PWM_FAULT_Group_0、
    (PWM_FAULT_FAULT1|PWM_FAULT_FAULT2|PWM_FAULT_FAULT3);
    MAP_PWMGenFaultTriggerSet (PWM0_BASE、PWM_GEN_2、PWM_FAULT_Group_0、
    (PWM_FAULT_FAULT1|PWM_FAULT_FAULT2|PWM_FAULT_FAULT3);
    MAP_PWMGenFaultTriggerSet (PWM0_BASE、PWM_GEN_3、PWM_FAULT_Group_0、
    (PWM_FAULT_FAULT1|PWM_FAULT_FAULT2|PWM_FAULT_FAULT3); 

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

    您好 BP101、

    GPIODirModeSet (GPIO_PORTD_AHB_BASE、GPIO_PIN_2、GPIO_DIR_MODE_OUT); 

    这条线错误。 Bob 最近与您讨论过这一点、您无法将比较器输出设置为 GPIO_DIR_MODE_OUT 并获得正确的操作。 这就是 为什么 GPIOPinTypeComparatorOutput 在 API 内调用 GPIODirModeSet 并使用 GPIO_DIR_MODE_HW 的设置。

    这就是您的问题的根源。

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

    [引用用户="Ralph Jacobi"]该行错误

    也许我在这一点上没有说明自己的观点,我 理解这是一个令人困惑的话题。 如果您所说的(完全正确)为真、那么 为什么 Out Direction (EK-TM4C1294XL)会 触发所有三个比较 器、这些比较器配置了内部 VREF+以实现+Vein。  或者 、问题需要进行实验室工作、以确定 当 HW 方向不会为   TM4C1294x MCU 的所有3个比较器产生(相等)外部 C0+阈值电平时、OUT 方向产生保护层的原因。 同意我们不应该 有2个比较器在 HW 方向正常工作、而第三个比较器的工作方式不一样!

    无论 C02 是如何配置的、C2-输入反映 PC6上设置的 C0+阈值时出错。 屏蔽  C2-输入的条件 似乎会停止与    外部 VREF+的 KCPDT MCU 设置的 C0-/C1-相对的错误触发 CO2输出。 同样  适用于(EK-TM4C1294XL) 使用  内部 VREF+设置的所有3个比较器 、Cn-输入阈值保持 一致、以同样触发低于 1.5VDC 的故障。  

    上面的代码对 配置为实验室分析的 KCPDT CO0/CO1使用 HW 方向、仅作为测试 EK-TM4C1294XL 时显示的当前 WA 的示例、不正确。 问题仍然是、当在硬件方向上使用 C0+上的外部 VREF+进行设置时、为什么 C2-不遵循 C0+阈值与 C0-/C1-相同。 点是 比较   器之间的+Vein 阈值(灵敏度)不应(显著)发生变化、无论这些比较器是为内部还是外部 VREF+源配置的。  

    BTW:外部 C0+ VREF 设置为2.42VDC、以停止低于该高外部阈值的 C0-/C1-错误触发 MnFaults。 通常、我们不会向 Cn-输入添加电容滚降、因为它 会将故障触发时间延长至1us 以上。  我们将测试向 C2-输入端添加小电容 、看看它是否有助于降低灵敏度、因为添加下拉 R 什么也不做。

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

    感谢您花时间提供有关您问题的所有这些信息。 但是,我们无法解决这个特定问题。

    我们无法调查由于外设设置不正确而导致的行为。 它在您的 LaunchPad 上工作一次并不表示它将在生产运行中在所有器件上工作。 在单个电路板上产生工作行为的错误设置并不能证明它应该在多个器件之间工作。

    我们感谢您对论坛的长期贡献、希望我们能为您可能面临的其他问题提供更多帮助。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    同样、即使硬件的模拟比较器 CO2输出配置正确、也会失败。 这怎么说不是很清楚呢? 相反、您会扭曲代码示例的主题并说它不正确。 我们同样同意这种说法不正确、但发布的代码是指示停止 M2Fault 输入的虚假触发的唯一方法。 同样、我们不必禁用比较器输出以使应用的其他部分执行。

    为什么您说您会在实验中测试问题、然后再踩下踏板?

    你显然完全误解了这个人!

    现在可以清楚地看到、当所有三个比较器通过 C0+使用外部基准时、C0到 C1-和超过550mv C1-到 C2-之间存在250mV 的阈值差异。 同样、使用 EK-XL Launch Pad 进行的原始测试使用内部+VREF @950mv、而 C0+输入现在设置为2.4V。 那么、为什么 Cn-输入之间存在这样的阈值电压级联、尤其是当阈值大于950mv 时?

    RA2器件或数据表文档图22-1中存在外部 C0+ VREF 如何为所有三个比较器平均工作的问题。 对于 TI 来说、在报告时规避问题非常不专业。 我们已经在多个 TM4C1294KCPDT 器件上看到过这种行为、并且不清楚到底发生了什么、直到如本帖子所述。 添加到同一电路中的外部比较器 PCB 不存在此问题!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    BTW:我们在上面发布的代码中找到了 EK-TM4C1294XL 的 Booster Pack 跳线。 奇数部分是 C2-/+ GPIO P1/2引脚119/118、它们分别与 MCU 封装右侧的 C0-C1-输入相距较远(顶部 MCU 封装)。

    C2-输入可能依赖于位于 MCU 封装顶部的 GND 引脚114、其中 C0/C1-从右侧 MCU 封装引脚17拉取 GND? 同样、C0-/C1-阈值分别在 C0+设置阈值的大约200mV 交叉、也在同一侧 MCU GPIO 引脚23上。

    目前、我们必须禁用 CO2输出并继续开展业务、但希望有某种 TI 实验室 WA。 借助肖特基二极管、二氧化碳输出几乎不会停止误触发、阴极放置在 C2-输入信号与 GND 之间。 输入信号确实出现随机-280mv 脉冲(交流探针)。 这距离 C0+阈值很远、然后设置为高于3.2V、以停止 C2-输入阈值的错误触发。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 BP101、

    没有明确说明发布的代码包含解决问题的权变措施。 如果您看到您现在已编辑的代码以删除 GPIODirModeSet 调用、则可以使用它来复制此问题、那么这是我可以测试的。 我被错误地认为所提供的代码是如何复制问题的、这就是为什么我调用 GPIODirModeSet 函数的原因。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    以为您正在走 一条错误的印象路径、并试图明确发布的代码是一条 WA、以阻止错误的旅行。 您将需要在实验中或很容易被比较器结果混淆、C0+ VREF 阈 值电平相对于 Cn-输入上的信号会使症状变得更加复杂。 想知道在 涉及负脉冲偏移时、是否将三个 Cn+输入悬空(PIN0配置)可能会对结果产生某种影响。

    也许我们应该将 Cn+/-输入绑定在一起、而不是将一个引脚悬空作为 WA 、焊接短接的相邻合作伙伴 MCU 引脚?

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

    通过 PWM0扩展故障处理配置 INT25处理程序、发送到虚拟 COM 端口的调试可快速关联由模拟比较器引起的 PWMnFault。

    如果  像 我们一样使用 PWM0发生器来产生信号、您可能会发现代码很有用。 单个代码为1、2、4 、多个故障跳闸分别生成代码3、5、6、7。

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

    您是否有时间研究为什么 C2-输入阈值与 C0-/C1-不同? 供参考我们最近在 C2-输入桥臂信号源和 C0-/C1-信号上放置了 TVS 3V3 OnSemi 瞬态抑制器(1ns 反应时间)。 然而、C0+ VREF 必须设置为极高电平以阻止误触发的方式没有区别。 如果该问题更具体地与 KCPDT 有关、我们可以更新到 NCPDT。

    它可能与 PWM 发生器中的比较器异或输出有关。 因此,如果比较器异或 GPIO 未被打开漏极,那么 MnFaut 或将发生器故障信号在大于1时可能会产生一些不利影响,从而导致步进阈值?

    NCPDT 似乎也有类似的+VREF 阈值问题、但将540mv 降低到1.960v ASRCP 内部+VREF。 我们简单地计算出它是内部 VREF 中的噪声、因为跳线会导致小 PCB、而 INA240会馈送 Cn-输入。