你(们)好。
我成功地使 EMDC 库(1.20版)在 MSP430F67621A (具有3×SD24和3×ADC10转换器)上工作、并且我们正在与客户一起试用我们的设计。 目前进展顺利。
据我了解、EMDC 库会更新它以1Hz 速率计算的值、即每秒提供新的电压、电流等值。 是否可以提高此更新速率? 我们的客户想知道是否能够以10Hz 的速率获得更新的读数。
谢谢、
肖恩。
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.
你(们)好。
我成功地使 EMDC 库(1.20版)在 MSP430F67621A (具有3×SD24和3×ADC10转换器)上工作、并且我们正在与客户一起试用我们的设计。 目前进展顺利。
据我了解、EMDC 库会更新它以1Hz 速率计算的值、即每秒提供新的电压、电流等值。 是否可以提高此更新速率? 我们的客户想知道是否能够以10Hz 的速率获得更新的读数。
谢谢、
肖恩。
您好 Sean、
[引用 USER="Sean Laniga]我成功地让 EMDC 库(1.20版)在 MSP430F67621A ( 具有3×SD24和3×ADC10转换器)上工作、我们正在与客户一起试用我们的设计。 目前情况良好。[/引述]
这是个好消息。 感谢您的分享! 顺便说一下、还有一个新的 v1.30。
[引用 USER="Sean Laniga]据我所知、EMDC 库会更新以1Hz 速率计算的值、即每秒提供新的电压、电流等值。 是否可以提高此更新速率? 我们的客户想知道是否能够以10Hz 的速率获得更新的读数。
没错。 您可以通过更改'hal_dc.c'文件中每个阶段的 if ()语句来调整更新速率。 下面是 MSP430i20xx 器件的单相配置、它应该是类似的。
if (gEmSWResult.phaseMetrologyPing [EM_PH_A_IDX]->cycleCount =gEmSWConfig.algorithmConfig->mainNomFreq) { phaseDataReady |= HAL_ADC_PHASE_A_DATA_READY; em_perDataChunk (&gEmSWConfig、(EM_SW_Lib_Result_Handle *)&gEmSWResult、EM_PH_A_IDX); } 否则(gEmSWResult.phaseMetrologyPing[EM_PH_A_IDX]->sampleCount >(2 FREEM_SAMPLING_Q_Hz) phaseDataReady |= HAL_ADC_PHASE_A_DATA_READY; em_perDataChunk (&gEmSWConfig、(EM_SW_Lib_Result_Handle *)&gEmSWResult、EM_PH_A_IDX); }
在这里、将 cycleCount 与 mainNomFreq 定义(在'EM_userConfig.h'文件中定义)进行比较。 对于我的项目、它被定义为50 (Hz)。 因此、当 CycleCount 达到50时、 HAL_ADC_PHASE_A_DATA_READY 标志会设置为通过数据发送。 您可以将 if()语句中的逻辑修改为如下所示的逻辑。 50Hz 下每秒有50个周期、因此每5个周期设置此标志会导致10Hz 更新速率、而不是1Hz。
如果电压上没有过零(例如、当您只想测量电流而不是电压时)、则其他 if()会作为超时出现。 在这里、该超时将是2秒。
if (gEmSWResult.phaseMetrologyPing [EM_PH_A_IDX]->cycleCount = 5) { phaseDataReady |= HAL_ADC_PHASE_A_DATA_READY; em_perDataChunk (&gEmSWConfig、(EM_SW_Lib_Result_Handle *)&gEmSWResult、EM_PH_A_IDX); } 否则(gEmSWResult.phaseMetrologyPing[EM_PH_A_IDX]->sampleCount >(2 FREEM_SAMPLING_Q_Hz) phaseDataReady |= HAL_ADC_PHASE_A_DATA_READY; em_perDataChunk (&gEmSWConfig、(EM_SW_Lib_Result_Handle *)&gEmSWResult、EM_PH_A_IDX); }
假设每个样本之间的通信可以完成、这应该起作用。 显然、将存在某种更新速率阈值、其中的计算和采样将克服通信问题。
希望这对您有所帮助!
此致、
James