From f62731cc991aa19e1c16cddf450fb9c8ee75675c Mon Sep 17 00:00:00 2001 From: rusefi Date: Sat, 20 Apr 2019 23:39:06 -0400 Subject: [PATCH] USB and TLE8888 not working for F4 or F767 #764 --- ...ngine_configuration_generated_structures.h | 24 +++++-- firmware/controllers/algo/rusefi_generated.h | 16 +++-- firmware/controllers/global_shared.h | 2 +- firmware/hw_layer/drivers/gpio/mc33972.h | 2 +- firmware/hw_layer/drivers/gpio/tle6240.h | 2 +- firmware/hw_layer/smart_gpio.cpp | 65 +++++++++++++------ firmware/hw_layer/smart_gpio.h | 2 + firmware/integration/rusefi_config.txt | 10 ++- firmware/tunerstudio/rusefi.ini | 12 +++- firmware/tunerstudio/rusefi.input | 2 + .../models/src/com/rusefi/config/Fields.java | 24 +++++-- 11 files changed, 118 insertions(+), 43 deletions(-) diff --git a/firmware/controllers/algo/engine_configuration_generated_structures.h b/firmware/controllers/algo/engine_configuration_generated_structures.h index 681ff33e80..dae4cd3f74 100644 --- a/firmware/controllers/algo/engine_configuration_generated_structures.h +++ b/firmware/controllers/algo/engine_configuration_generated_structures.h @@ -1,4 +1,4 @@ -// this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Sat Apr 20 14:53:36 EDT 2019 +// this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Sat Apr 20 23:18:45 EDT 2019 // begin #ifndef ENGINE_CONFIGURATION_GENERATED_H_ #define ENGINE_CONFIGURATION_GENERATED_H_ @@ -552,7 +552,15 @@ typedef struct { /** * offset 77 */ - uint8_t unusedSpiPadding9[3]; + brain_pin_e mc33972_cs; + /** + * offset 78 + */ + pin_output_mode_e mc33972_csPinMode; + /** + * offset 79 + */ + uint8_t unusedSpiPadding9; /** * offset 80 */ @@ -1373,7 +1381,15 @@ typedef struct { /** * offset 581 */ - uint8_t unusedt[3]; + brain_pin_e tle6240_cs; + /** + * offset 582 + */ + pin_output_mode_e tle6240_csPinMode; + /** + * offset 583 + */ + uint8_t unusedt; /** * @see hasBaroSensor * offset 584 @@ -2700,4 +2716,4 @@ typedef struct { #endif // end -// this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Sat Apr 20 14:53:36 EDT 2019 +// this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Sat Apr 20 23:18:45 EDT 2019 diff --git a/firmware/controllers/algo/rusefi_generated.h b/firmware/controllers/algo/rusefi_generated.h index d17d076169..f318453028 100644 --- a/firmware/controllers/algo/rusefi_generated.h +++ b/firmware/controllers/algo/rusefi_generated.h @@ -1398,6 +1398,10 @@ #define max31855spiDevice_offset_hex 324 #define maxKnockSubDeg_offset 552 #define maxKnockSubDeg_offset_hex 228 +#define mc33972_cs_offset 677 +#define mc33972_cs_offset_hex 2a5 +#define mc33972_csPinMode_offset 678 +#define mc33972_csPinMode_offset_hex 2a6 #define mc33972spiDevice_offset 4032 #define mc33972spiDevice_offset_hex fc0 #define measureMapOnlyInOneCylinder_offset 744 @@ -1635,6 +1639,10 @@ #define timingMode_offset_hex 1c0 #define timingMultiplier_offset 9872 #define timingMultiplier_offset_hex 2690 +#define tle6240_cs_offset 581 +#define tle6240_cs_offset_hex 245 +#define tle6240_csPinMode_offset 582 +#define tle6240_csPinMode_offset_hex 246 #define tle6240spiDevice_offset 4028 #define tle6240spiDevice_offset_hex fbc #define tle8888_cs_offset 3129 @@ -1777,10 +1785,10 @@ #define unusedSpiPadding7_offset_hex fbd #define unusedSpiPadding8_offset 4033 #define unusedSpiPadding8_offset_hex fc1 -#define unusedSpiPadding9_offset 677 -#define unusedSpiPadding9_offset_hex 2a5 -#define unusedt_offset 581 -#define unusedt_offset_hex 245 +#define unusedSpiPadding9_offset 679 +#define unusedSpiPadding9_offset_hex 2a7 +#define unusedt_offset 583 +#define unusedt_offset_hex 247 #define unusedTest55_offset 3131 #define unusedTest55_offset_hex c3b #define unuseduartPadding1_offset 809 diff --git a/firmware/controllers/global_shared.h b/firmware/controllers/global_shared.h index e48e34cfb9..bb8b0b33f4 100644 --- a/firmware/controllers/global_shared.h +++ b/firmware/controllers/global_shared.h @@ -28,6 +28,7 @@ #define EXTERN_CONFIG \ extern engine_configuration_s *engineConfiguration; \ extern board_configuration_s *boardConfiguration; \ + extern engine_configuration_s activeConfiguration; \ extern persistent_config_s *config; #define EXTERN_ENGINE \ @@ -35,7 +36,6 @@ extern Engine *engine; \ extern persistent_config_container_s persistentState; \ EXTERN_CONFIG \ - extern engine_configuration_s activeConfiguration; \ extern EnginePins enginePins // Use this macro to declare a function which only takes magic references diff --git a/firmware/hw_layer/drivers/gpio/mc33972.h b/firmware/hw_layer/drivers/gpio/mc33972.h index 38e09049fd..86756835b1 100644 --- a/firmware/hw_layer/drivers/gpio/mc33972.h +++ b/firmware/hw_layer/drivers/gpio/mc33972.h @@ -20,7 +20,7 @@ struct mc33972_config { SPIDriver *spi_bus; - const SPIConfig spi_config; + SPIConfig spi_config; }; #ifdef __cplusplus diff --git a/firmware/hw_layer/drivers/gpio/tle6240.h b/firmware/hw_layer/drivers/gpio/tle6240.h index 8ea5f730b9..0ecbc3a06b 100644 --- a/firmware/hw_layer/drivers/gpio/tle6240.h +++ b/firmware/hw_layer/drivers/gpio/tle6240.h @@ -21,7 +21,7 @@ struct tle6240_config { SPIDriver *spi_bus; - const SPIConfig spi_config; + SPIConfig spi_config; struct { ioportid_t port; uint_fast8_t pad; diff --git a/firmware/hw_layer/smart_gpio.cpp b/firmware/hw_layer/smart_gpio.cpp index 6f4ed39622..ec6fdc400a 100644 --- a/firmware/hw_layer/smart_gpio.cpp +++ b/firmware/hw_layer/smart_gpio.cpp @@ -14,19 +14,17 @@ #include "hardware.h" #include "mpu_util.h" #include "gpio_ext.h" +#include "pin_repository.h" #include "drivers/gpio/tle6240.h" #include "drivers/gpio/mc33972.h" #include "drivers/gpio/tle8888.h" EXTERN_CONFIG; +static OutputPin tle8888Cs; +static OutputPin tle6240Cs; +static OutputPin mc33972Cs; // todo: migrate to TS or board config -#ifndef TLE6240_SS_PORT -#define TLE6240_SS_PORT GPIOF -#endif /* TLE6240_SS_PORT */ -#ifndef TLE6240_SS_PAD -#define TLE6240_SS_PAD 0U -#endif /* TLE6240_SS_PAD */ #ifndef TLE6240_RESET_PORT #define TLE6240_RESET_PORT GPIOG #endif /* TLE6240_RESET_PORT */ @@ -57,8 +55,8 @@ struct tle6240_config tle6240 = { .spi_config = { .circular = false, .end_cb = NULL, - .ssport = TLE6240_SS_PORT, - .sspad = TLE6240_SS_PAD, + .ssport = NULL, + .sspad = 0, .cr1 = SPI_CR1_16BIT_MODE | SPI_CR1_SSM | @@ -84,8 +82,8 @@ struct mc33972_config mc33972 = { .spi_config = { .circular = false, .end_cb = NULL, - .ssport = GPIOB, - .sspad = 4U, + .ssport = NULL, + .sspad = 0, .cr1 = SPI_CR1_SSM | SPI_CR1_SSI | @@ -101,8 +99,7 @@ struct mc33972_config mc33972 = { #endif /* (BOARD_MC33972_COUNT > 0) */ #if (BOARD_TLE8888_COUNT > 0) -/* this is homeless tle8888, please find better place for it */ -static struct tle8888_config tle8888_cfg = { +struct tle8888_config tle8888_cfg = { .spi_bus = NULL, .spi_config = { .circular = false, @@ -131,20 +128,32 @@ static struct tle8888_config tle8888_cfg = { #endif void initSmartGpio() { + startSmartCsPins(); int ret; #if (BOARD_TLE6240_COUNT > 0) - tle6240.spi_bus = getSpiDevice(engineConfiguration->tle6240spiDevice); - ret = tle6240_add(0, &tle6240); + if (engineConfiguration->tle6240_cs != GPIO_UNASSIGNED) { + tle6240.spi_bus = getSpiDevice(engineConfiguration->tle6240spiDevice); + ret = tle6240_add(0, &tle6240); + } else { + ret = 0; + } if (ret < 0) #endif /* (BOARD_TLE6240_COUNT > 0) */ /* whenever chip is disabled or error returned - occupy its gpio range */ gpiochip_use_gpio_base(TLE6240_OUTPUTS); #if (BOARD_MC33972_COUNT > 0) - mc33972.spi_bus = getSpiDevice(engineConfiguration->mc33972spiDevice); - // todo: propogate 'basePinOffset' parameter - ret = mc33972_add(0, &mc33972); + if (boardConfiguration->mc33972_cs != GPIO_UNASSIGNED) { + // todo: reuse initSpiCs method? + mc33972.spi_config.ssport = getHwPort("tle8888 CS", boardConfiguration->mc33972_cs); + mc33972.spi_config.sspad = getHwPin("tle8888 CS", boardConfiguration->mc33972_cs); + mc33972.spi_bus = getSpiDevice(engineConfiguration->mc33972spiDevice); + // todo: propogate 'basePinOffset' parameter + ret = mc33972_add(0, &mc33972); + } else { + ret = 0; + } if (ret < 0) #endif /* (BOARD_MC33972_COUNT > 0) */ /* whenever chip is disabled or error returned - occupy its gpio range */ @@ -152,10 +161,7 @@ void initSmartGpio() { #if (BOARD_TLE8888_COUNT > 0) if (engineConfiguration->tle8888_cs != GPIO_UNASSIGNED) { - static OutputPin tle8888Cs; // SPI pins are enabled in initSpiModules() - tle8888Cs.initPin("tle8888 CS", engineConfiguration->tle8888_cs, - &engineConfiguration->tle8888_csPinMode); // todo: reuse initSpiCs method? tle8888_cfg.spi_config.ssport = getHwPort("tle8888 CS", engineConfiguration->tle8888_cs); @@ -177,7 +183,24 @@ void initSmartGpio() { #if (BOARD_EXT_GPIOCHIPS > 0) /* external chip init */ gpiochips_init(); -#endif +#endif /* (BOARD_EXT_GPIOCHIPS > 0) */ } +#if (BOARD_EXT_GPIOCHIPS > 0) +void stopSmartCsPins() { + brain_pin_markUnused(activeConfiguration.tle8888_cs); + brain_pin_markUnused(activeConfiguration.tle6240_cs); + brain_pin_markUnused(activeConfiguration.bc.mc33972_cs); +} + +void startSmartCsPins() { + tle8888Cs.initPin("tle8888 CS", engineConfiguration->tle8888_cs, + &engineConfiguration->tle8888_csPinMode); + tle6240Cs.initPin("tle8888 CS", engineConfiguration->tle6240_cs, + &engineConfiguration->tle6240_csPinMode); + mc33972Cs.initPin("mc33972 CS", boardConfiguration->mc33972_cs, + &boardConfiguration->mc33972_csPinMode); +} +#endif /* (BOARD_EXT_GPIOCHIPS > 0) */ + #endif /* EFI_PROD_CODE */ diff --git a/firmware/hw_layer/smart_gpio.h b/firmware/hw_layer/smart_gpio.h index 0ea9eb6c9b..6e8afc81fa 100644 --- a/firmware/hw_layer/smart_gpio.h +++ b/firmware/hw_layer/smart_gpio.h @@ -14,5 +14,7 @@ #define MC33972_PIN(n) ((brain_pin_e)((int)BRAIN_PIN_LAST_ONCHIP + 1 + 16 + (n))) void initSmartGpio(void); +void startSmartCsPins(); +void stopSmartCsPins(); #endif /* HW_LAYER_SMART_GPIO_H_ */ diff --git a/firmware/integration/rusefi_config.txt b/firmware/integration/rusefi_config.txt index 46ba4d59af..77a9bb41ec 100644 --- a/firmware/integration/rusefi_config.txt +++ b/firmware/integration/rusefi_config.txt @@ -455,7 +455,10 @@ end_struct afr_sensor_s afr adc_channel_e throttlePedalPositionAdcChannel;Electronic throttle pedal position input\nSee also tpsAdcChannel -uint8_t[3] unusedt; + brain_pin_e tle6240_cs; + pin_output_mode_e tle6240_csPinMode; + +uint8_t[1] unusedt; air_pressure_sensor_config_s baroSensor;@see hasBaroSensor @@ -523,7 +526,10 @@ brain_pin_e clutchDownPin;some cars have a switch to indicate that clutch pedal spi_device_e digitalPotentiometerSpiDevice;Digital Potentiometer is used by stock ECU stimulation code - uint8_t[3] unusedSpiPadding9; + brain_pin_e mc33972_cs; + pin_output_mode_e mc33972_csPinMode; + + uint8_t[1] unusedSpiPadding9; custom adc_channel_mode_e 4 bits, U32, @OFFSET@, [0:1], "Off", "Slow", "Fast", "INVALID" diff --git a/firmware/tunerstudio/rusefi.ini b/firmware/tunerstudio/rusefi.ini index 9dd26d1eb1..84068f91f0 100644 --- a/firmware/tunerstudio/rusefi.ini +++ b/firmware/tunerstudio/rusefi.ini @@ -68,7 +68,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Sat Apr 20 14:53:36 EDT 2019 +; this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Sat Apr 20 23:18:45 EDT 2019 pageSize = 20000 page = 1 @@ -204,7 +204,9 @@ page = 1 afr_v2 = scalar, F32, 572, "volts", 1, 0.0, 0, 10.0, 2 afr_value2 = scalar, F32, 576, "AFR", 1, 0.0, 0, 1000.0, 2 throttlePedalPositionAdcChannel = bits, U08, 580, [0:4] "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "Disabled", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" -;no TS info - skipping unusedt offset 581 + tle6240_cs = bits, U08, 581, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" + tle6240_csPinMode = bits, U08, 582, [0:1], "default", "default inverted", "open collector", "open collector inverted" +;no TS info - skipping unusedt offset 583 baroSensor_lowValue = scalar, F32, 584, "kpa", 1, 0, -400, 800, 2 baroSensor_highValue = scalar, F32, 588, "kpa", 1, 0, -400, 800, 2 baroSensor_type = bits, U32, 592, [0:3] "Custom", "DENSO183", "MPX4250", "HONDA3BAR", "NEON_2003", "22012AA090", "3 Bar", "MPX4100", "Toyota 89420-02010", "MPX4250A", "INVALID" @@ -272,7 +274,9 @@ page = 1 cj125CsPin = bits, U08, 674, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" ;no TS info - skipping unusedEtbM offset 675 digitalPotentiometerSpiDevice = bits,U32, 676, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" -;no TS info - skipping unusedSpiPadding9 offset 677 + mc33972_cs = bits, U08, 677, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" + mc33972_csPinMode = bits, U08, 678, [0:1], "default", "default inverted", "open collector", "open collector inverted" +;no TS info - skipping unusedSpiPadding9 offset 679 etb1_directionPin1 = bits, U08, 680, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" etb1_directionPin2 = bits, U08, 681, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" etb1_controlPin1 = bits, U08, 682, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" @@ -2426,7 +2430,9 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00" dialog = allPins1 field = "TLE8888 CS", tle8888_cs field = "TLE8888 SPI", tle8888spiDevice + field = "tle6240_cs", tle6240_cs field = "tle6240 SPI", tle6240spiDevice + field = "mc33972_cs", mc33972_cs field = "mc33972 SPI", mc33972spiDevice field = "warninig Led", warninigLedPin field = "fatal Error Led", fatalErrorPin diff --git a/firmware/tunerstudio/rusefi.input b/firmware/tunerstudio/rusefi.input index 3460cf2d66..a42e9e08f4 100644 --- a/firmware/tunerstudio/rusefi.input +++ b/firmware/tunerstudio/rusefi.input @@ -1504,7 +1504,9 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00" dialog = allPins1 field = "TLE8888 CS", tle8888_cs field = "TLE8888 SPI", tle8888spiDevice + field = "tle6240_cs", tle6240_cs field = "tle6240 SPI", tle6240spiDevice + field = "mc33972_cs", mc33972_cs field = "mc33972 SPI", mc33972spiDevice field = "warninig Led", warninigLedPin field = "fatal Error Led", fatalErrorPin diff --git a/java_console/models/src/com/rusefi/config/Fields.java b/java_console/models/src/com/rusefi/config/Fields.java index 17c31a6e82..949448739f 100644 --- a/java_console/models/src/com/rusefi/config/Fields.java +++ b/java_console/models/src/com/rusefi/config/Fields.java @@ -1,6 +1,6 @@ package com.rusefi.config; -// this file was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Sat Apr 20 14:42:58 EDT 2019 +// this file was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Sat Apr 20 23:18:45 EDT 2019 public class Fields { public static final int accelerometerSpiDevice_offset = 2736; public static final int acCutoffHighRpm_offset = 1498; @@ -914,6 +914,8 @@ public class Fields { public static final int max31855spiDevice_offset_hex = 324; public static final int maxKnockSubDeg_offset = 552; public static final int maxKnockSubDeg_offset_hex = 228; + public static final int mc33972_cs_offset = 677; + public static final int mc33972_csPinMode_offset = 678; public static final int mc33972spiDevice_offset = 4032; public static final int measureMapOnlyInOneCylinder_offset = 744; public static final int NARROW_BAND_WIDE_BAND_CONVERSION_SIZE = 8; @@ -1050,6 +1052,10 @@ public class Fields { public static final int timingMode_offset = 448; public static final int timingMultiplier_offset = 9872; public static final int timingMultiplier_offset_hex = 2690; + public static final int tle6240_cs_offset = 581; + public static final int tle6240_cs_offset_hex = 245; + public static final int tle6240_csPinMode_offset = 582; + public static final int tle6240_csPinMode_offset_hex = 246; public static final int tle6240spiDevice_offset = 4028; public static final int tle8888_cs_offset = 3129; public static final int tle8888_csPinMode_offset = 3130; @@ -1140,9 +1146,9 @@ public class Fields { public static final int unusedSpiPadding6_offset = 4025; public static final int unusedSpiPadding7_offset = 4029; public static final int unusedSpiPadding8_offset = 4033; - public static final int unusedSpiPadding9_offset = 677; - public static final int unusedt_offset = 581; - public static final int unusedt_offset_hex = 245; + public static final int unusedSpiPadding9_offset = 679; + public static final int unusedt_offset = 583; + public static final int unusedt_offset_hex = 247; public static final int unusedTest55_offset = 3131; public static final int unuseduartPadding1_offset = 809; public static final int unuseduartPadding1_offset_hex = 329; @@ -1340,16 +1346,19 @@ public class Fields { public static final Field AFR_V2 = Field.create("AFR_V2", 572, FieldType.FLOAT); public static final Field AFR_VALUE2 = Field.create("AFR_VALUE2", 576, FieldType.FLOAT); public static final Field THROTTLEPEDALPOSITIONADCCHANNEL = Field.create("THROTTLEPEDALPOSITIONADCCHANNEL", 580, FieldType.INT8, adc_channel_e); + public static final String[] brain_pin_e = {"NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"}; + public static final Field TLE6240_CS = Field.create("TLE6240_CS", 581, FieldType.INT8, brain_pin_e); + public static final String[] pin_output_mode_e = {"default", "default inverted", "open collector", "open collector inverted"}; + public static final Field TLE6240_CSPINMODE = Field.create("TLE6240_CSPINMODE", 582, FieldType.INT8, pin_output_mode_e); + public static final Field UNUSEDT = Field.create("UNUSEDT", 583, FieldType.INT8); public static final Field BAROSENSOR_LOWVALUE = Field.create("BAROSENSOR_LOWVALUE", 584, FieldType.FLOAT); public static final Field BAROSENSOR_HIGHVALUE = Field.create("BAROSENSOR_HIGHVALUE", 588, FieldType.FLOAT); public static final Field BAROSENSOR_TYPE = Field.create("BAROSENSOR_TYPE", 592, FieldType.INT); public static final Field BAROSENSOR_HWCHANNEL = Field.create("BAROSENSOR_HWCHANNEL", 596, FieldType.INT8, adc_channel_e); public static final Field IDLE_SOLENOIDFREQUENCY = Field.create("IDLE_SOLENOIDFREQUENCY", 600, FieldType.INT); - public static final String[] brain_pin_e = {"NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"}; public static final Field IDLE_SOLENOIDPIN = Field.create("IDLE_SOLENOIDPIN", 604, FieldType.INT8, brain_pin_e); public static final Field IDLE_STEPPERDIRECTIONPIN = Field.create("IDLE_STEPPERDIRECTIONPIN", 605, FieldType.INT8, brain_pin_e); public static final Field IDLE_STEPPERSTEPPIN = Field.create("IDLE_STEPPERSTEPPIN", 606, FieldType.INT8, brain_pin_e); - public static final String[] pin_output_mode_e = {"default", "default inverted", "open collector", "open collector inverted"}; public static final Field IDLE_SOLENOIDPINMODE = Field.create("IDLE_SOLENOIDPINMODE", 607, FieldType.INT8, pin_output_mode_e); public static final Field MANIDLEPOSITION = Field.create("MANIDLEPOSITION", 608, FieldType.FLOAT); public static final Field MAPFREQUENCY0KPA = Field.create("MAPFREQUENCY0KPA", 612, FieldType.FLOAT); @@ -1409,6 +1418,9 @@ public class Fields { public static final Field CJ125CSPIN = Field.create("CJ125CSPIN", 674, FieldType.INT8, brain_pin_e); public static final Field UNUSEDETBM = Field.create("UNUSEDETBM", 675, FieldType.INT8); public static final Field DIGITALPOTENTIOMETERSPIDEVICE = Field.create("DIGITALPOTENTIOMETERSPIDEVICE", 676, FieldType.INT8); + public static final Field MC33972_CS = Field.create("MC33972_CS", 677, FieldType.INT8, brain_pin_e); + public static final Field MC33972_CSPINMODE = Field.create("MC33972_CSPINMODE", 678, FieldType.INT8, pin_output_mode_e); + public static final Field UNUSEDSPIPADDING9 = Field.create("UNUSEDSPIPADDING9", 679, FieldType.INT8); public static final Field ETB1_DIRECTIONPIN1 = Field.create("ETB1_DIRECTIONPIN1", 680, FieldType.INT8, brain_pin_e); public static final Field ETB1_DIRECTIONPIN2 = Field.create("ETB1_DIRECTIONPIN2", 681, FieldType.INT8, brain_pin_e); public static final Field ETB1_CONTROLPIN1 = Field.create("ETB1_CONTROLPIN1", 682, FieldType.INT8, brain_pin_e);