Support for muzi works R1 Neo device.
Support for R1 Neo hardware. New variant and baseboard class. * Known issues: - power management is not currently supported - power off via long button press is not implemented Add support for Epson Seiko RX8130CE I2C Real-time clock.
This commit is contained in:
183
variants/muziworks_r1_neo/variant.h
Normal file
183
variants/muziworks_r1_neo/variant.h
Normal file
@@ -0,0 +1,183 @@
|
||||
/*
|
||||
Copyright (c) 2014-2015 Arduino LLC. All right reserved.
|
||||
Copyright (c) 2016 Sandeep Mistry All right reserved.
|
||||
Copyright (c) 2018, Adafruit Industries (adafruit.com)
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
See the GNU Lesser General Public License for more details.
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef _VARIANT_R1NEO_
|
||||
#define _VARIANT_R1NEO_
|
||||
|
||||
#define RAK4630
|
||||
|
||||
/** Master clock frequency */
|
||||
#define VARIANT_MCK (64000000ul)
|
||||
|
||||
#define USE_LFXO // Board uses 32khz crystal for LF
|
||||
// define USE_LFRC // Board uses RC for LF
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
* Headers
|
||||
*----------------------------------------------------------------------------*/
|
||||
|
||||
#include "WVariant.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif // __cplusplus
|
||||
|
||||
/* Number of pins defined in PinDescription array */
|
||||
#define PINS_COUNT (48)
|
||||
#define NUM_DIGITAL_PINS (48)
|
||||
#define NUM_ANALOG_INPUTS (8)
|
||||
#define NUM_ANALOG_OUTPUTS (0)
|
||||
|
||||
/* R1Neo peculiarities */
|
||||
#define PIN_DCDC_EN_MCU_HOLD (13) // P0.13 (04) DCDC_EN_MCU_HOLD
|
||||
#define PIN_SOFT_SHUTDOWN (29) // P0.29 (32) SOFT_SHUTDOWN_SIGNAL
|
||||
#define PIN_MCU_SIGNAL (30) // P0.30 (33) MCU_SIGNAL
|
||||
|
||||
/* R1Neo LoRa Radio */
|
||||
// RAK4630/4631 pins
|
||||
|
||||
#define P_LORA_DIO_1 (47) // P1.15 (SX)
|
||||
#define P_LORA_NSS (42) // P1.10 (SX)
|
||||
#define P_LORA_RESET RADIOLIB_NC // P1.06 (SX) -- 38
|
||||
#define P_LORA_BUSY (46) // P1.14 (SX)
|
||||
#define P_LORA_SCLK (43) // P1.11 (SX)
|
||||
#define P_LORA_MISO (45) // P1.13 (SX)
|
||||
#define P_LORA_MOSI (44) // P1.12 (SX)
|
||||
#define SX126X_POWER_EN (37) // P1.05 (SX)
|
||||
|
||||
#define SX126X_DIO2_AS_RF_SWITCH true
|
||||
#define SX126X_DIO3_TCXO_VOLTAGE 1.8
|
||||
|
||||
/* R1Neo peripherals */
|
||||
/* GPS */
|
||||
#define GPS_RX (24) // P0.24 (23) UART_GPS_RX
|
||||
#define GPS_TX (25) // P0.25 (24) UART_GPS_TX
|
||||
#define GPS_EN (33) // P1.01 (25) GPS_EN
|
||||
#define GPS_PPS (2) // P0.02 (30) GPS_PPS
|
||||
|
||||
#define PIN_GPS_1PPS GPS_PPS
|
||||
#define GPS_BAUD_RATE 9600
|
||||
|
||||
/* RTC */
|
||||
#define RTC_SDA (19) // P0.19 (9) RTC_SDA
|
||||
#define RTC_SCL (20) // P0.20 (10) RTC_SCL
|
||||
|
||||
/* LEDs */
|
||||
#define LED_GREEN (36) // P1.04 (28) GRN_LED_RAK
|
||||
#define LED_BLUE (28) // P0.28 (31) BLU_LED_RAK
|
||||
|
||||
#define LED_BUILTIN (0xFF)
|
||||
|
||||
#ifndef P_LORA_TX_LED
|
||||
#define P_LORA_TX_LED LED_GREEN
|
||||
#endif
|
||||
|
||||
#define LED_STATE_ON 1 // State when LED is lit
|
||||
|
||||
/* Buttons */
|
||||
#define PIN_USER_BTN (26)
|
||||
|
||||
/* Buzzer */
|
||||
#define PIN_BUZZER (3)
|
||||
|
||||
/* Analog pins */
|
||||
// Arduino makes me angry
|
||||
#define PIN_A0 (0xFF) // NOT_PRESENT
|
||||
#define PIN_A1 (0xFF) // NOT_PRESENT
|
||||
#define PIN_A2 (4) // P0.04 (41) NC
|
||||
#define PIN_A3 (5) // P0.05 (40) NC
|
||||
#define PIN_A4 (0xFF) // NOT_PRESENT
|
||||
#define PIN_A5 (0xFF) // NOT_PRESENT
|
||||
#define PIN_A6 (0xFF) // NOT_PRESENT
|
||||
#define PIN_A7 (31) // P0.31 (39) ADC_VBAT
|
||||
|
||||
static const uint8_t A0 = PIN_A0;
|
||||
static const uint8_t A1 = PIN_A1;
|
||||
static const uint8_t A2 = PIN_A2;
|
||||
static const uint8_t A3 = PIN_A3;
|
||||
static const uint8_t A4 = PIN_A4;
|
||||
static const uint8_t A5 = PIN_A5;
|
||||
static const uint8_t A6 = PIN_A6;
|
||||
static const uint8_t A7 = PIN_A7;
|
||||
#define ADC_RESOLUTION 14
|
||||
|
||||
// Other pins
|
||||
#define PIN_AREF (0xFF) // No analog reference
|
||||
|
||||
static const uint8_t AREF = PIN_AREF;
|
||||
|
||||
/* Serial interfaces */
|
||||
#define PIN_GPS_TX (GPS_TX)
|
||||
#define PIN_GPS_RX (GPS_RX)
|
||||
#define PIN_GPS_EN (GPS_EN)
|
||||
|
||||
#define PIN_SERIAL1_TX (PIN_GPS_TX)
|
||||
#define PIN_SERIAL1_RX (PIN_GPS_RX)
|
||||
|
||||
/* SPI Interfaces */
|
||||
// unused pins - define anyways
|
||||
#define SPI_INTERFACES_COUNT 1
|
||||
#define PIN_SPI_MOSI (9) // P0.09 (13) NC
|
||||
#define PIN_SPI_MISO (10) // P0.10 (12) NC
|
||||
#define PIN_SPI_SCK (21) // P0.21 (11) NC
|
||||
|
||||
/* I2C Interfaces */
|
||||
#define WIRE_INTERFACES_COUNT 1
|
||||
|
||||
#define PIN_WIRE_SDA (RTC_SDA)
|
||||
#define PIN_WIRE_SCL (RTC_SCL)
|
||||
|
||||
/* QSPI Pins */
|
||||
// interface occupied by peripherals, define anyways
|
||||
#define PIN_QSPI_SCK (3) // P0.03 (29) BUZZER
|
||||
#define PIN_QSPI_CS (26) // P0.26 (34) USER_BUTTON
|
||||
#define PIN_QSPI_IO0 (30) // P0.30 (33) MCU_SIGNAL
|
||||
#define PIN_QSPI_IO1 (29) // P0.29 (32) SOFT_SHUTDOWN
|
||||
#define PIN_QSPI_IO2 (28) // P0.28 (31) BLU_LED_RAK
|
||||
#define PIN_QSPI_IO3 (2) // P0.02 (30) GPS_PPS
|
||||
|
||||
/* On-board QSPI Flash */
|
||||
// No QSPI (define anyways)
|
||||
#define EXTERNAL_FLASH_DEVICES IS25LP080D
|
||||
#define EXTERNAL_FLASH_USE_QSPI
|
||||
|
||||
/* Battery */
|
||||
#define PIN_VBAT_READ (31) // P0.31 (39) ADC_VBAT
|
||||
#define PIN_BAT_CHG (34) // P1.02 (26) BAT_CHG_STATUS
|
||||
|
||||
#define ADC_MULTIPLIER (3 * 1.73 * 1.187 * 1000)
|
||||
|
||||
// Power management boot protection threshold (millivolts)
|
||||
// Set to 0 to disable boot protection
|
||||
// disabled for now until I can figure this out
|
||||
#define PWRMGT_VOLTAGE_BOOTLOCK 0 // Won't boot below this voltage (mV)
|
||||
// LPCOMP wake configuration (voltage recovery from SYSTEMOFF)
|
||||
// AIN3 = P0.05 = PIN_A0 / PIN_VBAT_READ
|
||||
#define PWRMGT_LPCOMP_AIN 5
|
||||
#define PWRMGT_LPCOMP_REFSEL 4 // 5/8 VDD (~3.13-3.44V)
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
* Arduino objects - C++ only
|
||||
*----------------------------------------------------------------------------*/
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user