Case studies > Universal I2C/SPI/UART I/O & ADC Expander

Universal I2C/SPI/UART I/O & ADC Expander

We were approached by a major global company (whose name we cannot disclose due to a non-disclosure agreement) with a request to develop a universal module that would expand the input/output capabilities of their existing and future control units. The goal was to create a flexible expander that could be easily integrated into various systems through standard communication interfaces — UART, SPI, or I2C — while also providing high-precision analog measurement capabilities.

Challenge

Our partner needed a unified and versatile solution to replace several different I/O and external ADC module variants that varied in functionality, interfaces, and availability. This diversity complicated the customer’s purchasing process, integration, and long-term device support. The project’s goal was therefore to consolidate all required functions into a single universal module that would cover a wide range of applications while simplifying both development and manufacturing of end products.

Our Solution

At the core of the system is an STM32C051x6/x8 microcontroller from the ARM® Cortex®-M0+ family, offering an ideal balance of performance, power consumption, and cost. Based on this platform, we developed comprehensive firmware that enables the expander to operate in any of the following communication modes: I2C / SPI / UART.

The communication mode is selected hardware-wise using a configuration pin, allowing the same hardware to be used in multiple applications without any firmware modification. The firmware was designed to be universal and highly configurable, enabling deployment across various device types without adjustments. The solution also includes an integrated bootloader, which allows convenient firmware updates via the chosen communication interface (UART, SPI, or I2C) — without requiring any physical access to the expander.

Universal I2C/SPI/UART I/O & ADC Expander

Configurable Functional Blocks

  • Two 16-bit I/O peripherals (IOA and IOB) – each pin individually configurable as input or output, with optional software filtering, pull-up/pull-down resistors, and interrupt masking

  • 12-bit ADC module – up to 8 independent measurement channels, with internal temperature and supply voltage monitoring

  • 64-sample buffers – supporting SINGLE, FIFO, and LIFO modes for flexible data processing

  • Timers, configurable LPF filters, and comparator limits – capable of generating interrupts when thresholds are exceeded

  • Internal RTC and firmware version registry to ensure backward compatibility

  • Additional proprietary functions (not disclosed due to NDA)

Benefits

The new expander provides a universal solution that greatly simplifies both development and integration across multiple product lines. As part of the project, we also delivered a firmware library to facilitate integration into higher-level systems and to enable easy configuration and control of the expander.

We also supplied complete technical documentation, including a detailed datasheet describing registers, communication protocols, and interrupt logic. This allows the device to be seamlessly integrated into larger systems without requiring direct support from the ASN Plus team.

Take a look at our reference projects

Portable WallBox EcoVolter
Road weather station
Robotic optical cable laying

Clients who have given us trust

Take your product to the next level!

Book a consultation with our specialists and discover just how many technological possibilities are within your reach. We’ll be in touch soon to explore the best way to work together.

Attachment (max. 10MB)