esp32-nmea2000-obp60/lib/obp60task/OBP60Hardware.h

96 lines
3.8 KiB
C

// General hardware definitions
// CAN bus pin definitions see obp60task.h
// Direction pin for RS485 NMEA0183
#define OBP_DIRECTION_PIN 27
// SeaTalk
#define OBP_SEATALK_TX 2
#define OBP_SEATALK_RX 15
// I2C (MCP23017, BME280, BMP280, SHT21)
#define OBP_I2C_SDA 21
#define OBP_I2C_SCL 22
// Extension Port MCP23017
#define MCP23017_I2C_ADDR 0x20 // Addr. 0 is 0x20
// BME280
#define BME280_I2C_ADDR 0x76 // Addr. 0x76 (0x77)
// BMP280
#define BMP280_I2C_ADDR 0x76 // Addr. 0x76 (0x77)
// BMP085 / BMP180
#define BMP180_I2C_ADDR 0x77 // Addr. 0x77 (fix)
// SHT21 / HUT21
#define SHT21_I2C_ADDR 0x40 // Addr. 0x40 (fix)
// AS5600
#define AS5600_I2C_ADDR 0x36 // Addr. 0x36 (fix)
// INA226
#define SHUNT_VOLTAGE 0.075 // Shunt voltage in V by max. current (75mV)
#define INA226_I2C_ADDR1 0x41 // Addr. 0x41 (fix A0 = 5V, A1 = GND) for battery
#define INA226_I2C_ADDR2 0x44 // Addr. 0x44 (fix A0 = GND, A1 = 5V) for solar panels
#define INA226_I2C_ADDR3 0x45 // Addr. 0x45 (fix A0 = 5V, A1 = 5V) for generator
// SPI (E-Ink display, Extern Bus)
#define OBP_SPI_CS 5
#define OBP_SPI_DC 17
#define OBP_SPI_RST 16
#define OBP_SPI_BUSY 4
#define OBP_SPI_CLK 18
#define OBP_SPI_DIN 23
#define SHOW_TIME 6000 // Show time for logo and WiFi QR code
#define FULL_REFRESH_TIME 600 // Refresh cycle time in [s][600...3600] for full display update (very important healcy function)
#define MAX_PAGE_NUMBER 10 // Max number of pages for show data
#define FONT1 "Ubuntu_Bold8pt7b"
#define FONT2 "Ubuntu_Bold24pt7b"
#define FONT3 "Ubuntu_Bold32pt7b"
#define FONT4 "DSEG7Classic_BoldItalic80pt7b"
// GPS (NEO-6M, NEO-M8N)
#define OBP_GPS_TX 35 // Read only GPS data
// TTP229 Touch Pad Controller (!!No I2C!!)
#define TTP_SDO 25
#define TTP_SCL 33
// 1Wire (DS18B20)
#define OBP_1WIRE 32 // External 1Wire
// Buzzer
#define OBP_BUZZER 19
#define TONE1 1500 // 1500Hz
#define TONE2 2500 // 2500Hz
#define TONE3 3500 // 3500Hz
#define TONE4 4000 // 4000Hz
// Analog Input
#define OBP_ANALOG0 34 // Voltage power supplay
#define OBP_ANALOG1 36 // Analog In 1
#define OBP_ANALOG2 39 // Analog In 2
#define MIN_VOLTAGE 9.0 // Min voltage for under voltage detection (then goto deep sleep)
#define POWER_FAIL_TIME 2 // in [ms] Accept min voltage until 2 x 1ms (for under voltage gaps by engine start)
// Extension Port PA
#define PA0 0 // Digital Out 1
#define PA1 1 // Digital Out 2
#define PA2 2 // Flash LED
#define PA3 3 // Backlight LEDs
#define PA4 4 // Digital In 1
#define PA5 5 // Digital In 2
#define PA6 6 // Power Rail 5.0V
#define PA7 7 // Power Rail 3.3V
// Extension Port PB
#define PB0 8 // Extension Connector
#define PB1 9 // Extension Connector
#define PB2 10 // Extension Connector
#define PB3 11 // Extension Connector
#define PB4 12 // Extension Connector
#define PB5 13 // Extension Connector
#define PB6 14 // Extension Connector
#define PB7 15 // Extension Connector
// Extension Port Digital Out
#define OBP_DIGITAL_OUT1 PA0
#define OBP_DIGITAL_OUT2 PA1
// Extension Port LED
#define OBP_FLASH_LED PA2
// Extension Port Backlight LEDs
#define OBP_BACKLIGHT_LED PA3
// Extension Port Digital In
#define OBP_DIGITAL_IN1 PA4
#define OBP_DIGITAL_IN2 PA5
// Extension Port Power Rails
#define OBP_POWER_50 PA6
#define OBP_POWER_33 PA7