rusefi/firmware/config/engines/mazda_miata_vvt.cpp

602 lines
33 KiB
C++
Raw Normal View History

2016-10-04 10:03:25 -07:00
/*
* @file mazda_miata_vvt.cpp
*
2020-03-16 13:39:42 -07:00
* Miata NB2, also known as MX-5 Mk2.5
*
* MAZDA_MIATA_2003
2017-01-06 07:04:41 -08:00
* set engine_type 47
2016-10-04 12:02:36 -07:00
*
2019-09-20 22:21:53 -07:00
* coil1/4 (p1 +5 VP) GPIOE_14
* coil2/2 (p1 +5 VP) GPIOC_9
* tachometer +5 VP (p3 +12 VP) GPIOE_8
* alternator +5 VP (p3 +12 VP) GPIOE_10
* ETB PWM GPIOE_6 inverted low-side with pull-up
* ETB dir1 GPIOE_12
* ETB dir2 GPIOC_7
*
* COP ion #1 GPIOD_8
* COP ion #3 GPIOD_9
*
2016-10-04 10:03:25 -07:00
* @date Oct 4, 2016
2020-01-07 21:02:40 -08:00
* @author Andrey Belomutskiy, (c) 2012-2020
2016-10-04 10:03:25 -07:00
* http://rusefi.com/forum/viewtopic.php?f=3&t=1095
2017-02-14 20:03:57 -08:00
*
*
2018-02-03 09:04:28 -08:00
* See also TT_MAZDA_MIATA_VVT_TEST for trigger simulation
2017-04-17 19:09:12 -07:00
*
* Based on http://rusefi.com/wiki/index.php?title=Manual:Hardware_Frankenso_board#Default_Pinout
*
2018-12-26 17:25:03 -08:00
* board #70 - red car, hunchback compatible
2018-01-17 17:52:46 -08:00
* set engine_type 55
*
2017-04-19 19:48:05 -07:00
* Crank primary trigger PA5 (3E in Miata board) white
* Cam vvt input PC6 (3G in Miata board) blue
2017-04-21 16:05:02 -07:00
* Wideband input PA3 (3J in Miata board)
2017-04-17 19:09:12 -07:00
*
2019-09-20 22:21:53 -07:00
* coil1/4 (p1 +5 VP) GPIOE_14
* coil2/2 (p1 +5 VP) GPIOC_7
2017-04-17 19:09:12 -07:00
*
2019-09-20 22:21:53 -07:00
* tachometer +5 VP (p3 +12 VP) GPIOE_8
* alternator +5 VP (p3 +12 VP) GPIOE_10
*
* VVT solenoid on aux PID#1 GPIOE_3
* warning light GPIOE_6
2017-04-17 19:09:12 -07:00
*
*
2018-01-15 12:27:14 -08:00
* idle solenoid PC13 on middle harness plug. diodes seem to be in the harness
2016-10-04 10:03:25 -07:00
*/
#include "mazda_miata_vvt.h"
2016-10-04 12:02:36 -07:00
#include "custom_engine.h"
2016-12-28 19:01:57 -08:00
#include "fsio_impl.h"
2017-01-22 21:06:44 -08:00
#include "ego.h"
2019-09-02 18:55:38 -07:00
#include "thermistors.h"
2016-10-04 10:03:25 -07:00
EXTERN_CONFIG;
2016-10-04 11:00:58 -07:00
2017-04-18 19:30:14 -07:00
static const float injectorLagBins[VBAT_INJECTOR_CURVE_SIZE] = {
6.0, 8.0, 10.0, 11.0,
12.0, 13.0, 14.0, 15.0
};
static const float injectorLagCorrection[VBAT_INJECTOR_CURVE_SIZE] = {
4.0 , 3.0 , 2.0 , 1.7,
1.5 , 1.35, 1.25 , 1.20
};
2017-02-13 17:02:46 -08:00
static const float ve18fsioRpmBins[FSIO_TABLE_8] =
{700.0, 1000.0, 2000.0, 3000.0, 3500.0, 4500.0, 5500.0, 6500.0}
;
2017-01-21 14:02:37 -08:00
2017-02-13 17:02:46 -08:00
static const float ve18fsioLoadBins[FSIO_TABLE_8] =
{30.0, 40.0, 50.0, 60.0, 70.0, 75.0, 82.0, 85.0}
;
2017-01-21 14:02:37 -08:00
2019-08-31 17:17:47 -07:00
float const fsio_table_vvt_target[FSIO_TABLE_8][FSIO_TABLE_8] = {
2017-02-13 17:02:46 -08:00
/* Generated by TS2C on Mon Feb 13 19:11:32 EST 2017*/
{/* 0 30.000 *//* 0 700.0*/1.000, /* 1 1000.0*/3.000, /* 2 2000.0*/10.000, /* 3 3000.0*/20.000, /* 4 3500.0*/27.000, /* 5 4500.0*/28.000, /* 6 5500.0*/11.000, /* 7 6500.0*/5.000, },
{/* 1 40.000 *//* 0 700.0*/3.000, /* 1 1000.0*/10.000, /* 2 2000.0*/19.000, /* 3 3000.0*/26.000, /* 4 3500.0*/30.000, /* 5 4500.0*/28.000, /* 6 5500.0*/11.000, /* 7 6500.0*/5.000, },
{/* 2 50.000 *//* 0 700.0*/7.000, /* 1 1000.0*/16.000, /* 2 2000.0*/24.000, /* 3 3000.0*/28.000, /* 4 3500.0*/30.000, /* 5 4500.0*/28.000, /* 6 5500.0*/11.000, /* 7 6500.0*/5.000, },
{/* 3 60.000 *//* 0 700.0*/11.000, /* 1 1000.0*/20.000, /* 2 2000.0*/27.000, /* 3 3000.0*/28.000, /* 4 3500.0*/30.000, /* 5 4500.0*/28.000, /* 6 5500.0*/11.000, /* 7 6500.0*/5.000, },
{/* 4 70.000 *//* 0 700.0*/13.000, /* 1 1000.0*/24.000, /* 2 2000.0*/31.000, /* 3 3000.0*/28.000, /* 4 3500.0*/30.000, /* 5 4500.0*/28.000, /* 6 5500.0*/11.000, /* 7 6500.0*/5.000, },
{/* 5 75.000 *//* 0 700.0*/15.000, /* 1 1000.0*/27.000, /* 2 2000.0*/33.000, /* 3 3000.0*/28.000, /* 4 3500.0*/30.000, /* 5 4500.0*/28.000, /* 6 5500.0*/11.000, /* 7 6500.0*/5.000, },
{/* 6 82.000 *//* 0 700.0*/17.000, /* 1 1000.0*/28.000, /* 2 2000.0*/33.000, /* 3 3000.0*/28.000, /* 4 3500.0*/30.000, /* 5 4500.0*/28.000, /* 6 5500.0*/11.000, /* 7 6500.0*/5.000, },
{/* 7 85.000 *//* 0 700.0*/17.000, /* 1 1000.0*/28.000, /* 2 2000.0*/33.000, /* 3 3000.0*/28.000, /* 4 3500.0*/30.000, /* 5 4500.0*/28.000, /* 6 5500.0*/11.000, /* 7 6500.0*/5.000, },
2017-01-21 14:02:37 -08:00
};
2017-04-18 19:30:14 -07:00
static const float tpsTspSame[TPS_TPS_ACCEL_TABLE] =
{0.0, 10.0, 20.0, 35.0, 50.0, 65.0, 80.0, 100.0};
2019-01-05 05:06:18 -08:00
float const tpsTpsTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE] = {
2017-04-18 19:30:14 -07:00
/* Generated by TS2C on Tue Apr 18 21:29:16 EDT 2017*/
{/* 0 0.000 *//* 0 0.0*/0.000, /* 1 10.0*/0.000, /* 2 20.0*/0.000, /* 3 35.0*/0.000, /* 4 50.0*/0.000, /* 5 65.0*/0.000, /* 6 80.0*/0.000, /* 7 100.0*/0.000, },
{/* 1 10.000 *//* 0 0.0*/10.000, /* 1 10.0*/0.000, /* 2 20.0*/0.000, /* 3 35.0*/0.000, /* 4 50.0*/0.000, /* 5 65.0*/0.000, /* 6 80.0*/0.000, /* 7 100.0*/0.000, },
{/* 2 20.000 *//* 0 0.0*/17.000, /* 1 10.0*/10.000, /* 2 20.0*/0.000, /* 3 35.0*/0.000, /* 4 50.0*/0.000, /* 5 65.0*/0.000, /* 6 80.0*/0.000, /* 7 100.0*/0.000, },
{/* 3 35.000 *//* 0 0.0*/23.000, /* 1 10.0*/17.000, /* 2 20.0*/10.000, /* 3 35.0*/0.000, /* 4 50.0*/0.000, /* 5 65.0*/0.000, /* 6 80.0*/0.000, /* 7 100.0*/0.000, },
{/* 4 50.000 *//* 0 0.0*/28.000, /* 1 10.0*/23.000, /* 2 20.0*/17.000, /* 3 35.0*/10.000, /* 4 50.0*/0.000, /* 5 65.0*/0.000, /* 6 80.0*/0.000, /* 7 100.0*/0.000, },
{/* 5 65.000 *//* 0 0.0*/32.000, /* 1 10.0*/28.000, /* 2 20.0*/23.000, /* 3 35.0*/17.000, /* 4 50.0*/10.000, /* 5 65.0*/0.000, /* 6 80.0*/0.000, /* 7 100.0*/0.000, },
{/* 6 80.000 *//* 0 0.0*/35.000, /* 1 10.0*/32.000, /* 2 20.0*/28.000, /* 3 35.0*/23.000, /* 4 50.0*/17.000, /* 5 65.0*/10.000, /* 6 80.0*/0.000, /* 7 100.0*/0.000, },
{/* 7 100.000 *//* 0 0.0*/37.000, /* 1 10.0*/35.000, /* 2 20.0*/32.000, /* 3 35.0*/28.000, /* 4 50.0*/23.000, /* 5 65.0*/17.000, /* 6 80.0*/10.000, /* 7 100.0*/0.000, },
};
const float mazda_miata_nb2_RpmBins[FUEL_RPM_COUNT] = {700.0, 820.0, 950.0, 1100.0,
2017-04-18 19:30:14 -07:00
1300.0, 1550.0, 1800.0, 2150.0,
2500.0, 3000.0, 3500.0, 4150.0,
4900.0, 5800.0, 6800.0, 8000.0}
;
const float mazda_miata_nb2_LoadBins[FUEL_LOAD_COUNT] = {20.0, 25.0, 30.0, 35.0,
2017-04-18 19:30:14 -07:00
40.0, 46.0, 54.0, 63.0,
73.0, 85.0, 99.0, 116.0,
135.0, 158.0, 185.0, 220.0}
;
2017-01-21 14:02:37 -08:00
2017-04-18 19:30:14 -07:00
static const float ignition18vvtRpmBins[FUEL_RPM_COUNT] = {
2016-12-15 20:02:59 -08:00
700.0, 850.0 , 943.0 ,
1112.0 , 1310.0 , 1545.0 ,
1821.0, 2146.0, 2530.0,
2982.0, 3515.0 , 4144.0 ,
4884.0 , 5757.0 , 6787.0, 8000.0};
2017-04-18 19:30:14 -07:00
static const float ignition18vvtLoadBins[FUEL_LOAD_COUNT] = {
2016-12-15 20:02:59 -08:00
25.0 , 29.10009765625 , 34.0 , 39.60009765625 ,
46.2001953125 , 53.89990234375 , 62.7998046875 ,
73.2001953125 , 85.400390625 , 99.5 , 116.0 ,
135.30078125 , 157.69921875 , 183.900390625 , 214.400390625 ,
250.0};
2017-05-07 07:31:48 -07:00
static const fuel_table_t mapBased18vvtVeTable_NB_fuel_rail = {
2017-04-18 19:30:14 -07:00
/* Generated by TS2C on Tue Apr 18 21:46:03 EDT 2017*/
{/* 0 20.000 *//* 0 700.0*/35.685, /* 1 820.0*/36.982, /* 2 950.0*/37.200, /* 3 1100.0*/35.790, /* 4 1300.0*/36.438, /* 5 1550.0*/37.272, /* 6 1800.0*/33.458, /* 7 2150.0*/31.345, /* 8 2500.0*/25.367, /* 9 3000.0*/24.573, /* 10 3500.0*/24.560, /* 11 4150.0*/25.705, /* 12 4900.0*/26.587, /* 13 5800.0*/29.273, /* 14 6800.0*/33.646, /* 15 8000.0*/36.896, },
{/* 1 25.000 *//* 0 700.0*/35.535, /* 1 820.0*/37.952, /* 2 950.0*/38.225, /* 3 1100.0*/37.100, /* 4 1300.0*/36.868, /* 5 1550.0*/37.290, /* 6 1800.0*/41.785, /* 7 2150.0*/39.520, /* 8 2500.0*/40.022, /* 9 3000.0*/37.265, /* 10 3500.0*/35.565, /* 11 4150.0*/36.272, /* 12 4900.0*/37.039, /* 13 5800.0*/35.710, /* 14 6800.0*/38.212, /* 15 8000.0*/40.621, },
{/* 2 30.000 *//* 0 700.0*/37.748, /* 1 820.0*/40.882, /* 2 950.0*/39.945, /* 3 1100.0*/37.788, /* 4 1300.0*/38.893, /* 5 1550.0*/41.615, /* 6 1800.0*/45.105, /* 7 2150.0*/47.712, /* 8 2500.0*/54.600, /* 9 3000.0*/48.670, /* 10 3500.0*/47.853, /* 11 4150.0*/55.655, /* 12 4900.0*/55.498, /* 13 5800.0*/49.273, /* 14 6800.0*/50.331, /* 15 8000.0*/51.444, },
{/* 3 35.000 *//* 0 700.0*/39.675, /* 1 820.0*/44.125, /* 2 950.0*/42.123, /* 3 1100.0*/40.857, /* 4 1300.0*/45.520, /* 5 1550.0*/48.538, /* 6 1800.0*/48.993, /* 7 2150.0*/52.555, /* 8 2500.0*/56.085, /* 9 3000.0*/53.197, /* 10 3500.0*/52.382, /* 11 4150.0*/58.470, /* 12 4900.0*/62.063, /* 13 5800.0*/57.389, /* 14 6800.0*/58.854, /* 15 8000.0*/58.917, },
{/* 4 40.000 *//* 0 700.0*/45.470, /* 1 820.0*/56.098, /* 2 950.0*/49.000, /* 3 1100.0*/45.075, /* 4 1300.0*/54.000, /* 5 1550.0*/53.248, /* 6 1800.0*/55.022, /* 7 2150.0*/54.513, /* 8 2500.0*/57.425, /* 9 3000.0*/55.402, /* 10 3500.0*/57.045, /* 11 4150.0*/59.667, /* 12 4900.0*/62.945, /* 13 5800.0*/59.550, /* 14 6800.0*/63.474, /* 15 8000.0*/62.896, },
{/* 5 46.000 *//* 0 700.0*/54.595, /* 1 820.0*/61.655, /* 2 950.0*/56.473, /* 3 1100.0*/52.265, /* 4 1300.0*/53.317, /* 5 1550.0*/58.608, /* 6 1800.0*/57.620, /* 7 2150.0*/59.022, /* 8 2500.0*/58.695, /* 9 3000.0*/58.413, /* 10 3500.0*/60.002, /* 11 4150.0*/64.660, /* 12 4900.0*/66.688, /* 13 5800.0*/64.357, /* 14 6800.0*/65.124, /* 15 8000.0*/63.864, },
{/* 6 54.000 *//* 0 700.0*/60.197, /* 1 820.0*/67.792, /* 2 950.0*/66.027, /* 3 1100.0*/60.100, /* 4 1300.0*/59.155, /* 5 1550.0*/59.607, /* 6 1800.0*/61.960, /* 7 2150.0*/63.623, /* 8 2500.0*/63.118, /* 9 3000.0*/60.965, /* 10 3500.0*/62.195, /* 11 4150.0*/69.045, /* 12 4900.0*/71.032, /* 13 5800.0*/67.183, /* 14 6800.0*/65.605, /* 15 8000.0*/63.877, },
{/* 7 63.000 *//* 0 700.0*/65.607, /* 1 820.0*/70.670, /* 2 950.0*/71.193, /* 3 1100.0*/67.927, /* 4 1300.0*/62.265, /* 5 1550.0*/61.768, /* 6 1800.0*/65.190, /* 7 2150.0*/63.987, /* 8 2500.0*/63.945, /* 9 3000.0*/64.695, /* 10 3500.0*/66.277, /* 11 4150.0*/69.593, /* 12 4900.0*/73.335, /* 13 5800.0*/71.135, /* 14 6800.0*/67.308, /* 15 8000.0*/65.571, },
{/* 8 73.000 *//* 0 700.0*/70.760, /* 1 820.0*/74.892, /* 2 950.0*/73.700, /* 3 1100.0*/75.399, /* 4 1300.0*/71.755, /* 5 1550.0*/66.492, /* 6 1800.0*/66.218, /* 7 2150.0*/65.995, /* 8 2500.0*/67.402, /* 9 3000.0*/69.588, /* 10 3500.0*/68.407, /* 11 4150.0*/72.383, /* 12 4900.0*/76.445, /* 13 5800.0*/75.327, /* 14 6800.0*/66.716, /* 15 8000.0*/65.095, },
{/* 9 85.000 *//* 0 700.0*/71.825, /* 1 820.0*/75.935, /* 2 950.0*/76.701, /* 3 1100.0*/74.133, /* 4 1300.0*/73.258, /* 5 1550.0*/72.668, /* 6 1800.0*/71.280, /* 7 2150.0*/70.157, /* 8 2500.0*/72.560, /* 9 3000.0*/72.457, /* 10 3500.0*/74.947, /* 11 4150.0*/76.565, /* 12 4900.0*/78.225, /* 13 5800.0*/76.108, /* 14 6800.0*/68.455, /* 15 8000.0*/64.913, },
{/* 10 99.000 *//* 0 700.0*/75.315, /* 1 820.0*/76.670, /* 2 950.0*/78.845, /* 3 1100.0*/76.120, /* 4 1300.0*/73.420, /* 5 1550.0*/74.563, /* 6 1800.0*/74.585, /* 7 2150.0*/74.285, /* 8 2500.0*/77.522, /* 9 3000.0*/76.202, /* 10 3500.0*/77.563, /* 11 4150.0*/76.135, /* 12 4900.0*/77.720, /* 13 5800.0*/76.672, /* 14 6800.0*/69.815, /* 15 8000.0*/65.180, },
{/* 11 116.000 *//* 0 700.0*/80.000, /* 1 820.0*/80.000, /* 2 950.0*/80.000, /* 3 1100.0*/80.000, /* 4 1300.0*/80.000, /* 5 1550.0*/80.000, /* 6 1800.0*/80.000, /* 7 2150.0*/80.000, /* 8 2500.0*/80.000, /* 9 3000.0*/80.000, /* 10 3500.0*/80.000, /* 11 4150.0*/80.000, /* 12 4900.0*/80.000, /* 13 5800.0*/80.000, /* 14 6800.0*/80.000, /* 15 8000.0*/80.000, },
{/* 12 135.000 *//* 0 700.0*/80.000, /* 1 820.0*/80.000, /* 2 950.0*/80.000, /* 3 1100.0*/80.000, /* 4 1300.0*/80.000, /* 5 1550.0*/80.000, /* 6 1800.0*/80.000, /* 7 2150.0*/80.000, /* 8 2500.0*/80.000, /* 9 3000.0*/80.000, /* 10 3500.0*/80.000, /* 11 4150.0*/80.000, /* 12 4900.0*/80.000, /* 13 5800.0*/80.000, /* 14 6800.0*/80.000, /* 15 8000.0*/80.000, },
{/* 13 158.000 *//* 0 700.0*/80.000, /* 1 820.0*/80.000, /* 2 950.0*/80.000, /* 3 1100.0*/80.000, /* 4 1300.0*/80.000, /* 5 1550.0*/80.000, /* 6 1800.0*/80.000, /* 7 2150.0*/80.000, /* 8 2500.0*/80.000, /* 9 3000.0*/80.000, /* 10 3500.0*/80.000, /* 11 4150.0*/80.000, /* 12 4900.0*/80.000, /* 13 5800.0*/80.000, /* 14 6800.0*/80.000, /* 15 8000.0*/80.000, },
{/* 14 185.000 *//* 0 700.0*/80.000, /* 1 820.0*/80.000, /* 2 950.0*/80.000, /* 3 1100.0*/80.000, /* 4 1300.0*/80.000, /* 5 1550.0*/80.000, /* 6 1800.0*/80.000, /* 7 2150.0*/80.000, /* 8 2500.0*/80.000, /* 9 3000.0*/80.000, /* 10 3500.0*/80.000, /* 11 4150.0*/80.000, /* 12 4900.0*/80.000, /* 13 5800.0*/80.000, /* 14 6800.0*/80.000, /* 15 8000.0*/80.000, },
{/* 15 220.000 *//* 0 700.0*/80.000, /* 1 820.0*/80.000, /* 2 950.0*/80.000, /* 3 1100.0*/80.000, /* 4 1300.0*/80.000, /* 5 1550.0*/80.000, /* 6 1800.0*/80.000, /* 7 2150.0*/80.000, /* 8 2500.0*/80.000, /* 9 3000.0*/80.000, /* 10 3500.0*/80.000, /* 11 4150.0*/80.000, /* 12 4900.0*/80.000, /* 13 5800.0*/80.000, /* 14 6800.0*/80.000, /* 15 8000.0*/80.000, },
2016-12-15 20:02:59 -08:00
};
2019-06-10 12:45:18 -07:00
#if IGN_LOAD_COUNT == DEFAULT_IGN_LOAD_COUNT
2016-12-15 20:02:59 -08:00
static const ignition_table_t mapBased18vvtTimingTable = {
2017-04-18 19:30:14 -07:00
/* Generated by TS2C on Tue Apr 18 21:43:57 EDT 2017*/
{/* 0 25.000 *//* 0 700.0*/14.800, /* 1 850.0*/13.000, /* 2 943.0*/13.000, /* 3 1112.0*/16.000, /* 4 1310.0*/21.500, /* 5 1545.0*/25.100, /* 6 1821.0*/28.300, /* 7 2146.0*/31.460, /* 8 2530.0*/34.370, /* 9 2982.0*/36.598, /* 10 3515.0*/38.698, /* 11 4144.0*/39.728, /* 12 4884.0*/40.346, /* 13 5757.0*/40.758, /* 14 6787.0*/40.964, /* 15 8000.0*/41.170, },
{/* 1 29.100 *//* 0 700.0*/14.800, /* 1 850.0*/13.000, /* 2 943.0*/13.000, /* 3 1112.0*/16.100, /* 4 1310.0*/21.500, /* 5 1545.0*/25.000, /* 6 1821.0*/28.200, /* 7 2146.0*/31.270, /* 8 2530.0*/34.190, /* 9 2982.0*/36.210, /* 10 3515.0*/38.286, /* 11 4144.0*/39.316, /* 12 4884.0*/40.037, /* 13 5757.0*/40.552, /* 14 6787.0*/40.758, /* 15 8000.0*/40.964, },
{/* 2 34.000 *//* 0 700.0*/14.800, /* 1 850.0*/13.000, /* 2 943.0*/13.000, /* 3 1112.0*/16.830, /* 4 1310.0*/21.600, /* 5 1545.0*/24.800, /* 6 1821.0*/27.800, /* 7 2146.0*/30.790, /* 8 2530.0*/33.540, /* 9 2982.0*/35.888, /* 10 3515.0*/37.771, /* 11 4144.0*/38.801, /* 12 4884.0*/39.522, /* 13 5757.0*/40.140, /* 14 6787.0*/40.346, /* 15 8000.0*/40.552, },
{/* 3 39.600 *//* 0 700.0*/15.200, /* 1 850.0*/13.436, /* 2 943.0*/13.368, /* 3 1112.0*/17.520, /* 4 1310.0*/21.700, /* 5 1545.0*/24.600, /* 6 1821.0*/27.400, /* 7 2146.0*/30.140, /* 8 2530.0*/33.010, /* 9 2982.0*/35.072, /* 10 3515.0*/36.947, /* 11 4144.0*/38.183, /* 12 4884.0*/38.904, /* 13 5757.0*/39.522, /* 14 6787.0*/39.728, /* 15 8000.0*/39.934, },
{/* 4 46.200 *//* 0 700.0*/15.500, /* 1 850.0*/13.949, /* 2 943.0*/13.801, /* 3 1112.0*/18.450, /* 4 1310.0*/21.800, /* 5 1545.0*/24.400, /* 6 1821.0*/26.900, /* 7 2146.0*/29.490, /* 8 2530.0*/32.270, /* 9 2982.0*/33.944, /* 10 3515.0*/36.123, /* 11 4144.0*/37.359, /* 12 4884.0*/38.183, /* 13 5757.0*/38.698, /* 14 6787.0*/38.904, /* 15 8000.0*/39.213, },
{/* 5 53.900 *//* 0 700.0*/15.700, /* 1 850.0*/14.549, /* 2 943.0*/14.306, /* 3 1112.0*/18.970, /* 4 1310.0*/21.900, /* 5 1545.0*/24.000, /* 6 1821.0*/26.200, /* 7 2146.0*/28.770, /* 8 2530.0*/30.950, /* 9 2982.0*/32.926, /* 10 3515.0*/34.990, /* 11 4144.0*/36.226, /* 12 4884.0*/37.050, /* 13 5757.0*/37.771, /* 14 6787.0*/38.080, /* 15 8000.0*/38.492, },
{/* 6 62.800 *//* 0 700.0*/15.900, /* 1 850.0*/15.241, /* 2 943.0*/14.891, /* 3 1112.0*/19.520, /* 4 1310.0*/21.700, /* 5 1545.0*/23.600, /* 6 1821.0*/25.600, /* 7 2146.0*/27.700, /* 8 2530.0*/29.650, /* 9 2982.0*/31.702, /* 10 3515.0*/33.436, /* 11 4144.0*/34.558, /* 12 4884.0*/35.476, /* 13 5757.0*/36.190, /* 14 6787.0*/36.598, /* 15 8000.0*/37.210, },
{/* 7 73.200 *//* 0 700.0*/16.200, /* 1 850.0*/16.051, /* 2 943.0*/15.573, /* 3 1112.0*/19.700, /* 4 1310.0*/21.400, /* 5 1545.0*/23.000, /* 6 1821.0*/24.800, /* 7 2146.0*/26.440, /* 8 2530.0*/28.270, /* 9 2982.0*/30.020, /* 10 3515.0*/31.400, /* 11 4144.0*/32.600, /* 12 4884.0*/33.300, /* 13 5757.0*/34.100, /* 14 6787.0*/34.700, /* 15 8000.0*/35.300, },
{/* 8 85.400 *//* 0 700.0*/16.830, /* 1 850.0*/17.000, /* 2 943.0*/16.375, /* 3 1112.0*/19.600, /* 4 1310.0*/20.800, /* 5 1545.0*/22.300, /* 6 1821.0*/23.700, /* 7 2146.0*/24.950, /* 8 2530.0*/26.710, /* 9 2982.0*/28.000, /* 10 3515.0*/29.600, /* 11 4144.0*/31.000, /* 12 4884.0*/31.900, /* 13 5757.0*/32.600, /* 14 6787.0*/33.200, /* 15 8000.0*/33.900, },
2017-02-14 20:03:57 -08:00
{/* 9 99.500 *//* 0 700.0*/16.200, /* 1 850.0*/16.800, /* 2 943.0*/17.300, /* 3 1112.0*/18.000, /* 4 1310.0*/19.000, /* 5 1545.0*/20.200, /* 6 1821.0*/21.300, /* 7 2146.0*/22.100, /* 8 2530.0*/23.400, /* 9 2982.0*/25.200, /* 10 3515.0*/26.700, /* 11 4144.0*/28.000, /* 12 4884.0*/28.900, /* 13 5757.0*/29.800, /* 14 6787.0*/30.700, /* 15 8000.0*/31.400, },
{/* 10 116.000 *//* 0 700.0*/15.300, /* 1 850.0*/15.900, /* 2 943.0*/16.300, /* 3 1112.0*/16.800, /* 4 1310.0*/17.400, /* 5 1545.0*/18.300, /* 6 1821.0*/19.300, /* 7 2146.0*/20.000, /* 8 2530.0*/21.500, /* 9 2982.0*/23.000, /* 10 3515.0*/24.500, /* 11 4144.0*/25.900, /* 12 4884.0*/26.900, /* 13 5757.0*/27.700, /* 14 6787.0*/28.700, /* 15 8000.0*/29.500, },
{/* 11 135.301 *//* 0 700.0*/13.600, /* 1 850.0*/13.900, /* 2 943.0*/14.100, /* 3 1112.0*/14.600, /* 4 1310.0*/15.100, /* 5 1545.0*/15.900, /* 6 1821.0*/17.000, /* 7 2146.0*/17.700, /* 8 2530.0*/19.100, /* 9 2982.0*/20.600, /* 10 3515.0*/22.100, /* 11 4144.0*/23.300, /* 12 4884.0*/24.500, /* 13 5757.0*/25.500, /* 14 6787.0*/26.500, /* 15 8000.0*/27.300, },
{/* 12 157.699 *//* 0 700.0*/11.200, /* 1 850.0*/11.600, /* 2 943.0*/11.800, /* 3 1112.0*/12.200, /* 4 1310.0*/12.500, /* 5 1545.0*/13.200, /* 6 1821.0*/14.200, /* 7 2146.0*/15.100, /* 8 2530.0*/16.500, /* 9 2982.0*/17.700, /* 10 3515.0*/19.200, /* 11 4144.0*/20.600, /* 12 4884.0*/21.700, /* 13 5757.0*/22.800, /* 14 6787.0*/24.000, /* 15 8000.0*/25.000, },
{/* 13 183.900 *//* 0 700.0*/8.300, /* 1 850.0*/8.700, /* 2 943.0*/9.000, /* 3 1112.0*/9.300, /* 4 1310.0*/9.800, /* 5 1545.0*/10.400, /* 6 1821.0*/11.300, /* 7 2146.0*/12.100, /* 8 2530.0*/13.100, /* 9 2982.0*/14.500, /* 10 3515.0*/16.000, /* 11 4144.0*/17.200, /* 12 4884.0*/18.500, /* 13 5757.0*/19.700, /* 14 6787.0*/21.000, /* 15 8000.0*/22.100, },
{/* 14 214.400 *//* 0 700.0*/5.000, /* 1 850.0*/5.300, /* 2 943.0*/5.600, /* 3 1112.0*/5.900, /* 4 1310.0*/6.400, /* 5 1545.0*/7.000, /* 6 1821.0*/7.600, /* 7 2146.0*/8.400, /* 8 2530.0*/9.600, /* 9 2982.0*/10.800, /* 10 3515.0*/12.100, /* 11 4144.0*/13.400, /* 12 4884.0*/14.800, /* 13 5757.0*/16.200, /* 14 6787.0*/17.400, /* 15 8000.0*/18.700, },
{/* 15 250.000 *//* 0 700.0*/1.100, /* 1 850.0*/1.400, /* 2 943.0*/1.600, /* 3 1112.0*/2.000, /* 4 1310.0*/2.500, /* 5 1545.0*/3.000, /* 6 1821.0*/3.700, /* 7 2146.0*/4.400, /* 8 2530.0*/5.400, /* 9 2982.0*/6.600, /* 10 3515.0*/7.600, /* 11 4144.0*/9.000, /* 12 4884.0*/10.500, /* 13 5757.0*/12.000, /* 14 6787.0*/13.400, /* 15 8000.0*/14.900, },
2016-12-15 20:02:59 -08:00
};
2019-06-10 12:45:18 -07:00
#endif
2016-12-15 20:02:59 -08:00
void setMazdaMiataNbTpsTps(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
2017-04-18 19:30:14 -07:00
memcpy(config->tpsTpsAccelFromRpmBins, tpsTspSame, sizeof(tpsTspSame));
memcpy(config->tpsTpsAccelFromRpmBins, tpsTspSame, sizeof(tpsTspSame));
// todo: there should be a better way?
for (int loadIndex = 0; loadIndex < TPS_TPS_ACCEL_TABLE; loadIndex++) {
for (int rpmIndex = 0; rpmIndex < TPS_TPS_ACCEL_TABLE; rpmIndex++) {
config->tpsTpsAccelTable[loadIndex][rpmIndex] = tpsTpsTable[loadIndex][rpmIndex];
}
}
}
void setMazdaMiataNbInjectorLag(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
2017-04-18 19:30:14 -07:00
memcpy(engineConfiguration->injector.battLagCorr, injectorLagCorrection, sizeof(injectorLagCorrection));
memcpy(engineConfiguration->injector.battLagCorrBins, injectorLagBins, sizeof(injectorLagBins));
}
2019-08-31 17:17:47 -07:00
static void setMazdaMiataEngineNB2Defaults(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
2016-11-13 20:02:33 -08:00
engineConfiguration->trigger.type = TT_MIATA_VVT;
2016-11-14 20:01:47 -08:00
setOperationMode(engineConfiguration, FOUR_STROKE_SYMMETRICAL_CRANK_SENSOR);
2016-10-04 12:02:36 -07:00
engineConfiguration->specs.displacement = 1.8;
2019-09-02 18:55:38 -07:00
engineConfiguration->map.sensor.type = MT_GM_3_BAR;
setEgoSensor(ES_Innovate_MTX_L PASS_CONFIG_PARAMETER_SUFFIX);
setCommonNTCSensor(&engineConfiguration->clt, 2700);
setCommonNTCSensor(&engineConfiguration->iat, 2700);
2019-09-02 18:55:38 -07:00
2019-09-02 14:16:36 -07:00
engineConfiguration->auxPidFrequency[0] = 300; // VVT solenoid control
// set idle_position 35
engineConfiguration->manIdlePosition = 35;
2019-09-02 14:16:36 -07:00
engineConfiguration->specs.cylindersCount = 4;
engineConfiguration->specs.firingOrder = FO_1_3_4_2;
engineConfiguration->injectionMode = IM_SEQUENTIAL;
engineConfiguration->ignitionMode = IM_WASTED_SPARK;
/**
* http://miataturbo.wikidot.com/fuel-injectors
* 01-05 (purple) - #195500-4060
2019-09-23 16:08:15 -07:00
*
* NB2 Miata has an absolute pressure fuel system - NB2 fuel rail regulator has no vacuum line.
*
* Theoretically we shall have injectorFlow(MAP) curve, practically VE gets artificially high as MAP increases and
* accounts for flow change.
2019-09-24 19:28:33 -07:00
*
* Wall wetting AE could be an argument for honest injectorFlow(MAP)
2019-09-02 14:16:36 -07:00
*/
engineConfiguration->injector.flow = 265;
engineConfiguration->fuelRailPressure = 400; // 400 kPa, 58 psi
engineConfiguration->absoluteFuelPressure = true;
2019-09-02 14:16:36 -07:00
2019-09-04 18:36:34 -07:00
CONFIG(isAlternatorControlEnabled) = true;
2016-12-26 20:02:07 -08:00
// enable altdebug
2017-04-10 19:11:08 -07:00
engineConfiguration->targetVBatt = 13.8;
2016-12-26 20:02:07 -08:00
engineConfiguration->alternatorControl.offset = 40;
engineConfiguration->alternatorControl.pFactor = 14;
engineConfiguration->alternatorControl.iFactor = 0.1;
2016-12-26 18:04:16 -08:00
engineConfiguration->alternatorControl.dFactor = 0;
2019-02-10 19:47:49 -08:00
engineConfiguration->alternatorControl.periodMs = 10;
2016-12-26 18:04:16 -08:00
2019-08-31 17:17:47 -07:00
// VVT closed loop
2017-04-10 19:11:08 -07:00
engineConfiguration->auxPid[0].pFactor = 2;
engineConfiguration->auxPid[0].iFactor = 0.005;
2017-04-18 19:30:14 -07:00
engineConfiguration->auxPid[0].dFactor = 0;
engineConfiguration->auxPid[0].offset = 33;
engineConfiguration->auxPid[0].minValue = 24;
engineConfiguration->auxPid[0].maxValue = 44;
2019-08-31 17:17:47 -07:00
engineConfiguration->activateAuxPid1 = true; // todo: remove this field?
// set vvt_mode 3
engineConfiguration->vvtMode = MIATA_NB2;
engineConfiguration->vvtOffset = 98; // 2003 red car value
memcpy(config->veRpmBins, mazda_miata_nb2_RpmBins, sizeof(mazda_miata_nb2_RpmBins));
memcpy(config->veLoadBins, mazda_miata_nb2_LoadBins, sizeof(mazda_miata_nb2_LoadBins));
2019-08-31 17:17:47 -07:00
copyFuelTable(mapBased18vvtVeTable_NB_fuel_rail, config->veTable);
memcpy(config->ignitionRpmBins, ignition18vvtRpmBins, sizeof(ignition18vvtRpmBins));
memcpy(config->ignitionLoadBins, ignition18vvtLoadBins, sizeof(ignition18vvtLoadBins));
#if IGN_LOAD_COUNT == DEFAULT_IGN_LOAD_COUNT
copyTimingTable(mapBased18vvtTimingTable, config->ignitionTable);
#endif
memcpy(config->fsioTable1RpmBins, ve18fsioRpmBins, sizeof(ve18fsioRpmBins));
memcpy(config->fsioTable1LoadBins, ve18fsioLoadBins, sizeof(ve18fsioLoadBins));
// todo: there should be a better way?
for (int loadIndex = 0; loadIndex < FSIO_TABLE_8; loadIndex++) {
for (int rpmIndex = 0; rpmIndex < FSIO_TABLE_8; rpmIndex++) {
config->fsioTable1[loadIndex][rpmIndex] = fsio_table_vvt_target[loadIndex][rpmIndex];
}
}
// enable cylinder_cleanup
engineConfiguration->isCylinderCleanupEnabled = true;
setMazdaMiataNbTpsTps(PASS_CONFIG_PARAMETER_SIGNATURE);
2019-09-02 18:55:38 -07:00
// set_whole_ve_map 80
setMazdaMiataNbInjectorLag(PASS_CONFIG_PARAMETER_SIGNATURE);
2020-04-10 10:32:06 -07:00
CONFIG(debugTriggerSync) = GPIOD_3;
// engineConfiguration->debugMode = DBG_IDLE_CONTROL;
engineConfiguration->debugMode = DBG_TRIGGER_COUNTERS;
2019-09-02 18:55:38 -07:00
//set idle_offset 30
engineConfiguration->idleRpmPid.offset = 30;
engineConfiguration->idleRpmPid.pFactor = 0.07;
engineConfiguration->idleRpmPid.iFactor = 0.0001;
engineConfiguration->idleRpmPid.dFactor = 5;
engineConfiguration->idleRpmPid.periodMs = 10;
2019-08-31 17:17:47 -07:00
} // end of setMazdaMiataEngineNB2Defaults
// MAZDA_MIATA_2003
2019-08-31 17:17:47 -07:00
void setMazdaMiata2003EngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
setFrankensoConfiguration(PASS_CONFIG_PARAMETER_SIGNATURE);
setMazdaMiataEngineNB2Defaults(PASS_CONFIG_PARAMETER_SIGNATURE);
// engineConfiguration->triggerInputPins[0] = GPIOA_8; // custom Frankenso wiring in order to use SPI1 for accelerometer
engineConfiguration->triggerInputPins[0] = GPIOA_5; // board still not modified
engineConfiguration->triggerInputPins[1] = GPIO_UNASSIGNED;
2019-08-31 17:17:47 -07:00
engineConfiguration->camInputs[0] = GPIOC_6;
// engineConfiguration->is_enabled_spi_1 = true;
2019-08-31 17:17:47 -07:00
engineConfiguration->twoWireBatchInjection = true; // this is needed for #492 testing
engineConfiguration->alternatorControlPin = GPIOE_10;
engineConfiguration->alternatorControlPinMode = OM_OPENDRAIN;
2019-08-31 17:17:47 -07:00
// engineConfiguration->vehicleSpeedSensorInputPin = GPIOA_8;
2017-04-10 19:11:08 -07:00
2016-12-26 18:04:16 -08:00
engineConfiguration->vvtCamSensorUseRise = true;
2017-01-22 12:07:42 -08:00
engineConfiguration->vvtDisplayInverted = true;
2016-11-12 21:01:42 -08:00
2017-01-21 15:02:13 -08:00
engineConfiguration->auxPidPins[0] = GPIOE_3; // VVT solenoid control
2016-12-28 19:01:57 -08:00
// /**
2017-03-12 11:47:21 -07:00
// * set_fsio_setting 1 0.55
2016-12-28 19:01:57 -08:00
// */
engineConfiguration->fsio_setting[0] = 0.0;
// setFsioExt(0, GPIOE_3, "0 fsio_setting", 400 PASS_CONFIG_PARAMETER_SUFFIX);
2016-12-28 19:01:57 -08:00
2016-12-11 07:01:56 -08:00
2017-10-29 12:44:22 -07:00
// high-side driver with +12v VP jumper
2017-04-26 14:31:26 -07:00
engineConfiguration->dizzySparkOutputPin = GPIOE_8; // tachometer
2016-12-11 07:01:56 -08:00
2017-02-12 10:02:00 -08:00
// set global_trigger_offset_angle 0
engineConfiguration->globalTriggerAngleOffset = 0;
2016-11-23 20:02:35 -08:00
2016-11-17 20:02:17 -08:00
// enable trigger_details
engineConfiguration->verboseTriggerSynchDetails = false;
2016-11-12 21:01:42 -08:00
2017-02-12 15:02:01 -08:00
// set cranking_timing_angle 10
engineConfiguration->crankingTimingAngle = 10;
// set cranking_fuel 4
2017-04-26 14:31:26 -07:00
engineConfiguration->cranking.baseFuel = 4; // this value for return-less NB miata fuel system, higher pressure
2016-11-23 19:03:11 -08:00
2018-11-11 11:05:03 -08:00
/**
* Saab attempt
2018-11-11 16:57:25 -08:00
* Saab coil on #1 PD8 extra blue wire
* Miata coil on #2 PC9 - orange ECU wire "2&3"
* Saab coil on #3 PD9 extra white wire
* Miata coil on #4 PE14 - white ECU wire "1&4"
2018-11-11 11:05:03 -08:00
*/
engineConfiguration->ignitionPins[0] = GPIOE_14;
engineConfiguration->ignitionPins[1] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[2] = GPIOC_9;
engineConfiguration->ignitionPins[3] = GPIO_UNASSIGNED;
2016-11-23 19:03:11 -08:00
2019-09-28 15:49:39 -07:00
// set tps_min 90
2016-12-26 20:02:07 -08:00
engineConfiguration->tpsMin = 100; // convert 12to10 bit (ADC/4)
2019-09-28 15:49:39 -07:00
// set tps_max 540
2016-12-26 20:02:07 -08:00
engineConfiguration->tpsMax = 650; // convert 12to10 bit (ADC/4)
2016-12-15 20:02:59 -08:00
2016-11-14 20:01:47 -08:00
2016-11-12 21:01:42 -08:00
engineConfiguration->malfunctionIndicatorPin = GPIOD_5;
2017-04-25 20:55:50 -07:00
2016-12-27 20:03:42 -08:00
// engineConfiguration->malfunctionIndicatorPin = GPIOD_9;
// engineConfiguration->malfunctionIndicatorPinMode = OM_INVERTED;
2016-12-28 19:01:57 -08:00
2018-01-17 18:56:43 -08:00
// todo: blue jumper wire - what is it?!
2018-01-17 17:52:46 -08:00
// Frankenso analog #6 pin 3R, W56 (5th lower row pin from the end) top <> W45 bottom jumper, not OEM
2018-01-17 18:56:43 -08:00
2019-08-06 14:12:15 -07:00
// see setFrankensoConfiguration
2018-01-17 18:56:43 -08:00
// map.sensor.hwChannel = EFI_ADC_0; W53
2017-01-22 21:06:44 -08:00
/**
* PA4 Wideband O2 Sensor
*/
2018-01-17 17:52:46 -08:00
// todo: re-wire the board to use "Frankenso analog #7 pin 3J, W48 top <>W48 bottom jumper, not OEM"
//engineConfiguration->afr.hwChannel = EFI_ADC_3; // PA3
2017-01-22 21:06:44 -08:00
engineConfiguration->afr.hwChannel = EFI_ADC_4;
2017-04-27 10:06:54 -07:00
//
/**
* Combined RPM, CLT and VBATT warning light
*
* to test
* set_fsio_setting 2 1800
2017-04-27 19:16:35 -07:00
* set_fsio_setting 3 65
* set_fsio_setting 4 15
2017-04-27 10:06:54 -07:00
*/
engineConfiguration->fsio_setting[1] = 6500; // #2 RPM threshold
engineConfiguration->fsio_setting[2] = 105; // #3 CLT threshold
engineConfiguration->fsio_setting[3] = 12.0; // #4 voltage threshold
2017-04-27 10:06:54 -07:00
// setFsio(1, GPIOE_6, COMBINED_WARNING_LIGHT PASS_CONFIG_PARAMETER_SUFFIX);
2017-04-27 10:06:54 -07:00
2017-05-22 20:25:34 -07:00
// enable auto_idle
// enable verbose_idle
engineConfiguration->isVerboseIAC = false;
2017-05-25 16:48:00 -07:00
// set idle_p 0.05
2017-05-22 20:25:34 -07:00
// set idle_i 0
// set idle_d 0
// set debug_mode 3
// set idle_rpm 1700
2017-07-23 17:09:35 -07:00
// see setDefaultIdleParameters
2017-05-22 20:25:34 -07:00
2019-09-21 18:36:53 -07:00
engineConfiguration->adcVcc = 3.3f;
2020-04-26 16:16:54 -07:00
engineConfiguration->vbattDividerCoeff = 8.80f;
engineConfiguration->displayLogicLevelsInEngineSniffer = true;
engineConfiguration->useOnlyRisingEdgeForTrigger = true;
2019-09-21 18:36:53 -07:00
2019-09-23 19:56:06 -07:00
// by the way NB2 MAF internal diameter is about 2.5 inches / 63mm
2019-09-21 18:36:53 -07:00
// 1K pull-down to read current from this MAF
engineConfiguration->mafAdcChannel = EFI_ADC_6; // PA6 W46 <> W46
engineConfiguration->throttlePedalUpVoltage = 0.65f;
2019-12-15 20:21:38 -08:00
// TLE7209 two-wire ETB control
2019-09-20 22:21:53 -07:00
// PWM
2019-12-15 20:21:38 -08:00
CONFIG(etb_use_two_wires) = true;
engineConfiguration->etbIo[0].controlPin1 = GPIO_UNASSIGNED;
2019-09-20 22:21:53 -07:00
//
2019-12-15 20:21:38 -08:00
engineConfiguration->etbIo[0].directionPin1 = GPIOE_12; // orange
2019-09-20 22:21:53 -07:00
//
2019-12-15 20:21:38 -08:00
engineConfiguration->etbIo[0].directionPin2 = GPIOC_7; // white/blue
2019-09-20 22:21:53 -07:00
// set_analog_input_pin tps PC3
2019-12-15 20:21:38 -08:00
engineConfiguration->tps1_1AdcChannel = EFI_ADC_13; // PC3 blue
2019-09-20 22:21:53 -07:00
engineConfiguration->idleMode = IM_AUTO;
// set_analog_input_pin pps PA2
2019-12-25 12:58:54 -08:00
/* a step back - Frankenso does not use ETB
2019-09-20 22:21:53 -07:00
engineConfiguration->throttlePedalPositionAdcChannel = EFI_ADC_2;
2019-12-25 12:58:54 -08:00
*/
2019-09-20 22:21:53 -07:00
engineConfiguration->idleRpmPid.offset = 0;
engineConfiguration->idleRpmPid.pFactor = 0.2;
engineConfiguration->idleRpmPid.iFactor = 0.0001;
engineConfiguration->idleRpmPid.dFactor = 5;
engineConfiguration->idleRpmPid.periodMs = 10;
engineConfiguration->isFasterEngineSpinUpEnabled = true;
2019-09-20 22:21:53 -07:00
//set etb_p 12
engineConfiguration->etb.pFactor = 12; // a bit lower p-factor seems to work better on TLE9201? MRE?
engineConfiguration->etb.iFactor = 0;
engineConfiguration->etb.dFactor = 0;
engineConfiguration->etb.offset = 0;
2019-09-29 11:56:18 -07:00
engineConfiguration->etb.minValue = -60;
engineConfiguration->etb.maxValue = 50;
2019-09-20 22:21:53 -07:00
2019-09-25 21:02:47 -07:00
engineConfiguration->cranking.baseFuel = 1;
config->crankingFuelCoef[0] = 28; // base cranking fuel adjustment coefficient
config->crankingFuelBins[0] = -20; // temperature in C
config->crankingFuelCoef[1] = 22;
config->crankingFuelBins[1] = -10;
config->crankingFuelCoef[2] = 18;
config->crankingFuelBins[2] = 5;
config->crankingFuelCoef[3] = 15;
config->crankingFuelBins[3] = 30;
config->crankingFuelCoef[4] = 10;
config->crankingFuelBins[4] = 35;
config->crankingFuelCoef[5] = 10;
config->crankingFuelBins[5] = 50;
config->crankingFuelCoef[6] = 10;
config->crankingFuelBins[6] = 65;
config->crankingFuelCoef[7] = 10;
config->crankingFuelBins[7] = 90;
2020-04-26 16:16:54 -07:00
engineConfiguration->crankingIACposition = 90;
2016-10-04 11:00:58 -07:00
}
2016-10-04 10:03:25 -07:00
2018-01-17 17:52:46 -08:00
/**
* red car setting with default 1991/1995 miata harness
2019-08-31 15:36:44 -07:00
* board #70 - closer to default miata NA6 harness
2018-01-17 17:52:46 -08:00
*
*/
void setMazdaMiata2003EngineConfigurationBoardTest(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
setMazdaMiata2003EngineConfiguration(PASS_CONFIG_PARAMETER_SIGNATURE);
2017-12-02 17:59:31 -08:00
engineConfiguration->ignitionPins[2] = GPIOC_7;
2018-01-17 17:52:46 -08:00
2018-01-17 18:56:43 -08:00
// Frankenso analog #7 pin 3J, W48 top <>W48 bottom jumper, not OEM. Make sure 500K pull-down on Frankenso
2018-01-17 17:52:46 -08:00
engineConfiguration->afr.hwChannel = EFI_ADC_3; // PA3
engineConfiguration->mafAdcChannel = EFI_ADC_4; // PA4 - W47 top <>W47
2017-12-02 17:59:31 -08:00
}
2019-08-31 15:36:44 -07:00
2019-12-15 19:21:49 -08:00
static void setMiataNB2_MRE_common(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
#if (BOARD_TLE8888_COUNT > 0)
2019-09-02 14:16:36 -07:00
setMazdaMiataEngineNB2Defaults(PASS_CONFIG_PARAMETER_SIGNATURE);
2019-09-02 08:07:34 -07:00
// MRE has a special main relay control low side pin - rusEfi firmware is totally not involved with main relay control
2019-09-05 20:14:28 -07:00
//
// fuelPumpPin output is inherited from boards/microrusefi/board_configuration.cpp
// fanPin output is inherited from boards/microrusefi/board_configuration.cpp
//
2019-09-02 09:34:17 -07:00
// crank trigger input is inherited from boards/microrusefi/board_configuration.cpp
2019-09-02 14:16:36 -07:00
// map.sensor.hwChannel input is inherited from boards/microrusefi/board_configuration.cpp
// tps1_1AdcChannel input is inherited from boards/microrusefi/board_configuration.cpp
// afr.hwChannel input is inherited from boards/microrusefi/board_configuration.cpp
engineConfiguration->ignitionPins[1] = GPIO_UNASSIGNED;
engineConfiguration->ignitionPins[3] = GPIO_UNASSIGNED;
2019-09-02 09:34:17 -07:00
engineConfiguration->camInputs[0] = GPIOA_5;
engineConfiguration->useOnlyRisingEdgeForTrigger = false;
2020-04-23 13:57:37 -07:00
/**
* By default "auto detection mode for VR sensor signals" is used
* We know that for short & strange Hall (?) signals like Miata NB2 crank sensor this does not work well above certain RPM.
*/
engineConfiguration->tle8888mode = TL_MANUAL;
2019-09-02 09:34:17 -07:00
2019-09-02 14:16:36 -07:00
// GPIOD_6: "13 - GP Out 6" - selected to +12v
engineConfiguration->alternatorControlPin = GPIOD_6;
2019-09-02 14:16:36 -07:00
// GPIOD_7: "14 - GP Out 5" - selected to +12v
engineConfiguration->dizzySparkOutputPin = GPIOD_7; // tachometer
2019-09-06 14:38:05 -07:00
// set cranking_fuel 9
engineConfiguration->cranking.baseFuel = 9; // higher value for return system NA conversion since lower fuel pressure
engineConfiguration->useConstantDwellDuringCranking = true;
engineConfiguration->ignitionDwellForCrankingMs = 8;
engineConfiguration->vvtOffset = 97;
2019-08-31 15:36:44 -07:00
2019-09-05 20:14:28 -07:00
// # TLE8888 high current low side: VVT1 IN10 / OUT6
// GPIOE_9: "7 - Lowside 1"
engineConfiguration->auxPidPins[0] = GPIOE_9; // VVT solenoid control
// TLE8888_PIN_23: "33 - GP Out 3"
engineConfiguration->malfunctionIndicatorPin = TLE8888_PIN_23;
2019-09-05 20:14:28 -07:00
2020-02-27 18:28:31 -08:00
// todo: alternator warn
2020-02-29 20:15:04 -08:00
// ?
2020-02-27 18:28:31 -08:00
// todo: AC fan
2020-02-29 20:15:04 -08:00
// TLE8888_PIN_24: "43 - GP Out 4"
2020-02-27 18:28:31 -08:00
engineConfiguration->isFasterEngineSpinUpEnabled = true;
2019-09-04 17:38:09 -07:00
2019-08-31 17:17:47 -07:00
// set_analog_input_pin pps PA7
// EFI_ADC_7: "31 - AN volt 3" - PA7
engineConfiguration->throttlePedalPositionAdcChannel = EFI_ADC_7;
// set tps_min 90
2019-09-01 16:37:58 -07:00
engineConfiguration->tpsMin = 90;
2019-08-31 17:17:47 -07:00
// set tps_max 540
engineConfiguration->tpsMax = 870;
2019-09-04 18:36:34 -07:00
engineConfiguration->idleMode = IM_AUTO;
2019-09-02 14:16:36 -07:00
// set vbatt_divider 11
// 0.3#4 has wrong R139 as well?
// 56k high side/10k low side multiplied by above analogInputDividerCoefficient = 11
engineConfiguration->vbattDividerCoeff = (66.0f / 10.0f) * engineConfiguration->analogInputDividerCoefficient;
#endif /* BOARD_TLE8888_COUNT */
2019-08-31 15:36:44 -07:00
}
2019-12-15 19:21:49 -08:00
/**
* Pretty much OEM 2003 Miata with ETB
* set engine_type 13
*/
void setMiataNB2_MRE_ETB(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
setMiataNB2_MRE_common(PASS_CONFIG_PARAMETER_SIGNATURE);
CONFIG(useETBforIdleControl) = true;
2019-12-15 20:33:15 -08:00
#if EFI_FSIO
2019-12-15 19:21:49 -08:00
// enable ETB
// set_rpn_expression 8 "0"
setFsio(7, GPIOC_8, "0" PASS_CONFIG_PARAMETER_SUFFIX);
2019-12-15 20:33:15 -08:00
#endif /* EFI_FSIO */
2019-12-15 19:21:49 -08:00
//set idle_offset 0
engineConfiguration->idleRpmPid.offset = 0;
engineConfiguration->idleRpmPid.pFactor = 0.2;
engineConfiguration->idleRpmPid.iFactor = 0.0001;
engineConfiguration->idleRpmPid.dFactor = 5;
engineConfiguration->idleRpmPid.periodMs = 10;
CONFIG(useETBforIdleControl) = true;
engineConfiguration->throttlePedalUpVoltage = 1;
// WAT? that's an interesting value, how come it's above 5v?
engineConfiguration->throttlePedalWOTVoltage = 5.47;
engineConfiguration->etb.pFactor = 12; // a bit lower p-factor seems to work better on TLE9201? MRE?
engineConfiguration->etb.iFactor = 0;
engineConfiguration->etb.dFactor = 0;
engineConfiguration->etb.offset = 0;
}
2019-12-25 12:58:54 -08:00
/**
* set engine_type 11
*/
2019-12-15 19:21:49 -08:00
void setMiataNB2_MRE_MTB(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
setMiataNB2_MRE_common(PASS_CONFIG_PARAMETER_SIGNATURE);
}