ARM-Based DIN Rail Controller Design

Below is a solid Rev A architecture pack for your Control-X controller. I’m keeping the block diagram and partitioning high-level, and the MCU pin table only locks pins I could confirm from datasheet extraction because exact pin numbers should not be guessed . The structure also follows a clean subsystem-oriented documentation style suited to first-pass design work .
1. Schematic block diagram

Diagram


"12-30V DC Input" "Input Protection Reverse polarity TVS Filtering" "5V Rail" "3.3V Rail" "Isolated RS485 Power" "Main MCU" "External QSPI Flash" "Ethernet PHY" "RS232 Interface" "SPI DAC" "Status LEDs" "SWD and Service UART" "RJ45 with Magnetics and ESD" "Isolated RS485" "RS485 Terminal Block" "RS232 Terminal Block" "Analog Input Front End 0-10V or 4-20mA" "Analog Output Conditioning 0-10V or 4-20mA" "2x node_24V Digital Inputs" "2x node_24V Low-Side Outputs" "AI Terminal Block" "AO Terminal Block" "DI Terminal Block" "DO Terminal Block" "SWD Header" "Service UART Header"
2. Suggested component selection Recommended core parts

Table


FunctionSuggested partWhy it fits
MCUSTM32H753ZITxDatasheet extract shows Arm Cortex-M7 up to 480 MHz, 2 MB Flash, 1 MB RAM, LQFP144, 1.62 V to 3.6 V, Ethernet MAC with DMA, 4 USART + 4 UART + 1 LPUART, 6 SPI + Quad-SPI. Very good fit for Ethernet + multiple serial ports + external flash + future expansion.
Ethernet PHYLAN8720AI-CPDatasheet extract shows RMII-only, 1.6 V to 3.6 V I/O, integrated 1.2 V regulator, nRST, and support for 50 MHz RMII REF_CLK generation from a 25 MHz crystal/oscillator.
Isolated RS485ADM2587EBRWZStrong Rev A choice because it combines signal isolation + isolated power in one part. Datasheet extract shows half/full duplex, 500 kbps, 3.3 V or 5 V supply, integrated isoPower, ±15 kV ESD, and high CMTI. This simplifies the isolated RS485 section a lot.
RS232MAX3232ECDRDatasheet extract shows 3.0 V to 5.5 V, 2 drivers / 2 receivers, 4 x 0.1 uF charge-pump caps, and strong ESD on RS232 pins. Standard, low-risk choice.
AO DACDAC80501ZDGSRDatasheet extract shows 16-bit, SPI, 2.7 V to 5.5 V, buffered voltage output, and internal or external reference. Good precision headroom for both 0-10V and 4-20mA output modes.
16 MB QSPI FlashW25Q128JVSIQDatasheet extract shows 128 Mbit / 16 MB, SPI / Dual / Quad SPI, 2.7 V to 3.6 V, up to 133 MHz, SOIC-8. Excellent match for config, logging, staged firmware update, and offline logic state.
5V buckLMR50410Y5FQDBVRQ1Datasheet extract shows 4 V to 36 V input, fixed 5.0 V, 1 A, synchronous rectification, UVLO, current limit, hiccup short protection, and thermal shutdown. Good fit for a robust industrial front end.
3.3V regulatorNCP176BMX330TCGDatasheet extract shows 1.4 V to 5.5 V input, 500 mA, low dropout, and simple 1 uF in / 1 uF out ceramics. Good if your 3.3 V budget stays comfortably below 500 mA.
Recommendation notes 3. Initial schematic partitioning into sheets Suggested sheet structure

Table


SheetContents
Power12-30V input connector, reverse-polarity stage, surge clamp, input filter, 5V buck, 3.3V regulator, power flags, rail monitoring, isolated RS485 power
MCUSTM32H753ZITx, clocks, reset, boot configuration, decoupling, VBAT/RTC support, spare GPIO breakouts
EthernetLAN8720AI-CP, RMII nets, 25 MHz clocking, PHY reset, link LEDs, RJ45/magnetics, ESD
RS485ADM2587EBRWZ, termination enable, biasing, TVS, isolated field connector
RS232MAX3232ECDR, charge-pump capacitors, TX/RX terminal connector, protection
Analogue Input0-10V / 4-20mA selectable input, divider or shunt path, clamp/protection, RC filter, ADC handoff, optional mode-sense GPIO
Analogue OutputDAC80501ZDGSR, reference/filtering, output amplifier/current-loop driver, jumper selection, protection
Digital I/O2x 24V DI front end, 2x low-side DO drivers, flyback handling, connector interface
StorageW25Q128JVSIQ, QSPI routing, decoupling, optional write-protect/hold strategy
Debug and LEDsSWD header, service UART header, heartbeat/power/fault/activity LEDs
Partitioning notes
  • Keep Power, Ethernet, RS485, and Analogue I/O on separate sheets.
  • Put all mode jumpers on the AI and AO sheets, not mixed into MCU.
  • Keep Storage separate from MCU so QSPI routing and boot/update behavior stay clear.
  • For the MCU symbol itself, a multi-block organization such as Power / Communication / Analog / Control / Debug / GPIO banks is the cleanest approach, matching the recommended sub-symbol grouping pattern for large ICs .
4. Preliminary MCU pin mapping table Important note
Exact pin numbers should come only from the datasheet, not memory . I could confirm some functions from datasheet extraction; others are shown as recommended assignment, finalize from full alternate-function table.
Preliminary mapping

Table


FunctionPeripheralProposed MCU signal(s)Exact status
Ethernet PHYRMIIPA1 = ETH_RMII_REF_CLKConfirmed from datasheet extract
Ethernet PHYRMIIPA2 = ETH_MDIOConfirmed from datasheet extract
Ethernet PHYRMIIPB12 = ETH_RMII_TXD0Confirmed from datasheet extract
Ethernet PHYRMIIRemaining RMII pins: MDC, CRS_DV, RXD0, RXD1, TX_EN, TXD1Finalize from full AF table
External flashQuad-SPIPB6 = QUADSPI_BK1_NCSConfirmed signal, pin number not fully locked in extraction
External flashQuad-SPIPC9 = QUADSPI_BK1_IO0Confirmed
External flashQuad-SPIPC10 = QUADSPI_BK1_IO1Confirmed signal, pin number should be rechecked in full table
External flashQuad-SPIIO2 / IO3 / CLKFinalize from full AF table
RS485USART1PB14 = USART1_TXConfirmed
RS485USART1PB15 = USART1_RXConfirmed
RS485 DEGPIOSpare GPIO near USART1 bankSelect during full AF closure
RS232USART2PA2 = USART2_TXConfirmed but conflicts with ETH_MDIO
RS232USART2USART2_RX on alternate pinMust be remapped in full AF closure
Service UARTUSART3PC10 = USART3_TXConfirmed signal
Service UARTUSART3PC11 = USART3_RXConfirmed signal, exact package pin to recheck
AO DACSPI1PB3 = SPI1_SCKConfirmed signal
AO DACSPI1PB4 = SPI1_MISOConfirmed signal
AO DACSPI1SPI1_MOSI and SPI1_NSS on alternate pinsFinalize from full AF table
Analogue inputADC1PA0 = ADC12_INP0Confirmed
SWDDebugPA13 = SWDIO, PA14 = SWCLK, NRSTStandard assignment; NRST confirmed, SWD pins should be verified in package table
LEDsGPIOPrefer spare pins on ports E/GReserve
Digital inputsGPIO2 spare GPIO inputsReserve
Digital outputsGPIO2 spare GPIO outputsReserve
PHY resetGPIO1 spare output GPIOReserve
Future expansionSpare1 extra UART/SPI/I2C instanceReserve
What this means
  • STM32H753ZITx is still a strong fit.
  • But your requested combination creates at least one obvious alternate-function collision already visible in extracted data:
    • PA2 can be ETH_MDIO or USART2_TX, not both.
  • So the next step is a full AF closure pass on the MCU before drawing detailed wiring.
Best-practice design notes for Rev A
  • Use the integrated-isolation approach with ADM2587EBRWZ unless cost or availability forces a split transceiver + isolated supply.
  • Put the AI and AO mode jumpers at the field-connector edge for serviceability.
  • Keep RJ45 physically separated from the analog section.
  • Keep AGND local to AI/AO conditioning and join to DGND intentionally at one controlled point.
  • Budget board area for terminal blocks first; DIN-rail I/O density usually drives the outline more than the logic section.
One concern to resolve early
The biggest architectural unknown is AO output stage choice:
  • The DAC80501ZDGSR gives you an excellent control source,
  • but you still need to choose whether the 0-10V and 4-20mA output stage is:
    • op-amp + transistor loop driver
    • integrated V/I output driver
    • dual-path jumper-selectable stage
Since you said robustness over cost, I’d treat that as a dedicated design block, not an afterthought.
If you want to continue this in a new editable project
Because you’re viewing a project you can’t edit, here’s a ready-to-start project link:
If you want, I can next generate either:
  • a full signal-by-signal RMII/QSPI/UART pin-closure table, or
  • a Power sheet design proposal with protection and rail budgeting.
Generate pin-closure table
Power sheet proposal
AO stage recommendation
Check 3.3V budget
U1
Manufacturer Part Number
ESP32-DEVKIT-V1
MotorA_IN1
MotorA_IN1
MotorB_IN1
Encoder2_ChA
Encoder2_ChA
I2C_SCL
Encoder2_ChB
MotorA_IN2
Button3
QTR1
S4
QTR1
I2C_SDA
I2C_SCL
MotorB_IN1
S1
Button2
MotorB_IN2
Encoder1_ChA
QTR2
S4
Button3
S5
MotorB_IN2
Button2
IBUS_TX
Button1
IBUS_RX
S3
IBUS_RX
S5
MotorA_IN2
Button1
QTR2
S2
S3
Encoder2_ChB
Encoder1_ChA
IBUS_TX
Encoder1_ChB
S1
Encoder1_ChB
S2
I2C_SCL
J5
J11
J4
J9
J6
J7
J12
J8
J10
J14
+3.3V
R6
Resistance
10KΩ
R19
Resistance
10KΩ
+VBAT
+3.3V
R17
Resistance
20KΩ
R11
Resistance
20KΩ
R14
Resistance
10KΩ
R2
Resistance
10KΩ
R7
Resistance
20KΩ
R16
Resistance
10KΩ
+5V
R10
Resistance
10KΩ
R5
Resistance
20KΩ
+3.3V
R13
Resistance
20KΩ
+5V
+5V
+5V
+5V
+3.3V
+VBAT
R18
Resistance
20KΩ
+3.3V
R3
Resistance
10KΩ
+3.3V
R9
Resistance
2 Ω
+5V
+5V
R8
Resistance
10KΩ
+VBAT
+5V
+3.3V
R15
Resistance
20KΩ
R1
Resistance
10KΩ
R4
Resistance
10KΩ
+3.3V
+5V
+5V
R12
Resistance
10KΩ
+3.3V
C2
Capacitance
Capacitance
Capacitance
100uF
C1
Capacitance
Capacitance
Capacitance
100uF
C4
Capacitance
Capacitance
U2
J3
C3
Capacitance
Capacitance
U3
Manufacturer Part Number
7805
J1
SW3
SW1
J2
D1
SW8
SW2
J13

No files yet

Documents

    Documents are markdown text files which describe project goals, capture details, or even simulation outputs.

    Assets

    Thumbnail ESP32.png

    Thumbnail ESP32.png

    Thumbnail ESP32Thumbnail

    ESP32 Robot Controller | AI Design Review Tutorial [Example]

    ESP32 Robot Controller | AI Design Review Tutorial [Example] thumbnail
    Spot the mistake! Learn how to use AI to conduct a design review on an ESP32-based control board. This project is ideal for autonomous or radio-controller robots featuring inputs for sensors, encoders, and a Flysky RC receiver, plus an I2C display for configuration.

    Properties

    Properties describe core aspects of the project.

    Pricing & Availability

    Distributor

    Qty 1

    Arrow

    $11.43–$13.51

    Digi-Key

    $5.46–$5,832.18

    LCSC

    $3.10–$3.70

    Mouser

    $7.00–$7.23

    Verical

    $32.57–$33.17

    Controls