emdashes begone (#10847)
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# nRF54L15-DK — EBYTE E22-900M30S Wiring Guide
|
||||
# nRF54L15-DK - EBYTE E22-900M30S Wiring Guide
|
||||
|
||||
Board: **Nordic nRF54L15-DK (PCA10156)**
|
||||
Radio: **EBYTE E22-900M30S** (SX1262, 30 dBm, 868/915 MHz)
|
||||
@@ -9,9 +9,9 @@ Radio: **EBYTE E22-900M30S** (SX1262, 30 dBm, 868/915 MHz)
|
||||
|
||||
The nRF54L15 splits its GPIOs across three supply domains:
|
||||
|
||||
- **P0** — Main domain, **3.0 V** — usable
|
||||
- **P1** — LP domain, **1.8 V** — **not compatible** with the SX1262
|
||||
- **P2** — HP domain, **3.0 V** — usable
|
||||
- **P0** - Main domain, **3.0 V** - usable
|
||||
- **P1** - LP domain, **1.8 V** - **not compatible** with the SX1262
|
||||
- **P2** - HP domain, **3.0 V** - usable
|
||||
|
||||
The SX1262 requires VIH ≥ 0.7 × VDD (≈ 2.31 V at VDD = 3.3 V). P1's 1.8 V output
|
||||
leaves the chip stuck in reset with `BUSY` never going LOW. All E22 signals
|
||||
@@ -19,24 +19,25 @@ therefore live on **P2** and are driven by **SPIM00**.
|
||||
|
||||
> `P2.09` is normally wired to LED0 on the DK; we ignore the LED and use
|
||||
> SPIM00's default MISO pin. The on-board MX25R64 NOR flash also sat on SPIM00
|
||||
> — it is deleted in the device-tree overlay to free the bus.
|
||||
>
|
||||
> - it is deleted in the device-tree overlay to free the bus.
|
||||
|
||||
---
|
||||
|
||||
## Connections — J2 header, P2 bank
|
||||
## Connections - J2 header, P2 bank
|
||||
|
||||
| E22-900M30S | GPIO | DK pin | Function |
|
||||
| ----------- | ----- | ------ | ---------------------------------------------- |
|
||||
| MISO | P2.04 | 36 | SPIM00 data in |
|
||||
| NSS / CS | P2.05 | 37 | SPI chip-select (driven by RadioLib as a GPIO) |
|
||||
| DIO1 | P2.06 | 38 | IRQ — modem interrupt (routed via gpiote30) |
|
||||
| DIO1 | P2.06 | 38 | IRQ - modem interrupt (routed via gpiote30) |
|
||||
| BUSY | P2.03 | 35 | Module busy (GPIO input) |
|
||||
| NRESET | P2.00 | 32 | Module reset (GPIO output, active LOW) |
|
||||
| RXEN | P2.07 | 39 | LNA enable — held HIGH via `SX126X_ANT_SW` |
|
||||
| RXEN | P2.07 | 39 | LNA enable - held HIGH via `SX126X_ANT_SW` |
|
||||
| MOSI | P2.02 | 34 | SPIM00 data out |
|
||||
| SCK | P2.01 | 33 | SPIM00 clock |
|
||||
| GND | — | GND | Common ground |
|
||||
| VCC | — | VDD | 3.3 V |
|
||||
| GND | - | GND | Common ground |
|
||||
| VCC | - | VDD | 3.3 V |
|
||||
|
||||
> **Numbering convention**: `P0.n = n`, `P1.n = 16+n`, `P2.n = 32+n`.
|
||||
> Example: `P2.04` → 32 + 4 = **36**.
|
||||
@@ -55,27 +56,27 @@ Without this bridge the module **will not transmit** (PA is never enabled).
|
||||
|
||||
---
|
||||
|
||||
## RXEN — LNA always on
|
||||
## RXEN - LNA always on
|
||||
|
||||
`RXEN` (P2.07) is held HIGH permanently via `SX126X_ANT_SW 39` in `variant.h`.
|
||||
**Do not use** `SX126X_RXEN` — RadioLib would drive it LOW in IDLE state and
|
||||
**Do not use** `SX126X_RXEN` - RadioLib would drive it LOW in IDLE state and
|
||||
the LNA would stay disabled (radio deaf in RX).
|
||||
|
||||
---
|
||||
|
||||
## Reserved DK pins — do not reuse
|
||||
## Reserved DK pins - do not reuse
|
||||
|
||||
| Pins | Reserved function |
|
||||
| ----------- | -------------------------------------------------------- |
|
||||
| P0.00–P0.03 | IMCU debug UART (uart30, J-Link VCOM — used by RTT host) |
|
||||
| P0.00-P0.03 | IMCU debug UART (uart30, J-Link VCOM - used by RTT host) |
|
||||
| P0.04 | BTN3 |
|
||||
| P1.00–P1.01 | 32 kHz crystal |
|
||||
| P1.02–P1.03 | NFC antenna |
|
||||
| P1.10 | LED1 (status LED — kept) |
|
||||
| P1.00-P1.01 | 32 kHz crystal |
|
||||
| P1.02-P1.03 | NFC antenna |
|
||||
| P1.10 | LED1 (status LED - kept) |
|
||||
| P1.13 | BTN0 (only remaining user button) |
|
||||
| P1.14 | LED3 |
|
||||
| P2.01–P2.05 | SPIM00 / E22 (see connection table above) |
|
||||
| P2.08–P2.10 | Trace ETM / LED2 (avoid) |
|
||||
| P2.01-P2.05 | SPIM00 / E22 (see connection table above) |
|
||||
| P2.08-P2.10 | Trace ETM / LED2 (avoid) |
|
||||
|
||||
---
|
||||
|
||||
@@ -104,5 +105,5 @@ INFO | ... lora.begin() = 0 ← RADIOLIB_ERR_NONE
|
||||
```
|
||||
|
||||
If you see `Record critical error 3` (`NO_RADIO`), check: DIO2→TXEN bridge,
|
||||
supply voltages (the E22 must see 3.0–3.3 V on P2, not 1.8 V), and SPI wiring
|
||||
supply voltages (the E22 must see 3.0-3.3 V on P2, not 1.8 V), and SPI wiring
|
||||
continuity.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
[env:nrf54l15dk]
|
||||
# PRIVATE_HW (255) — the protobuf HardwareModel enum reserves DK / DIY boards
|
||||
# PRIVATE_HW (255) - the protobuf HardwareModel enum reserves DK / DIY boards
|
||||
# without an SKU under PRIVATE_HW; no dedicated enum value will be assigned.
|
||||
custom_meshtastic_hw_model = 255
|
||||
custom_meshtastic_hw_model_slug = NRF54L15_DK
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
/*
|
||||
* Nordic nRF54L15-DK (PCA10156) — Meshtastic variant
|
||||
* Nordic nRF54L15-DK (PCA10156) - Meshtastic variant
|
||||
*
|
||||
* ── GPIO voltage domains ─────────────────────────────────────────────────────
|
||||
* P0 (gpio0 @ 0x10A000) Main domain 3.0 V ← usable
|
||||
@@ -12,13 +12,13 @@
|
||||
* P1 outputs only 1.8 V → chip stays in reset, BUSY never goes LOW.
|
||||
* All E22 signals are therefore on P2 (3.0 V), driven by SPIM00.
|
||||
*
|
||||
* EBYTE E22-900M30S (SX1262) wiring — J2 header, all P2:
|
||||
* EBYTE E22-900M30S (SX1262) wiring - J2 header, all P2:
|
||||
*
|
||||
* E22 pin GPIO pin# Notes
|
||||
* ─────────────────────────────────────────────────────────────────────
|
||||
* MISO → P2.04 36 SPIM00 data in
|
||||
* NSS/CS → P2.05 37 SPI chip-select (RadioLib GPIO)
|
||||
* DIO1 → P2.06 38 IRQ — interrupt via gpiote30
|
||||
* DIO1 → P2.06 38 IRQ - interrupt via gpiote30
|
||||
* BUSY → P2.03 35 GPIO input
|
||||
* NRESET → P2.00 32 GPIO output
|
||||
* RXEN → P2.07 39 Held HIGH via ANT_SW (LNA always active)
|
||||
@@ -32,13 +32,13 @@
|
||||
*
|
||||
* Reserved / do-not-use DK pins:
|
||||
* P0.00-P0.02 IMCU VCOM TX/RX/RTS pads (uart30 disabled; pads idle)
|
||||
* P0.03 I2C SDA (TWIM30) — sensor bus
|
||||
* P0.04 I2C SCL (TWIM30) — sensor bus; SW3 button on this pad,
|
||||
* P0.03 I2C SDA (TWIM30) - sensor bus
|
||||
* P0.04 I2C SCL (TWIM30) - sensor bus; SW3 button on this pad,
|
||||
* DO NOT press SW3 while I2C is active
|
||||
* P1.00-P1.01 32 kHz crystal
|
||||
* P1.02-P1.03 NFC antenna
|
||||
* P1.10 LED1 (status LED — keep)
|
||||
* P1.13 BTN0 — main user button
|
||||
* P1.10 LED1 (status LED - keep)
|
||||
* P1.13 BTN0 - main user button
|
||||
* P1.14 LED3
|
||||
* P2.01-P2.05 SPIM00 / E22 (see above)
|
||||
* P2.08-P2.10 Trace pins (avoid)
|
||||
@@ -48,16 +48,16 @@
|
||||
#define NRF54L15_DK
|
||||
#endif
|
||||
|
||||
// ── SX1262 / E22-900M30S — all P2, HP domain (3.0 V) ────────────────────────
|
||||
// ── SX1262 / E22-900M30S - all P2, HP domain (3.0 V) ────────────────────────
|
||||
#define USE_SX1262
|
||||
#define SX126X_CS 37 // P2.05 — chip-select
|
||||
#define SX126X_DIO1 38 // P2.06 — IRQ (gpiote30 capable)
|
||||
#define SX126X_BUSY 35 // P2.03 — BUSY
|
||||
#define SX126X_RESET 32 // P2.00 — NRESET
|
||||
#define SX126X_CS 37 // P2.05 - chip-select
|
||||
#define SX126X_DIO1 38 // P2.06 - IRQ (gpiote30 capable)
|
||||
#define SX126X_BUSY 35 // P2.03 - BUSY
|
||||
#define SX126X_RESET 32 // P2.00 - NRESET
|
||||
|
||||
// RXEN (P2.07) held HIGH permanently — LNA always active.
|
||||
// RXEN (P2.07) held HIGH permanently - LNA always active.
|
||||
// RadioLib must NOT toggle it; ANT_SW drives it HIGH before lora.begin().
|
||||
#define SX126X_ANT_SW 39 // P2.07 — RXEN driven HIGH at init
|
||||
#define SX126X_ANT_SW 39 // P2.07 - RXEN driven HIGH at init
|
||||
|
||||
// DIO2 controls TXEN via bridge on E22 module.
|
||||
// DIO3 provides 1.8 V TCXO reference.
|
||||
@@ -65,14 +65,14 @@
|
||||
#define SX126X_DIO3_TCXO_VOLTAGE 1.8f
|
||||
|
||||
// ── LEDs (active HIGH) ───────────────────────────────────────────────────────
|
||||
#define PIN_LED1 26 // P1.10 — LED1 (status LED, LP domain — output only, OK)
|
||||
#define PIN_LED2 41 // P2.09 — LED0 on DK (remapped; P2.07 now used for RXEN)
|
||||
#define PIN_LED1 26 // P1.10 - LED1 (status LED, LP domain - output only, OK)
|
||||
#define PIN_LED2 41 // P2.09 - LED0 on DK (remapped; P2.07 now used for RXEN)
|
||||
#define LED_STATE_ON 1
|
||||
|
||||
// ── Buttons (active LOW, internal pull-up) ───────────────────────────────────
|
||||
// BTN1 (P1.09), BTN2 (P1.08) and BTN3 (P0.04) deleted from DTS — only BTN0
|
||||
// BTN1 (P1.09), BTN2 (P1.08) and BTN3 (P0.04) deleted from DTS - only BTN0
|
||||
// remains. BTN3's pad (P0.04) is now I2C SCL.
|
||||
#define PIN_BUTTON1 29 // P1.13 — BTN0
|
||||
#define PIN_BUTTON1 29 // P1.13 - BTN0
|
||||
#define BUTTON_NEED_PULLUP
|
||||
|
||||
// ── I2C bus (TWIM30, HP domain, 3.0 V) ──────────────────────────────────────
|
||||
|
||||
Reference in New Issue
Block a user