Hello,
I am working with MPC5644A/SPC5644A MCU and the spark function of NXP's engine control library. The problem is that, I can not maintain the spark end angle and dwell time correctly (as below, I am expecting a zero value spark end angle). Are these effects normal or something is wrong in spark function of NXP's engine control library ? Would you please share your suggestion for that problem?
I am building sw for 2-stroke engine (thus engine cycle is 360 degree) with 35-1 crank teeth. My engine system configuration is as below;
API configuration for spark function is as below (I am not using multi pulses);
I also checked the pre-compiled etpu set in the new etpu function selector utility as below, and the effect was the same.
https://www.nxp.com/webapp/etpu_cw/
Outputs for crank (in green) and spark (in yellow) signals are as below;
Thank you for your help !
Regards,
Turgay Kale
已解决! 转到解答。
Mikail merhaba,
Thank you for your help. I checked your suggestion its correct with a minor mistake. Positive values precede the TDC, negative go after TDC, therefore -340 or 20 degree end angle sets correct. My mistake was that I was testing the crank and spark functions with very high RPM value (ex. 40000). When I checked the software with the real upper limit RPM, the spark output is fine as I expected. Thank you again for your help.
tsSingleSparkConfig g_sSingleSparkConfig1 =
{
DEG2TRC2(20), //spark end angle: positive values precede the TDC, negative go after TDC
....
....
};
Regards,
Turgay
Hi Turgay,
I think problem is about setting end angle. Last teeth before gap is not equal to ange of 0. Angle of this point is 360/36 *34 = 340.
Angle of 0 is first falling edge after gap. You can see this at https://www.nxp.com/docs/en/application-note/AN4907.pdf document on page 5.
If you change spark configuration as
tsSingleSparkConfig g_sSingleSparkConfig1 =
{
DEG2TRC2(340), //end angle
....
....
};
Problem will solve. Spark will work as you expected.
Mikail merhaba,
Thank you for your help. I checked your suggestion its correct with a minor mistake. Positive values precede the TDC, negative go after TDC, therefore -340 or 20 degree end angle sets correct. My mistake was that I was testing the crank and spark functions with very high RPM value (ex. 40000). When I checked the software with the real upper limit RPM, the spark output is fine as I expected. Thank you again for your help.
tsSingleSparkConfig g_sSingleSparkConfig1 =
{
DEG2TRC2(20), //spark end angle: positive values precede the TDC, negative go after TDC
....
....
};
Regards,
Turgay