204 lines
8.6 KiB
Markdown
204 lines
8.6 KiB
Markdown
# ESP32-2432S028R Wiring Guide
|
|
|
|
## Overview
|
|
This document describes the external connections needed for the DCC-Bench project using the ESP32-2432S028R module.
|
|
|
|
## Built-in Components (No Wiring Needed)
|
|
The ESP32-2432S028R module includes:
|
|
- ✅ ILI9341 TFT Display (320x240)
|
|
- ✅ XPT2046 Touch Controller
|
|
- ✅ MicroSD Card Slot
|
|
- ✅ USB-C Power/Programming
|
|
|
|
## External Connections Required
|
|
|
|
### 1. LM18200 H-Bridge Driver (Universal DC/DCC Output)
|
|
|
|
The LM18200 serves as **BOTH** the DC motor controller AND DCC signal booster.
|
|
It's the same hardware - the ESP32 just sends different signals depending on mode:
|
|
- **DC Mode**: ESP32 sends PWM + direction signals
|
|
- **DCC Mode**: ESP32 sends DCC digital signals
|
|
|
|
```
|
|
ESP32 GPIO 18 (PWM/DCC_A) ──→ LM18200 PWM Input
|
|
ESP32 GPIO 19 (DIR/DCC_B) ──→ LM18200 Direction Input
|
|
ESP32 GPIO 23 (BRAKE) ──→ LM18200 Brake Input
|
|
ESP32 GND ──→ LM18200 GND
|
|
ESP32 5V ──→ LM18200 Logic VCC
|
|
Power Supply (12-18V) ──→ LM18200 Motor Power
|
|
```
|
|
|
|
**LM18200 Outputs (to Track):**
|
|
```
|
|
0.1Ω 1W Current Sense
|
|
LM18200 OUT1 ──→ ───┬──────╱╲╲╲────── Track Rail 1
|
|
│
|
|
├── 1kΩ ──┬──── GPIO 35 (ADC - ACK Detect)
|
|
│ 10kΩ
|
|
│ │
|
|
LM18200 OUT2 ──→ ───┴──────────┴──── Track Rail 2 (GND)
|
|
```
|
|
|
|
**How it Works:**
|
|
- **DC Analog Mode**: GPIO 18 outputs PWM for speed, GPIO 19 sets direction
|
|
- **DCC Digital Mode**: GPIO 18 outputs DCC signal A, GPIO 19 outputs DCC signal B (inverted)
|
|
- The LM18200 amplifies whichever signal type to track voltage
|
|
- GPIO 23 (BRAKE) can force both outputs LOW for emergency stop
|
|
- **Programming Track**: Current sense resistor (0.1Ω) detects 60mA ACK pulses from decoder
|
|
|
|
### 2. 2-Rail/3-Rail Relay Module
|
|
|
|
```
|
|
ESP32 GPIO 4 ──→ Relay Module Signal Input
|
|
ESP32 GND ──→ Relay Module GND
|
|
ESP32 5V ──→ Relay Module VCC
|
|
```
|
|
|
|
**Relay Outputs:**
|
|
Configure the relay to switch between 2-rail and 3-rail track wiring:
|
|
- **2-Rail Mode** (Relay OFF): Standard two-rail configuration
|
|
- **3-Rail Mode** (Relay ON): Center rail + outer rails configuration
|
|
|
|
### 3. Power Supply
|
|
|
|
The ESP32-2432S028R can be powered via:
|
|
- **USB-C**: 5V from USB (programming and operation)
|
|
- **5V Pin**: External 5V power supply (500mA minimum)
|
|
|
|
**Recommended Setup:**
|
|
```
|
|
12-18V Power Supply ──→ DC-DC Buck Converter ──→ 5V @ 1A ──→ ESP32 5V Pin
|
|
└──→ Motor Controller Power
|
|
└──→ DCC Booster Power
|
|
```
|
|
|
|
## Pin Summary Table
|
|
|
|
| Connection | ESP32 Pin | External Device | Notes |
|
|
|------------|-----------|-----------------|-------|
|
|
| PWM/DCC_A | GPIO 18 | LM18200 PWM | DC mode: 20kHz PWM / DCC mode: DCC signal A |
|
|
| DIR/DCC_B | GPIO 19 | LM18200 DIR | DC mode: Direction / DCC mode: DCC signal B |
|
|
| Brake | GPIO 23 | LM18200 BRAKE | Active LOW brake / Emergency stop |
|
|
| Relay Control | GPIO 4 | Relay Module IN | HIGH=3-Rail |
|
|
| ACK Detect | GPIO 35 | Current Sense | ADC input for programming track ACK |
|
|
| Ground | GND | All GNDs | Common ground |
|
|
| Power | 5V | Logic Power | 500mA-1A |
|
|
|
|
## Safety Notes
|
|
|
|
⚠️ **IMPORTANT SAFETY WARNINGS:**
|
|
|
|
1. **Electrical Isolation**: Keep low-voltage control circuits (ESP32) separated from high-voltage motor/track circuits
|
|
2. **Common Ground**: Ensure all components share a common ground reference
|
|
3. **Power Rating**: Motor controller must be rated for your locomotive's current draw
|
|
4. **Fusing**: Install appropriate fuses on track outputs
|
|
5. **Emergency Stop**: Implement physical emergency stop button if needed
|
|
6. **Polarity**: Double-check DCC booster polarity before connecting to track
|
|
|
|
## Track Connection
|
|
|
|
The LM18200 outputs connect directly to the track in both modes:
|
|
|
|
```
|
|
LM18200 OUT1 ──→ Track Rail 1
|
|
LM18200 OUT2 ──→ Track Rail 2
|
|
```
|
|
|
|
**Operation:**
|
|
- **DC Mode**: LM18200 outputs PWM voltage (polarity sets direction)
|
|
- **DCC Mode**: LM18200 outputs amplified DCC square wave signals
|
|
- Same physical connections, different signal types
|
|
|
|
## Testing Procedure
|
|
|
|
1. **Power Up Test**
|
|
- Connect only USB power
|
|
- Verify display shows UI
|
|
- Touch screen should be responsive
|
|
|
|
2. **Relay Test**
|
|
- Toggle 2-Rail/3-Rail button
|
|
- Listen for relay click
|
|
- Verify relay LED changes state
|
|
|
|
3. **DCC Signal Test** (use oscilloscope)
|
|
- Select DCC mode
|
|
- Power ON
|
|
- Measure GPIO 18 and 19 for square wave signals
|
|
- Verify ~58μs for '1' bits, ~100μs for '0' bits
|
|
- Signals should be inverted relative to each other
|
|
- Check LM18200 outputs for amplified signals (track voltage)
|
|
|
|
4. **DC Motor Test** (without load)
|
|
- Select DC Analog mode
|
|
- Power ON
|
|
- Adjust speed slider
|
|
- Measure PWM on GPIO 18 with multimeter (average voltage should increase with speed)
|
|
- Measure LM18200 outputs for amplified PWM
|
|
|
|
5. **Track Test** (with locomotive)
|
|
- Start with low speed (10-20%)
|
|
- Gradually increase speed
|
|
- Test direction change
|
|
- Verify emergency stop (Power OFF button)
|
|
|
|
## Troubleshooting
|
|
|
|
| Problem | Possible Cause | Solution |
|
|
|---------|----------------|----------|
|
|
| Display blank | No power | Check USB/5V power connection |
|
|
| Touch not working | Wrong calibration | Adjust TS_MIN/MAX values in code |
|
|
| No DCC signal | Not powered on | Press Power button in UI |
|
|
| Motor not running | Wrong mode | Verify DC Analog mode selected |
|
|
| Relay not switching | No 5V power | Check relay module power |
|
|
| Erratic behavior | Ground loop | Ensure single common ground point |
|
|
|
|
## Component Recommendations
|
|
|
|
### H-Bridge Driver (DC & DCC):
|
|
- **LM18200T** (3A continuous, 6A peak) - **RECOMMENDED**
|
|
- Single chip handles both DC and DCC modes
|
|
- Built-in thermal shutdown
|
|
- Built-in current limiting
|
|
- **L298N module** (2A per channel)
|
|
- Readily available, inexpensive
|
|
- Less efficient than LM18200
|
|
- **BTS7960 motor driver** (43A capable)
|
|
- Overkill for most model trains
|
|
- Good for large scale locomotives
|
|
|
|
### Relay Module:
|
|
- 5V single-channel relay module
|
|
- Optocoupler isolated
|
|
- Active HIGH trigger
|
|
|
|
## Schematic Reference
|
|
|
|
```
|
|
┌─────────────────┐
|
|
│ ESP32-2432S028R│
|
|
│ (Built-in) │
|
|
│ - TFT Display │
|
|
│ - Touch Screen │
|
|
└────────┬────────┘
|
|
│
|
|
┌───────────────┬────────┼────────┬───────────────┐
|
|
│ │ │ │ │
|
|
GPIO 17 GPIO 16 GPIO 18 GPIO 19 GPIO 4
|
|
(DCC_A) (DCC_B) (PWM) (DIR) (RELAY)
|
|
│ │ │ │ │
|
|
┌─────▼─────┐ │ │ │ ┌─────▼─────┐
|
|
│ DCC │◄────────┘ │ │ │ Relay │
|
|
│ Booster │ │ │ │ Module │
|
|
└─────┬─────┘ │ │ └─────┬─────┘
|
|
│ ┌─────▼────────▼─┐ │
|
|
│ │ Motor Driver │ │
|
|
│ │ (LM18200) │ │
|
|
│ └────────┬───────┘ │
|
|
│ │ │
|
|
┌─────▼──────────────────────────┼─────────────────────▼─────┐
|
|
│ Track Output │
|
|
│ (DCC or DC Analog depending on mode selection in UI) │
|
|
└──────────────────────────────────────────────────────────────┘
|
|
```
|