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.

[参考译文] TMS570LS0432:在 TMS570LS0432中、当所有使用的通道被连接至同一频率源时、使用 N2HET 进行频率检测时出现问题

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1234242/tms570ls0432-issue-with-frequency-detection-using-n2het-while-all-used-channels-are-connected-to-same-frequency-source-in-tms570ls0432

器件型号:TMS570LS0432

我的项目中使用 HET 通道来测量速度传感器输出频率(传感器频率随速度而变化)。 4个速度传感器与 HET 的4个通道相连。

问题:当4个通道与不同的输入连接时、所有4个通道都会检测到频率。 但是、当所有通道都连接到同一频率源时、   

          1.只有第一个通道检测频率、所有其他通道显示假值

          2.如果2、3、4连接到相同的源,则第二个通道正在检测,但所有其他通道显示错误的值  

          3.如果连接了3、4、则第3个节点仅检测频率

我确保了在上述任何情况下 HET 都没有负载、并在每 种情况下测量了每个 HET 通道输入的频率(干净信号传输到 HET 且没有失真)

WCAPE 指令用于捕捉所有通道的时间戳和边沿、而 CNT 指令用于自由运行的计数器

使用24、26、28、30引脚 HET

4个通道的 WCAPE 指令分别:

程序字段:0x00005000、  0x00007000、 0x00009000、0x00001000  

控制字段:0x00001820、 0x00001A20、 0x00001C20、0x00001E20 (4个通道分别)

寄存器值:

DOUT- 0x00000000;

DIR-0X00555555 

PDR- 0x00000000;

PULDIS- 0x00000000;

PSL- 0X00555555;

HRSH- 0x00000000;

并且- 0x00000000;

EXOR- 0x00000000;

PFR - 0x00000300;

PCR- 0x00000005;

PRY - 0x00000000;

INTENAC- 0xFFFFFFFF;

INTENAS-0x00000000;

GCR - 0x00030001;

未使用 HET 过滤器。

请提供该问题的解决方案。

 

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

    我还对相邻通道(24、28正边沿、26、30负边沿)的不同边沿执行了上述实验、但这次24、26个通道检测到频率、但其余2个显示了错误的值。

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

    我将研究您的设置、今天晚些时候给您回电。

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

    您能向我展示您的 NHET 代码吗? 我想知道每条 WCAPE 指令的"条件地址"。

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

    HII Wang,

    程序中不使用条件寻址、使用5条指令(1条 CNT 和4条 WCAPE)、这些指令将按顺序运行。

    我已经提到了所有 WCAPE 指令的"程序和控制字段"、这些指令将提供有关条件地址和下一个程序地址的信息。

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

    您是否可以将 "条件地址"更改为"下一地址"的值? 否则、只会执行第一条 WCAPE 指令、而无法到达其他 WCAPE 指令。

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

    在第一条指令的"下一个程序地址"字段中、下一条指令的地址被给出、所有进一步指令以同样的方式(1-2、2-3、3-4、4-1)给出。

    王先生、当给出不同的频率源时、所有的 WCAPE 指令都提供了真实的数据、当所有提供相同的频率源(在这种情况下、所有的 WCAPE 指令也在执行、但给出了错误的值)时就会出现问题   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    所有的 WCAPE 指令都在提供不同频率源时提供真实的数据,当所有提供的频率源相同时出现问题

    如果条件地址留空、则在检测到下降沿时、代码执行将跳转到第一条指令。 如果4个输入不同、4个输入的下降沿不会在同一环路周期内发生、因此可以执行所有 WCAPE。 如果4个输入相同、 4个输入的下降沿出现在同一环路周期内、因此代码将在执行第1个 WCAPE 后跳转到第1条指令。

    请尝试这些说明:

    l00 CNT{reg=a、max=0xffff、data=0};
    L02 WCAPE{NEX=L03、COND_ADDR=L03、PIN=24、EVENT=FALL、REG=A};
    L03 WCAPE{next=L04、COND_ADDR=L04、PIN=26、EVENT=FALL、REG=A};
    L04 WCAPE{next=L05、COND_ADDR=L05、PIN=28、EVENT=FALL、REG=A};
    L05 WCAPE{next=L00、COND_ADDR=L00、PIN=30、EVENT=FALL、REG=A};

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

    王先生,请允许我尝试一下您提供的代码。

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

    先生 Wang、非常感谢您的代码、它现在的工作。

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

    王先生,我知道条件地址和下一个程序地址的区别吗?

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

    下一个地址:程序流中下一条指令的程序地址。  

    条件地址:条件 发生时的下一条指令的地址。

    L02 WCAPE{NEX=L03、COND_ADDR=L03、PIN=24、EVENT=FALL、REG=A};

    IF (EVENT =引脚24的下降沿)
    {
        立即数据字段=所选寄存器( A )值;
        跳转至条件地址 L03;

    跳转至下一个程序地址 L03;

    如果未定义条件地址、则条件地址的默认值为0:

    L02 WCAPE{next=L03、pin=24、event=fall、reg=a};

    IF (EVENT =引脚24的下降沿 )
    {
        立即数据字段=所选寄存器( A )值;
        跳转至条件地址 L00;  --> L03、L04、L05将不执行!

    跳转至下一个程序地址 L03;