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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/924445/tms570ls3137-icu-edge-detection-and-signal-measurement

器件型号:TMS570LS3137

您好,

我正在项目中使用 AUTOSAR MCAL 驱动程序。 我对 ICU 驱动程序的使用有疑问。

我需要检测边缘并为 ICU 通道创建通知功能。 此外、我还需要测量来自同一 ICU 通道的占空比和频率。

在 EBTresos 中、我只能选择测量类型为 ICU_MODE_SIGNAL EDGE_DETECT 或 ICU_MODE_SIGNAL 测量。  

我需要澄清的是、如果我选择测量类型为 ICU_MODE_SIGNAL ED_EDGE_DETECT、是否可以同时测量边沿、频率和占空比?

如果不是、检测 ICU 通道所有这3个参数的其他方法是什么。

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

    您好!

    否   

    边沿检测使用 ECNT 指令。 请参阅 TRM 中的 N2HET 指令集

    2.信号测量(占空比、周期):使用 PCNT 指令。  请参阅 TRM 中的 N2HET 指令集

    这是我的5个 ICU 通道示例:通道0、1和4是边缘检测、通道2是信号测量:

    这些是用于这5个 ICU 通道的指令(突出显示):第一/第二/第五通道的 OPCOD (μ 12~9位)为1010 (ECNT)、第三通道的操作码为0111 (PCNT)

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

    您好!

    否   

    边沿检测使用 ECNT 指令。 请参阅 TRM 中的 N2HET 指令集

    2.信号测量(占空比、周期):使用 PCNT 指令。  请参阅 TRM 中的 N2HET 指令集

    这是我的5个 ICU 通道示例:通道0、1和4是边缘检测、通道2是信号测量:

    这些是用于这5个 ICU 通道的指令(突出显示):第一/第二/第五通道的 OPCOD (μ 12~9位)为1010 (ECNT)、第三通道的操作码为0111 (PCNT)

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

    您好!

    如果  将相应的 ICU 通道测量类型选为 ICU_MODE_SIGNAL EDGE_DETECT、则 API ICU_GetDutyCycles 的结果是什么?  

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

    您好!

    您必须提供在 测量模式"测量、占空比值"中配置的有效通道编号。 否则、将返回错误。

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

    您好 QJ、

    我需要为每个下降沿生成边沿检测通知。 我可以看到一个在边沿检测期间配置通知功能的选项。 但是、没有特定的选项来选择下降沿的生成。 请告诉我要配置的参数、以便生成下降沿的通知。  

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

    您好!

    为"IcuDefaultStartEdge"中定义的事件(黄色突出显示)生成中断。 如果您选择"下降沿"、则中断将在下降沿生成。

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

    您好 Qj、

    边缘通知在我的软件中不起作用。 我将向 ICU 引脚(连接到 N2HET1模块)提供 PWM 信号、并期望针对每个下降沿触发边沿通知功能、但通知功能不会被调用。 以下是我的配置设置、  

    1.  通知函数在 Tresos 工具中针对下降边沿进行配置。在此通知函数中、我对边沿进行计数
    2.  N2HET1 1级中断(根据数据表、中断源24)被配置为类别2并在 OS 中启用
    3.  ISR "ICU_HetInt"映射到 N2HET1 1级中断
    4.  以下是 API 的调用、
    • ICU_SetActivationCondition()
    • ICU_EnableEdgeDetection()
    • ICU_EnableNotification()

    在调试过程中,我观察到中断函数“ICU_IrqFunction ()”没有被触发,并且边沿计数器也没有更新。您可以检查我的设置并确认步骤是否正确?

     

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

    您能否检查是否在 CPSR 寄存器中启用了 IRQ 中断、以及是否在 VIM REQMASKSETx 寄存器中启用了 N2HET1 VIM 通道?

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

    您好 QJ、

    我将 ICU 驱动器的中断源从 N2HET1 1级中断(中断源24)更改为 N2HET1 0级中断(中断源10)。 现在、边沿中断正在工作

    我不明白为什么它不能使用 N2HET1 1级中断(中断源24)。 请您解释一下吗?

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

    N2HET 中断优先级在 MCAL 驱动程序中不可配置、并且硬编码如下:

    HET_PRY (RegBaseAddress)= 0x0000FFFFU;

    通道0至15为优先级0 (高电平)、16至31为优先级1 (低电平)。 ICU ECNT 说明位于通道0和15之间。  

    谢谢、此致、
    QJ Wang

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

    我已将 NHET20配置为 ICU 引脚。 根据您的注释、该引脚映射到优先级1中断、因为它位于通道16-31下。  

    但在测试期间、我发现1级中断不适用于该通道。 只有0级中断工作。 为什么?

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

    您好!

    我的同事刚刚提醒我 、PWM_Driver_userguide 中也包含此限制: