Part Number: BOOSTXL-DRV8305EVM
Other Parts Discussed in Thread: DRV8305
The motor does reach a stable speed, but its jittering. I just don't understand what could possibly cause the jittering.
For encoder I am using the AMT102-V, https://www.sameskydevices.com/product/resource/amt10-v.pdf?srsltid=AfmBOopzeZD5O_iFLEs7LClAbDyvhAYRlTbcETgZ_nwnSlppNVfU2lTk
The motor is: https://docs.rs-online.com/fc1a/0900766b8162b79a.pdf
I am using the DRV8305 eval board, and a C2000 launchpad with F28069.
Here is an example of the output from my encoder. The pulse train is not regular:
![]()
Other Parts Discussed in Thread: DRV8305
Tool/software:
Hello,
I'm tryng to implement FOC for a 36V BLDC motor. But I can't manage to get a stable speed. So I try to use open loop (no load) to see if the speed becomes stable. But still jittering speed.
theta_elec += 0.000628; //Increase angle every ISR loop (10kHz)
theta_elec = fmodf(theta_elec, 2.0f * 3.14159265359f);
if (theta_elec < 0.0f) {
theta_elec += 2.0f * 3.14159265359f;
} // reset angle when it exceeds 2pi
vd = 0;
vq = 0.5; //Open loop constant voltage vectors
sin_theta = sinf(theta_elec);
cos_theta = cosf(theta_elec);
v_alpha = vd * cos_theta - vq * sin_theta;
v_beta = vd * sin_theta + vq * cos_theta;
Va = v_alpha;
Vb = -0.5f * v_alpha + 0.866f * v_beta;
Vc = -0.5f * v_alpha - 0.866f * v_beta;
Va = 0.5f + Va / 36; // Just some normalization of the voltages
Vb = 0.5f + Vb / 36;
Vc = 0.5f + Vc / 36;
Va = 1.0f - Va; // Need to invert them, because I have center aligned PWM (count up then down)
Vb = 1.0f - Vb; // So duty cycle is 0% when CMPA is TBPRD and 100% when CMPA is 0
Vc = 1.0f - Vc;
Va = fminf(fmaxf(Va, 0.0f), 1.0f); // make sure its within [0,1]
Vb = fminf(fmaxf(Vb, 0.0f), 1.0f);
Vc = fminf(fmaxf(Vc, 0.0f), 1.0f);
v_offset = (Va + Vb + Vc) / 3.0f; // Just checking that my 3-phase is balanced
EPwm1Regs.CMPA.half.CMPA = Va * EPWM1_TIMER_TBPRD; // Apply duty
EPwm2Regs.CMPA.half.CMPA = Vb * EPWM2_TIMER_TBPRD;
EPwm3Regs.CMPA.half.CMPA = Vc * EPWM3_TIMER_TBPRD;The motor does reach a stable speed, but its jittering. I just don't understand what could possibly cause the jittering.
For encoder I am using the AMT102-V, https://www.sameskydevices.com/product/resource/amt10-v.pdf?srsltid=AfmBOopzeZD5O_iFLEs7LClAbDyvhAYRlTbcETgZ_nwnSlppNVfU2lTk
The motor is: https://docs.rs-online.com/fc1a/0900766b8162b79a.pdf
I am using the DRV8305 eval board, and a C2000 launchpad with F28069.
Here is an example of the output from my encoder. The pulse train is not regular:









