主题中讨论的其他器件: HALCOGEN
工具与软件:
大家好:
现在、我已使用 TMS570LS0914监测输入信号、其中周期和占空比是可变的。
我希望使用 N2HET 来检测最长高电平时间(500uS)和最大占空比(40%)、以及最短电平时间 Tmin >2uS。
我希望 N2HET 代码能够在高电平时间大于500uS 或信号占空比大于40%时检测高电平时间和信号占空比
然后 N2HET 代码向 CPU 发出了一个中断。
那么、请告诉我这种情况。
谢谢!!
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.
工具与软件:
大家好:
现在、我已使用 TMS570LS0914监测输入信号、其中周期和占空比是可变的。
我希望使用 N2HET 来检测最长高电平时间(500uS)和最大占空比(40%)、以及最短电平时间 Tmin >2uS。
我希望 N2HET 代码能够在高电平时间大于500uS 或信号占空比大于40%时检测高电平时间和信号占空比
然后 N2HET 代码向 CPU 发出了一个中断。
那么、请告诉我这种情况。
谢谢!!
尊敬的 Kerhac:
如果您正在使用 HALCoGen 生成的代码来进行 NHET 中的 PWM 捕获、那么捕获的数据可能存在一个循环分辨率周期错误。
这是因为、我在下面的主题中进行了说明:
(2) TMS570LS3137:PWM 捕获代码运行不正常-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛
在上面、我还提到了一种降低循环分辨率的方法、即使用 HET IDE 代码而非 HALCoGen 生成的代码。
如果需要、可以继续上述方法。
不过、今天我还提供了一种使用 HALCoGen 生成的代码本身提高测量精度的方法、即高分辨率方法。
实际上、使用 N2HET 可执行两种生成或测量、一种是环路分辨率、另一种是高分辨率。
实际上、在验证了用于捕获的 HALCoGen 生成的代码后、我发现我们使用 PCNT 指令来捕获周期和占空比。
使用该指令、我们也可以进行高分辨率测量、因为这也会增加7位 HR 字段。
但是、如果您验证 HALCoGen 生成的捕获 API、我们将不使用此7位捕获数据、而是仅使用环路分辨率数据。
如您所见、我们只需右移数据并计算周期和占空比。
这是一种可以将该方法用于低频测量的简单方法、我的意思是、单环路分辨率误差无关紧要。
但是如果您想测量高频、则应该选择我已经提到过的 HET IDE 生成的代码、或者您可以使用以下方法。
在此方法中、我创建了一个名为 HR_CapGetSignal 的新 API、在此 API 中、为了实现准确测量、我不会忽略7位 HR 数据。
我采用了 TRM 中针对 HR 数据给出的方法。
测试结果如下:
使用 capGetSignal 时的结果:
您可以看到、我施加了10uS 输入波形进行采集、而测得的周期为9.38uS、这是因为我们知道可能会出现一个环路分辨率误差、此处的环路分辨率为833uS。
这是我使用 HR_CapGetSignal API 时的输出:
现在您可以看到、10us 的测量值为9.9999uS、非常准确。
我随附测试的项目供您参考、请仔细阅读:
e2e.ti.com/.../PWM_5F00_Capturing_5F00_With_5F00_High_5F00_Resolution_5F00_LC4357.zip
——
谢谢、此致、
Jagadish。