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.

[参考译文] TMS570LS3137:ICU 驱动器行为不适合低频输入信号

Guru**** 2528270 points
Other Parts Discussed in Thread: HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/927331/tms570ls3137-icu-driver-behavior-is-improper-for-low-frequency-input-signals

器件型号:TMS570LS3137
主题中讨论的其他器件:HALCOGEN

您好!

我在 项目中使用 AUTOSAR_MCAL_TMS570LSx-05.40.00软件包。

我已经为 ICU 配置了 NHET 引脚、用于 PWM 输入信号测量。

如果输入频率高于100Hz、ICU 驱动器将读取正确的频率和占空比。

对于低于100Hz 的频率、ICU 驱动器测量的占空比和频率在0和 PWM 输入设定值之间切换。 此行为不正确。 请提供此问题的修复方法。

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

    您好!

    测得的占空比和频率是否偶尔或始终不正确? 差异有多大?

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

    您好!

    测量的频率和占空比始终不正确。 ICU_GetDutycycle()的输出值在0和信号发生器一直馈送的实际值之间振荡。

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

    您好!

    使用 N2HET PCNT 指令测量占空比和周期。 对于 FALL2FALL 和 RISE2RISE、如果在 HET_ON 之前启用了中断、用户应始终丢弃第一个中断。 对于这两种类型、复位边沿和捕捉边沿 是相同的、中断在捕捉边沿上触发。

    一旦执行单元被启用、第一个边沿生成一个中断、但是计数器的值是无效的、因为这不是2个边沿之间的周期。 因此、打开 N2HET 后的第一个边沿主要用于复位计数器并开始周期计数。

    计数器的长度为25位(PCNT 控制域 C24:C0)、并由边沿复位。 我认为该计数器不会溢出。

     

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

    您好!

    由于我们正在集成和使用 TI 提供的 AUTOSAR MCAL 包、我相信所有这些中断处理都在 MCAL 驱动程序层进行。 作为应用开发人员、我们仅配置 ICU NHET 引脚。

    我正在开发需要读取输入频率和占空比的应用程序代码。因此, 我调用 API ICU_GetDutyCycleValues()以每10ms 获取周期和活动时间。 此 API 的结果不正确、当输入频率小于100Hz 时、在0和实际值之间切换。

    请告诉我们这是否是 MCAL 封装中 ICU 驱动程序的限制。

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

    以下是 ICU/PWM 驱动器的限制:

    限制:

    1. 可测量的最小时间单位为2LRP (256个周期)
    2. 任何操作(如 API 调用)都至少需要1LRP (即128)才能执行。
    3. 每个 N2HET 只能有15个 ICU 通道(即总共30个通道)(注:第15个通道不应为占空比的信号测量通道)
    4. 只有当 MCU 处于正常模式时、WAKEUP 配置的通道才会唤醒模块。 这是因为当 MCU 进入睡眠模式时、NHET 时钟被关闭。 因此 ICU 模块不能用于唤醒 MCU。

    请参阅 MCAL 驱动程序 ICU 文件夹下的用户指南。

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

    您好 QJ、

    如果输入频率低于100Hz、则无法正确测量 ICU 输入。

    配置的 VCLK2值为80MHz。

    例如、

    50 Hz = 12500个周期、远远大于256个周期。 但是、ICU 周期和占空比在0和实际值之间切换。  

    我无法将此行为与上述任何 ICU 驱动器限制相关联。 请说明。

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

    您好!

    您能否共享 ICU_PBcfg.c 和调用 ICU API 的 ISR (例如 ICU_GetDutyCycles (1、DutyCycle))?  

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

    您好!

    请找到所附的文件。

    ICU API 在10ms 的周期 task.e2e.ti.com/.../4621.Icu_5F00_PBcfg.c 中调用

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

    您好!

    配置良好。 调用 API 时、您是否在两次 API 调用之间添加了一些延迟? 由于输入信号非常慢(100Hz)、您需要留出一些时间让 NHET 捕获输入信号的上升/下降沿。 例如、100Hz 输入信号需要至少10ms 的延迟。

    ICU_StartSignalMeasurement (通道);

    延迟(..)  --轮询模式下肩大于10ms


    ICU_StopSignalMeasurement (通道);

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

    您好!

    我使用不同的延迟值(10ms、100ms 和1000ms)进行了测试、但行为没有改善。

    仍然、ICU 输入在0和实际输入之间切换。 请提供替代解决方案。

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

    您好!

    我想对其进行测试、但我没有一个已经在运行的 CCS 项目。 您能否与我分享您的代码以进行测试?  

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

    您好!

    抱歉、我正在处理客户政策不允许我共享项目内容的项目。

    您能否使用测试代码进行测试并确认是否存在硬件或软件问题?

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

    您好 QJ、

    我对 Halcogen 生成的 PWM 驱动程序进行了快速测试。 我能够使用 halcogen 驱动器在 SW 中读取频率较低的 PWM 输入(30Hz)、而无需切换。

    此问题仅在 Autosar MCAL 驱动程序中很明显。 请检查并告知其他解决方案以解决此问题。

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

    抱歉、以上注释中存在拼写错误。

    我能够使用 halcogen 驱动器在 SW 中读取频率较低的 PWM 输入(30Hz)、而无需任何切换/振荡。

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

    您好!

    我用25Hz 和50Hz 输入 PWM 信号测试了 ICU。 测得的占空比和周期正确。 MCAL 驱动程序没有问题。  

    突出显示的数字是25Hz 输入信号的占空比(50%)和周期(39.998ms)。

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

    您好 QJ、

    我希望您获得的值不会出现振荡。

    我在每10ms 运行一次的函数中运行相同的代码、并看到大量振荡。

    您是否已检查过使用延迟调用 ICU API 的情况?

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

    您好!

    当我读取周期和占空比时、没有振荡。 该值是持久的。

    您的输入是否是周期和占空比不变的有效 PWM 信号?