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.

[参考译文] MSP430FR2676:如何终止函数 Capt_calibrateSensorWithEMC ()

Guru**** 2558250 points
Other Parts Discussed in Thread: MSP430FR2676

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1560165/msp430fr2676-how-to-terminate-the-function-capt_calibratesensorwithemc

器件型号:MSP430FR2676


工具/软件:

您好:

我们的客户目前正在使用 CapTIvate 进行开发。
目前的情况是、他们在传感器板开发之前正在进行软件开发。
由于这一点,他们没有一个与他们的环境相匹配的传感器板,因此当执行 Capt_calibrteSensorWithEMC () 时,校准不能完成。

此时、在 CapTIvate 内部、TSENSOR 中使用的.bMaxCountError 和.bCalibCalibrationError 都设置为“1"。“。
在这些情况下、是否有任何方法可以终止 Capt_calibrteSensorWithEMC () 函数?

此致、
DDdoor

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

    尊敬的 DDdoor:

    客户是否有任何传感器连接到 MSP430? 如果他们尝试在没有任何传感器的情况下运行校准、校准过程将无法达到目标灵敏度。  如果是这种情况、则校准无意义、他们可能会跳过校准、但如果他们尝试进行测量、这会导致问题。  你能提供更多细节吗?

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

    尊敬的 DDdoor:

    客户是否仍有问题?

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

    您好、Dennis Lehman、

    感谢您的支持。

    如果在未连接传感器的情况下执行校准、校准过程需要很长时间。
    尽管预期用途是连接传感器、但它们也考虑了传感器断开的可能性。

    作为长校准时间的对策、他们考虑使用周期性计时器中断、并在该中断内处理与主机的通信过程。

    但是、MSP430FR2676 上没有 ICC 块、因此中断优先级设置不可用。
    此外、由于 UART 接收缓冲区只有一级深度、因此他们面临的问题需要仔细考虑主机通信处理时间和来自主机的 UART 接收中断的时序。
    这会对可靠的通信造成一些干扰。

    对于如何解决此问题、您有何建议?

    此致、
    DDdoor

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

    尊敬的 DDdoor:

    好的 — 现在我明白了。  校准需要很长时间的原因是算法试图在 IP 中确定一个合适的设置、该设置将根据客户在连接传感器时选择的值提供灵敏度(目标转换计数)。

    例如、假设客户具有 10pF 传感器并设置目标转换计数= 250。  在校准期间、算法执行一个循环、在该循环中、它使用起始灵敏度值配置 CapTIvate IP、进行测量、然后将结果与 250 进行比较。 如果测量计数不= 250、则算法会根据需要增加或减少灵敏度“K",“,并、并重复测量。  在正确选择“K" 测量“测量计数的某个时刻、算法将退出循环、将校准设置“K"存储“存储在传感器的数据结构中并完成此操作。  请记住、250 并不表示循环执行的次数。  250 是填充大型采样电容器所需的电荷传输次数、灵敏度为“K"。“。

    更详细地说、每次测量期间会发生传感器充电高达 1.5V、这个小电荷 (Q = CV) 在 CapTIvate 内传输、在此处会向电荷施加“K",“,然后、然后传输到更大的采样电容器。  这个电荷传递过程反复重复、直到大采样电容器达到特定的电压阈值。  考虑到当前值“K",“,测量、测量计数=达到阈值所需的电荷传输次数。  (有关详细信息,请参阅 CapTIvate 技术指南)

    那么、现在当传感器断开连接并且算法尝试校准时会发生什么情况、电容不是 10pF、很可能会小得多、例如 1pF 或 2pF。  由于电容要小得多、因此算法很难找到一个可以实现 250 个计数并长时间保持在环路中的“K"设置“设置。  最终、会设置校准错误位、并可由 ISR 检测到。

    在这些情况下是否有办法终止 Capt_calibrteSensorWithEMC () 函数?

    这是一个好问题。  说实话、我不知道、所以我需要看一看。

    此外、.bMaxCountError 只应在“正常“测量期间设置、而不应在校准期间设置。  如果在系统运行时连接了校准传感器且断开连接、因此电容突然变得非常小、则下一次测量不会是~250、而是变得非常大且需要很长时间。  它的大小可达 8191、看起来就像测量值“卡住“一样。 为了防止这种情况发生、客户可能会尝试设置传感器的.ui16ErrorThreshold =目标转换计数设置的 2 倍或 4 倍。  因此、如果它们的转换计数为 250、则将 max_count 设置为 500、可能设置为 1000。 这将自动提前停止测量、而不是等到 8191 并设置 bMaxCountError 位。

    ==============================

    回到最初的问题、即没有安装传感器。

    是否仅在客户进行软件/硬件开发时才会出现这种情况、而最终产品则不会出现这种情况?  如果是这样、可以临时修改 Capt_UserConfig、以跳过特定传感器或在实际传感器不可用时跳过某些按钮。  这样校准就不会受到影响、只有真实的传感器才会进行校准。

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

    你好 Dennis Lehman ,

    客户的操作场景包括传感器最初未连接以及在操作过程中断开连接的两种情况。

    此致、
    DDdoor

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

    尊敬的 DDdoor:

    好的、了解这一点很有帮助。

    因此、我假设、如果传感器在启动时(执行校准)或在使用过程中(意外或作为产品正常使用的一部分)断开连接、则 SW 旨在检测传感器的状态、1) 在传感器断开连接的情况下继续操作、或 2) 阻止产品在连接传感器之前运行?  您能分享为什么这是产品类型、或者可能是用例吗?

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

    您好、Dennis Lehman、

    关于您的问题、客户的软件设计为在断开传感器的情况下继续操作。

    此致、
    DDdoor

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

    尊敬的 DDdoor:

    好的。  我回复了您的私人信息。

    这表明一个或多个传感器在正常运行期间是否断开连接、根据设计、即使传感器不再工作、系统也可以继续运行。  我现在可以看到、当发生这种情况时、CapTIvate 将检测到缺少的传感器、可能会收到 MAX_COUNT 错误、然后将其置于校准模式、这是客户遇到问题的地方。

    默认情况下、CapTIvate 代码(框架)不能处理此情况、需要修改代码才能支持处理此错误。  我认为这是客户正在处理的问题、对吧? 我需要考虑处理此问题的最佳方法。

    那么、客户真正需要的是一种方法来检测传感器是否/何时断开连接、并防止 SW 卡在校准环路中、对吗?

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

    您好、Dennis Lehman、

    是的、您的理解是正确的。

    此致、
    DDdoor