1. Independent Chip Select (Standard Multi-Slave Mode)
Solution Description: Each slave device is assigned an independent SS (chip select) line, and the master device activates the target slave by pulling down the corresponding SS line.Advantages:
-
Each slave is independently controlled, and communication does not interfere with each other.
-
Supports full-duplex high-speed transmission.Disadvantages:
-
The number of slaves is limited by the number of GPIOs on the master device.Application Scenarios:
-
A small number of high-speed devices (e.g., the master connects to both SPI Flash and a display).Connection Diagram:
Master Device SCLK ──┬── SCLK (Slave 1) └── SCLK (Slave 2) MOSI ──┬── MOSI (Slave 1) └── MOSI (Slave 2) MISO ──┬── MISO (Slave 1) └── MISO (Slave 2) SS1 ──── SS (Slave 1) SS2 ──── SS (Slave 2)
2. Daisy Chain
Solution Description: Multiple slave devices are connected in a cascading manner, using only one shared SS line, with data flowing sequentially through each slave.Working Principle:
-
When the master device sends data, the data enters the first slave through MOSI, and its MISO connects to the next slave’s MOSI, forming a chain structure.
-
The data packet sent by the master device contains instructions for all slaves, with each slave reading its required data and passing subsequent data to the next level.Advantages:
-
Saves GPIOs on the master device (only one SS line is needed).
-
Simplifies wiring complexity.Disadvantages:
-
Low communication efficiency (data must be passed sequentially).
-
Slaves must support data forwarding functions (e.g., shift registers or specific protocols).Application Scenarios:
-
LED driver chip cascading (e.g., WS2812B simulating SPI mode).
-
Multi-channel ADC/DAC expansion (e.g., AD7793).Connection Diagram:
Master Device SCLK ──── SCLK (Slave 1) ──── SCLK (Slave 2) MOSI ─── MOSI (Slave 1) MISO ←── MISO (Slave 1) ←── MOSI (Slave 2) SS ────── SS (Slave 1) ────── SS (Slave 2)
3. Bus Sharing (Broadcast Mode)
Solution Description: Multiple slaves share the MOSI, MISO, SCLK, and SS lines, and the master device simultaneously selects multiple slaves through the SS lines.Working Principle:
-
The master device pulls down multiple SS lines to broadcast data to all selected slaves.
-
Slaves must support “ignore non-target instructions” or identify their data through an address field.Advantages:
-
Supports batch configuration of identical devices (e.g., multi-channel relay control).Disadvantages:
-
Risk of data conflict (multiple slaves driving the MISO line simultaneously).
-
Slaves must support address filtering or tri-state output.Application Scenarios:
-
Sensor arrays for multi-channel synchronous control (e.g., industrial temperature control systems).
-
Parallel configuration of multiple identical peripherals (e.g., motor driver chip DRV8837).
4. Tree Topology (Hybrid Mode)
Solution Description: Combines independent chip select and daisy chain to form a tree structure. For example, the master device controls multiple daisy chain branches through multi-level SS lines.Advantages:
-
Strong scalability, supporting large-scale slave networks.Disadvantages:
-
Logical control is complex, requiring hierarchical management of SS signals.Application Scenarios:
-
Distributed sensor networks in industrial automation.
-
Multi-level cascading display panels (e.g., advertising screen control systems).
Typical Application Cases
Case 1:SPI Daisy Chain Driving LED Array
Hardware Configuration:
-
Master Control: STM32F4
-
Slave: 74HC595 Shift Register (cascaded 3 pieces)Implementation Plan:
-
The master control sends 3 bytes of data sequentially through MOSI (each byte corresponds to one 74HC595).
-
Data enters the first 74HC595’s MOSI and is passed to the next piece through internal shifting.
-
The master pulls up the SS line, triggering all 74HC595s to latch outputs simultaneously, controlling 24 LEDs.Advantages:
-
Only 3 lines (SCLK, MOSI, SS) are needed to control a large number of LEDs, saving GPIO resources.
Case 2:QSPI Expansion for Large Capacity Storage
Hardware Configuration:
-
Master Control: ESP32-S3 (supports QSPI mode)
-
Memory: W25Q128JV (128Mbit Quad SPI Flash)Implementation Plan:
-
The master control transmits data through IO0-IO3 in four lines, with a clock frequency increased to 80 MHz.
-
Single transmission of 32-bit address + data, with a rate of up to 320 Mbps (4 times that of standard SPI).
-
Enables HOLD and WP lines for write protection and pause operations.Advantages:
-
High-speed storage of firmware or image data, suitable for IoT device OTA upgrades.
Case 3:Multi-Sensor Synchronous Acquisition
Hardware Configuration:
-
Master Control: Raspberry Pi
-
Slaves: BMI160 (6-axis IMU), BME280 (temperature, humidity, and pressure sensor)Implementation Plan:
-
The master selects BMI160 and BME280 through independent SS lines.
-
In full-duplex mode, the master reads acceleration data from BMI160 while sending configuration commands to BME280.
-
Uses SPI clock mode 0 (CPOL=0, CPHA=0) to ensure timing compatibility.Advantages:
-
Parallel operation of multiple sensors improves system response speed.
SPI Design Considerations
-
Signal Integrity:
-
For long-distance communication, buffers (e.g., SN74LVC245) or impedance matching resistors should be added.
-
Avoid high SCLK frequencies that cause signal reflections (usually <10 MHz; reduce frequency for longer PCB traces).
Slave Conflict Handling:
-
Only one slave is allowed to drive the MISO line on the bus; other slaves’ MISO must be set to high impedance.
Power and Ground Lines:
-
To reduce noise, SPI signal lines should run parallel to power ground lines and minimize loop area.
Software Optimization:
-
Use DMA transmission to reduce CPU usage (e.g., STM32’s SPI_DMA mode).
-
Detect transmission completion flags through interrupts or polling (e.g., SPI_I2S_FLAG_RXNE).
Follow me for more technical insights