From 12d9bc50b30da4bae767621e8565081e841588b4 Mon Sep 17 00:00:00 2001 From: rusefi Date: Thu, 5 Sep 2019 10:30:27 -0400 Subject: [PATCH] tle8888 reinit command --- firmware/controllers/injector_central.cpp | 18 ++++++++++++++++-- firmware/hw_layer/drivers/gpio/tle8888.c | 6 +++++- firmware/hw_layer/drivers/gpio/tle8888.h | 1 + firmware/tunerstudio/rusefi.input | 2 ++ 4 files changed, 24 insertions(+), 3 deletions(-) diff --git a/firmware/controllers/injector_central.cpp b/firmware/controllers/injector_central.cpp index 6d567fbf05..a4ddfeee11 100644 --- a/firmware/controllers/injector_central.cpp +++ b/firmware/controllers/injector_central.cpp @@ -37,11 +37,18 @@ #include "idle_thread.h" #include "periodic_thread_controller.h" #include "tps.h" + #if EFI_PROD_CODE #include "rusefi.h" #include "mpu_util.h" #endif /* EFI_PROD_CODE */ +#if (BOARD_TLE8888_COUNT > 0) +#include "gpio/tle8888.h" +#endif + + + EXTERN_ENGINE ; @@ -261,12 +268,19 @@ static void handleCommandX14(uint16_t index) { case 3: grabTPSIsWideOpen(); return; - case 4: + // case 4: tps2_closed + // case 5: tps2_wot + case 6: grabPedalIsUp(); return; - case 5: + case 7: grabPedalIsWideOpen(); return; + case 8: +#if (BOARD_TLE8888_COUNT > 0) + requestTLE8888initialization(); +#endif + return; } diff --git a/firmware/hw_layer/drivers/gpio/tle8888.c b/firmware/hw_layer/drivers/gpio/tle8888.c index a0fc8cdd83..782dc08b9e 100644 --- a/firmware/hw_layer/drivers/gpio/tle8888.c +++ b/firmware/hw_layer/drivers/gpio/tle8888.c @@ -373,7 +373,7 @@ static THD_FUNCTION(tle8888_driver_thread, p) { /* set state to TLE8888_FAILED or force reinit? */ } - /* if bit OE is cleared - reset happend */ + /* if bit OE is cleared - reset happened */ if (!(chip->OpStat[1] & (1 << 6))) { needInitialSpi = true; } @@ -381,6 +381,10 @@ static THD_FUNCTION(tle8888_driver_thread, p) { } } +void requestTLE8888initialization(void) { + needInitialSpi = true; +} + /*==========================================================================*/ /* Driver interrupt handlers. */ /*==========================================================================*/ diff --git a/firmware/hw_layer/drivers/gpio/tle8888.h b/firmware/hw_layer/drivers/gpio/tle8888.h index 7935936796..53c106507b 100644 --- a/firmware/hw_layer/drivers/gpio/tle8888.h +++ b/firmware/hw_layer/drivers/gpio/tle8888.h @@ -51,6 +51,7 @@ extern "C" * @return return gpio chip base */ int tle8888_add(unsigned int index, const struct tle8888_config *cfg); +void requestTLE8888initialization(void); #ifdef __cplusplus } diff --git a/firmware/tunerstudio/rusefi.input b/firmware/tunerstudio/rusefi.input index edf260acb4..0d22105e09 100644 --- a/firmware/tunerstudio/rusefi.input +++ b/firmware/tunerstudio/rusefi.input @@ -1302,6 +1302,7 @@ cmd_calibrate_tps_2_closed = "w\x00\x14\x00\x04" cmd_calibrate_tps_2_wot = "w\x00\x14\x00\x05" cmd_calibrate_pedal_up = "w\x00\x14\x00\x06" cmd_calibrate_pedal_down = "w\x00\x14\x00\x07" +cmd_tle8888_init = "w\x00\x14\x00\x08" cmd_test_radiator_fan = "w\x00\x15\x00\x01" cmd_test_check_engine_light = "w\x00\x16\x00\x01" @@ -2183,6 +2184,7 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00" field = "TLE8888 Chip Select", tle8888_cs field = "TLE8888 SPI", tle8888spiDevice field = "useTLE8888_hall_mode", useTLE8888_hall_mode + commandButton = "Reinit", cmd_tle8888_init dialog = connection, "", yAxis field = "STM32 vRef voltage", adcVcc