Microcontroller UART I2C SPI Protocol Detection via Signal Edge Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Microcontrollers need to determine the communication protocol (UART, I2C bus, or SPI) used by an external device to ensure correct system programming and data updates, as incorrect protocol identification can lead to failed updates.

Innovation Solution

A detection method and device that utilize the signal edges of specific pins to identify the communication protocol by determining whether the first pin has a signal edge before the second pin is toggled, and counting signal edges on the second pin to distinguish between UART, I2C bus, and SPI protocols.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a microcontroller supports multiple transmission interfaces (UART, I2C bus, SPI), then the adaptability of the microcontroller is improved, but the complexity of system programming and protocol identification increases

Engineering Contradiction:
Improvesupport for multiple transmission interfacesVSAvoidcomplexity of system programming
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The microcontroller automatically performs protocol identification by itself through hardware circuitry that detects signal characteristics on communication pins. The detection circuit monitors signal edges and timing patterns without requiring external intervention or complex software programming, allowing the system to self-determine which protocol (UART, I2C, or SPI) is being used and configure itself accordingly.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The detection method identifies different communication protocols by detecting changes in signal parameters such as edge timing, signal transitions, and communication patterns. By monitoring parameter variations on the communication pins during initialization, the system can distinguish between UART, I2C bus, and SPI protocols and adjust configuration parameters accordingly.

Inventive Principle:
Principle #35Parameter changes

2Ease of manufacture

If the transmission interface is determined in advance through fixed system programming, then the programming process is simplified, but the flexibility to adapt to different external devices is reduced

Engineering Contradiction:
Improvesimplicity of system programmingVSAvoidability to adapt to different external devices
Core Design Contradiction:
Ease of manufactureVSAdaptability or versatility

Solution Approach 1:

The detection circuit performs preliminary protocol identification during system initialization before actual communication begins. By detecting signal characteristics early in the startup sequence and determining the appropriate protocol beforehand, the system prepares the correct communication configuration in advance, simplifying subsequent programming while maintaining adaptability to different external devices.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system dynamically adjusts its communication interface configuration based on real-time detection results. Rather than being fixed in advance, the transmission interface settings (such as clock polarity, data mode, and pin assignments) are dynamically determined through hardware detection of signal patterns, allowing the system to adapt to different external devices while maintaining a simple programming model.

Inventive Principle:
Principle #15Dynamics

3Measurement precision

If different system programmable codes are prepared for different transmission interfaces, then the precision of protocol matching is improved, but the quantity of programming work and storage requirements increases

Engineering Contradiction:
Improveprecision of protocol matchingVSAvoidquantity of system programmable codes
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

A single unified system programmable code is used that can work with multiple transmission interfaces (UART, I2C bus, SPI). The hardware detection circuit universally identifies the active protocol by detecting signal characteristics, and the same code adapts to different protocols through dynamically configured communication parameters, eliminating the need for separate programming codes for each interface type.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The protocol identification function is extracted from the system programming code and implemented through dedicated hardware detection circuitry. By separating the detection logic from the programming code, the system uses one universal code while the hardware automatically extracts and identifies the correct protocol through signal analysis, reducing the quantity of programming work while maintaining precise protocol matching.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS12282446B2Detection method and detection device for determining whether communication protocol is UART, I2C BUS, or SPI
Publication Date: 2025.04.22 NUVOTON
  • US12282446B2 patent drawing
  • US12282446B2 patent drawing
  • US12282446B2 patent drawing

AI summary

A detection method is provided to identify the communication protocol being used between a serial communication interface and an external device. The protocols include URAT, I2C bus, and SPI. The serial communication interface includes a first pin and a second pin. The first pin is shared by the transmission line of UART, the serial clock line of I2C, and the slave-select line of SPI. The second pin is shared by the receive line of UART, the serial data line of I2C, and the clock line of SPI. The detection method includes determining whether the communication protocol is UART, I2C, or SPI based on the signal edges of the first pin and the second pin.