主题中讨论的其他器件: C2000WARE
工具/软件:Code Composer Studio
大家好、我是 Mike
首先、感谢大家的支持。
现在,在完成了一些小程序、了解了 MCU 并获得了 LAUNCHXL-F28069M 的使用经验之后,我来到这里是因为我有很多事情要做。
我编写了一个程序来测量不同波形的真实 RMS。 这里是一些结果
第一个问题是。
如何改善测量结果?
我知道这是 AdcOffsetSelfCal()的问题;我想将它放在我的代码上会有更多的事情,一些指导原则将这个函数保留原样,你对它的看法是什么? 误差变为40mV。
|
波形 |
RMS |
直流 |
||
|
|
示波器 |
程序 |
示波器 |
程序 |
|
正弦 |
1.69 V |
1.67127430 V |
1.65V |
1.63549805 V |
|
平方 |
1.79 V |
1.74214472 V |
1.7伏 |
1.66127932 V |
|
三角 |
1.68V |
1.66051242 V |
1.65V |
1.63791502 V |
第二个问题是
如何稳定测量?
这些讲座正在振荡。 在仿真器中、它们被声明为_IQ、我已经将其称为 float、 它的范围是1.00000000、前两个零是可以的、它们不会移动、但其他六个零在移动、我知道这是因为它是浮点性质的、但我想知道如何改进它们、或者在其他情况下、将它们四舍五入。
我确实想使用_IQmathlib.h,但有些说明不像我预期的那样工作,我认为我没有优化代码,因为 LAUNCHXL-F28069M 是要使用的。请参阅: 
正如您看到的那样、这些信号大约为13Hz、仿真器显示它们非常好、但是如果我更改频率、测量结果会很差、只是我可以在13Hz 的倍数处进行非常好的测量。 正如多日技术讲座所说的那样,我正在使用 EPwm1Regs.CMPA.half.CMPA 和 EPwm1Regs.TBPRD 进行一些工作,我知道如果我想正确测量 N 频率,必须执行某种“动态 PWM”来更改采样频率。 TBPRD 是一个2^16的数字、因此我无法测量1Hz 的信号、也无法按照奈奎斯特所说的那样、以我想要采样的2倍频率进行采样。 因此、我可以采样的最小频率为686.65Hz (TBPRD= 0XFFF)、这是我缺少的值。
所以
我能否使用某种类型的动态 PWM 来测量 N 频率?
如果是,执行这项工作的基础是什么?
我´mn´t 移动频率信号(该信号在0Hz 至70Hz 范围内)会更改测量值、但我不知道如何改进。
此外、我还必须对该信号进行频率计量。 我想、为了改善测量结果、我可以首先使用过零、过零将报告频率、这将改变 TBPRD、然后使用 CMPA 来改善测量结果、而不仅仅是频率。
如何仅使用这些信号来测量频率(我是说、没有中断、CPU 中断或它必须参与 eCAP 的任何内容)?
感谢您的所有评论、
此致
Mike
