mirror of
https://github.com/Genaker/LoraSA.git
synced 2026-03-28 17:42:59 +01:00
554 lines
11 KiB
C
554 lines
11 KiB
C
/**
|
||
* @file utilities.h
|
||
* @author Lewis He (lewishe@outlook.com)
|
||
* @license MIT
|
||
* @copyright Copyright (c) 2024 ShenZhen XinYuan Electronic Technology Co., Ltd
|
||
* @date 2024-05-12
|
||
* @last-update 2024-08-07
|
||
*/
|
||
#pragma once
|
||
|
||
// Support board list , Macro definition below, select the board definition to be used
|
||
|
||
// #define T3_V1_3_SX1276
|
||
// #define T3_V1_3_SX1278
|
||
|
||
// #define T3_V1_6_SX1276
|
||
// #define T3_V1_6_SX1278
|
||
|
||
// #define T3_V1_6_SX1276_TCXO
|
||
// #define T3_V3_0_SX1276_TCXO
|
||
|
||
// #define T_BEAM_SX1262
|
||
// #define T_BEAM_SX1276
|
||
// #define T_BEAM_SX1278
|
||
|
||
// #define T_BEAM_S3_SUPREME
|
||
|
||
// #define T3_S3_V1_2_SX1262
|
||
// #define T3_S3_V1_2_SX1276
|
||
// #define T3_S3_V1_2_SX1278
|
||
// #define T3_S3_V1_2_SX1280
|
||
// #define T3_S3_V1_2_SX1280_PA
|
||
// #define T3_S3_V1_2_LR1121
|
||
|
||
// #define T_MOTION
|
||
|
||
// #define T3_C6
|
||
|
||
// #define T_BEAM_S3_BPF
|
||
|
||
#define UNUSED_PIN (0)
|
||
|
||
#if defined(T_BEAM_SX1262) || defined(T_BEAM_SX1276) || defined(T_BEAM_SX1278)
|
||
|
||
#if defined(T_BEAM_SX1262)
|
||
#ifndef USING_SX1262
|
||
#define USING_SX1262
|
||
#endif
|
||
#elif defined(T_BEAM_SX1276)
|
||
#ifndef USING_SX1276
|
||
#define USING_SX1276
|
||
#endif
|
||
#elif defined(T_BEAM_SX1278)
|
||
#ifndef USING_SX1278
|
||
#define USING_SX1278
|
||
#endif
|
||
#endif // T_BEAM_SX1262
|
||
|
||
#define GPS_RX_PIN 34
|
||
#define GPS_TX_PIN 12
|
||
#define BUTTON_PIN 38
|
||
#define BUTTON_PIN_MASK GPIO_SEL_38
|
||
#define I2C_SDA 21
|
||
#define I2C_SCL 22
|
||
#define PMU_IRQ 35
|
||
|
||
#define RADIO_SCLK_PIN 5
|
||
#define RADIO_MISO_PIN 19
|
||
#define RADIO_MOSI_PIN 27
|
||
#define RADIO_CS_PIN 18
|
||
#define RADIO_DIO0_PIN 26
|
||
#define RADIO_RST_PIN 23
|
||
#define RADIO_DIO1_PIN 33
|
||
// SX1276/78
|
||
#define RADIO_DIO2_PIN 32
|
||
// SX1262
|
||
#define RADIO_BUSY_PIN 32
|
||
|
||
#define BOARD_LED 4
|
||
#define LED_ON LOW
|
||
#define LED_OFF HIGH
|
||
|
||
#define GPS_BAUD_RATE 9600
|
||
#define HAS_GPS
|
||
#define HAS_DISPLAY // Optional, bring your own board, no OLED !!
|
||
#define HAS_PMU
|
||
|
||
#define BOARD_VARIANT_NAME "T-Beam"
|
||
|
||
#elif defined(T3_V1_3_SX1276) || defined(T3_V1_3_SX1278)
|
||
|
||
#if defined(T3_V1_3_SX1276)
|
||
|
||
#ifndef USING_SX1276
|
||
#define USING_SX1276
|
||
#endif
|
||
|
||
#elif defined(T3_V1_3_SX1278)
|
||
|
||
#ifndef USING_SX1278
|
||
#define USING_SX1278
|
||
#endif
|
||
|
||
#endif // T3_V1_3_SX1276
|
||
|
||
#define I2C_SDA 21
|
||
#define I2C_SCL 22
|
||
#define OLED_RST UNUSED_PIN
|
||
|
||
#define RADIO_SCLK_PIN 5
|
||
#define RADIO_MISO_PIN 19
|
||
#define RADIO_MOSI_PIN 27
|
||
#define RADIO_CS_PIN 18
|
||
#define RADIO_DIO0_PIN 26
|
||
#define RADIO_RST_PIN 14
|
||
#define RADIO_DIO1_PIN 33
|
||
|
||
// SX1276/78
|
||
#define RADIO_DIO2_PIN 32
|
||
// SX1262
|
||
#define RADIO_BUSY_PIN 32
|
||
|
||
#define ADC_PIN 35
|
||
#define HAS_DISPLAY
|
||
#define BOARD_VARIANT_NAME "T3 V1.3"
|
||
|
||
#elif defined(T3_V1_6_SX1276) || defined(T3_V1_6_SX1278)
|
||
|
||
#if defined(T3_V1_6_SX1276)
|
||
#ifndef USING_SX1276
|
||
#define USING_SX1276
|
||
#endif
|
||
#elif defined(T3_V1_6_SX1278)
|
||
#ifndef USING_SX1278
|
||
#define USING_SX1278
|
||
#endif
|
||
#endif // T3_V1_6_SX1276
|
||
|
||
#define I2C_SDA 21
|
||
#define I2C_SCL 22
|
||
#define OLED_RST UNUSED_PIN
|
||
|
||
#define RADIO_SCLK_PIN 5
|
||
#define RADIO_MISO_PIN 19
|
||
#define RADIO_MOSI_PIN 27
|
||
#define RADIO_CS_PIN 18
|
||
#define RADIO_DIO0_PIN 26
|
||
#define RADIO_RST_PIN 23
|
||
#define RADIO_DIO1_PIN 33
|
||
// SX1276/78
|
||
#define RADIO_DIO2_PIN 32
|
||
// SX1262
|
||
#define RADIO_BUSY_PIN 32
|
||
|
||
#define SDCARD_MOSI 15
|
||
#define SDCARD_MISO 2
|
||
#define SDCARD_SCLK 14
|
||
#define SDCARD_CS 13
|
||
|
||
#define BOARD_LED 25
|
||
#define LED_ON HIGH
|
||
|
||
#define ADC_PIN 35
|
||
|
||
#define HAS_SDCARD
|
||
#define HAS_DISPLAY
|
||
|
||
#define BOARD_VARIANT_NAME "T3 V1.6"
|
||
|
||
#elif defined(T3_V1_6_SX1276_TCXO)
|
||
|
||
#ifndef USING_SX1276
|
||
#define USING_SX1276
|
||
#endif
|
||
|
||
#define I2C_SDA 21
|
||
#define I2C_SCL 22
|
||
#define OLED_RST UNUSED_PIN
|
||
|
||
#define RADIO_SCLK_PIN 5
|
||
#define RADIO_MISO_PIN 19
|
||
#define RADIO_MOSI_PIN 27
|
||
#define RADIO_CS_PIN 18
|
||
#define RADIO_DIO0_PIN 26
|
||
#define RADIO_RST_PIN 23
|
||
#define RADIO_DIO1_PIN -1 // 33
|
||
/*
|
||
* In the T3 V1.6.1 TCXO version, Radio DIO1 is connected to Radio’s
|
||
* internal temperature-compensated crystal oscillator enable
|
||
* */
|
||
// TCXO pin must be set to HIGH before enabling Radio
|
||
#define RADIO_TCXO_ENABLE 33
|
||
#define RADIO_BUSY_PIN 32
|
||
|
||
#define SDCARD_MOSI 15
|
||
#define SDCARD_MISO 2
|
||
#define SDCARD_SCLK 14
|
||
#define SDCARD_CS 13
|
||
|
||
#define BOARD_LED 25
|
||
#define LED_ON HIGH
|
||
|
||
#define ADC_PIN 35
|
||
|
||
#define HAS_SDCARD
|
||
#define HAS_DISPLAY
|
||
|
||
#define BOARD_VARIANT_NAME "T3 V1.6 TCXO"
|
||
|
||
#elif defined(T3_V3_0)
|
||
|
||
#define I2C_SDA 21
|
||
#define I2C_SCL 22
|
||
#define OLED_RST 4
|
||
|
||
#define RADIO_SCLK_PIN 5
|
||
#define RADIO_MISO_PIN 19
|
||
#define RADIO_MOSI_PIN 27
|
||
#define RADIO_CS_PIN 18
|
||
#define RADIO_RST_PIN 23
|
||
|
||
// TCXO pin must be set to HIGH before enabling Radio
|
||
#define RADIO_TCXO_ENABLE 12 // only sx1276 tcxo version
|
||
#define RADIO_BUSY_PIN 32
|
||
|
||
#if defined(USING_SX1262)
|
||
|
||
#define RADIO_DIO1_PIN 26
|
||
#define RADIO_BUSY_PIN 32
|
||
|
||
#elif defined(USING_SX1276) || defined(USING_SX1278)
|
||
//! SX1276/78 module only
|
||
|
||
#define RADIO_DIO0_PIN 26
|
||
#define RADIO_DIO1_PIN 32
|
||
|
||
#elif defined(USING_LR1121)
|
||
|
||
#define RADIO_DIO9_PIN 26 // LR1121 DIO9
|
||
#define RADIO_BUSY_PIN 32 // LR1121 BUSY
|
||
|
||
#endif
|
||
|
||
#define SDCARD_MOSI 15
|
||
#define SDCARD_MISO 2
|
||
#define SDCARD_SCLK 14
|
||
#define SDCARD_CS 13
|
||
|
||
#define BOARD_LED 25
|
||
#define LED_ON HIGH
|
||
|
||
#define ADC_PIN 35
|
||
|
||
#define HAS_SDCARD
|
||
#define HAS_DISPLAY
|
||
|
||
#define BOARD_VARIANT_NAME "T3 V3.0"
|
||
|
||
#define BUTTON_PIN 0
|
||
#define BAT_ADC_PIN 35
|
||
|
||
#elif defined(T3_S3_V1_2_SX1262) || defined(ARDUINO_LILYGO_T3S3_SX1262) || \
|
||
defined(T3_S3_V1_2_SX1276) || defined(ARDUINO_LILYGO_T3S3_SX1276) || \
|
||
defined(T3_S3_V1_2_SX1278) || defined(ARDUINO_LILYGO_T3S3_SX1278) || \
|
||
defined(T3_S3_V1_2_SX1280) || defined(ARDUINO_LILYGO_T3S3_SX1280) || \
|
||
defined(T3_S3_V1_2_SX1280_PA) || defined(ARDUINO_LILYGO_T3S3_SX1280PA) || \
|
||
defined(T3_S3_V1_2_LR1121) || defined(ARDUINO_LILYGO_T3S3_LR1121)
|
||
|
||
#if defined(T3_S3_V1_2_SX1262) || defined(ARDUINO_LILYGO_T3S3_SX1262)
|
||
#ifndef USING_SX1262
|
||
#define USING_SX1262
|
||
#endif
|
||
#elif defined(T3_S3_V1_2_SX1276) || defined(ARDUINO_LILYGO_T3S3_SX1276)
|
||
#ifndef USING_SX1276
|
||
#define USING_SX1276
|
||
#endif
|
||
#elif defined(T3_S3_V1_2_SX1278) || defined(ARDUINO_LILYGO_T3S3_SX1278)
|
||
#ifndef USING_SX1278
|
||
#define USING_SX1278
|
||
#endif
|
||
#elif defined(T3_S3_V1_2_SX1280) || defined(ARDUINO_LILYGO_T3S3_SX1280)
|
||
#ifndef USING_SX1280
|
||
#define USING_SX1280
|
||
#endif
|
||
#elif defined(T3_S3_V1_2_SX1280_PA) || defined(ARDUINO_LILYGO_T3S3_SX1280PA)
|
||
#ifndef USING_SX1280PA
|
||
#define USING_SX1280PA
|
||
#endif
|
||
#elif defined(T3_S3_V1_2_LR1121) || defined(ARDUINO_LILYGO_T3S3_LR1121)
|
||
#ifndef USING_LR1121
|
||
#define USING_LR1121
|
||
#endif
|
||
|
||
#endif // T3_S3_V1_2_SX1262
|
||
|
||
#define I2C_SDA 18
|
||
#define I2C_SCL 17
|
||
#define OLED_RST UNUSED_PIN
|
||
|
||
#define RADIO_SCLK_PIN 5
|
||
#define RADIO_MISO_PIN 3
|
||
#define RADIO_MOSI_PIN 6
|
||
#define RADIO_CS_PIN 7
|
||
|
||
#define SDCARD_MOSI 11
|
||
#define SDCARD_MISO 2
|
||
#define SDCARD_SCLK 14
|
||
#define SDCARD_CS 13
|
||
|
||
#define BOARD_LED 37
|
||
#define LED_ON HIGH
|
||
|
||
#define BUTTON_PIN 0
|
||
#define ADC_PIN 1
|
||
|
||
#define RADIO_RST_PIN 8
|
||
|
||
#if defined(USING_SX1262)
|
||
|
||
#define RADIO_DIO1_PIN 33
|
||
#define RADIO_BUSY_PIN 34
|
||
|
||
#elif defined(USING_SX1276) || defined(USING_SX1278)
|
||
//! SX1276/78 module only
|
||
#define RADIO_BUSY_PIN 33 // DIO1
|
||
|
||
#define RADIO_DIO0_PIN 9
|
||
#define RADIO_DIO1_PIN 33
|
||
#define RADIO_DIO2_PIN 34
|
||
#define RADIO_DIO3_PIN 21
|
||
#define RADIO_DIO4_PIN 10
|
||
#define RADIO_DIO5_PIN 36
|
||
|
||
#elif defined(USING_SX1280)
|
||
|
||
#define RADIO_DIO1_PIN 9 // SX1280 DIO1 = IO9
|
||
#define RADIO_BUSY_PIN 36 // SX1280 BUSY = IO36
|
||
|
||
#elif defined(USING_SX1280PA)
|
||
|
||
#define RADIO_DIO1_PIN 9 // SX1280 DIO1 = IO9
|
||
#define RADIO_BUSY_PIN 36 // SX1280 BUSY = IO36
|
||
#define RADIO_RX_PIN 21
|
||
#define RADIO_TX_PIN 10
|
||
|
||
#elif defined(USING_LR1121)
|
||
|
||
#define RADIO_DIO9_PIN 36 // LR1121 DIO9 = IO36
|
||
#define RADIO_BUSY_PIN 34 // LR1121 BUSY = IO34
|
||
|
||
#endif
|
||
|
||
#define HAS_SDCARD
|
||
#define HAS_DISPLAY
|
||
|
||
#define BOARD_VARIANT_NAME "T3 S3 V1.X"
|
||
|
||
#elif defined(T_BEAM_S3_SUPREME)
|
||
|
||
#ifndef USING_SX1262
|
||
#define USING_SX1262
|
||
#endif
|
||
|
||
#define I2C_SDA 17
|
||
#define I2C_SCL 18
|
||
|
||
#define I2C1_SDA 42
|
||
#define I2C1_SCL 41
|
||
#define PMU_IRQ 40
|
||
|
||
#define GPS_RX_PIN 9
|
||
#define GPS_TX_PIN 8
|
||
#define GPS_WAKEUP_PIN 7
|
||
#define GPS_PPS_PIN 6
|
||
|
||
#define BUTTON_PIN 0
|
||
#define BUTTON_PIN_MASK GPIO_SEL_0
|
||
#define BUTTON_CONUT (1)
|
||
#define BUTTON_ARRAY {BUTTON_PIN}
|
||
|
||
#define RADIO_SCLK_PIN (12)
|
||
#define RADIO_MISO_PIN (13)
|
||
#define RADIO_MOSI_PIN (11)
|
||
#define RADIO_CS_PIN (10)
|
||
#define RADIO_DIO0_PIN (-1)
|
||
#define RADIO_RST_PIN (5)
|
||
#define RADIO_DIO1_PIN (1)
|
||
#define RADIO_BUSY_PIN (4)
|
||
|
||
#define SPI_MOSI (35)
|
||
#define SPI_SCK (36)
|
||
#define SPI_MISO (37)
|
||
#define SPI_CS (47)
|
||
#define IMU_CS (34)
|
||
#define IMU_INT (33)
|
||
|
||
#define SDCARD_MOSI SPI_MOSI
|
||
#define SDCARD_MISO SPI_MISO
|
||
#define SDCARD_SCLK SPI_SCK
|
||
#define SDCARD_CS SPI_CS
|
||
|
||
#define PIN_NONE (-1)
|
||
#define RTC_INT (14)
|
||
|
||
#define GPS_BAUD_RATE 9600
|
||
|
||
#define HAS_SDCARD
|
||
#define HAS_GPS
|
||
#define HAS_DISPLAY
|
||
#define HAS_PMU
|
||
|
||
#define __HAS_SPI1__
|
||
#define __HAS_SENSOR__
|
||
|
||
#define PMU_WIRE_PORT Wire1
|
||
// #define DISPLAY_MODEL U8G2_SH1106_128X64_NONAME_F_HW_I2C
|
||
#define BOARD_VARIANT_NAME "T-Beam S3"
|
||
|
||
#elif defined(T_MOTION_S76G)
|
||
|
||
#ifndef USING_SX1276
|
||
#define USING_SX1276
|
||
#endif
|
||
|
||
#define RADIO_SCLK_PIN PB13
|
||
#define RADIO_MISO_PIN PB14
|
||
#define RADIO_MOSI_PIN PB15
|
||
#define RADIO_CS_PIN PB12
|
||
#define RADIO_RST_PIN PB10
|
||
|
||
#define RADIO_DIO0_PIN PB11
|
||
#define RADIO_DIO1_PIN PC13
|
||
#define RADIO_DIO2_PIN PB9
|
||
#define RADIO_DIO3_PIN PB4
|
||
#define RADIO_DIO4_PIN PB3
|
||
#define RADIO_DIO5_PIN PA15
|
||
|
||
#undef RADIO_BUSY_PIN
|
||
#undef RADIO_DIO1_PIN
|
||
#define RADIO_BUSY_PIN PC13 // DIO1
|
||
#define RADIO_DIO1_PIN PB11 // DIO0
|
||
|
||
#define RADIO_SWITCH_PIN PA1 // 1:Rx, 0:Tx
|
||
|
||
#define GPS_EN_PIN PC6
|
||
#define GPS_RST_PIN PB2
|
||
#define GPS_RX_PIN PC11
|
||
#define GPS_TX_PIN PC10
|
||
#define GPS_ENABLE_PIN PC6
|
||
#define GPS_BAUD_RATE 115200
|
||
#define GPS_PPS_PIN PB5
|
||
|
||
#define UART_RX_PIN PA10
|
||
#define UART_TX_PIN PA9
|
||
|
||
#define I2C_SCL PB6
|
||
#define I2C_SDA PB7
|
||
|
||
#define BOARD_VARIANT_NAME "T-Motion S76G"
|
||
|
||
#define HAS_GPS
|
||
|
||
#elif defined(T3_C6)
|
||
|
||
#ifndef USING_SX1262
|
||
#define USING_SX1262
|
||
#endif
|
||
|
||
#define RADIO_SCLK_PIN 6
|
||
#define RADIO_MISO_PIN 1
|
||
#define RADIO_MOSI_PIN 0
|
||
#define RADIO_CS_PIN 18
|
||
#define RADIO_DIO1_PIN 23
|
||
#define RADIO_BUSY_PIN 22
|
||
#define RADIO_RST_PIN 21
|
||
|
||
#define I2C_SDA 8
|
||
#define I2C_SCL 9
|
||
|
||
#define BOARD_LED 7
|
||
#define LED_ON HIGH
|
||
#define RADIO_RX_PIN 15
|
||
#define RADIO_TX_PIN 14
|
||
|
||
#define BOARD_VARIANT_NAME "T3-C6"
|
||
|
||
#define USING_DIO2_AS_RF_SWITCH
|
||
|
||
#elif defined(HELTEC)
|
||
// just to prevent error
|
||
#elif defined(T_BEAM_S3_BPF)
|
||
|
||
#ifndef USING_SX1278
|
||
#define USING_SX1278
|
||
#endif
|
||
|
||
#define I2C_SDA 8
|
||
#define I2C_SCL 9
|
||
|
||
#define PMU_IRQ 4
|
||
|
||
#define GPS_RX_PIN 5
|
||
#define GPS_TX_PIN 6
|
||
#define GPS_PPS_PIN 7
|
||
|
||
#define BUTTON_PIN 0
|
||
#define BUTTON_PIN_MASK GPIO_SEL_0
|
||
#define BUTTON_CONUT (2)
|
||
#define BUTTON_ARRAY {BUTTON_PIN, 3}
|
||
|
||
#define RADIO_SCLK_PIN (41)
|
||
#define RADIO_MISO_PIN (42)
|
||
#define RADIO_MOSI_PIN (2)
|
||
#define RADIO_CS_PIN (1)
|
||
#define RADIO_RST_PIN (18)
|
||
|
||
#define RADIO_DIO0_PIN (14)
|
||
#define RADIO_DIO1_PIN (21)
|
||
#define RADIO_DIO2_PIN (15)
|
||
|
||
#define RADIO_TCXO_ENABLE (17)
|
||
#define RADIO_LDO_EN (16)
|
||
#define RADIO_BUSY_PIN (RADIO_DIO1_PIN)
|
||
|
||
#define SPI_MOSI (11)
|
||
#define SPI_SCK (12)
|
||
#define SPI_MISO (13)
|
||
#define SPI_CS (10)
|
||
|
||
#define SDCARD_MOSI SPI_MOSI
|
||
#define SDCARD_MISO SPI_MISO
|
||
#define SDCARD_SCLK SPI_SCK
|
||
#define SDCARD_CS SPI_CS
|
||
|
||
#define PIN_NONE (-1)
|
||
|
||
#define GPS_BAUD_RATE 9600
|
||
|
||
#define HAS_SDCARD
|
||
#define HAS_GPS
|
||
#define HAS_DISPLAY
|
||
#define HAS_PMU
|
||
|
||
#define __HAS_SPI1__
|
||
#define __HAS_SENSOR__
|
||
|
||
#define PMU_WIRE_PORT Wire
|
||
// #define DISPLAY_MODEL U8G2_SH1106_128X64_NONAME_F_HW_I2C
|
||
#define BOARD_VARIANT_NAME "T-Beam BPF"
|
||
|
||
#else
|
||
#error "When using it for the first time, please define the board model in <utilities.h>"
|
||
#endif
|