#pragma once #include // ===================== // USB (RISERVATA) // ===================== #define USB_DM 19 #define USB_DP 20 // ===================== // UART DEBUG (RISERVATA) // ===================== #define UART_TX 43 #define UART_RX 44 // ===================== // RGB Led // ===================== #define LED 48 // ===================== // STRAPPING CRITICI (NON USARE) // ===================== // 0, 3 // ===================== // SPI BUS ADC1 (VSPI) // ===================== #define SPI_A_MOSI 10 #define SPI_A_SCK 11 #define SPI_A_MISO 12 // ===================== // SPI BUS ADC2 (HSPI) // ===================== #define SPI_B_MOSI 36 #define SPI_B_SCK 37 #define SPI_B_MISO 38 // ===================== // I2C BUS (PCA9555) // ===================== #define SDA 8 #define SCL 9 #define I2C_INT 17 // ===================== // ADC CONTROL // ===================== #define ADC_A_CS 14 #define ADC_A_DRDY 13 #define ADC_B_CS 21 #define ADC_B_DRDY 47 // ===================== // TRIGGER INPUT INTERRUPTS // ===================== #define TRIG_PIN_A12P 6 #define TRIG_PIN_A12N 7 #define TRIG_PIN_A34P 15 #define TRIG_PIN_A34N 16 #define TRIG_PIN_B12P 42 #define TRIG_PIN_B12N 41 #define TRIG_PIN_B34P 40 #define TRIG_PIN_B34N 39 // ===================== // SPARK DETECT INPUTS // ===================== #define SPARK_PIN_A12 4 #define SPARK_PIN_A34 5 #define SPARK_PIN_B12 1 #define SPARK_PIN_B34 2 // +++++++++++++++++++++ // MACRO TO COMBINE PIN NUMBER AND ADDRESS #define PIN2ADDR(p, a) ((1UL << p) | ((uint32_t)(a) << 16)) // +++++++++++++++++++++ // ===================== // PCA9555 I/O EXPANDER INTERRUPT (Common) // ===================== #define EXPANDER_ALL_INTERRUPT 17 // ===================== // PCA9555 I/O EXPANDER BOX_A (OUT) // ===================== #define EXPANDER_A_OUT_ADDR 0xFF // --- DIGITAL POT CHIP SELECT LINES --- #define POT_CS_A12 PIN2ADDR(0, EXPANDER_A_OUT_ADDR) #define POT_CS_A34 PIN2ADDR(1, EXPANDER_A_OUT_ADDR) // --- SOFT START FORCE LINES --- #define SS_FORCE_A PIN2ADDR(2, EXPANDER_A_OUT_ADDR) #define SS_INIBHIT_A12 PIN2ADDR(3, EXPANDER_A_OUT_ADDR) #define SS_INHIBIT_A34 PIN2ADDR(4, EXPANDER_A_OUT_ADDR) // --- SAMPLE AND HOLD ARM AND DISCHARGE --- #define SH_DISCH_A12 PIN2ADDR(5, EXPANDER_A_OUT_ADDR) #define SH_DISCH_A34 PIN2ADDR(6, EXPANDER_A_OUT_ADDR) #define SH_ARM_A12 PIN2ADDR(7, EXPANDER_A_OUT_ADDR) #define SH_ARM_A34 PIN2ADDR(8, EXPANDER_A_OUT_ADDR) // --- RELAY --- #define RELAY_IN_A12 PIN2ADDR(9, EXPANDER_A_OUT_ADDR) #define RELAY_OUT_A12 PIN2ADDR(10, EXPANDER_A_OUT_ADDR) #define RELAY_IN_A34 PIN2ADDR(11, EXPANDER_A_OUT_ADDR) #define RELAY_OUT_A34 PIN2ADDR(12, EXPANDER_A_OUT_ADDR) // ===================== // PCA9555 I/O EXPANDER BOX_A (IN) // ===================== #define EXPANDER_A_IN_ADDR 0xFF #define SS_A12_ON PIN2ADDR(0, EXPANDER_A_IN_ADDR) #define SS_A12_OFF PIN2ADDR(1, EXPANDER_A_IN_ADDR) #define SS_A34_ON PIN2ADDR(2, EXPANDER_A_IN_ADDR) #define SS_A34_OFF PIN2ADDR(3, EXPANDER_A_IN_ADDR) // ===================== // PCA9555 I/O EXPANDER BOX_B (OUT) // ===================== #define EXPANDER_B_OUT_ADDR 0xFF // --- DIGITAL POT CHIP SELECT LINES --- #define POT_CS_B12 PIN2ADDR(0, EXPANDER_B_OUT_ADDR) #define POT_CS_B34 PIN2ADDR(1, EXPANDER_B_OUT_ADDR) // --- SOFT START FORCE LINES --- #define SS_FORCE_B PIN2ADDR(2, EXPANDER_B_OUT_ADDR) #define SS_INIBHIT_B12 PIN2ADDR(3, EXPANDER_B_OUT_ADDR) #define SS_INHIBIT_B34 PIN2ADDR(4, EXPANDER_B_OUT_ADDR) // --- SAMPLE AND HOLD ARM AND DISCHARGE --- #define SH_DISCH_B12 PIN2ADDR(5, EXPANDER_B_OUT_ADDR) #define SH_DISCH_B34 PIN2ADDR(6, EXPANDER_B_OUT_ADDR) #define SH_ARM_B12 PIN2ADDR(7, EXPANDER_B_OUT_ADDR) #define SH_ARM_B34 PIN2ADDR(8, EXPANDER_B_OUT_ADDR) // --- RELAY --- #define RELAY_IN_B12 PIN2ADDR(9, EXPANDER_B_OUT_ADDR) #define RELAY_OUT_B12 PIN2ADDR(10, EXPANDER_B_OUT_ADDR) #define RELAY_IN_B34 PIN2ADDR(11, EXPANDER_B_OUT_ADDR) #define RELAY_OUT_B34 PIN2ADDR(12, EXPANDER_B_OUT_ADDR) // ===================== // PCA9555 I/O EXPANDER BOX_B (IN) // ===================== #define EXPANDER_B_IN_ADDR 0xFF #define SS_B12_ON PIN2ADDR(0, EXPANDER_B_IN_ADDR) #define SS_B12_OFF PIN2ADDR(1, EXPANDER_B_IN_ADDR) #define SS_B34_ON PIN2ADDR(2, EXPANDER_B_IN_ADDR) #define SS_B34_OFF PIN2ADDR(3, EXPANDER_B_IN_ADDR) // Init Pin Functions inline void initTriggerPinsInputs() { pinMode(TRIG_PIN_A12P, INPUT_PULLDOWN); pinMode(TRIG_PIN_A12N, INPUT_PULLDOWN); pinMode(TRIG_PIN_A34P, INPUT_PULLDOWN); pinMode(TRIG_PIN_A34N, INPUT_PULLDOWN); pinMode(TRIG_PIN_B12P, INPUT_PULLDOWN); pinMode(TRIG_PIN_B12N, INPUT_PULLDOWN); pinMode(TRIG_PIN_B34P, INPUT_PULLDOWN); pinMode(TRIG_PIN_B34N, INPUT_PULLDOWN); } inline void initSparkPinInputs() { pinMode(SPARK_PIN_A12, INPUT_PULLDOWN); pinMode(SPARK_PIN_A34, INPUT_PULLDOWN); pinMode(SPARK_PIN_B12, INPUT_PULLDOWN); pinMode(SPARK_PIN_B34, INPUT_PULLDOWN); }