From a0710f7ee7918ce57f3bb7e79b2931b603377c58 Mon Sep 17 00:00:00 2001 From: Emanuele Trabattoni Date: Thu, 26 Mar 2026 18:22:22 +0100 Subject: [PATCH] Pins and devices refactoring in progress --- Datasheet/71-Sz0dbf9L._AC_SL1500_.jpg | Bin 0 -> 143984 bytes RotaxMonitor/platformio.ini | 2 + RotaxMonitor/src/devices.h | 52 +++++--- RotaxMonitor/src/isr.h | 122 ++++++++++--------- RotaxMonitor/src/main.cpp | 57 +++------ RotaxMonitor/src/pins.h | 163 ++++++++++++++++---------- RotaxMonitor/src/tasks.h | 143 ++++++++++++++-------- 7 files changed, 314 insertions(+), 225 deletions(-) create mode 100644 Datasheet/71-Sz0dbf9L._AC_SL1500_.jpg diff --git a/Datasheet/71-Sz0dbf9L._AC_SL1500_.jpg b/Datasheet/71-Sz0dbf9L._AC_SL1500_.jpg new file mode 100644 index 0000000000000000000000000000000000000000..de1b7c22c9bf260ba336aa045be9a42496660dc5 GIT binary patch literal 143984 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⁢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

l@gQ*b0Q}Q?a>y-wB)Nn%aklw z}fO|n|UBJWN1%SNWtHeJmfe0mO^2&5VlF3#om0bw`04y)tnJqp| zrA&}S$jz}HW_{p@Ce(M>N@I*6+A%8HbHgEEiy2C_L}WLHjgixUQ_Z@F%%wSAV&vHs zpg%ddd6+=4ZljzU>%^V}zGHIl3vdrXFSZmYT`=tgJVf4?S z56Sn`HGBi~iG3E>lsa&W0Mfi1h*gplwIdlD+!h-I-%L4VRb}N+lIeSE5emWbNL~a& zPTUcy-L)QL9Hy@eQs>!US%QN0Wr-D5msCH2OfmEM%*?_@e&+@}I#a z`utJ;8Y)=XUiA3u-J;Bl8f=jZVFwvtOmnMHL#R(}JZ@wi8@Z~QC|QII3_ z;O#ia1$P~vUVjIV{QUku9v`Pai_hTm_&oj(ANY96Q6QHd@Q4axiiiAs{vQwc`TTZ& z2ao(LJ0K83M+_-#(GbETz+-7f?EOGRH;< zR7yP(m3RKKrxjo}v;05O7}(?(TZ;Uz(+Q*2m_#`kD5NE3!m~dK^Qa}{i*W4O+ymSJ zqThtmLDX!@{olFEG6rKr1w5?=0tKoyyDEs(6q^VV3se9(77wxw#fKl0&_{UwS`|SR zp6=(GI+eZ+UciPT+$M?^{n;XwwMjLB1^nhwM}L!2&jt!peSpKt&ap2~Dt7=uhe7X` zK&bu?9atX>`YHM(tWNgQfoj`8BSOYMhzP~%9aa}qn1V;O!U$?Z;9-xaAnrKwal|JH zoHry;bdW@)@z7Q4BpSM_iYv&sOfSq!P!5llFhw-rNcHXqhIfNsd`u?*jqttAsmRSGPNa-Ic`u`9%Bc$o-Z{u1dKA&V-zj`lB+c zMCt_x2ZsWHZ6{1ICT`RqcI>gEAXO=4PduM2?MUA62zOayD&tUy)j%}0KF^E=IF(_5 zYPb@7h_|Rv(33wX4-b?;iRG5oJ5mXf2Nk%Z73+ZHBBB&*W8Ict7J|J5U2`NwYZT$F z$fY(9FbFhZMg>Bey$=*ES%egzO7jpfKonL|p0S-)`*#58!@#Cg3Gb} zp~OL#NfRdoPbnJd)DTt-E(aA3o

siX%LW34$OzDPbywhEUx@6XKKw$qcH-CV;Rm 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 UYD@0TNqyNS-}~wR0P->a*$Q@9JOBUy literal 0 HcmV?d00001 diff --git a/RotaxMonitor/platformio.ini b/RotaxMonitor/platformio.ini index f13f7af..e25f1a5 100644 --- a/RotaxMonitor/platformio.ini +++ b/RotaxMonitor/platformio.ini @@ -17,6 +17,7 @@ lib_deps = bblanchon/ArduinoJson@^7.4.2 hideakitai/PCA95x5@^0.1.3 adafruit/Adafruit SSD1306@^2.5.16 + garfius/Menu-UI@^1.2.0 board_build.partitions = partitions/default_16MB.csv board_build.psram = enabled monitor_speed = 115200 @@ -31,6 +32,7 @@ lib_deps = ${env:esp32-s3-n16r8.lib_deps} hideakitai/PCA95x5@^0.1.3 adafruit/Adafruit SSD1306@^2.5.16 + garfius/Menu-UI@^1.2.0 board_build.partitions = partitions/default_16MB.csv board_build.psram = enabled monitor_speed = 115200 diff --git a/RotaxMonitor/src/devices.h b/RotaxMonitor/src/devices.h index 53b82a8..797c9c0 100644 --- a/RotaxMonitor/src/devices.h +++ b/RotaxMonitor/src/devices.h @@ -6,33 +6,53 @@ #include #include -// ADC Channel mapping -#define PICKUP_IN_A12 SING_0 -#define PICKUP_IN_A34 SING_1 -#define PICKUP_OUT_A12 SING_2 -#define PICKUP_OUT_A34 SING_3 +// ADC Channel mapping Ignition A +#define IN_A12_P SING_0 +#define IN_A12_N SING_1 +#define IN_A34_P SING_2 +#define IN_A34_N SING_3 +#define OUT_A12_P SING_4 +#define OUT_A12_N SING_5 +#define OUT_A34_P SING_6 +#define OUT_A34_N SING_7 -#define PICKUP_IN_B12 SING_4 -#define PICKUP_IN_B34 SING_5 -#define PICKUP_OUT_B12 SING_6 -#define PICKUP_OUT_B34 SING_7 +// ADC Channel mapping Ignition B +#define IN_A12_P SING_0 +#define IN_A12_N SING_1 +#define IN_A34_P SING_2 +#define IN_A34_N SING_3 +#define OUT_A12_P SING_4 +#define OUT_A12_N SING_5 +#define OUT_A34_P SING_6 +#define OUT_A34_N SING_7 struct Devices { - AD5292* pot; - ADS1256* adc; + AD5292* pot_a, pot_b; + ADS1256* adc_a, adc_b; Adafruit_SSD1306* lcd; PCA9555* io; }; -float adcReadChannel(ADS1256* adc, const uint32_t ch){ - adc->setMUX(PICKUP_IN_A12); +inline float adcAReadChannel(ADS1256* adc, const uint32_t ch){ + adc->setMUX(ch); // scarta 3 conversioni for (int i = 0; i < 3; i++) { - while (digitalRead(ADC_DRDY)); + while (digitalRead(ADC_A_DRDY)); adc->readSingle(); } - // ora lettura valida a 30kSPS → ~100 µs di settling - while (digitalRead(ADC_DRDY)); + while (digitalRead(ADC_A_DRDY)); + return adc->convertToVoltage(adc->readSingle()); +} + +inline float adcBReadChannel(ADS1256* adc, const uint32_t ch){ + adc->setMUX(ch); + // scarta 3 conversioni + for (int i = 0; i < 3; i++) { + while (digitalRead(ADC_B_DRDY)); + adc->readSingle(); + } + // ora lettura valida a 30kSPS → ~100 µs di settling + while (digitalRead(ADC_B_DRDY)); return adc->convertToVoltage(adc->readSingle()); } diff --git a/RotaxMonitor/src/isr.h b/RotaxMonitor/src/isr.h index 02dee23..125e292 100644 --- a/RotaxMonitor/src/isr.h +++ b/RotaxMonitor/src/isr.h @@ -4,12 +4,10 @@ #include "soc/gpio_struct.h" #include "pins.h" -#define CORE_0 0 -#define CORE_1 1 -#define TASK_STACK 4096 // in words -#define TASK_PRIORITY 2 // priorità leggermente più alta - -#define IGN_BUF_SIZE 128 +#define CORE_0 0 +#define CORE_1 1 +#define TASK_STACK 4096 // in words +#define TASK_PRIORITY 2 // priorità leggermente più alta // ===================== // Event Flags (bitmask) @@ -23,10 +21,10 @@ #define TRIG_FLAG_B34P (1 << 5) #define TRIG_FLAG_B34N (1 << 7) -#define SPARK_FLAG_A12 (1 << 0) -#define SPARK_FLAG_A34 (1 << 2) -#define SPARK_FLAG_B12 (1 << 1) -#define SPARK_FLAG_B34 (1 << 3) +#define SPARK_FLAG_A12 (1 << 8) +#define SPARK_FLAG_A34 (1 << 9) +#define SPARK_FLAG_B12 (1 << 10) +#define SPARK_FLAG_B34 (1 << 11) // Task handle TaskHandle_t trigA_TaskHandle = NULL; @@ -48,30 +46,29 @@ enum sparkStatus SPARK_SYNC_FAIL, }; -// Task internal Status -struct ignitionBoxStatus +enum softStartStatus { - // start time from ISR - int64_t trig12_start = 0; - int64_t trig34_start = 0; - // time at which spark occours - int64_t spark12_start = 0; - int64_t spark34_start = 0; - // computed delay from pickup to spark - int64_t spark12_delay = 0; - int64_t spark34_delay = 0; - // spark status - sparkStatus spark12_status = sparkStatus::SPARK_POS_OK; - sparkStatus spark34_status = sparkStatus::SPARK_POS_OK; - // soft start status for circuits 12 and 34 - bool soft12_engaged = false; - bool soft34_engaged = false; - // peak voltage from circuits 12 and 34 - float volts12_pickup = 0.0; - float volts34_pickup = 0.0; - // peak voltage from conditioned output 12 and 34 - float volts12_out = 0.0; - float volts34_out = 0.0; + SOFT_START, + NORMAL +}; + +typedef struct coilsStatus +{ + int64_t trig_time; + int64_t spark_time; + int64_t spark_delay; + sparkStatus spark_status; + softStartStatus soft_start_status; + float pickup_volts; + float output_volts; +}; + +// Task internal Status +typedef struct ignitionBoxStatus +{ + // coils pairs for each ignition + coilsStatus coils12; + coilsStatus coils34; // voltage from generator float volts_gen = 0.0; }; @@ -79,9 +76,6 @@ struct ignitionBoxStatus ignitionBoxStatus ignA_status; ignitionBoxStatus ignB_status; -ignitionBoxStatus ingA_statusBuffer[IGN_BUF_SIZE]; -ignitionBoxStatus ingB_statusBuffer[IGN_BUF_SIZE]; - // Pin to flag Map static uint32_t pin2trig[49]; void initTriggerPinMapping() @@ -112,38 +106,40 @@ void initSparkPinMapping() void IRAM_ATTR trig_isr_a() { BaseType_t xHigherPriorityTaskWoken = pdFALSE; - const int64_t startTime = esp_timer_get_time(); - if (!trigA_TaskHandle) return; // exit if task is not running + volatile const int64_t time_us = esp_timer_get_time(); + if (!trigA_TaskHandle) + return; // exit if task is not running uint32_t status = GPIO.status; - uint32_t flags = 0; + uint32_t pickup_flags = 0; while (status) { uint32_t pin = __builtin_ctz(status); // trova primo bit attivo status &= ~(1 << pin); // clear bit - flags |= pin2trig[pin]; + pickup_flags |= pin2trig[pin]; } - if (flags & TRIG_FLAG_A12P) - ignA_status.trig12_start = startTime; - if (flags & TRIG_FLAG_A34P) - ignA_status.trig34_start = startTime; + if (pickup_flags & TRIG_FLAG_A12P) + ignA_status.coils12.trig_time = time_us; + if (pickup_flags & TRIG_FLAG_A34P) + ignA_status.coils34.trig_time = time_us; - xTaskNotifyFromISR(trigA_TaskHandle, flags, eSetBits, &xHigherPriorityTaskWoken); + xTaskNotifyFromISR(trigA_TaskHandle, pickup_flags, eSetBits, &xHigherPriorityTaskWoken); portYIELD_FROM_ISR(xHigherPriorityTaskWoken); } void IRAM_ATTR spark_a() { BaseType_t xHigherPriorityTaskWoken = pdFALSE; - const int64_t startTime = esp_timer_get_time(); - if (!trigA_TaskHandle) return; + volatile const int64_t time_us = esp_timer_get_time(); + if (!trigA_TaskHandle) + return; uint32_t spark_flag = GPIO.status1.val & SPARK_A12 ? SPARK_FLAG_A12 : SPARK_FLAG_A34; if (spark_flag & SPARK_FLAG_A12) - ignA_status.spark12_start = startTime; + ignA_status.coils12.spark_time = time_us; if (spark_flag & SPARK_FLAG_A34) - ignA_status.spark34_start = startTime; + ignA_status.coils12.spark_time = time_us; xTaskNotifyFromISR(trigA_TaskHandle, spark_flag, eSetBits, &xHigherPriorityTaskWoken); portYIELD_FROM_ISR(xHigherPriorityTaskWoken); } @@ -151,38 +147,40 @@ void IRAM_ATTR spark_a() void IRAM_ATTR trig_isr_b() { BaseType_t xHigherPriorityTaskWoken = pdFALSE; - const int64_t startTime = esp_timer_get_time(); - if (!trigB_TaskHandle) return; // exit if task is not running + volatile const int64_t time_us = esp_timer_get_time(); + if (!trigB_TaskHandle) + return; // exit if task is not running uint32_t status = GPIO.status; - uint32_t flags = 0; + uint32_t pickup_flags = 0; while (status) { uint32_t pin = __builtin_ctz(status); // trova primo bit attivo status &= ~(1 << pin); // clear bit - flags |= pin2trig[pin]; + pickup_flags |= pin2trig[pin]; } - if (flags & TRIG_FLAG_B12P) - ignB_status.trig12_start = startTime; - if (flags & TRIG_FLAG_B34P) - ignB_status.trig34_start = startTime; + if (pickup_flags & TRIG_FLAG_B12P) + ignB_status.coils12.trig_time = time_us; + if (pickup_flags & TRIG_FLAG_B34P) + ignB_status.coils34.trig_time = time_us; - xTaskNotifyFromISR(trigB_TaskHandle, flags, eSetBits, &xHigherPriorityTaskWoken); + xTaskNotifyFromISR(trigB_TaskHandle, pickup_flags, eSetBits, &xHigherPriorityTaskWoken); portYIELD_FROM_ISR(xHigherPriorityTaskWoken); } void IRAM_ATTR spark_b() { BaseType_t xHigherPriorityTaskWoken = pdFALSE; - const int64_t startTime = esp_timer_get_time(); - if (!trigB_TaskHandle) return; + volatile const int64_t time_us = esp_timer_get_time(); + if (!trigB_TaskHandle) + return; uint32_t spark_flag = GPIO.status1.val & SPARK_B12 ? SPARK_FLAG_B12 : SPARK_FLAG_B34; if (spark_flag & SPARK_FLAG_B12) - ignB_status.spark12_start = startTime; + ignB_status.coils12.spark_time = time_us; if (spark_flag & SPARK_FLAG_B34) - ignB_status.spark34_start = startTime; + ignB_status.coils34.spark_time = time_us; xTaskNotifyFromISR(trigB_TaskHandle, spark_flag, eSetBits, &xHigherPriorityTaskWoken); portYIELD_FROM_ISR(xHigherPriorityTaskWoken); } diff --git a/RotaxMonitor/src/main.cpp b/RotaxMonitor/src/main.cpp index ef59223..685e9ad 100644 --- a/RotaxMonitor/src/main.cpp +++ b/RotaxMonitor/src/main.cpp @@ -28,38 +28,13 @@ void setup() LOG_INFO("ESP32 Heap:", ESP.getHeapSize()); LOG_INFO("ESP32 Sketch:", ESP.getFreeSketchSpace()); - // Initialize Interrupt pins on coil detectors - pinMode(TRIG_A12P, INPUT_PULLDOWN); - pinMode(TRIG_A12N, INPUT_PULLDOWN); - pinMode(TRIG_A34P, INPUT_PULLDOWN); - pinMode(TRIG_A34N, INPUT_PULLDOWN); - pinMode(TRIG_B12P, INPUT_PULLDOWN); - pinMode(TRIG_B12N, INPUT_PULLDOWN); - pinMode(TRIG_B34P, INPUT_PULLDOWN); - pinMode(TRIG_B34N, INPUT_PULLDOWN); + // Initialize Interrupt pins on PICKUP detectors + initTriggerPinsInputs(); initTriggerPinMapping(); - // Initialize Interrupt pins on spark detectors - pinMode(SPARK_A12, INPUT_PULLDOWN); - pinMode(SPARK_A34, INPUT_PULLDOWN); - pinMode(SPARK_B12, INPUT_PULLDOWN); - pinMode(SPARK_B34, INPUT_PULLDOWN); + // Initialize Interrupt pins on SPARK detectors + initSparkPinInputs(); initSparkPinMapping(); - // Ignition A Interrupts - attachInterrupt(TRIG_A12P, trig_isr_a, RISING); - attachInterrupt(TRIG_A34P, trig_isr_a, RISING); - attachInterrupt(TRIG_A12N, trig_isr_a, RISING); - attachInterrupt(TRIG_A34N, trig_isr_a, RISING); - attachInterrupt(SPARK_A12, spark_a, RISING); - attachInterrupt(SPARK_A34, spark_a, RISING); - // Ignition B Interrupts - attachInterrupt(TRIG_B12P, trig_isr_b, RISING); - attachInterrupt(TRIG_B34P, trig_isr_b, RISING); - attachInterrupt(TRIG_B12N, trig_isr_b, RISING); - attachInterrupt(TRIG_B34N, trig_isr_b, RISING); - attachInterrupt(SPARK_B12, spark_b, RISING); - attachInterrupt(SPARK_B34, spark_b, RISING); - // Init SPI interface SPI.begin(); } @@ -71,7 +46,7 @@ void loop() Devices dev; // Init devices - dev.adc = new ADS1256(ADC_DRDY, ADC_RST, ADC_SYNC, ADC_CS, 2.5, &SPI); + dev.adca = new ADS1256(ADC_DRDY, ADC_RST, ADC_SYNC, ADC_CS, 2.5, &SPI); dev.adc->InitializeADC(); dev.adc->setPGA(PGA_1); dev.adc->setDRATE(DRATE_1000SPS); @@ -87,19 +62,23 @@ void loop() CORE_0); // Ignition B on Core 1 - auto ignB_task_success = xTaskCreatePinnedToCore( - ignitionB_task, - "ignitionB_task", - TASK_STACK, - (void *)&dev, - TASK_PRIORITY, // priorità leggermente più alta - &trigA_TaskHandle, - CORE_1); + auto ignB_task_success = pdPASS; + // auto ignB_task_success = xTaskCreatePinnedToCore( + // ignitionB_task, + // "ignitionB_task", + // TASK_STACK, + // (void *)&dev, + // TASK_PRIORITY, // priorità leggermente più alta + // &trigA_TaskHandle, + // CORE_1); if ((ignA_task_success && ignB_task_success) != pdPASS) { LOG_ERROR("Unble to initialize ISR task"); - } + LOG_ERROR("5 seconds to restart..."); + vTaskDelay(pdMS_TO_TICKS(5000)); + esp_restart(); + } LOG_INFO("Real Time Tasks A&B initialized"); ////////////////////// MAIN LOOP ////////////////////// diff --git a/RotaxMonitor/src/pins.h b/RotaxMonitor/src/pins.h index b558dec..06a6b6c 100644 --- a/RotaxMonitor/src/pins.h +++ b/RotaxMonitor/src/pins.h @@ -1,86 +1,129 @@ #pragma once // ===================== -// SPI BUS +// USB (RISERVATA) // ===================== -#define SPI_MOSI 11 -#define SPI_MISO 13 -#define SPI_SCK 12 +#define USB_DM 19 +#define USB_DP 20 // ===================== -// I2C BUS +// UART DEBUG (RISERVATA) // ===================== -#define SDA 8 -#define SCL 9 +#define UART_TX 43 +#define UART_RX 44 // ===================== -// ADC CONTROL +// RGB Led // ===================== -#define ADC_CS 10 -#define ADC_DRDY 4 -#define ADC_RST 5 -#define ADC_SYNC 6 +#define LED 48 + +// ===================== +// STRAPPING (NON USARE) +// ===================== +// 0, 3 + +// ===================== +// SPI BUS ADC1 (VSPI) +// ===================== +#define SPI_A_MOSI 11 +#define SPI_A_MISO 13 +#define SPI_A_SCK 12 + +// ===================== +// SPI BUS ADC2 (HSPI) +// ===================== +#define SPI_B_MOSI 35 +#define SPI_B_MISO 37 +#define SPI_B_SCK 36 + +// ===================== +// I2C BUS (PCA9555) +// ===================== +#define SDA 8 +#define SCL 9 + +// ===================== +// ADC CONTROL (NO CONFLICT) +// ===================== +#define ADC_A_CS 4 +#define ADC_A_DRDY 5 +#define ADC_A_RST 6 +#define ADC_A_SYNC 7 + +#define ADC_B_CS 14 +#define ADC_B_DRDY 15 +#define ADC_B_RST 16 +#define ADC_B_SYNC 17 // ===================== // DIGITAL POT // ===================== -#define POT_CS 7 -#define POT_DRDY 18 - -// ===================== -// RELAY OUT -// ===================== -#define PICK_RELAY 21 +#define POT_A_CS 1 +#define POT_B_CS 2 // ===================== // TRIGGER INPUT INTERRUPTS // ===================== -#define TRIG_A12P 1 -#define TRIG_A12N 2 -#define TRIG_A34P 3 -#define TRIG_A34N 14 -#define TRIG_B12P 15 -#define TRIG_B12N 16 -#define TRIG_B34P 17 -#define TRIG_B34N 18 +#define TRIG_A12P 21 +#define TRIG_A12N 33 +#define TRIG_A34P 34 +#define TRIG_A34N 38 +#define TRIG_B12P 39 +#define TRIG_B12N 40 +#define TRIG_B34P 41 +#define TRIG_B34N 42 // ===================== -// PEAK DETECTOR RESET OUTPUTS +// SPARK DETECT INPUTS (INPUT ONLY SAFE) // ===================== -#define RST_A12P 39 -#define RST_A12N 40 -#define RST_A34P 41 -#define RST_A34N 42 -#define RST_B12P 35 -#define RST_B12N 36 -#define RST_B34P 37 -#define RST_B34N 38 +#define SPARK_A12 45 +#define SPARK_A34 46 +#define SPARK_B12 47 +#define SPARK_B34 18 // ===================== -// SPARK DETECT INPUTS +// PCA9555 (I2C EXPANDER) // ===================== -#define SPARK_A12 45 // input only -#define SPARK_A34 46 // input only -#define SPARK_B12 47 -#define SPARK_B34 48 -// ===================== -// STATUS & BUTTON su PCA9555 (I2C) -// ===================== -#define STA_1 0 -#define STA_2 1 -#define STA_3 2 -#define STA_4 3 -#define STA_5 4 -#define STA_6 5 -#define STA_7 6 -#define STA_8 7 +// --- RESET LINES (ora su expander) --- +#define RST_A12P 0 +#define RST_A12N 1 +#define RST_A34P 2 +#define RST_A34N 3 +#define RST_B12P 4 +#define RST_B12N 5 +#define RST_B34P 6 +#define RST_B34N 7 -#define BTN_1 8 -#define BTN_2 9 -#define BTN_3 10 -#define BTN_4 11 -#define BTN_5 12 -#define BTN_6 13 -#define BTN_7 14 -#define BTN_8 15 +// --- RELAY LINES --- +#define A_RELAY 8 +#define B_RELAY 9 + +// --- STATUS OUTPUT --- +#define BTN_3 10 +#define BTN_4 11 +#define STA_1 12 +#define STA_2 13 +#define STA_3 14 +#define STA_4 15 + +// Init Pin Functions +inline void initTriggerPinsInputs() +{ + pinMode(TRIG_A12P, INPUT); + pinMode(TRIG_A12N, INPUT); + pinMode(TRIG_A34P, INPUT); + pinMode(TRIG_A34N, INPUT); + pinMode(TRIG_B12P, INPUT); + pinMode(TRIG_B12N, INPUT); + pinMode(TRIG_B34P, INPUT); + pinMode(TRIG_B34N, INPUT); +} + +inline void initSparkPinInputs() +{ + pinMode(SPARK_A12, INPUT); + pinMode(SPARK_A34, INPUT); + pinMode(SPARK_B12, INPUT); + pinMode(SPARK_B34, INPUT); +} \ No newline at end of file diff --git a/RotaxMonitor/src/tasks.h b/RotaxMonitor/src/tasks.h index 96ce5c3..70abd64 100644 --- a/RotaxMonitor/src/tasks.h +++ b/RotaxMonitor/src/tasks.h @@ -10,111 +10,158 @@ // DEVICES #include "devices.h" -const auto spark_timeout_max = 1; +//Global Variables and Flags +static bool rt_task_running = true; +const auto spark_timeout_max = 1; // convert to microsecond timer void ignitionA_task(void *pvParameters) { + + if (!pvParameters) { + LOG_ERROR("Null device parameters"); + vTaskDelete(NULL); + } + Devices* dev = (Devices*) pvParameters; ADS1256* adc = dev->adc; + // Ignition A Interrupts + attachInterrupt(TRIG_A12P, trig_isr_a, RISING); + attachInterrupt(TRIG_A34P, trig_isr_a, RISING); + attachInterrupt(TRIG_A12N, trig_isr_a, RISING); + attachInterrupt(TRIG_A34N, trig_isr_a, RISING); + attachInterrupt(SPARK_A12, spark_a, RISING); + attachInterrupt(SPARK_A34, spark_a, RISING); + uint32_t pickup_flag; uint32_t spark_flag; - while (true) { + while (rt_task_running) { // WAIT FOR PICKUP SIGNAL xTaskNotifyWait( 0x00, // non pulire all'ingresso - ULONG_MAX, // pulisci tutti i bit all'uscita + 0x000000FF, // pulisci i primi 8 bit &pickup_flag, // valore ricevuto portMAX_DELAY ); // WAIT FOR SPARK TO HAPPEN auto spark_timeout = xTaskNotifyWait( 0x00, // non pulire all'ingresso - ULONG_MAX, // pulisci tutti i bit all'uscita - &spark_flag, // valore ricevuto + 0x0000FF00, // pulisci gli 8 bit successivi + &spark_flag, // valore ricevuto spark_timeout_max ); - + // A trigger from pickup 12 is followed by a spark event on 34 or vice versa pickup 34 triggers spark on 12 if ((pickup_flag == TRIG_FLAG_A12P || pickup_flag == TRIG_FLAG_A12N) && spark_flag != SPARK_A12) { - ignA_status.trig12_start = ignA_status.trig34_start = -1; - ignA_status.spark12_start = ignA_status.spark34_start = -1; - ignA_status.spark12_delay = ignA_status.spark34_delay = -1; - ignA_status.soft12_engaged = ignA_status.soft34_engaged = false; - ignA_status.spark12_status = ignA_status.spark12_status = sparkStatus::SPARK_SYNC_FAIL; + ignA_status.coils12.spark_status = ignA_status.coils34.spark_status = sparkStatus::SPARK_SYNC_FAIL; // Save error on circular buffer and skip to next cycle // - // [TODO] continue; } - - bool new_data12 = false; + + const uint32_t combined_flags = pickup_flag & spark_flag; + coilsStatus* c; + switch (combined_flags) + { + case TRIG_A12P: + case TRIG_A12N: + case SPARK_A12: + c = &ignA_status.coils12; + case TRIG_A34P: + case TRIG_A34N: + case SPARK_A34: + c = &ignA_status.coils34; + } + + bool new_data = false; switch (pickup_flag) { - case TRIG_FLAG_A12P: { + // CASES for NEGATIVE cycle triggering of pickup and sparks 12 & 34 + case TRIG_FLAG_A12P: + case TRIG_FLAG_A34P: + { // Timeout not occourred, expected POSITIVE edge spark OCCOURRED if (spark_timeout == pdPASS) { - ignA_status.spark12_delay = ignA_status.spark12_start - ignA_status.trig12_start; - ignA_status.soft12_engaged = false; // because spark on positive edge - ignA_status.spark12_status = sparkStatus::SPARK_POS_OK; // do not wait for spark on negative edge + c->spark_delay = c->spark_time - c->trig_time; + c->soft_start_status = softStartStatus::NORMAL; // because spark on positive edge + c->spark_status = sparkStatus::SPARK_POS_OK; // do not wait for spark on negative edge } // Timeout occourred, expected POSITIVE edge spark NOT OCCOURRED else if (spark_timeout == pdFAIL) { - ignA_status.spark12_status = sparkStatus::SPARK_NEG_WAIT; - ignA_status.soft12_engaged = false; + c->spark_status = sparkStatus::SPARK_NEG_WAIT; + c->soft_start_status = softStartStatus::NORMAL; } - // Do nothing more on positive pulse - break; + new_data = false; + break; // Do nothing more on positive pulse } - case TRIG_FLAG_A12N: { - bool expected_negative12 = ignA_status.spark12_status == sparkStatus::SPARK_NEG_WAIT; + // CASES for NEGATIVE cycle triggering of pickup and sparks 12 & 34 + case TRIG_FLAG_A12N: + case TRIG_FLAG_A34N: + { + const bool expected_negative12 = c->spark_status == sparkStatus::SPARK_NEG_WAIT; // Timeout not occourred, expected NEGATIVE edge spark OCCOURRED if (spark_timeout == pdPASS && expected_negative12) { - ignA_status.spark12_delay = ignA_status.spark12_start - ignA_status.trig12_start; - ignA_status.soft12_engaged = true; - ignA_status.spark12_status == sparkStatus::SPARK_NEG_OK; + c->spark_delay = c->spark_time - c->trig_time; + c->soft_start_status = softStartStatus::SOFT_START; + c->spark_status == sparkStatus::SPARK_NEG_OK; } // Timeout occourred, expected POSITIVE edge spark NOT OCCOURRED else if (spark_timeout == pdFAIL && expected_negative12) { - ignA_status.soft12_engaged = false; - ignA_status.spark12_status = sparkStatus::SPARK_NEG_FAIL; + c->soft_start_status = softStartStatus::NORMAL; + c->spark_status = sparkStatus::SPARK_NEG_FAIL; } // Timeout not occouured, unexpected negative edge spark else if (spark_timeout == pdPASS && !expected_negative12) { - ignA_status.soft12_engaged = true; - ignA_status.spark12_status = sparkStatus::SPARK_NEG_UNEXPECTED; + c->soft_start_status = softStartStatus::SOFT_START; + c->spark_status = sparkStatus::SPARK_NEG_UNEXPECTED; } - // Save status on circular buffer - new_data12 = true; + // Wait for finish of negative pulse to save data to buffer + new_data = true; break; } - - case TRIG_FLAG_A34P: - case TRIG_FLAG_A34N: - break; default: LOG_ERROR("Invalid A Interrupt"); } - vTaskDelay(pdMS_TO_TICKS(1)); // delay 1ms to allow peak detectors to charge - - if (new_data12) { + if (new_data) { + vTaskDelay(pdMS_TO_TICKS(1)); // delay 1ms to allow peak detectors to charge for negative cycle // read adc channels: pickup12, out12 [ pos + neg ] - ignA_status.volts12_pickup = adcReadChannel(adc, PICKUP_IN_A12); - ignA_status.volts12_out = adcReadChannel(adc, PICKUP_OUT_A12); - // reset peak detectors - digitalWrite(RST_A12P, HIGH); - digitalWrite(RST_A12N, HIGH); - vTaskDelay(pdMS_TO_TICKS(1)); - digitalWrite(RST_A12P, HIGH); - digitalWrite(RST_A12N, HIGH); + ignA_status.coils12.pickup_volts = adcReadChannel(adc, IN_A12_P); + ignA_status.coils12.output_volts = adcReadChannel(adc, PICKUP_OUT_A12); + ignA_status.coils34.pickup_volts = adcReadChannel(adc, PICKUP_IN_A34); + ignA_status.coils34.output_volts = adcReadChannel(adc, PICKUP_OUT_A34); + // reset peak detectors -> gli output sono sull'expander + + //digitalWrite(RST_A12P, HIGH); + //digitalWrite(RST_A12N, HIGH); + //vTaskDelay(pdMS_TO_TICKS(1)); + //digitalWrite(RST_A12P, HIGH); + //digitalWrite(RST_A12N, HIGH); + // save on circluar buffer 12 } } + + // Ignition A Interrupts DETACH + detachInterrupt(TRIG_A12P); + detachInterrupt(TRIG_A34P); + detachInterrupt(TRIG_A12N); + detachInterrupt(TRIG_A34N); + detachInterrupt(SPARK_A12); + detachInterrupt(SPARK_A34); + // delete present task + vTaskDelete(NULL); } void ignitionB_task(void *pvParameters) { uint32_t notifiedValue; + // Ignition B Interrupts + attachInterrupt(TRIG_B12P, trig_isr_b, RISING); + attachInterrupt(TRIG_B34P, trig_isr_b, RISING); + attachInterrupt(TRIG_B12N, trig_isr_b, RISING); + attachInterrupt(TRIG_B34N, trig_isr_b, RISING); + attachInterrupt(SPARK_B12, spark_b, RISING); + attachInterrupt(SPARK_B34, spark_b, RISING); while (true) { // attende eventi xTaskNotifyWait(