Hi,
On my motor, using lab10a, the current waveform is not stable around Vs=0.5, when the compMode transition between all_phase_measurable to two_phase_measurable, the minWidth_microseconds is to 2.
The instability improved when minWidth_microseconds set to lower, 1.5, but glitches in current waveform appears for few cycles near peaks during acceleration (which I believe is during the compMode transition as well).
After changing this line in mainISR() to match lab10c:
lab10a:
SVGENCURRENT_MeasureShunt_e measurableShuntThisCycle = SVGENCURRENT_getMode(svgencurrentHandle);
...
if(measurableShuntThisCycle > two_phase_measurable)
{
gAdcData.I.value[0] = gIavg.value[0];
gAdcData.I.value[1] = gIavg.value[1];
gAdcData.I.value[2] = gIavg.value[2];
}
to lab10c:
SVGENCURRENT_IgnoreShunt_e ignoreShuntThisCycle = SVGENCURRENT_getIgnoreShunt(svgencurrentHandle);
...
if(ignoreShuntThisCycle > use_all)
{
gAdcData.I.value[0] = gIavg.value[0];
gAdcData.I.value[1] = gIavg.value[1];
gAdcData.I.value[2] = gIavg.value[2];
}
The condition greatly improved at minWidth_microseconds is 2, while the glitches in current waveform during acceleration still appearing sometimes.
Please help me to understand the difference between the codes, and how they affect the actual measurable duty set by minWidth.