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
|
|
|
|
*
|
2020-05-21 17:44:14 -07:00
|
|
|
* Frankenso MAZDA_MIATA_2003
|
2017-01-06 07:04:41 -08:00
|
|
|
* set engine_type 47
|
2016-10-04 12:02:36 -07:00
|
|
|
*
|
2022-04-28 14:32:39 -07:00
|
|
|
* coil1/4 (p1 +5 VP) Gpio::E14
|
|
|
|
* coil2/2 (p1 +5 VP) Gpio::C9
|
|
|
|
* tachometer +5 VP (p3 +12 VP) Gpio::E8
|
|
|
|
* alternator +5 VP (p3 +12 VP) Gpio::E10
|
|
|
|
* ETB PWM Gpio::E6 inverted low-side with pull-up
|
|
|
|
* ETB dir1 Gpio::E12
|
|
|
|
* ETB dir2 Gpio::C7
|
2019-09-20 22:21:53 -07:00
|
|
|
*
|
2022-04-28 14:32:39 -07:00
|
|
|
* COP ion #1 Gpio::D8
|
|
|
|
* COP ion #3 Gpio::D9
|
2019-09-20 22:21:53 -07:00
|
|
|
*
|
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
|
|
|
*
|
2022-04-28 14:32:39 -07:00
|
|
|
* coil1/4 (p1 +5 VP) Gpio::E14
|
|
|
|
* coil2/2 (p1 +5 VP) Gpio::C7
|
2017-04-17 19:09:12 -07:00
|
|
|
*
|
2022-04-28 14:32:39 -07:00
|
|
|
* tachometer +5 VP (p3 +12 VP) Gpio::E8
|
|
|
|
* alternator +5 VP (p3 +12 VP) Gpio::E10
|
2019-09-20 22:21:53 -07:00
|
|
|
*
|
2022-04-28 14:32:39 -07:00
|
|
|
* VVT solenoid on aux PID#1 Gpio::E3
|
|
|
|
* warning light Gpio::E6
|
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
|
|
|
*/
|
|
|
|
|
2021-08-03 19:05:01 -07:00
|
|
|
#include "pch.h"
|
|
|
|
|
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"
|
2020-08-02 07:18:14 -07:00
|
|
|
#include "mazda_miata_base_maps.h"
|
2016-10-04 10:03:25 -07:00
|
|
|
|
2021-10-02 20:56:43 -07:00
|
|
|
|
2021-10-25 17:51:07 -07:00
|
|
|
#if HW_PROTEUS
|
2021-10-02 20:56:43 -07:00
|
|
|
#include "proteus_meta.h"
|
|
|
|
#endif
|
|
|
|
|
2021-10-26 07:27:10 -07:00
|
|
|
#include "mre_meta.h"
|
|
|
|
|
2024-03-06 06:49:34 -08:00
|
|
|
#if HW_HELLEN
|
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
|
|
|
|
};
|
|
|
|
|
2021-11-14 08:04:51 -08:00
|
|
|
static const float vvt18fsioRpmBins[SCRIPT_TABLE_8] =
|
2017-02-13 17:02:46 -08:00
|
|
|
{700.0, 1000.0, 2000.0, 3000.0, 3500.0, 4500.0, 5500.0, 6500.0}
|
|
|
|
;
|
2017-01-21 14:02:37 -08:00
|
|
|
|
2021-11-14 08:04:51 -08:00
|
|
|
static const float vvt18fsioLoadBins[SCRIPT_TABLE_8] =
|
2017-02-13 17:02:46 -08:00
|
|
|
{30.0, 40.0, 50.0, 60.0, 70.0, 75.0, 82.0, 85.0}
|
|
|
|
;
|
2017-01-21 14:02:37 -08:00
|
|
|
|
2021-11-14 08:04:51 -08:00
|
|
|
static const uint8_t SCRIPT_TABLE_vvt_target[SCRIPT_TABLE_8][SCRIPT_TABLE_8] = {
|
2017-02-13 17:02:46 -08:00
|
|
|
/* Generated by TS2C on Mon Feb 13 19:11:32 EST 2017*/
|
2021-05-09 11:37:16 -07:00
|
|
|
{/* 0 30 *//* 0 700.0*/1, /* 1 1000.0*/3, /* 2 2000.0*/10, /* 3 3000.0*/20, /* 4 3500.0*/27, /* 5 4500.0*/28, /* 6 5500.0*/11, /* 7 6500.0*/5, },
|
|
|
|
{/* 1 40 *//* 0 700.0*/3, /* 1 1000.0*/10, /* 2 2000.0*/19, /* 3 3000.0*/26, /* 4 3500.0*/30, /* 5 4500.0*/28, /* 6 5500.0*/11, /* 7 6500.0*/5, },
|
|
|
|
{/* 2 50 *//* 0 700.0*/7, /* 1 1000.0*/16, /* 2 2000.0*/24, /* 3 3000.0*/28, /* 4 3500.0*/30, /* 5 4500.0*/28, /* 6 5500.0*/11, /* 7 6500.0*/5, },
|
|
|
|
{/* 3 60 *//* 0 700.0*/11, /* 1 1000.0*/20, /* 2 2000.0*/27, /* 3 3000.0*/28, /* 4 3500.0*/30, /* 5 4500.0*/28, /* 6 5500.0*/11, /* 7 6500.0*/5, },
|
|
|
|
{/* 4 70 *//* 0 700.0*/13, /* 1 1000.0*/24, /* 2 2000.0*/31, /* 3 3000.0*/28, /* 4 3500.0*/30, /* 5 4500.0*/28, /* 6 5500.0*/11, /* 7 6500.0*/5, },
|
|
|
|
{/* 5 75 *//* 0 700.0*/15, /* 1 1000.0*/27, /* 2 2000.0*/33, /* 3 3000.0*/28, /* 4 3500.0*/30, /* 5 4500.0*/28, /* 6 5500.0*/11, /* 7 6500.0*/5, },
|
|
|
|
{/* 6 82 *//* 0 700.0*/17, /* 1 1000.0*/28, /* 2 2000.0*/33, /* 3 3000.0*/28, /* 4 3500.0*/30, /* 5 4500.0*/28, /* 6 5500.0*/11, /* 7 6500.0*/5, },
|
|
|
|
{/* 7 85 *//* 0 700.0*/17, /* 1 1000.0*/28, /* 2 2000.0*/33, /* 3 3000.0*/28, /* 4 3500.0*/30, /* 5 4500.0*/28, /* 6 5500.0*/11, /* 7 6500.0*/5, },
|
2017-01-21 14:02:37 -08:00
|
|
|
};
|
|
|
|
|
2023-09-18 08:40:23 -07:00
|
|
|
#if (FUEL_LOAD_COUNT == DEFAULT_FUEL_LOAD_COUNT) && (FUEL_RPM_COUNT == DEFAULT_FUEL_LOAD_COUNT)
|
2019-09-20 14:46:54 -07:00
|
|
|
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}
|
|
|
|
;
|
|
|
|
|
2019-09-20 14:46:54 -07:00
|
|
|
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}
|
|
|
|
;
|
2023-09-18 08:40:23 -07:00
|
|
|
#endif
|
2017-01-21 14:02:37 -08:00
|
|
|
|
2023-10-25 07:47:43 -07:00
|
|
|
#if (IGN_RPM_COUNT == DEFAULT_IGN_RPM_COUNT) && (IGN_LOAD_COUNT == DEFAULT_IGN_LOAD_COUNT)
|
2023-07-18 21:41:54 -07:00
|
|
|
static const float ignition18vvtRpmBins[IGN_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};
|
|
|
|
|
2023-07-18 21:41:54 -07:00
|
|
|
static const float ignition18vvtLoadBins[IGN_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};
|
|
|
|
|
2021-05-09 11:37:16 -07:00
|
|
|
static const int8_t mapBased18vvtVeTable_NB_fuel_rail[16][16] = {
|
2017-04-18 19:30:14 -07:00
|
|
|
/* Generated by TS2C on Tue Apr 18 21:46:03 EDT 2017*/
|
2021-05-09 11:37:16 -07:00
|
|
|
{/* 0 20 *//* 0 700.0*/35, /* 1 820.0*/36, /* 2 950.0*/37, /* 3 1100.0*/35, /* 4 1300.0*/36, /* 5 1550.0*/37, /* 6 1800.0*/33, /* 7 2150.0*/31, /* 8 2500.0*/25, /* 9 3000.0*/24, /* 10 3500.0*/24, /* 11 4150.0*/25, /* 12 4900.0*/26, /* 13 5800.0*/29, /* 14 6800.0*/33, /* 15 8000.0*/36, },
|
|
|
|
{/* 1 25 *//* 0 700.0*/35, /* 1 820.0*/37, /* 2 950.0*/38, /* 3 1100.0*/37, /* 4 1300.0*/36, /* 5 1550.0*/37, /* 6 1800.0*/41, /* 7 2150.0*/39, /* 8 2500.0*/40, /* 9 3000.0*/37, /* 10 3500.0*/35, /* 11 4150.0*/36, /* 12 4900.0*/37, /* 13 5800.0*/35, /* 14 6800.0*/38, /* 15 8000.0*/40, },
|
|
|
|
{/* 2 30 *//* 0 700.0*/37, /* 1 820.0*/40, /* 2 950.0*/39, /* 3 1100.0*/37, /* 4 1300.0*/38, /* 5 1550.0*/41, /* 6 1800.0*/45, /* 7 2150.0*/47, /* 8 2500.0*/54, /* 9 3000.0*/48, /* 10 3500.0*/47, /* 11 4150.0*/55, /* 12 4900.0*/55, /* 13 5800.0*/49, /* 14 6800.0*/50, /* 15 8000.0*/51, },
|
|
|
|
{/* 3 35 *//* 0 700.0*/39, /* 1 820.0*/44, /* 2 950.0*/42, /* 3 1100.0*/40, /* 4 1300.0*/45, /* 5 1550.0*/48, /* 6 1800.0*/48, /* 7 2150.0*/52, /* 8 2500.0*/56, /* 9 3000.0*/53, /* 10 3500.0*/52, /* 11 4150.0*/58, /* 12 4900.0*/62, /* 13 5800.0*/57, /* 14 6800.0*/58, /* 15 8000.0*/58, },
|
|
|
|
{/* 4 40 *//* 0 700.0*/45, /* 1 820.0*/56, /* 2 950.0*/49, /* 3 1100.0*/45, /* 4 1300.0*/54, /* 5 1550.0*/53, /* 6 1800.0*/55, /* 7 2150.0*/54, /* 8 2500.0*/57, /* 9 3000.0*/55, /* 10 3500.0*/57, /* 11 4150.0*/59, /* 12 4900.0*/62, /* 13 5800.0*/59, /* 14 6800.0*/63, /* 15 8000.0*/62, },
|
|
|
|
{/* 5 46 *//* 0 700.0*/54, /* 1 820.0*/61, /* 2 950.0*/56, /* 3 1100.0*/52, /* 4 1300.0*/53, /* 5 1550.0*/58, /* 6 1800.0*/57, /* 7 2150.0*/59, /* 8 2500.0*/58, /* 9 3000.0*/58, /* 10 3500.0*/60, /* 11 4150.0*/64, /* 12 4900.0*/66, /* 13 5800.0*/64, /* 14 6800.0*/65, /* 15 8000.0*/63, },
|
|
|
|
{/* 6 54 *//* 0 700.0*/60, /* 1 820.0*/67, /* 2 950.0*/66, /* 3 1100.0*/60, /* 4 1300.0*/59, /* 5 1550.0*/59, /* 6 1800.0*/61, /* 7 2150.0*/63, /* 8 2500.0*/63, /* 9 3000.0*/60, /* 10 3500.0*/62, /* 11 4150.0*/69, /* 12 4900.0*/71, /* 13 5800.0*/67, /* 14 6800.0*/65, /* 15 8000.0*/63, },
|
|
|
|
{/* 7 63 *//* 0 700.0*/65, /* 1 820.0*/70, /* 2 950.0*/71, /* 3 1100.0*/67, /* 4 1300.0*/62, /* 5 1550.0*/61, /* 6 1800.0*/65, /* 7 2150.0*/63, /* 8 2500.0*/63, /* 9 3000.0*/64, /* 10 3500.0*/66, /* 11 4150.0*/69, /* 12 4900.0*/73, /* 13 5800.0*/71, /* 14 6800.0*/67, /* 15 8000.0*/65, },
|
|
|
|
{/* 8 73 *//* 0 700.0*/70, /* 1 820.0*/74, /* 2 950.0*/73, /* 3 1100.0*/75, /* 4 1300.0*/71, /* 5 1550.0*/66, /* 6 1800.0*/66, /* 7 2150.0*/65, /* 8 2500.0*/67, /* 9 3000.0*/69, /* 10 3500.0*/68, /* 11 4150.0*/72, /* 12 4900.0*/76, /* 13 5800.0*/75, /* 14 6800.0*/66, /* 15 8000.0*/65, },
|
|
|
|
{/* 9 85 *//* 0 700.0*/71, /* 1 820.0*/75, /* 2 950.0*/76, /* 3 1100.0*/74, /* 4 1300.0*/73, /* 5 1550.0*/72, /* 6 1800.0*/71, /* 7 2150.0*/70, /* 8 2500.0*/72, /* 9 3000.0*/72, /* 10 3500.0*/74, /* 11 4150.0*/76, /* 12 4900.0*/78, /* 13 5800.0*/76, /* 14 6800.0*/68, /* 15 8000.0*/64, },
|
|
|
|
{/* 10 99 *//* 0 700.0*/75, /* 1 820.0*/76, /* 2 950.0*/78, /* 3 1100.0*/76, /* 4 1300.0*/73, /* 5 1550.0*/74, /* 6 1800.0*/74, /* 7 2150.0*/74, /* 8 2500.0*/77, /* 9 3000.0*/76, /* 10 3500.0*/77, /* 11 4150.0*/76, /* 12 4900.0*/77, /* 13 5800.0*/76, /* 14 6800.0*/69, /* 15 8000.0*/65, },
|
|
|
|
{/* 11 116 *//* 0 700.0*/80, /* 1 820.0*/80, /* 2 950.0*/80, /* 3 1100.0*/80, /* 4 1300.0*/80, /* 5 1550.0*/80, /* 6 1800.0*/80, /* 7 2150.0*/80, /* 8 2500.0*/80, /* 9 3000.0*/80, /* 10 3500.0*/80, /* 11 4150.0*/80, /* 12 4900.0*/80, /* 13 5800.0*/80, /* 14 6800.0*/80, /* 15 8000.0*/80, },
|
|
|
|
{/* 12 135 *//* 0 700.0*/80, /* 1 820.0*/80, /* 2 950.0*/80, /* 3 1100.0*/80, /* 4 1300.0*/80, /* 5 1550.0*/80, /* 6 1800.0*/80, /* 7 2150.0*/80, /* 8 2500.0*/80, /* 9 3000.0*/80, /* 10 3500.0*/80, /* 11 4150.0*/80, /* 12 4900.0*/80, /* 13 5800.0*/80, /* 14 6800.0*/80, /* 15 8000.0*/80, },
|
|
|
|
{/* 13 158 *//* 0 700.0*/80, /* 1 820.0*/80, /* 2 950.0*/80, /* 3 1100.0*/80, /* 4 1300.0*/80, /* 5 1550.0*/80, /* 6 1800.0*/80, /* 7 2150.0*/80, /* 8 2500.0*/80, /* 9 3000.0*/80, /* 10 3500.0*/80, /* 11 4150.0*/80, /* 12 4900.0*/80, /* 13 5800.0*/80, /* 14 6800.0*/80, /* 15 8000.0*/80, },
|
|
|
|
{/* 14 185 *//* 0 700.0*/80, /* 1 820.0*/80, /* 2 950.0*/80, /* 3 1100.0*/80, /* 4 1300.0*/80, /* 5 1550.0*/80, /* 6 1800.0*/80, /* 7 2150.0*/80, /* 8 2500.0*/80, /* 9 3000.0*/80, /* 10 3500.0*/80, /* 11 4150.0*/80, /* 12 4900.0*/80, /* 13 5800.0*/80, /* 14 6800.0*/80, /* 15 8000.0*/80, },
|
|
|
|
{/* 15 220 *//* 0 700.0*/80, /* 1 820.0*/80, /* 2 950.0*/80, /* 3 1100.0*/80, /* 4 1300.0*/80, /* 5 1550.0*/80, /* 6 1800.0*/80, /* 7 2150.0*/80, /* 8 2500.0*/80, /* 9 3000.0*/80, /* 10 3500.0*/80, /* 11 4150.0*/80, /* 12 4900.0*/80, /* 13 5800.0*/80, /* 14 6800.0*/80, /* 15 8000.0*/80, },
|
2016-12-15 20:02:59 -08:00
|
|
|
};
|
|
|
|
|
2021-05-09 11:37:16 -07:00
|
|
|
static const uint8_t mapBased18vvtTimingTable[16][16] = {
|
2017-04-18 19:30:14 -07:00
|
|
|
/* Generated by TS2C on Tue Apr 18 21:43:57 EDT 2017*/
|
2021-05-09 11:37:16 -07:00
|
|
|
{/* 0 25 *//* 0 700.0*/14, /* 1 850.0*/13, /* 2 943.0*/13, /* 3 1112.0*/16, /* 4 1310.0*/21, /* 5 1545.0*/25, /* 6 1821.0*/28, /* 7 2146.0*/31, /* 8 2530.0*/34, /* 9 2982.0*/36, /* 10 3515.0*/38, /* 11 4144.0*/39, /* 12 4884.0*/40, /* 13 5757.0*/40, /* 14 6787.0*/40, /* 15 8000.0*/41, },
|
|
|
|
{/* 1 29.100 *//* 0 700.0*/14, /* 1 850.0*/13, /* 2 943.0*/13, /* 3 1112.0*/16, /* 4 1310.0*/21, /* 5 1545.0*/25, /* 6 1821.0*/28, /* 7 2146.0*/31, /* 8 2530.0*/34, /* 9 2982.0*/36, /* 10 3515.0*/38, /* 11 4144.0*/39, /* 12 4884.0*/40, /* 13 5757.0*/40, /* 14 6787.0*/40, /* 15 8000.0*/40, },
|
|
|
|
{/* 2 34 *//* 0 700.0*/14, /* 1 850.0*/13, /* 2 943.0*/13, /* 3 1112.0*/16, /* 4 1310.0*/21, /* 5 1545.0*/24, /* 6 1821.0*/27, /* 7 2146.0*/30, /* 8 2530.0*/33, /* 9 2982.0*/35, /* 10 3515.0*/37, /* 11 4144.0*/38, /* 12 4884.0*/39, /* 13 5757.0*/40, /* 14 6787.0*/40, /* 15 8000.0*/40, },
|
|
|
|
{/* 3 39.600 *//* 0 700.0*/15, /* 1 850.0*/13, /* 2 943.0*/13, /* 3 1112.0*/17, /* 4 1310.0*/21, /* 5 1545.0*/24, /* 6 1821.0*/27, /* 7 2146.0*/30, /* 8 2530.0*/33, /* 9 2982.0*/35, /* 10 3515.0*/36, /* 11 4144.0*/38, /* 12 4884.0*/38, /* 13 5757.0*/39, /* 14 6787.0*/39, /* 15 8000.0*/39, },
|
|
|
|
{/* 4 46.200 *//* 0 700.0*/15, /* 1 850.0*/13, /* 2 943.0*/13, /* 3 1112.0*/18, /* 4 1310.0*/21, /* 5 1545.0*/24, /* 6 1821.0*/26, /* 7 2146.0*/29, /* 8 2530.0*/32, /* 9 2982.0*/33, /* 10 3515.0*/36, /* 11 4144.0*/37, /* 12 4884.0*/38, /* 13 5757.0*/38, /* 14 6787.0*/38, /* 15 8000.0*/39, },
|
|
|
|
{/* 5 53.900 *//* 0 700.0*/15, /* 1 850.0*/14, /* 2 943.0*/14, /* 3 1112.0*/18, /* 4 1310.0*/21, /* 5 1545.0*/24, /* 6 1821.0*/26, /* 7 2146.0*/28, /* 8 2530.0*/30, /* 9 2982.0*/32, /* 10 3515.0*/34, /* 11 4144.0*/36, /* 12 4884.0*/37, /* 13 5757.0*/37, /* 14 6787.0*/38, /* 15 8000.0*/38, },
|
|
|
|
{/* 6 62.800 *//* 0 700.0*/15, /* 1 850.0*/15, /* 2 943.0*/14, /* 3 1112.0*/19, /* 4 1310.0*/21, /* 5 1545.0*/23, /* 6 1821.0*/25, /* 7 2146.0*/27, /* 8 2530.0*/29, /* 9 2982.0*/31, /* 10 3515.0*/33, /* 11 4144.0*/34, /* 12 4884.0*/35, /* 13 5757.0*/36, /* 14 6787.0*/36, /* 15 8000.0*/37, },
|
|
|
|
{/* 7 73.200 *//* 0 700.0*/16, /* 1 850.0*/16, /* 2 943.0*/15, /* 3 1112.0*/19, /* 4 1310.0*/21, /* 5 1545.0*/23, /* 6 1821.0*/24, /* 7 2146.0*/26, /* 8 2530.0*/28, /* 9 2982.0*/30, /* 10 3515.0*/31, /* 11 4144.0*/32, /* 12 4884.0*/33, /* 13 5757.0*/34, /* 14 6787.0*/34, /* 15 8000.0*/35, },
|
|
|
|
{/* 8 85.400 *//* 0 700.0*/16, /* 1 850.0*/17, /* 2 943.0*/16, /* 3 1112.0*/19, /* 4 1310.0*/20, /* 5 1545.0*/22, /* 6 1821.0*/23, /* 7 2146.0*/24, /* 8 2530.0*/26, /* 9 2982.0*/28, /* 10 3515.0*/29, /* 11 4144.0*/31, /* 12 4884.0*/31, /* 13 5757.0*/32, /* 14 6787.0*/33, /* 15 8000.0*/33, },
|
|
|
|
{/* 9 99.500 *//* 0 700.0*/16, /* 1 850.0*/16, /* 2 943.0*/17, /* 3 1112.0*/18, /* 4 1310.0*/19, /* 5 1545.0*/20, /* 6 1821.0*/21, /* 7 2146.0*/22, /* 8 2530.0*/23, /* 9 2982.0*/25, /* 10 3515.0*/26, /* 11 4144.0*/28, /* 12 4884.0*/28, /* 13 5757.0*/29, /* 14 6787.0*/30, /* 15 8000.0*/31, },
|
|
|
|
{/* 10 116 *//* 0 700.0*/15, /* 1 850.0*/15, /* 2 943.0*/16, /* 3 1112.0*/16, /* 4 1310.0*/17, /* 5 1545.0*/18, /* 6 1821.0*/19, /* 7 2146.0*/20, /* 8 2530.0*/21, /* 9 2982.0*/23, /* 10 3515.0*/24, /* 11 4144.0*/25, /* 12 4884.0*/26, /* 13 5757.0*/27, /* 14 6787.0*/28, /* 15 8000.0*/29, },
|
|
|
|
{/* 11 135.301 *//* 0 700.0*/13, /* 1 850.0*/13, /* 2 943.0*/14, /* 3 1112.0*/14, /* 4 1310.0*/15, /* 5 1545.0*/15, /* 6 1821.0*/17, /* 7 2146.0*/17, /* 8 2530.0*/19, /* 9 2982.0*/20, /* 10 3515.0*/22, /* 11 4144.0*/23, /* 12 4884.0*/24, /* 13 5757.0*/25, /* 14 6787.0*/26, /* 15 8000.0*/27, },
|
|
|
|
{/* 12 157.699 *//* 0 700.0*/11, /* 1 850.0*/11, /* 2 943.0*/11, /* 3 1112.0*/12, /* 4 1310.0*/12, /* 5 1545.0*/13, /* 6 1821.0*/14, /* 7 2146.0*/15, /* 8 2530.0*/16, /* 9 2982.0*/17, /* 10 3515.0*/19, /* 11 4144.0*/20, /* 12 4884.0*/21, /* 13 5757.0*/22, /* 14 6787.0*/24, /* 15 8000.0*/25, },
|
|
|
|
{/* 13 183.900 *//* 0 700.0*/8, /* 1 850.0*/8, /* 2 943.0*/9, /* 3 1112.0*/9, /* 4 1310.0*/9, /* 5 1545.0*/10, /* 6 1821.0*/11, /* 7 2146.0*/12, /* 8 2530.0*/13, /* 9 2982.0*/14, /* 10 3515.0*/16, /* 11 4144.0*/17, /* 12 4884.0*/18, /* 13 5757.0*/19, /* 14 6787.0*/21, /* 15 8000.0*/22, },
|
|
|
|
{/* 14 214.400 *//* 0 700.0*/5, /* 1 850.0*/5, /* 2 943.0*/5, /* 3 1112.0*/5, /* 4 1310.0*/6, /* 5 1545.0*/7, /* 6 1821.0*/7, /* 7 2146.0*/8, /* 8 2530.0*/9, /* 9 2982.0*/10, /* 10 3515.0*/12, /* 11 4144.0*/13, /* 12 4884.0*/14, /* 13 5757.0*/16, /* 14 6787.0*/17, /* 15 8000.0*/18, },
|
|
|
|
{/* 15 250 *//* 0 700.0*/1, /* 1 850.0*/1, /* 2 943.0*/1, /* 3 1112.0*/2, /* 4 1310.0*/2, /* 5 1545.0*/3, /* 6 1821.0*/3, /* 7 2146.0*/4, /* 8 2530.0*/5, /* 9 2982.0*/6, /* 10 3515.0*/7, /* 11 4144.0*/9, /* 12 4884.0*/10, /* 13 5757.0*/12, /* 14 6787.0*/13, /* 15 8000.0*/14, },
|
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
|
|
|
|
2020-05-12 20:37:30 -07:00
|
|
|
|
|
|
|
/*
|
2020-04-26 20:03:50 -07:00
|
|
|
#define MAF_TRANSFER_SIZE 8
|
|
|
|
|
|
|
|
static const float mafTransferVolts[MAF_TRANSFER_SIZE] = {1.365,
|
|
|
|
1.569,
|
|
|
|
2.028,
|
|
|
|
2.35,
|
|
|
|
2.611,
|
|
|
|
2.959,
|
|
|
|
3.499,
|
|
|
|
4.011,
|
|
|
|
};
|
|
|
|
|
2020-05-12 20:37:30 -07:00
|
|
|
|
|
|
|
according to internet this should be the Miata NB transfer function but in reality it seems off
|
|
|
|
this could be related to us not using proper signal conditioning hardware
|
2020-04-26 20:03:50 -07:00
|
|
|
static const float mafTransferKgH[MAF_TRANSFER_SIZE] = {
|
|
|
|
0,
|
|
|
|
3.9456,
|
|
|
|
18.7308,
|
|
|
|
45.4788,
|
|
|
|
82.278,
|
|
|
|
154.4328,
|
|
|
|
329.8104,
|
|
|
|
594.2772
|
|
|
|
};
|
|
|
|
|
2020-05-12 20:37:30 -07:00
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
#define MAF_TRANSFER_SIZE 10
|
|
|
|
|
|
|
|
// this transfer function somehow works with 1K pull-down
|
|
|
|
static const float mafTransferVolts[MAF_TRANSFER_SIZE] = {
|
|
|
|
0.50,
|
|
|
|
0.87,
|
|
|
|
1.07,
|
|
|
|
1.53,
|
|
|
|
1.85,
|
|
|
|
2.11,
|
|
|
|
2.46,
|
|
|
|
3.00,
|
|
|
|
3.51,
|
|
|
|
4.50
|
|
|
|
};
|
|
|
|
|
|
|
|
static const float mafTransferKgH[MAF_TRANSFER_SIZE] = {
|
|
|
|
0.00,
|
|
|
|
0.00,
|
|
|
|
1.00,
|
|
|
|
3.00,
|
|
|
|
8.00,
|
|
|
|
19.00,
|
|
|
|
45.00,
|
|
|
|
100.00,
|
|
|
|
175.00,
|
|
|
|
350.00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
2021-11-16 01:15:29 -08:00
|
|
|
static void setMAFTransferFunction() {
|
2020-04-26 20:03:50 -07:00
|
|
|
memcpy(config->mafDecoding, mafTransferKgH, sizeof(mafTransferKgH));
|
|
|
|
memcpy(config->mafDecodingBins, mafTransferVolts, sizeof(mafTransferVolts));
|
|
|
|
for (int i = MAF_TRANSFER_SIZE;i<MAF_DECODING_COUNT;i++) {
|
|
|
|
config->mafDecodingBins[i] = config->mafDecodingBins[MAF_TRANSFER_SIZE - 1] + i * 0.01;
|
|
|
|
config->mafDecoding[i] = config->mafDecoding[MAF_TRANSFER_SIZE - 1];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-04-29 11:49:52 -07:00
|
|
|
static void setMazdaMiataNbInjectorLag() {
|
2021-05-09 11:37:16 -07:00
|
|
|
copyArray(engineConfiguration->injector.battLagCorr, injectorLagCorrection);
|
|
|
|
copyArray(engineConfiguration->injector.battLagCorrBins, injectorLagBins);
|
2017-04-18 19:30:14 -07:00
|
|
|
}
|
|
|
|
|
2021-10-02 20:20:30 -07:00
|
|
|
/**
|
2023-04-29 11:49:52 -07:00
|
|
|
* stuff common between NB1 and NB2
|
2021-10-02 20:20:30 -07:00
|
|
|
*/
|
2021-11-16 01:15:29 -08:00
|
|
|
static void setCommonMazdaNB() {
|
2023-04-29 11:49:52 -07:00
|
|
|
// Base engine
|
|
|
|
engineConfiguration->displacement = 1.839;
|
|
|
|
engineConfiguration->cylindersCount = 4;
|
|
|
|
engineConfiguration->firingOrder = FO_1_3_4_2;
|
|
|
|
|
|
|
|
engineConfiguration->rpmHardLimit = 7200;
|
2020-05-03 09:11:47 -07:00
|
|
|
|
2023-04-29 11:49:52 -07:00
|
|
|
engineConfiguration->cylinderBore = 83;
|
|
|
|
strcpy(engineConfiguration->engineMake, ENGINE_MAKE_MAZDA);
|
|
|
|
engineConfiguration->vehicleWeight = 1070;
|
|
|
|
|
|
|
|
engineConfiguration->injectionMode = IM_SEQUENTIAL;
|
|
|
|
engineConfiguration->ignitionMode = IM_WASTED_SPARK;
|
|
|
|
|
|
|
|
// Trigger
|
2023-05-31 22:56:40 -07:00
|
|
|
engineConfiguration->trigger.type = trigger_type_e::TT_MIATA_VVT;
|
2022-08-13 20:37:02 -07:00
|
|
|
engineConfiguration->vvtMode[0] = VVT_MIATA_NB;
|
2023-04-29 11:49:52 -07:00
|
|
|
engineConfiguration->vvtOffsets[0] = 98;
|
2022-08-13 20:37:02 -07:00
|
|
|
|
2023-04-29 11:49:52 -07:00
|
|
|
// Cranking
|
2022-04-10 12:13:22 -07:00
|
|
|
engineConfiguration->ignitionDwellForCrankingMs = 4;
|
|
|
|
engineConfiguration->cranking.baseFuel = 27.5; // this value for return-less NB miata fuel system, higher pressure
|
|
|
|
engineConfiguration->cranking.rpm = 400;
|
2023-04-29 11:49:52 -07:00
|
|
|
engineConfiguration->crankingIACposition = 60;
|
|
|
|
engineConfiguration->afterCrankingIACtaperDuration = 250;
|
|
|
|
|
|
|
|
// Idle
|
|
|
|
engineConfiguration->idleMode = IM_AUTO;
|
|
|
|
engineConfiguration->manIdlePosition = 20;
|
|
|
|
engineConfiguration->iacByTpsTaper = 6;
|
|
|
|
engineConfiguration->acIdleExtraOffset = 15;
|
|
|
|
|
|
|
|
engineConfiguration->useIdleTimingPidControl = true;
|
|
|
|
engineConfiguration->idlePidRpmUpperLimit = 350;
|
|
|
|
engineConfiguration->idlePidRpmDeadZone = 100;
|
|
|
|
|
|
|
|
engineConfiguration->idleRpmPid.pFactor = 0.0065;
|
|
|
|
engineConfiguration->idleRpmPid.iFactor = 0.3;
|
|
|
|
engineConfiguration->idle_derivativeFilterLoss = 0.08;
|
|
|
|
engineConfiguration->idle_antiwindupFreq = 0.03;
|
|
|
|
engineConfiguration->idleRpmPid.dFactor = 0.002;
|
|
|
|
engineConfiguration->idleRpmPid.minValue = -8;
|
2023-05-05 17:39:16 -07:00
|
|
|
engineConfiguration->idleRpmPid.maxValue = 10;
|
2023-04-29 11:49:52 -07:00
|
|
|
engineConfiguration->idlerpmpid_iTermMin = -15;
|
|
|
|
engineConfiguration->idlerpmpid_iTermMax = 30;
|
|
|
|
|
|
|
|
// Fan
|
2022-04-10 10:49:14 -07:00
|
|
|
engineConfiguration->enableFan1WithAc = true;
|
2021-10-11 21:26:35 -07:00
|
|
|
|
2023-04-29 11:49:52 -07:00
|
|
|
// Alternator
|
2021-11-17 00:54:21 -08:00
|
|
|
engineConfiguration->isAlternatorControlEnabled = true;
|
2023-04-29 11:49:52 -07:00
|
|
|
engineConfiguration->targetVBatt = 14.0f;
|
2022-04-10 16:11:34 -07:00
|
|
|
engineConfiguration->alternatorControl.offset = 20;
|
|
|
|
engineConfiguration->alternatorControl.pFactor = 16;
|
|
|
|
engineConfiguration->alternatorControl.iFactor = 8;
|
|
|
|
engineConfiguration->alternatorControl.dFactor = 0.1;
|
2021-10-13 17:56:26 -07:00
|
|
|
engineConfiguration->alternatorControl.periodMs = 10;
|
|
|
|
|
2023-04-29 11:49:52 -07:00
|
|
|
// Tach
|
|
|
|
engineConfiguration->tachPulsePerRev = 2;
|
|
|
|
|
2023-09-18 07:41:46 -07:00
|
|
|
#if (FUEL_RPM_COUNT == DEFAULT_FUEL_LOAD_COUNT) && (FUEL_LOAD_COUNT == DEFAULT_FUEL_LOAD_COUNT)
|
2023-04-29 11:49:52 -07:00
|
|
|
// Tables
|
2021-10-02 20:20:30 -07:00
|
|
|
copyArray(config->veRpmBins, mazda_miata_nb2_RpmBins);
|
|
|
|
copyArray(config->veLoadBins, mazda_miata_nb2_LoadBins);
|
2023-09-18 07:41:46 -07:00
|
|
|
#endif
|
2021-10-02 20:20:30 -07:00
|
|
|
|
2023-10-25 07:47:43 -07:00
|
|
|
#if (IGN_RPM_COUNT == DEFAULT_IGN_RPM_COUNT) && (IGN_LOAD_COUNT == DEFAULT_IGN_LOAD_COUNT)
|
2023-09-18 07:41:46 -07:00
|
|
|
copyTable(config->veTable, mapBased18vvtVeTable_NB_fuel_rail);
|
2021-10-02 20:20:30 -07:00
|
|
|
copyArray(config->ignitionRpmBins, ignition18vvtRpmBins);
|
|
|
|
copyArray(config->ignitionLoadBins, ignition18vvtLoadBins);
|
|
|
|
copyTable(config->ignitionTable, mapBased18vvtTimingTable);
|
|
|
|
#endif
|
|
|
|
|
2023-04-29 11:49:52 -07:00
|
|
|
setMazdaMiataNbInjectorLag();
|
2019-09-02 18:55:38 -07:00
|
|
|
|
2023-04-29 11:49:52 -07:00
|
|
|
// Sensors
|
2021-04-21 12:14:48 -07:00
|
|
|
|
2023-04-29 11:49:52 -07:00
|
|
|
// TPS
|
2021-04-01 14:05:01 -07:00
|
|
|
// set tps_min 90
|
|
|
|
engineConfiguration->tpsMin = 100; // convert 12to10 bit (ADC/4)
|
|
|
|
// set tps_max 540
|
|
|
|
engineConfiguration->tpsMax = 650; // convert 12to10 bit (ADC/4)
|
|
|
|
|
2023-04-29 11:49:52 -07:00
|
|
|
// CLT/IAT
|
|
|
|
setCommonNTCSensor(&engineConfiguration->clt, 2700);
|
|
|
|
setCommonNTCSensor(&engineConfiguration->iat, 2700);
|
2019-09-02 14:16:36 -07:00
|
|
|
|
2023-04-29 11:49:52 -07:00
|
|
|
// MAF (todo: do we use this?)
|
|
|
|
setMAFTransferFunction();
|
2022-04-10 16:11:34 -07:00
|
|
|
|
2023-04-29 11:49:52 -07:00
|
|
|
// second harmonic (aka double) is usually quieter background noise
|
|
|
|
engineConfiguration->knockBandCustom = 13.8;
|
2022-04-10 16:11:34 -07:00
|
|
|
|
|
|
|
engineConfiguration->wwaeTau = 0.1;
|
2021-10-02 20:20:30 -07:00
|
|
|
|
2021-11-16 01:15:29 -08:00
|
|
|
miataNA_setCltIdleCorrBins();
|
|
|
|
miataNA_setCltIdleRpmBins();
|
|
|
|
miataNA_setIacCoastingBins();
|
2023-04-29 11:49:52 -07:00
|
|
|
|
|
|
|
// All factory miata setups end up with 1.12 speed sensor turns
|
|
|
|
// per wheel turn, by matching the speedo sensor gear to the
|
|
|
|
// diff ratio
|
|
|
|
|
|
|
|
// - 6 teeth on transmission output shaft
|
|
|
|
// - 23 teeth on speedometer sensor
|
|
|
|
// - 3.909 rear axle ratio
|
|
|
|
// 3.909 * 6 / 21 ~= 1.12
|
|
|
|
engineConfiguration->vssGearRatio = 3.909 * 6 / 21;
|
|
|
|
engineConfiguration->vssToothCount = 4;
|
2021-10-02 20:20:30 -07:00
|
|
|
}
|
|
|
|
|
2021-11-16 01:15:29 -08:00
|
|
|
static void setMazdaMiataEngineNB2Defaults() {
|
2021-11-17 00:54:21 -08:00
|
|
|
strcpy(engineConfiguration->engineCode, "NB2");
|
2021-10-02 20:20:30 -07:00
|
|
|
|
2019-09-02 14:16:36 -07:00
|
|
|
/**
|
|
|
|
* http://miataturbo.wikidot.com/fuel-injectors
|
|
|
|
* 01-05 (purple) - #195500-4060
|
|
|
|
*/
|
|
|
|
engineConfiguration->injector.flow = 265;
|
2021-03-28 05:39:26 -07:00
|
|
|
engineConfiguration->fuelReferencePressure = 400; // 400 kPa, 58 psi
|
|
|
|
engineConfiguration->injectorCompensationMode = ICM_FixedRailPressure;
|
2019-09-02 14:16:36 -07:00
|
|
|
|
2021-11-16 01:15:29 -08:00
|
|
|
setCommonMazdaNB();
|
2019-08-31 17:17:47 -07:00
|
|
|
|
2023-04-29 11:49:52 -07:00
|
|
|
copyArray(config->vvtTable1RpmBins, vvt18fsioRpmBins);
|
|
|
|
copyArray(config->vvtTable1LoadBins, vvt18fsioLoadBins);
|
|
|
|
copyTable(config->vvtTable1, SCRIPT_TABLE_vvt_target);
|
|
|
|
|
|
|
|
// VVT closed loop
|
|
|
|
engineConfiguration->auxPid[0].pFactor = 2;
|
|
|
|
engineConfiguration->auxPid[0].iFactor = 0.005;
|
|
|
|
engineConfiguration->auxPid[0].dFactor = 0.002;
|
|
|
|
engineConfiguration->auxPid[0].offset = 33;
|
|
|
|
engineConfiguration->auxPid[0].minValue = 20;
|
|
|
|
engineConfiguration->auxPid[0].maxValue = 90;
|
|
|
|
|
|
|
|
// Vehicle speed/gears
|
|
|
|
engineConfiguration->totalGearsCount = 6;
|
|
|
|
engineConfiguration->gearRatio[0] = 3.760;
|
|
|
|
engineConfiguration->gearRatio[1] = 2.269;
|
|
|
|
engineConfiguration->gearRatio[2] = 1.646;
|
|
|
|
engineConfiguration->gearRatio[3] = 1.257;
|
|
|
|
engineConfiguration->gearRatio[4] = 1.000;
|
|
|
|
engineConfiguration->gearRatio[5] = 0.843;
|
|
|
|
|
|
|
|
// These may need to change based on your real car
|
|
|
|
engineConfiguration->driveWheelRevPerKm = 538;
|
|
|
|
engineConfiguration->finalGearRatio = 3.909;
|
|
|
|
}
|
2024-03-06 06:49:34 -08:00
|
|
|
#endif // HW_HELLEN
|
2016-10-04 10:03:25 -07:00
|
|
|
|
2020-11-03 17:17:47 -08:00
|
|
|
/**
|
|
|
|
* https://github.com/rusefi/rusefi/wiki/HOWTO-TCU-A42DE-on-Proteus
|
|
|
|
*/
|
2020-12-17 14:12:24 -08:00
|
|
|
#if HW_PROTEUS
|
2021-11-16 01:15:29 -08:00
|
|
|
void setMiataNB2_Proteus_TCU() {
|
2020-11-03 20:21:47 -08:00
|
|
|
engineConfiguration->tcuEnabled = true;
|
|
|
|
|
2022-04-25 20:27:47 -07:00
|
|
|
strcpy(engineConfiguration->engineCode, "NB2");
|
|
|
|
strcpy(engineConfiguration->engineMake, ENGINE_MAKE_MAZDA);
|
|
|
|
strcpy(engineConfiguration->vehicleName, "TCU test");
|
|
|
|
|
2023-05-31 22:56:40 -07:00
|
|
|
engineConfiguration->trigger.type = trigger_type_e::TT_TOOTHED_WHEEL;
|
2020-11-04 09:42:30 -08:00
|
|
|
engineConfiguration->trigger.customTotalToothCount = 10;
|
|
|
|
engineConfiguration->trigger.customSkippedToothCount = 0;
|
|
|
|
|
|
|
|
|
2022-04-28 14:32:39 -07:00
|
|
|
engineConfiguration->triggerInputPins[0] = Gpio::Unassigned;
|
2022-04-25 14:20:56 -07:00
|
|
|
engineConfiguration->tcuInputSpeedSensorPin = PROTEUS_VR_1;
|
2020-11-04 09:42:30 -08:00
|
|
|
|
2022-04-25 14:20:56 -07:00
|
|
|
engineConfiguration->vehicleSpeedSensorInputPin = PROTEUS_VR_2;
|
2020-11-04 09:42:30 -08:00
|
|
|
|
2021-11-27 05:49:07 -08:00
|
|
|
engineConfiguration->driveWheelRevPerKm = 544; // 205/50R15
|
|
|
|
engineConfiguration->vssGearRatio = 4.3;
|
|
|
|
engineConfiguration->vssToothCount = 22;
|
2020-11-04 09:42:30 -08:00
|
|
|
|
2020-11-03 20:21:47 -08:00
|
|
|
// "Highside 2"
|
2022-04-28 14:32:39 -07:00
|
|
|
engineConfiguration->tcu_solenoid[0] = Gpio::A8;
|
2020-11-03 20:21:47 -08:00
|
|
|
// "Highside 1"
|
2022-04-28 14:32:39 -07:00
|
|
|
engineConfiguration->tcu_solenoid[1] = Gpio::A9;
|
2020-11-03 20:21:47 -08:00
|
|
|
|
2020-11-03 20:59:00 -08:00
|
|
|
// "Digital 1" green
|
2022-04-28 14:32:39 -07:00
|
|
|
engineConfiguration->tcuUpshiftButtonPin = Gpio::C6;
|
2021-11-17 00:54:21 -08:00
|
|
|
engineConfiguration->tcuUpshiftButtonPinMode = PI_PULLUP;
|
2020-11-03 20:59:00 -08:00
|
|
|
// "Digital 6" white
|
2022-04-28 14:32:39 -07:00
|
|
|
engineConfiguration->tcuDownshiftButtonPin = Gpio::E15;
|
2021-11-17 00:54:21 -08:00
|
|
|
engineConfiguration->tcuDownshiftButtonPinMode = PI_PULLUP;
|
2020-11-03 19:18:40 -08:00
|
|
|
|
|
|
|
// R
|
|
|
|
config->tcuSolenoidTable[0][0] = 1;
|
|
|
|
config->tcuSolenoidTable[0][1] = 0;
|
|
|
|
// P/N
|
|
|
|
config->tcuSolenoidTable[1][0] = 1;
|
|
|
|
config->tcuSolenoidTable[1][1] = 0;
|
|
|
|
// 1
|
|
|
|
config->tcuSolenoidTable[2][0] = 1;
|
|
|
|
config->tcuSolenoidTable[2][1] = 0;
|
|
|
|
// 2
|
|
|
|
config->tcuSolenoidTable[3][0] = 1;
|
|
|
|
config->tcuSolenoidTable[3][1] = 1;
|
|
|
|
// 3
|
|
|
|
config->tcuSolenoidTable[4][0] = 0;
|
|
|
|
config->tcuSolenoidTable[4][1] = 1;
|
|
|
|
// 4
|
|
|
|
config->tcuSolenoidTable[5][0] = 0;
|
|
|
|
config->tcuSolenoidTable[5][1] = 0;
|
|
|
|
|
2020-12-14 21:09:35 -08:00
|
|
|
}
|
2020-12-17 14:12:24 -08:00
|
|
|
#endif // HW_PROTEUS
|
2021-01-21 23:02:16 -08:00
|
|
|
|
|
|
|
#if HW_HELLEN
|
2024-03-05 17:28:16 -08:00
|
|
|
void setMazdaMiataNB1() {
|
2023-11-03 18:07:54 -07:00
|
|
|
setCommonMazdaNB();
|
|
|
|
strcpy(engineConfiguration->engineCode, "NB1");
|
|
|
|
|
2024-03-05 17:28:16 -08:00
|
|
|
engineConfiguration->injector.flow = 256;
|
|
|
|
|
2023-11-03 18:07:54 -07:00
|
|
|
// Vehicle speed/gears
|
|
|
|
engineConfiguration->totalGearsCount = 5;
|
|
|
|
engineConfiguration->gearRatio[0] = 3.136;
|
|
|
|
engineConfiguration->gearRatio[1] = 1.888;
|
|
|
|
engineConfiguration->gearRatio[2] = 1.330;
|
|
|
|
engineConfiguration->gearRatio[3] = 1.000;
|
|
|
|
engineConfiguration->gearRatio[4] = 0.814;
|
|
|
|
|
|
|
|
// These may need to change based on your real car
|
|
|
|
engineConfiguration->driveWheelRevPerKm = 551;
|
|
|
|
engineConfiguration->finalGearRatio = 4.3;
|
|
|
|
}
|
|
|
|
|
2024-03-05 17:28:16 -08:00
|
|
|
void setMazdaMiataNB2() {
|
2021-11-16 01:15:29 -08:00
|
|
|
setMazdaMiataEngineNB2Defaults();
|
2021-11-17 00:54:21 -08:00
|
|
|
strcpy(engineConfiguration->vehicleName, "H72 test");
|
2021-04-21 12:14:48 -07:00
|
|
|
|
2021-07-24 08:56:29 -07:00
|
|
|
|
|
|
|
// set tps_min 90
|
|
|
|
engineConfiguration->tpsMin = 110; // convert 12to10 bit (ADC/4)
|
|
|
|
|
2021-01-21 23:02:16 -08:00
|
|
|
}
|
2021-08-09 23:34:59 -07:00
|
|
|
|
2024-03-05 17:28:16 -08:00
|
|
|
void setMazdaMiataNB2_36() {
|
|
|
|
setMazdaMiataNB2();
|
2021-08-09 23:34:59 -07:00
|
|
|
|
2023-05-31 22:56:40 -07:00
|
|
|
engineConfiguration->trigger.type = trigger_type_e::TT_TOOTHED_WHEEL_36_1;
|
2021-08-09 23:34:59 -07:00
|
|
|
engineConfiguration->globalTriggerAngleOffset = 76;
|
|
|
|
}
|
|
|
|
|
2021-01-21 23:02:16 -08:00
|
|
|
#endif // HW_HELLEN
|