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.

[参考译文] TMS570LC4357:N2HET PWM 周期错误

Guru**** 2030840 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/1105054/tms570lc4357-n2het-pwm-period-error

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

王工您好:μ A

    我现在使用N2HET功能,产生PWM,周期为1000us。如果VCLK2配置为75M,则用示波器读取脉冲周期正确。如果VCLK2配置为50M,则示波器读取脉冲错误,请问这是为什么错啊。μ A

     

int main (空)

/*用户代码开始(3)*/
hetInit();
pwmStart (hetRAM1、0);

/*用户代码结束*/

返回0;

   VCLK2配置为75M时,示波器显示周期正确,1000美元。

    

  VCLK2配置为50M时,示波器显示周期错误,66us。

  

   

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

    更改 VCLK 后、您是否重新生成了 N2HET 代码? 应更新 DJZ 和 MOV64的数据字段。

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

    王工,我重新生成代码了,你可以做个实验试一下嘛 μ A

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

    VCLK=50MHz 时的 NHET 配置:

    VCLK=50mH 时的 PWM 代码

    指令的数据字段为:99968 (周期、指令42)和 50176 (占空比、指令41)

    周期= 1280ns *(99968 >> 7)=1280*781= 999.68us

    VCLK=75MHz 时的 NHET 配置

    VCLK=75mH 时的 PWM 代码

    指令的数据字段为 :149888 (周期、指令42)和 75136 (占空比、指令41)

    周期= 853.333ns *(149888 >> 7)= 853.33ns * 1171=999.249us

    因此两个 PWM 具有相同的周期。

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

    王工:μ A

        我们50M时钟时,生成的代码跟您的一样,但是产生的脉冲的确不对。设计是1000us,但实际是667.3us。您方便用您的工程,实际接上示波器看一下 μ A

    您那边在50M时钟下,的确生成了1000us吗?我们用的是N2Het1 [17]这个引脚。

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

    王工:μ A

       还有个问题咨询一下。μ A

      1)N2HET1[17]引脚可以采集pwm脉冲的周期和占空比吗?是不是只有偶数的引脚才能采集pwm周期和占空比?

      2)N2HET1[18] 引脚采集pwm脉冲的周期和占空比,是不是必须N2HET1 [19] 设置为HR Share,这样配合来采集?

       3)如果N2HET1 [19] 设置为HR Share和N2HET1 [18] 配合采集脉冲,那么N2HET1 [19] 可以设置成输出引脚吗?

       

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [设计是1000us,但实际是667.3us userid="507609" URL"~μ C/support/microcontrollers/arm-based microcontrollers-group/arm-based microcontrollers/f/arm-based microcontrollers-forume/1105054/tms570lc4357-n2het-pwm-period-error/4095135#4095135"]μ s[/quot]

    我想您的 N2HET 代码是为50MHz VCLK 生成的(周期=99965、占空比=50176)、但代码中使用的 VCLK2仍然是75MHz。

    请检查系统 CLKCNTL 寄存器中的 VCLK2分频器。

    我的设置 GCLK=300 --> HCLK=150--> VCLK2=HCLK/3=50MHz

    我家里没有示波器。  

    N2HTE1[17]有两个球:F3和 A13。  

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

    王工:μ A

        我看了一下手册,VCLK2频率必须始终大于或等于 VCLK 频率。 VCLK2频率必须是 VCLK 频率。的整数倍

        所以如果VCLK2配置成50M,但VCLK1还是75M的话,是错误的。μ A

        我将VCLK1也改成50M,VCLK2配置成50M,但是1000us的脉冲周期还是667us,您知道这是哪里的问题吗?将VCLK1配置成25M,VCLK2配置成50M,PWM输出是正确的。μ A

        此外,您能回复一下上述关于N2HET1 [17] 、N2HET1[18] 、N2HET1[19] 的咨询吗,谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [ 引脚可以采集pwm脉冲的周期和占空比吗?是不是只有偶数的引脚才能采集pwm周期和占空比?userid="507609" URL"~μ C/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1105054/tms570lc4357-n2het-pwm-period-error/4095168#4095168"] 1)N2HET1[17]引述/

    是的、但其中只有一个具有高分辨率。 PCNT 指令用于捕获周期和占空比。

    N2HET 支持高分辨率和标准分辨率。 用于边沿捕获(CAP)的 N2HET 指令(如 PCNT)具有7位 HR 数据字段。 对于标准分辨率、忽略7位 HR 数据。 对于高分辨率、7位 HR 数据可以测量高分辨率延迟(HR 延迟)。 但 限制条件是、对于 N2HET 引脚、只允许一条指令在高分辨率模式下运行。  

    HALCoGen 生成的示例代码使能 HR 共享、周期和占空比的 PCNT 指令都在高分辨率模式下运行。 第一个 PCNT 使用引脚(n)(偶数)的 HR 结构、第二个 PCNT 使用引脚(n+1)(奇数)的 HR 结构。 输入信号必须连接到引脚(n)。  

    HAL 代码假定信号连接到引脚(n)、因此引脚(n)的 HR (偶数)用于占空比、而引脚 HR (n+1)用于该周期。  如果输入信号被连接 N2HET1[17]、使用 HALCoGen 生成的代码、您将无法获得正确的占空比和周期。  

    但您可以编写自己的代码来捕获连接到 N2HET1[17]的信号的占空比和周期、但其中一个 PCNT 指令不能使用高分辨率。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [ 引脚采集pwm脉冲的周期和占空比,是不是必须N2HET1 userid="507609" URL"~μ C/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1105054/tms570lc4357-n2het-pwm-period-error/4095168#4095168"] 2)N2HET1[18] μ 设置为HR,这样配合来采集分享[19]μ

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

    [  配合采集脉冲,那么N2HET1 userid="507609" URL"~μ C/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1105054/tms570lc4357-n2het-pwm-period-error/4095168#4095168"]如果N2HET1 μ s[19]设置为HR Share和N2HET1 [19]μ 可以设置成输出引脚吗?[19]

    N2HET1[19]可被用作 GIO 输入或输出。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [~ userid="507609" URL"μ C/support/microcontrollers/arm-based microcontrollers-group/arm-based microcontrollers/f/arm-based microcontrollers-forume/1105054/tms570lc4357-n2het-pwm-period-error/4095341#4095341"

    我看了一下手册,VCLK2频率必须始终大于或等于 VCLK 频率。 VCLK2频率必须是 VCLK 频率。的整数倍

        所以如果VCLK2配置成50M,但VCLK1还是75M的话,是错误的。μ A

    [/报价]

    很好、您解决了这个问题。 谢谢