Просмотр исходного кода

updated to MIT licensed board variant

taco 1 год назад
Родитель
Сommit
1a21a08845

+ 78 - 0
boards/promicro_nrf52840.json

@@ -0,0 +1,78 @@
+{
+    "build": {
+      "arduino":{
+        "ldscript": "nrf52840_s140_v6.ld"
+      },
+      "core": "nRF5",
+      "cpu": "cortex-m4",
+      "extra_flags": "-DARDUINO_NRF52840_FEATHER -DNRF52840_XXAA",
+      "f_cpu": "64000000L",
+      "hwids": [
+        [ 
+          "0x239A",
+          "0x00B3"
+        ],
+        [
+          "0x239A",
+          "0x8029"
+        ],
+        [
+          "0x239A",
+          "0x0029"
+        ],
+        [
+          "0x239A",
+          "0x002A"
+        ],
+        [
+          "0x239A",
+          "0x802A"
+        ]
+      ],
+      "usb_product": "ProMicro NRF52840",
+      "mcu": "nrf52840",
+      "variant": "promicro_nrf52840",
+      "variants_dir": "variants",
+      "bsp": {
+        "name": "adafruit"
+      },
+      "softdevice": {
+        "sd_flags": "-DS140",
+        "sd_name": "s140",
+        "sd_version": "6.1.1",
+        "sd_fwid": "0x00B6"
+      },
+      "bootloader": {
+        "settings_addr": "0xFF000"
+      }
+    },
+    "connectivity": [
+      "bluetooth"
+    ],
+    "debug": {
+      "jlink_device": "nRF52840_xxAA",
+      "svd_path": "nrf52840.svd"
+    },
+    "frameworks": [
+      "arduino",
+      "zephyr"
+    ],
+    "name": "ProMicro NRF52840",
+    "upload": {
+      "maximum_ram_size": 248832,
+      "maximum_size": 815104,
+      "speed": 115200,
+      "protocol": "nrfutil",
+      "protocols": [
+        "jlink",
+        "nrfjprog",
+        "nrfutil",
+        "stlink"
+      ],
+      "use_1200bps_touch": true,
+      "require_upload_port": true,
+      "wait_for_upload_port": true
+    },
+    "url": "https://www.nologo.tech/en/product/otherboard/NRF52840.html",
+    "vendor": "Nologo"
+  }

+ 1 - 2
platformio.ini

@@ -951,8 +951,7 @@ lib_deps =
 
 [faketec]
 extends = nrf52840_base
-board = supermini_nrf52840
-#board_check = true
+board = promicro_nrf52840
 build_src_filter = ${nrf52840_base.build_src_filter}  +<helpers/nrf52/faketecBoard.cpp>
 build_flags = ${nrf52840_base.build_flags}
   -D FAKETEC

+ 10 - 10
src/helpers/nrf52/faketecBoard.h

@@ -4,20 +4,20 @@
 #include <Arduino.h>
 #include <Wire.h>
 
-#define P_LORA_NSS D13 //P1.13 45
-#define P_LORA_DIO_1 D11 //P0.10 10
-#define P_LORA_RESET D10 //P0.09 9
-#define P_LORA_BUSY  D16 //P0.29 29
-#define P_LORA_MISO  D15 //P0.02 2
-#define P_LORA_SCLK  D12 //P1.11 43
-#define P_LORA_MOSI  D14 //P1.15 47
-#define SX126X_POWER_EN EXT_VCC //P0.13 13
-#define SX126X_RXEN D2 //P0.17
+#define P_LORA_NSS 13 //P1.13 45
+#define P_LORA_DIO_1 11 //P0.10 10
+#define P_LORA_RESET 10 //P0.09 9
+#define P_LORA_BUSY  16 //P0.29 29
+#define P_LORA_MISO  15 //P0.02 2
+#define P_LORA_SCLK  12 //P1.11 43
+#define P_LORA_MOSI  14 //P1.15 47
+#define SX126X_POWER_EN 21 //P0.13 13
+#define SX126X_RXEN 2 //P0.17
 #define SX126X_TXEN RADIOLIB_NC
 #define SX126X_DIO2_AS_RF_SWITCH  true
 #define SX126X_DIO3_TCXO_VOLTAGE (1.8f)
 
-#define  PIN_VBAT_READ PIN_A2
+#define  PIN_VBAT_READ 17
 #define  ADC_MULTIPLIER   (1.815f) // dependent on voltage divider resistors. TODO: more accurate battery tracking
 
 class faketecBoard : public mesh::MainBoard {

+ 15 - 0
variants/promicro_nrf52840/variant.cpp

@@ -0,0 +1,15 @@
+#include "variant.h"
+#include "wiring_constants.h"
+#include "wiring_digital.h"
+
+const uint32_t g_ADigitalPinMap[] = {
+  8, 6, 17, 20, 22, 24, 32, 11, 36, 38,
+  9, 10, 43, 45, 47, 2, 29, 31,
+  33, 34, 37,
+  13, 15
+};
+
+void initVariant()
+{
+}
+

+ 82 - 0
variants/promicro_nrf52840/variant.h

@@ -0,0 +1,82 @@
+/*
+ * variant.h
+ * Copyright (C) 2023 Seeed K.K.
+ * MIT License
+ */
+
+ #pragma once
+
+ #include "WVariant.h"
+ 
+ ////////////////////////////////////////////////////////////////////////////////
+ // Low frequency clock source 
+
+#define VARIANT_MCK       (64000000ul)
+
+//#define USE_LFXO      // 32.768 kHz crystal oscillator
+#define USE_LFRC    // 32.768 kHz RC oscillator
+
+////////////////////////////////////////////////////////////////////////////////
+// Power
+
+#define PIN_EXT_VCC          (21)
+#define EXT_VCC              (PIN_EXT_VCC)
+
+#define BATTERY_PIN          (17)
+#define ADC_RESOLUTION       12
+
+////////////////////////////////////////////////////////////////////////////////
+// Number of pins
+
+#define PINS_COUNT           (23)
+#define NUM_DIGITAL_PINS     (23)
+#define NUM_ANALOG_INPUTS    (3)
+#define NUM_ANALOG_OUTPUTS   (0)
+
+////////////////////////////////////////////////////////////////////////////////
+// UART pin definition
+
+#define PIN_SERIAL1_TX       (1)
+#define PIN_SERIAL1_RX       (0)
+
+////////////////////////////////////////////////////////////////////////////////
+// I2C pin definition
+
+#define WIRE_INTERFACES_COUNT 2
+
+#define PIN_WIRE_SDA         (6)
+#define PIN_WIRE_SCL         (7)
+#define PIN_WIRE1_SDA        (13)
+#define PIN_WIRE1_SCL        (14)
+
+////////////////////////////////////////////////////////////////////////////////
+// SPI pin definition
+
+#define SPI_INTERFACES_COUNT 2
+
+#define PIN_SPI_SCK          (2)
+#define PIN_SPI_MISO         (3)
+#define PIN_SPI_MOSI         (4)
+
+#define PIN_SPI_NSS          (5)
+
+#define PIN_SPI1_SCK         (18)
+#define PIN_SPI1_MISO        (19)
+#define PIN_SPI1_MOSI        (20)
+
+////////////////////////////////////////////////////////////////////////////////
+// Builtin LEDs
+
+#define PIN_LED              (22)
+#define LED_PIN              PIN_LED
+#define LED_BLUE             PIN_LED
+#define LED_BUILTIN          PIN_LED
+#define LED_STATE_ON         1
+
+////////////////////////////////////////////////////////////////////////////////
+// Builtin buttons
+
+#define PIN_BUTTON1          (6)
+#define BUTTON_PIN           PIN_BUTTON1
+
+

+ 0 - 52
variants/supermini_nrf52840/variant.cpp

@@ -1,52 +0,0 @@
-#include "variant.h"
-#include "wiring_constants.h"
-#include "wiring_digital.h"
-#include "nrf.h"
-
-const uint32_t g_ADigitalPinMap[] =
-{
-    // D0 - D9 (left side, top to bottom)
-    6,  // D0 is P0.06 (D0, TX)
-    8,  // D1 is P0.08 (D1, RX)
-    17, // D2 is P0.17 (D2, SCK)
-    20, // D3 is P0.20 (D3, MISO)
-    22, // D4 is P0.22 (D4, MOSI)
-    24, // D5 is P0.24 (D5, CS)
-    32, // D6 is P1.00 (D6, SDA)
-    11, // D7 is P0.11 (D7, SCL)
-    36, // D8 is P1.04 (D8)
-    38, // D9 is P1.06 (D9)
-
-    // D10 - D17 (right side, bottom to top)
-    9,  // D10 is P0.09 (D10, NFC1)
-    10, // D11 is P0.10 (D11, NFC2)
-    43, // D12 is P1.11 (D12)
-    45, // D13 is P1.13 (D13, SDA1)
-    47, // D14 is P1.15 (D14, SCL1)
-    2,  // D15 is P0.02 (D15, A0)
-    29, // D16 is P0.29 (D16, A1)
-    31, // D17 is P0.31 (D17, A2)
-
-    // D18 - D20 (extra center pins, left to right)
-    33, // D18 is P1.01 (D18, SCK1)
-    34, // D19 is P1.02 (D19, MISO1)
-    39, // D20 is P1.07 (D20, MOSI1)
-
-    // EXT_VCC
-    13, // 'D21' is P0.13 (EXT_VCC) [active high]
-
-    // LED
-    15, // 'D22' is P0.15 (LED)
-};
-
-void initVariant()
-{
-    // enable EXT_VCC by default
-    pinMode(EXT_VCC, OUTPUT);
-    digitalWrite(EXT_VCC, HIGH);
-
-    // enable LED by default
-    pinMode(LED_BUILTIN, OUTPUT);
-    digitalWrite(LED_BUILTIN, HIGH);
-}
-

+ 0 - 176
variants/supermini_nrf52840/variant.h

@@ -1,176 +0,0 @@
-#ifndef _SUPERMINI_NRF52840_H_
-#define _SUPERMINI_NRF52840_H_
-
-#define TARGET_SUPERMINI_NRF52840
-
-/** 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
-
-#define PINS_COUNT           (23)
-#define NUM_DIGITAL_PINS     (23)
-#define NUM_ANALOG_INPUTS    (3)
-#define NUM_ANALOG_OUTPUTS   (0)
-
-// NOTE:
-//
-// BATTERY VOLTAGE IS READ VIA VDDH/5 BY CALLING
-//
-// analogReadVDDHDIV5() // returns uint32_t
-
-// 3V3 Regulator Disable
-#define PIN_EXT_VCC          (21) // EXT_VCC is P0.13 (set low to disable 3v3)
-#define EXT_VCC              (PIN_EXT_VCC)
-
-// LEDs
-#define PIN_LED              (22) // USR LED is P0.15
-#define LED_PWR              (PINS_COUNT) // no LED_PWR
-#define PIN_NEOPIXEL         (PINS_COUNT) // no neopixel
-#define NEOPIXEL_NUM         0
-#define LED_BLUE             PIN_LED // required by bluefruit library
-
-#define LED_BUILTIN          PIN_LED
-
-#define LED_STATE_ON         1         // State when LED is on
-
-/*
- * Buttons
- */
-#define PIN_BUTTON1          (PINS_COUNT) // no button
-
-// Digital PINs
-// NOTE: THIS IS A RENUMBERING OF THE PINS
-// AND DOES NOT CORRESPOND TO THE NICENANO DIAGRAM
-
-// left side (top to bottom)
-#define D0 (0ul) // P0.06 (TX)
-#define D1 (1ul) // P0.08 (RX)
-#define D2 (2ul) // P0.17 (SCK)
-#define D3 (3ul) // P0.20 (MISO)
-#define D4 (4ul) // P0.22 (MOSI)
-#define D5 (5ul) // P0.24 (CS)
-#define D6 (6ul) // P1.00 (SDA)
-#define D7 (7ul) // P0.11 (SCL)
-#define D8 (8ul) // P1.04
-#define D9 (9ul) // P1.06
-
-// right side (bottom to top)
-#define D10 (10ul) // P0.09 (NFC1)
-#define D11 (11ul) // P0.10 (NFC2)
-#define D12 (12ul) // P1.11
-#define D13 (13ul) // P1.13 (SDA1)
-#define D14 (14ul) // P1.15 (SCL1)
-#define D15 (15ul) // P0.02/AIN0 (A0)
-#define D16 (16ul) // P0.29/AIN6 (A1)
-#define D17 (17ul) // P0.31/AIN7 (A2)
-
-// extra center pins (left to right)
-#define D18 (18ul) // P1.01 (SCK1)
-#define D19 (19ul) // P1.02 (MISO1)
-#define D20 (20ul) // P1.07 (MOSI1)
-
-/*
- * Macros for nRF pin numbers for compatibility
- */
-#define P0_06 (D0)
-#define P0_08 (D1)
-#define P0_17 (D2)
-#define P0_20 (D3)
-#define P0_22 (D4)
-#define P0_24 (D5)
-#define P1_00 (D6)
-#define P0_11 (D7)
-#define P1_04 (D8)
-#define P1_06 (D9)
-#define P0_09 (D10)
-#define P0_10 (D11)
-#define P1_11 (D12)
-#define P1_13 (D13)
-#define P1_15 (D14)
-#define P0_02 (D15)
-#define P0_29 (D16)
-#define P0_31 (D17)
-#define P1_01 (D18)
-#define P1_02 (D19)
-#define P1_07 (D20)
-#define P0_13 (EXT_VCC)
-#define P0_15 (PIN_LED)
-
-/*
- * Analog pins
- */
-#define PIN_A0               (15) // P0.02 (D15)
-#define PIN_A1               (16) // P0.29 (D16)
-#define PIN_A2               (17) // P0.31 (D17)
-
-static const uint8_t A0  = PIN_A0 ;
-static const uint8_t A1  = PIN_A1 ;
-static const uint8_t A2  = PIN_A2 ;
-#define ADC_RESOLUTION    12
-
-/*
- * Other pins
- */
-#define PIN_NFC1             (10) // P0.09 - also D10
-#define PIN_NFC2             (11) // P0.10 - also D11
-
-/*
- * Serial interfaces
- */
-#define PIN_SERIAL1_TX       (0) // P0.06 - also D0
-#define PIN_SERIAL1_RX       (1) // P0.08 - also D1
-
-/*
- * SPI Interfaces
- */
-#define SPI_INTERFACES_COUNT 2
-
-#define PIN_SPI_SCK          (2) // P0.17 - D2
-#define PIN_SPI_MISO         (3) // P0.20 - D3
-#define PIN_SPI_MOSI         (4) // P0.22 - D4
-
-static const uint8_t SS   = (5); // P0.24 - D5
-static const uint8_t MOSI = PIN_SPI_MOSI ;
-static const uint8_t MISO = PIN_SPI_MISO ;
-static const uint8_t SCK  = PIN_SPI_SCK ;
-
-#define PIN_SPI1_SCK          (18) // P1.01 - D18
-#define PIN_SPI1_MISO         (19) // P1.02 - D19
-#define PIN_SPI1_MOSI         (20) // P1.07 - D20
-
-/*
- * Wire Interfaces
- */
-#define WIRE_INTERFACES_COUNT 2
-
-#define PIN_WIRE_SDA         (6) // P1.00 - D6
-#define PIN_WIRE_SCL         (7) // P0.11 - D7
-
-static const uint8_t SDA = PIN_WIRE_SDA;
-static const uint8_t SCL = PIN_WIRE_SCL;
-
-#define PIN_WIRE1_SDA        (13) // P1.13 - D13
-#define PIN_WIRE1_SCL        (14) // P1.15 - D14
-
-#ifdef __cplusplus
-}
-#endif
-
-/*----------------------------------------------------------------------------
- *        Arduino objects - C++ only
- *----------------------------------------------------------------------------*/
-
-#endif