177 lines
4.8 KiB
C
177 lines
4.8 KiB
C
#pragma once
|
|
#include <Arduino.h>
|
|
|
|
// =====================
|
|
// 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 17
|
|
#define SPI_B_SCK 18
|
|
#define SPI_B_MISO 8
|
|
|
|
// =====================
|
|
// I2C BUS (PCA9555)
|
|
// =====================
|
|
#define SDA 21
|
|
#define SCL 38
|
|
|
|
// =====================
|
|
// ADC CONTROL
|
|
// =====================
|
|
#define ADC_A_CS 14
|
|
#define ADC_A_DRDY 13
|
|
|
|
#define ADC_B_CS 3
|
|
#define ADC_B_DRDY 9
|
|
|
|
// =====================
|
|
// 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 45
|
|
|
|
// =====================
|
|
// 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);
|
|
}
|