|
@@ -924,17 +924,17 @@ void MC_Protect_IRQHandler(void){
|
|
|
if (!motor.b_start) {
|
|
if (!motor.b_start) {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
- mc_error.vbus = (s16)get_vbus_float();
|
|
|
|
|
- mc_error.ibus = (s16)get_vbus_current();
|
|
|
|
|
- mc_error.id_ref = (s16)PMSM_FOC_Get()->idq_ctl[0].s_Cp;
|
|
|
|
|
- mc_error.iq_ref = (s16)PMSM_FOC_Get()->idq_ctl[1].s_Cp;
|
|
|
|
|
|
|
+ mc_error.vbus_x10 = (s16)(get_vbus_float() * 10.0f);
|
|
|
|
|
+ mc_error.ibus_x10 = (s16)(get_vbus_current() * 10.0f);
|
|
|
|
|
+ mc_error.id_ref_x10 = (s16)(PMSM_FOC_Get()->idq_ctl[0].s_Cp * 10.0f);
|
|
|
|
|
+ mc_error.iq_ref_x10 = (s16)(PMSM_FOC_Get()->idq_ctl[1].s_Cp * 10.0f);
|
|
|
|
|
+ mc_error.id_x10 = (s16)(PMSM_FOC_Get()->out.s_RealIdq.d * 10.0f);
|
|
|
|
|
+ mc_error.iq_x10 = (s16)(PMSM_FOC_Get()->out.s_RealIdq.q * 10.0f);
|
|
|
|
|
+ mc_error.vd_x10 = (s16)(PMSM_FOC_Get()->out.s_OutVdq.d * 10.0f);
|
|
|
|
|
+ mc_error.vq_x10 = (s16)(PMSM_FOC_Get()->out.s_OutVdq.q * 10.0f);
|
|
|
|
|
+ mc_error.torque_ref_x10 = (s16)(PMSM_FOC_Get()->in.s_targetTorque * 10.0f);
|
|
|
mc_error.run_mode = PMSM_FOC_Get()->out.n_RunMode;
|
|
mc_error.run_mode = PMSM_FOC_Get()->out.n_RunMode;
|
|
|
- mc_error.id = (s16)PMSM_FOC_Get()->out.s_RealIdq.d;
|
|
|
|
|
- mc_error.iq = (s16)PMSM_FOC_Get()->out.s_RealIdq.q;
|
|
|
|
|
- mc_error.vd = (s16)PMSM_FOC_Get()->out.s_OutVdq.d;
|
|
|
|
|
- mc_error.vq = (s16)PMSM_FOC_Get()->out.s_OutVdq.q;
|
|
|
|
|
mc_error.rpm = (s16)motor_encoder_get_speed();
|
|
mc_error.rpm = (s16)motor_encoder_get_speed();
|
|
|
- mc_error.torque_ref = (s16)PMSM_FOC_Get()->in.s_targetTorque;
|
|
|
|
|
mc_error.b_smo_running = !foc_observer_is_encoder();
|
|
mc_error.b_smo_running = !foc_observer_is_encoder();
|
|
|
mc_error.mos_temp = get_mos_temp();
|
|
mc_error.mos_temp = get_mos_temp();
|
|
|
mc_error.mot_temp = get_motor_temp();
|
|
mc_error.mot_temp = get_motor_temp();
|
|
@@ -948,7 +948,40 @@ void MC_Protect_IRQHandler(void){
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
void motor_debug(void) {
|
|
void motor_debug(void) {
|
|
|
- sys_debug("err: %f, %f, %f, %d\n", mc_error.vbus, mc_error.id_ref, mc_error.iq_ref, mc_error.run_mode);
|
|
|
|
|
|
|
+ sys_debug("err: %f, %f, %f, %d\n", (float)mc_error.vbus_x10/10.0f, (float)mc_error.id_ref_x10/10.0f, (float)mc_error.iq_ref_x10/10.0f, mc_error.run_mode);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+int mc_get_phase_errinfo(u8 *data, int dlen) {
|
|
|
|
|
+ int len = 0;
|
|
|
|
|
+ encode_s16(data, mc_error.vbus_x10);
|
|
|
|
|
+ len += 2;
|
|
|
|
|
+ encode_s16(data, mc_error.ibus_x10);
|
|
|
|
|
+ len += 2;
|
|
|
|
|
+ encode_s16(data, mc_error.id_ref_x10);
|
|
|
|
|
+ len += 2;
|
|
|
|
|
+ encode_s16(data, mc_error.iq_ref_x10);
|
|
|
|
|
+ len += 2;
|
|
|
|
|
+ encode_s16(data, mc_error.id_x10);
|
|
|
|
|
+ len += 2;
|
|
|
|
|
+ encode_s16(data, mc_error.iq_x10);
|
|
|
|
|
+ len += 2;
|
|
|
|
|
+ encode_s16(data, mc_error.vd_x10);
|
|
|
|
|
+ len += 2;
|
|
|
|
|
+ encode_s16(data, mc_error.vq_x10);
|
|
|
|
|
+ len += 2;
|
|
|
|
|
+ encode_s16(data, mc_error.torque_ref_x10);
|
|
|
|
|
+ len += 2;
|
|
|
|
|
+ encode_s16(data, mc_error.rpm);
|
|
|
|
|
+ len += 2;
|
|
|
|
|
+ encode_u8(data, mc_error.run_mode);
|
|
|
|
|
+ len += 1;
|
|
|
|
|
+ encode_u8(data, mc_error.b_smo_running);
|
|
|
|
|
+ len += 1;
|
|
|
|
|
+ encode_s16(data, mc_error.mos_temp);
|
|
|
|
|
+ len += 2;
|
|
|
|
|
+ encode_s16(data, mc_error.mot_temp);
|
|
|
|
|
+ len += 2;
|
|
|
|
|
+ return len;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
void TIMER_UP_IRQHandler(void){
|
|
void TIMER_UP_IRQHandler(void){
|