Hi,
I current work on modifying AN4908 and AN4907 Engine control functions. There is a problem that I couldnt find a solution.
Aim:
- Create just two injection sequence and update second injection's duration before 1 degree of second injection ( closest to top dead center ).
- I just create IRQ between these two injection and update one of element of second injection.
Problem:
- Injection sequence is updated successfully but injections stops one cycle periodicly for one cycle of engine." output image is attached to question"
I followed these steps:
1) I downloaded MPC5674F Engine Control Application AN4908 and AN4907.
2) In host side at "uint32_t fs_etpu_inj_config" function I closed to injection idx statement that helps me to change second injections duration.
/* Check if the injection pre is not finished yet */
// injection_idx = *((uint8_t*)cpba + FS_ETPU_INJ_OFFSET_INJECTION_COUNTER);
// if(injection_idx != 1)
// {
// /* An injection sequence is active on this injector */
// return(FS_ETPU_ERROR_TIMING);
// }
// else
// {
3) In etpu side I just closed to "INJ_ScheduleStartAngle1st" on INJ_UPDATE_HSR because this thread puts injection sequence to start up.
else if(hsr == INJ_HSR_UPDATE)
{
match_disable();
// INJ_ScheduleStartAngle1st();
}
4) In run time application, I just change one of sequence of second injection.
Why injection sequence stops for one cycle periodicly? Could you please help me to solve this?
Best regards,
Umit.
Hi everyone,
Injection breaks when I set INJ IRQ angle to between two injections after injection sequence is started ? You can try this with demo code.
Could you please help me to solve this problem, at least show me a way that is timeout or overflow of a varible in ETPU INJ?
Best regards,
Umit.