2026-01-27 5:16 AM
Hello ST Community,
I am working on a commercial vending machine controller and would like to get feedback from ST engineers and experienced STM32 designers regarding a system architecture change.
Our current system uses a single MCU, but we are now hitting hard peripheral limits, mainly:
Timer availability (stepper + DC motor control)
GPIO interrupt count
GPIO pin availability
Increasing real-time jitter when multiple loads are active
This is not a software optimization issue anymore; it is a resource saturation issue.
Because of this, we are planning to move from a single-MCU architecture to a multi-MCU system.
Master MCU: STM32H563ZIT6
Handles:
All sensors (ADC / digital)
Control logic & state machine
Recipe execution
Safety checks
UI communication
No direct motor timing generation
Slave MCUs (2x):
Dedicated load-handling controllers
One for stepper motors
One for DC motors / PWM-based loads
Slaves perform only deterministic actuation
No sensors, no business logic
Inter-MCU Communication:
Considering CAN (FDCAN) as primary bus
RS485 as an alternative / secondary option
I have attached a block-level architecture diagram for reference.
| ADC | 1 | 12 channels |
| I2C | I2C1, I2C2, I2C3 | 3 |
| TIM | TIM1, TIM2, TIM3, TIM4, TIM5, TIM8 | 6 |
| UART / USART | USART1, USART2, USART3, UART5, UART7, UART8, UART9, UART12 | 8 |
| DAC | DAC1 | 1 |
| GPIO Interrupts | – | 14 |
| GPIO Inputs | – | 20 |
| GPIO Outputs | – | 5 |
| CAN | FDCAN1 | 1 |
Even with this split, the master MCU is still heavily utilized, which is why motor timing is fully offloaded to slave MCUs.
Is this master + load-slave MCU split the correct long-term approach for vending machine / appliance-class products?
From an STM32 architectural perspective, are there recommended design patterns for timer- and interrupt-heavy motor systems?
CAN vs RS485 for multi-MCU control:
CAN seems preferable for arbitration and fault handling
Any STM32H5-specific considerations?
Are there common pitfalls (boot sequence, synchronization, fault recovery, debugging) that should be addressed early?
From a product lifetime standpoint (8–10 years), does this architecture look robust and maintainable?
I would appreciate feedback from:
ST application engineers
Developers with multi-MCU STM32 designs
Anyone with experience in CAN-based industrial / appliance systems
Thank you in advance for your insights.
Best regards,
Prathapraj S,
Boatload Minds Pvt Ltd.
@stm32h5,can,motor-control,system-architecture,multi-mcu