diff options
author | Clyne Sullivan <tullivan99@gmail.com> | 2019-02-28 17:04:22 -0500 |
---|---|---|
committer | Clyne Sullivan <tullivan99@gmail.com> | 2019-02-28 17:04:22 -0500 |
commit | d6869d1ec4bd24cd2c3eafa534f0849b25ec5607 (patch) | |
tree | 79e54ed27b39c31864895535d11399708d5a45c0 /arduino/variants/feather_nrf52840_express | |
parent | 614ee97bf3a2270c413527a7f35c54cbecd9e601 (diff) |
added basic code
Diffstat (limited to 'arduino/variants/feather_nrf52840_express')
-rwxr-xr-x | arduino/variants/feather_nrf52840_express/variant.cpp | 92 | ||||
-rwxr-xr-x | arduino/variants/feather_nrf52840_express/variant.h | 147 |
2 files changed, 239 insertions, 0 deletions
diff --git a/arduino/variants/feather_nrf52840_express/variant.cpp b/arduino/variants/feather_nrf52840_express/variant.cpp new file mode 100755 index 0000000..7d74f4a --- /dev/null +++ b/arduino/variants/feather_nrf52840_express/variant.cpp @@ -0,0 +1,92 @@ +/* + 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 +*/ + +#include "variant.h" +#include "wiring_constants.h" +#include "wiring_digital.h" +#include "nrf.h" + +#include "usb.h" +#include "flash/flash_qspi.h" + +const uint32_t g_ADigitalPinMap[] = +{ + 25, // D0 is UART TX on P0.25 + 24, // D1 is UART RX on P0.24 + 10, // D2 is on P0.10 + 47, // D3 is LED1 on P1.15 + 42, // D4 is LED2 on P1.10 + 40, // D5 on P1.08 + 7, // D6 on P0.07 + 34, // D7 is Button on P1.02 + 16, // D8 is NeoPixel on P0.16 + 26, // D9 on P0.26 + 27, // D10 on P0.27 + 6, // D11 on P.06 + 8, // D12 on P0.08 + 41, // D13 on P1.09 + + 4, // D14 is A0 on P0.04 + 5, // D15 is A1 on P0.05 + 30, // D16 is A2 on P0.30 + 28, // D17 is A3 on P0.28 + 2, // D18 is A4 on P0.02 + 3, // D19 is A5 on P0.03 + 29, // D20 is A6 (Battery) on P0.29 + 31, // D21 is A7 (ARef) on P0.31 + + 12, // D22 is SDA on P0.12 + 11, // D23 is SCL on P0.11 + + 15, // D24 is SPI MISO on P0.15 + 13, // D25 is SPI MOSI on P0.13 + 14, // D26 is SPI SCK on P0.14 + + 19, // D27 is QSPI CLK on P0.19 + 20, // D28 is QSPI CS on P0.20 + 17, // D29 is QSPI Data 0 on P0.17 + 22, // D30 is QSPI Data 1 on P0.22 + 23, // D31 is QSPI Data 2 on P0.23 + 21, // D32 is QSPI Data 3 on P0.21 + + // P1 + 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47 +}; + +void initVariant() +{ + // LED1 & LED2 + pinMode(PIN_LED1, OUTPUT); + ledOff(PIN_LED1); + + pinMode(PIN_LED2, OUTPUT); + ledOff(PIN_LED2); + +#if 0 // disable QSPI flash for now + // Init External Flash + flash_qspi_init(); +#endif + + + // USB init + usb_init(); +} + diff --git a/arduino/variants/feather_nrf52840_express/variant.h b/arduino/variants/feather_nrf52840_express/variant.h new file mode 100755 index 0000000..b7ba1d0 --- /dev/null +++ b/arduino/variants/feather_nrf52840_express/variant.h @@ -0,0 +1,147 @@ + /* + 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_FEATHER52840_ +#define _VARIANT_FEATHER52840_ + +/** 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 (6) +#define NUM_ANALOG_OUTPUTS (0) + +// LEDs +#define PIN_LED1 (3) +#define PIN_LED2 (4) +#define PIN_NEOPIXEL (8) + +#define LED_BUILTIN PIN_LED1 +#define LED_CONN PIN_LED2 + +#define LED_RED PIN_LED1 +#define LED_BLUE PIN_LED2 + +#define LED_STATE_ON 1 // State when LED is litted + +// Buttons +/* +#define PIN_BUTTON1 (2) +#define PIN_BUTTON2 (3) +#define PIN_BUTTON3 (4) +#define PIN_BUTTON4 (5) +*/ + +/* + * Analog pins + */ +#define PIN_A0 (14) +#define PIN_A1 (15) +#define PIN_A2 (16) +#define PIN_A3 (17) +#define PIN_A4 (18) +#define PIN_A5 (19) +#define PIN_A6 (20) +#define PIN_A7 (21) + +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 (PIN_A7) +#define PIN_DFU (7) +#define PIN_NFC1 (2) +#define PIN_NFC2 (51) + +static const uint8_t AREF = PIN_AREF; + +/* + * Serial interfaces + */ +// Serial +#define PIN_SERIAL_RX (1) +#define PIN_SERIAL_TX (0) + +/* + * SPI Interfaces + */ +#define SPI_INTERFACES_COUNT 1 + +#define PIN_SPI_MISO (24) +#define PIN_SPI_MOSI (25) +#define PIN_SPI_SCK (26) + +static const uint8_t SS = (5); +static const uint8_t MOSI = PIN_SPI_MOSI ; +static const uint8_t MISO = PIN_SPI_MISO ; +static const uint8_t SCK = PIN_SPI_SCK ; + +/* + * Wire Interfaces + */ +#define WIRE_INTERFACES_COUNT 1 + +#define PIN_WIRE_SDA (22) +#define PIN_WIRE_SCL (23) + +/* + * QSPI interface for external flash + */ +#define PIN_QSPI_SCK 27 +#define PIN_QSPI_CS 28 +#define PIN_QSPI_DATA0 29 +#define PIN_QSPI_DATA1 30 +#define PIN_QSPI_DATA2 31 +#define PIN_QSPI_DATA3 32 + +// On-board QSPI Flash +// If EXTERNAL_FLASH_DEVICES is not defined, all supported devices will be used +#define EXTERNAL_FLASH_DEVICES GD25Q16C + +#ifdef __cplusplus +} +#endif + +/*---------------------------------------------------------------------------- + * Arduino objects - C++ only + *----------------------------------------------------------------------------*/ + +#endif |