RS485 Isolated Carrier Board
Revision Status
| Revision | Status | Changes |
|---|---|---|
Rev C |
Active / In Design | (Current design files) |
The RS485 Isolated Carrier Board is a galvanically isolated differential serial interface designed for robust half-duplex communication in electrically harsh or industrial environments.
It integrates complete galvanic signal and power isolation, comprehensive power protection, dual standard 5 mm pitch bus terminal blocks for daisy-chaining, and both a standard 6-pin microcontroller header and a UCMOD connector for host microcontroller modules.
You can follow its development and the UCMOD ecosystem on www.jktdev.co.uk.
Features
- Galvanic Isolation: Uses a Texas Instruments ISO1430 (
ISO1430DWR) isolated RS485 transceiver to separate the host logic domain from the differential bus lines, eliminating ground loops and protecting controller hardware from high common-mode voltages and line faults. - Isolated DC-DC Power: Employs a B0305S-1WR3 isolated DC-DC converter module (3.3 V input to 5 V isolated output) to power the bus-side transceiver stage directly from the logic supply without requiring an external isolated supply.
- Input Power Protection: Features a TPS259474LRPWR electronic fuse (eFuse) providing active power protection, including overcurrent limiting, overvoltage clamping, reverse polarity protection, and inrush current management.
- UCMOD Microcontroller Socket: Implements a standard 20-pin UCMOD Connector, allowing any compatible UCMOD microcontroller module (such as STM32G0, RP2040, ESP32, or CH32V series) to plug directly into the board as a self-contained communications controller.
- Direct Microcontroller Interface (6-Pin): Shares the same 6-pin logic-level pinout as the RS485 Non-Isolated Building Block Board, allowing direct connection to external microcontrollers (e.g. Raspberry Pi Pico, Arduino, or dev boards) or bench wiring.
- Industrial Bus Terminals: Fitted with 2 × 5 mm pitch screw terminal blocks for the differential RS485 bus, facilitating easy bus daisy-chaining with heavier gauge field wiring.
- Direction Control: Dedicated Driver Enable (
DE) and Receiver Enable (/RE) lines that can be linked via jumper for single-pin half-duplex direction control.
Circuitry & Component Details
1. Galvanic Isolation & Transceiver (TI ISO1430)
- Provides robust galvanic isolation across the data barrier between the logic-level microcontroller domain and the external RS485 differential bus lines (
D0/AandD1/B). - High common-mode transient immunity (CMTI) ensures reliable half-duplex serial communication even in noisy electrical environments.
2. Isolated Power Conversion (Mornsun B0305S-1WR3)
- A compact, high-isolation 1 W DC-DC converter that steps up the 3.3 V logic power rail to an isolated 5 V rail to power the bus side of the transceiver.
- Completely breaks the ground reference between logic ground (
GND) and bus ground (GND_ISO).
3. Integrated Power Protection (TI TPS259474LRPWR)
- A smart eFuse with integrated protection mechanisms placed on the logic power supply input:
- Precise programmable / fixed current limiting to prevent power supply collapse during faults.
- Overvoltage clamping and fast reverse current / polarity blocking.
- Controlled output slew-rate during power-up to reduce inrush current.
4. Dual Host Interface: UCMOD Socket & 6-Pin Logic Header
- The board can be driven either by a plugged-in UCMOD module or via the 6-pin microcontroller header.
- Logic signals (
RO,DI,DE,/RE) are routed to both interfaces, offering maximum flexibility during development, bench testing, or deployment.
Hardware Configuration & Pinout
Microcontroller Interface (6-Pin Logic Side)
The 6-pin header uses the standard Protoworks RS485 logic pinout:
| Pin | Label | Direction | Description |
|---|---|---|---|
| 1 | RO |
Output | Receiver Output (UART RX from bus) |
| 2 | DI |
Input | Driver Input (UART TX to bus) |
| 3 | DE |
Input | Driver Enable (Active High) |
| 4 | /RE |
Input | Receiver Enable (Active Low, can be tied to DE) |
| 5 | 3.3V |
Power | 3.3 V Logic Supply Input (Protected by TPS259474) |
| 6 | GND |
Power | Logic Ground Reference |
UCMOD Connector (20-Pin Socket)
The board implements the standard 20-pin UCMOD Main Connector. Key interface lines are connected as follows:
| UCMOD Pin | Standard Function | Carrier Board Connection |
|---|---|---|
| 1, 3, 18, 20 | GND |
Logic Ground (GND) |
| 2, 19 | 3V3 |
3.3 V Logic Power Rail (Protected) |
| 7 | UART_TX / GPIO2 |
DI (Transceiver Driver Input) |
| 8 | UART_RX / GPIO3 |
RO (Transceiver Receiver Output) |
| 14 | AN1 / GPIO9 |
DE (Driver Enable, Active High) |
| 15 | AN2 / GPIO10 |
/RE (Receiver Enable, Active Low) |
| 5, 6, 9–13, 16 | GPIO / Peripherals |
Unused |
(Note: DE and /RE can be controlled independently by the UCMOD module via GPIO9 and GPIO10, or bridged together using an on-board jumper for single-pin direction control).
Bus Side Interface (2 × 5 mm Pitch Screw Terminals)
Two parallel 3-way 5 mm pitch screw terminal blocks are provided for the isolated bus side, allowing convenient in/out wiring for daisy-chaining:
| Pin | Terminal Label | Description |
|---|---|---|
| 1 | D1 / B |
RS485 Inverting Differential Line |
| 2 | D0 / A |
RS485 Non-inverting Differential Line |
| 3 | GND_ISO |
Isolated Bus Ground Reference / Shield Return |
Bill of Materials (BOM)
| Reference | Qty | Value | Footprint | LCSC Part No | MFR Part No | Description |
|---|---|---|---|---|---|---|
| IC1 | 1 | TPS259474LRPWR | TPS259474LRPWR:TPS259474LRPWR | C2864845 | TPS259474LRPWR | Hot Swap Voltage Controllers 2.7-V to 23-V, 28-mΩ, 5.5-A eFuse with integrated reverse polarity protection |
| U2 | 1 | B0305S-1WR3 | Protoworks:B0305S-1WR3 | C7418874 | B0305S-1WR3 | Isolated Power Module |
| U3 | 1 | ISO1430DWR | Package_SO:SOIC-16W_7.5x10.3mm_P1.27mm | C2672340 | ISO1430DWR | TI ISO1430 Isolated RS485 Transceiver |
| D1,D2,D3,D5,D7 | 5 | SML-D12M8WT86 | LED_SMD:LED_0603_1608Metric | C510025 | SML-D12M8WT86 | Light emitting diode |
| D4,D6 | 2 | SM712_SOT23 | Package_TO_SOT_SMD:SOT-23 | C7420375 | SM712 | 7V/12V, 600W Asymmetrical TVS Diode Array, SOT-23 |
| C1,C4,C5,C6 | 4 | 100nF | Capacitor_SMD:C_0805_2012Metric | C49678 | CC0805KRX7R9BB104 | Unpolarized capacitor, small symbol |
| C2 | 1 | 4.7uF | Capacitor_SMD:C_1206_3216Metric | C29823 | 1206B475K500NT | Unpolarized capacitor, small symbol |
| C3 | 1 | 10uF | Capacitor_SMD:C_1206_3216Metric | C13585 | CL31A106KBHNNNE | Unpolarized capacitor, small symbol |
| R1,R2,R3,R4 | 4 | 100R | Resistor_SMD:R_0603_1608Metric | C22775 | 0603WAF1000T5E | Resistor |
| R5,R6 | 2 | 10K | Resistor_SMD:R_0402_1005Metric | C25744 | 0402WGF1002TCE | Resistor |
| R7,R9 | 2 | 4K7 | Resistor_SMD:R_0603_1608Metric | C23162 | 0603WAF4701T5E | Resistor |
| R8,R17,R19 | 3 | 120R | Resistor_SMD:R_1206_3216Metric | C17909 | 1206W4F1200T5E | Resistor |
| R10,R11 | 2 | 22R | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | C23345 | 0603WAF220JT5E | Resistor |
| R12,R13,R14,R18,R26 | 5 | 470R | Resistor_SMD:R_0402_1005Metric | C25117 | 0402WGF4700TCE | Resistor |
| R15,R16 | 2 | 470R | Resistor_SMD:R_0603_1608Metric | C23179 | 0603WAF4700T5E | Resistor |
| R20 | 1 | 3K3 | Resistor_SMD:R_0603_1608Metric | C22978 | 0603WAF3301T5E | Resistor |
| R21 | 1 | 360K | Resistor_SMD:R_0603_1608Metric | C23146 | 0603WAF3603T5E | Resistor |
| R22 | 1 | 39K | Resistor_SMD:R_0603_1608Metric | C23153 | 0603WAF3902T5E | Resistor |
| R23 | 1 | 200K | Resistor_SMD:R_0603_1608Metric | C25811 | 0603WAF2003T5E | Resistor |
| R24,R25 | 2 | 0R | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | C17888 | 1206W4F0000T5E | Resistor |
| J2,J3 | 2 | Screw_Terminal_01x03 | TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-3_1x03_P5.00mm_Horizontal | C5128811 | DG301-5.0-03P-14-00A(H) | Generic screw terminal, single row, 01x03, script generated (kicad-library-utils/schlib/autogen/connector/) |
| J4 | 1 | Conn_02x10_Odd_Even | Connector_PinHeader_2.54mm:PinHeader_2x10_P2.54mm_Vertical | C5383109 | 2541WV-2x10P | Generic connector, double row, 02x10, odd/even pin numbering scheme (row 1 odd numbers, row 2 even numbers), script generated (kicad-library-utils/schlib/autogen/connector/) |
| JP1,JP7 | 2 | Jumper_2_Small_Open | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | C42431798 | PH2.54-1X2P-H25 | Jumper, 2-pole, small symbol, open |
| JP5,JP6 | 2 | Jumper_3_Open | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | C42431836 | PH2.54-1X3P-H25 | Jumper, 3-pole, both open |
Test Verification & Code Example
The logic interface can be tested directly with an external microcontroller such as a Raspberry Pi Pico or a UCMOD module running MicroPython.
MicroPython Transmit Example (Pico / UCMOD)
from machine import UART, Pin
import time
# Configure UART (UART0: TX on Pin 0, RX on Pin 1)
uart = UART(0, baudrate=115200, tx=Pin(0), rx=Pin(1))
# Direction control pin (DE tied to /RE)
de_re = Pin(2, Pin.OUT)
counter = 0
while True:
# Enable driver / transmit mode
de_re.value(1)
message = f"Isolated RS485 Frame #{counter}\n"
uart.write(message.encode('utf-8'))
print("Sent:", message.strip())
uart.flush()
# Return to receive mode
de_re.value(0)
time.sleep(1)
counter += 1
MicroPython Receive Example
from machine import UART, Pin
import time
# Configure UART (UART0: TX on Pin 0, RX on Pin 1)
uart = UART(0, baudrate=115200, tx=Pin(0), rx=Pin(1))
# Direction control pin (DE tied to /RE)
de_re = Pin(2, Pin.OUT)
# Keep in receive mode
de_re.value(0)
print("Listening on Isolated RS485 Bus...")
while True:
if uart.any():
data = uart.read()
try:
decoded = data.decode("utf-8").strip()
print("Received:", decoded)
except UnicodeError:
print("Received raw bytes:", data)
time.sleep(0.05)