Schéma de câblage — Mega 2560 Pro + DWM3000 (UWB DS-TWR)

Adaptation matérielle du firmware dw3000_uwb_ranging.ino pour Arduino Mega 2560 Pro (Mini).

⚠ Niveaux logiques. Le Mega 2560 fonctionne en 5 V. Le DWM3000 fonctionne en 3.3 V et n'est PAS tolérant aux 5 V. Toutes les lignes pilotées par le Mega vers le DWM3000 (SCK, MOSI, CS, RST) doivent passer par un convertisseur de niveau bidirectionnel (TXS0108E, ou diviseur résistif 1k/2k pour un montage rapide). La ligne MISO (DW3000 → Mega) et IRQ (DW3000 → Mega) sont dans le sens 3.3 V → 5 V : le Mega lit un niveau HAUT à partir de ~3 V, donc cela passe directement, mais un shifter bidirectionnel les gère aussi proprement.

1. Schéma de câblage (vue logique)

+3.3 V GND SPI CLK SPI MOSI SPI MISO CS IRQ RST
Arduino Mega 2560 Pro (version Mini / Pro embedded) USB 3.3V GND D52 (SCK) D51 (MOSI) D50 (MISO) D53 (CS/SS) D2 (IRQ — INT0) D5 (RST DW3000) Logique I/O : 5 V VCC plat. : 5 V (USB) • Sortie 3.3V : ~150 mA max Level Shifter TXS0108E / 4ch bidir. VA = 5V A1 ● A2 ● A3 ● A4 ● A5 ● A6 ● VB = 3.3V ● B1 ● B2 ● B3 ● B4 ● B5 ● B6 OE → 3.3V via 10 kΩ UWB DWM3000 Qorvo DW3000 module VCC (3.3V) GND SCK MOSI MISO CS IRQ RSTn Logique I/O : 3.3 V (NON-tolérant 5 V) 100 nF 3.3V (VB + VCC) GND commun

2. Tableau de correspondance des broches

Signal Broche Mega 2560 Pro Sens Niveau Broche DWM3000 Remarque
VCC3.3V3.3 VVCCVérifier que la sortie 3.3V du Mega supporte ~150 mA crête (TX). Sinon, alim externe LDO 3.3V.
GNDGND0 VGNDMasse commune obligatoire (Mega + shifter + DWM3000).
SCKD52Mega → DWM5V → 3.3VSCKSPI matériel. Passer par level shifter A→B.
MOSID51Mega → DWM5V → 3.3VMOSISPI matériel. Level shifter A→B.
MISOD50DWM → Mega3.3V → 5VMISOSPI matériel. Niveau 3.3V lu comme HIGH par le Mega ; passer par shifter pour rester propre.
CSD53Mega → DWM5V → 3.3VCS_nD53 = SS matériel — laisser ce pin en sortie même si on utilise un autre CS.
IRQD2DWM → Mega3.3V → 5VIRQnD2 = INT0 (broche d'interruption matérielle). D3, D18, D19, D20, D21 conviennent aussi.
RSTD5Mega → DWM5V → 3.3VRSTnConfigurer en open-drain dans le code (DW3000 bus de reset). Level shifter A→B.

3. Modifications nécessaires dans le code

Le firmware dw3000_uwb_ranging.ino est écrit pour ESP32. Pour le Mega 2560 Pro, il faut :

4. Checklist montage

  • Condensateur de découplage 100 nF au plus près des broches VCC/GND du DWM3000 (rappel CLAUDE.md).
  • Masse commune entre le Mega, le level shifter (GND) et le DWM3000.
  • Alimenter le côté VA du shifter en 5V (depuis pin 5V Mega) et le côté VB en 3.3V (depuis pin 3.3V Mega).
  • Câbles SPI les plus courts possibles (idéalement < 10 cm) pour ne pas dégrader l'horloge à 8 MHz.
  • Antenne UWB du DWM3000 dégagée des plans de masse et des composants métalliques.
  • Avant la première mise sous tension : vérifier au multimètre qu'il n'y a aucun 5 V sur les broches du DWM3000.

5. Variante simplifiée (sans level shifter)

Pour un prototype rapide sans chip dédié, on peut utiliser un diviseur résistif sur les lignes 5V → 3.3V : R1 = 1.8 kΩ (en série) et R2 = 3.3 kΩ (vers GND), donnant ~3.27 V depuis 5 V. À appliquer sur SCK, MOSI, CS et RST. Les lignes MISO et IRQ (3.3V → 5V) restent en direct. Inconvénient : la fréquence SPI maximale chute (~2-4 MHz fiable au lieu de 8). Utiliser SPI.setClockDivider() ou SPISettings(2000000, MSBFIRST, SPI_MODE0).

Schéma généré pour le projet UWB DW3000 — adaptation Mega 2560 Pro — avril 2026.