## ETPU Spark Function Accuracy Problem

cancel
Showing results for
Did you mean:
SOLVED

## ETPU Spark Function Accuracy Problem

538 Views
Contributor III

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

Labels (1)
• ### General

1 Solution
302 Views
Contributor III

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

2 Replies
302 Views
Contributor III

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.

303 Views
Contributor III

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