145 lines
5.4 KiB
Markdown
145 lines
5.4 KiB
Markdown
# DCC-Central
|
|
|
|
DCC-Central consist in a complete system to drive DCC scale models.
|
|
|
|
## Principles
|
|
|
|
System is based on ESP32-S3 WROOM devKit, with some peripherals :
|
|
|
|
- ILI9341 4.0" display module
|
|
To display what is happening
|
|
- Touch screen
|
|
To allow direct managing
|
|
- MCT2515 can interface
|
|
Used for accessory and feedback
|
|
- LM 18200 Hbridge (Drive track power / accessories )
|
|
- DCC signals or DC - can be switched to program,
|
|
- second to send square signal - powers accessories
|
|
- ACS712 current sensor
|
|
Read DCC power send to track
|
|
- RAILCOM detector - input pin
|
|
- KY-040 rotary encoder
|
|
set speed / enventually help to navigate in menus
|
|
- relay
|
|
Swith 2 Rails / 3 rails
|
|
|
|
|
|
## Functionnalities
|
|
|
|
DCC-Central is connected with CDM-Rail (protocol to choose), but can work alone. It will be RailCom compatible
|
|
|
|
On display we must have :
|
|
- Select Autonomous / CDM-Rail driven switch
|
|
- Select DC / DCC type
|
|
- Select 2Rails / 3 Rails
|
|
|
|
If autonomous and DCC
|
|
- Select Programming mode
|
|
- Select Loco ID
|
|
- Display Functions buttons
|
|
- Add a tab to display informations returned
|
|
|
|
|
|
### Running
|
|
|
|
1. User choose a DCC-id to drive a loco with help of display
|
|
2. he selects type of signal DCC/DC (display)
|
|
3. track type ( 2rails / 3 rails)
|
|
4. Switch 'ON' track power
|
|
|
|
System response
|
|
|
|
- Switch relay ON (2 rails), OFF (3 rails)
|
|
- generate PWM (DC) / DCC signal (DCC)
|
|
- if DCC signal, set DCC loco id and drive DCC signal
|
|
- if DC signal, set DC (PWM)
|
|
- Power ON LM 18200
|
|
|
|
## Wiring
|
|
|
|
|
|
|
|
## Wiring
|
|
|
|
Below is a general guide on how to wire the main elements of the DCC-Central system, with suggested ESP32 GPIO numbers:
|
|
|
|
- **ESP32-S3 WROOM devKit**: Serves as the main controller. All peripherals connect to its GPIO pins.
|
|
|
|
- **ILI9341 3.2" Display Module**: Connect the SPI pins to the ESP32 as follows (suggested):
|
|
- MOSI: GPIO 23
|
|
- MISO: GPIO 19
|
|
- SCK: GPIO 18
|
|
- CS: GPIO 5
|
|
- DC: GPIO 21
|
|
- RESET: GPIO 22
|
|
Power the display with 3.3V or 5V as required by the module.
|
|
|
|
- **Touch Screen**: If integrated with the display, connect the touch controller (often XPT2046) SPI pins as follows (suggested):
|
|
- T_MOSI: GPIO 13
|
|
- T_MISO: GPIO 12
|
|
- T_SCK: GPIO 14
|
|
- T_CS: GPIO 15
|
|
- T_IRQ: GPIO 27
|
|
You may share SPI bus with the display if supported. Connect IRQ pin to a free GPIO.
|
|
|
|
- **MCP2515 CAN Interface**: Connect SPI pins as follows (suggested):
|
|
- MOSI: GPIO 23 (shared with display)
|
|
- MISO: GPIO 19 (shared with display)
|
|
- SCK: GPIO 18 (shared with display)
|
|
- CS: GPIO 4
|
|
- INT: GPIO 16
|
|
Connect CANH and CANL to the CAN bus. Power with 3.3V or 5V as required.
|
|
|
|
- **LM18200 H-Bridge**: Connect control pins as follows (suggested):
|
|
- IN1: GPIO 32
|
|
- IN2: GPIO 33
|
|
- PWM: GPIO 25
|
|
Connect motor outputs to the track or accessories. Power the H-Bridge with the appropriate voltage for your track/accessories.
|
|
|
|
- **ACS712 Current Sensor**: Connect VCC and GND to power, OUT to ESP32 GPIO 36 (analog input, VP). Place the sensor in series with the track power line.
|
|
|
|
- **RailCom Detector**: Connect the detector output to ESP32 GPIO 26 (digital input). Follow the detector's datasheet for power and signal wiring.
|
|
|
|
- **KY-040 Rotary Encoder**: Connect as follows (suggested):
|
|
- CLK: GPIO 34
|
|
- DT: GPIO 35
|
|
- SW: GPIO 17 (if used)
|
|
Use pull-up resistors if required.
|
|
|
|
- **Relay**: Connect relay control pin to ESP32 GPIO 2. Use a transistor driver circuit if the relay requires more current than the ESP32 can provide. Connect relay contacts to switch between 2-rail and 3-rail track wiring.
|
|
|
|
### ESP32 Pin Usage Summary
|
|
|
|
| Peripheral | Signal | ESP32 GPIO |
|
|
|---------------------------|----------------|------------|
|
|
| ILI9341 Display | MOSI | 23 |
|
|
| | MISO | 19 |
|
|
| | SCK | 18 |
|
|
| | CS | 5 |
|
|
| | DC | 21 |
|
|
| | RESET | 22 |
|
|
| Touch Screen (XPT2046) | T_MOSI | 13 |
|
|
| | T_MISO | 12 |
|
|
| | T_SCK | 14 |
|
|
| | T_CS | 15 |
|
|
| | T_IRQ | 27 |
|
|
| MCP2515 CAN Interface | CS | 4 |
|
|
| | INT | 16 |
|
|
| LM18200 H-Bridge | IN1 | 32 |
|
|
| | IN2 | 33 |
|
|
| | PWM | 25 |
|
|
| ACS712 Current Sensor | OUT | 36 (VP) |
|
|
| RailCom Detector | OUT | 26 |
|
|
| KY-040 Rotary Encoder | CLK | 34 |
|
|
| | DT | 35 |
|
|
| | SW | 17 |
|
|
| Relay | CTRL | 2 |
|
|
|
|
|
|
**Tips:**
|
|
- Double-check voltage compatibility for each module.
|
|
- Use common ground for all modules.
|
|
- Keep power and signal wires as short as possible to reduce noise.
|
|
- Refer to each module's datasheet for exact pinouts and requirements.
|
|
|
|
**NB** a PCB card will be designed with KiCad Software for easier assembly. |