Serial Synchronous Interface (SSI) Appendix#

This appendix provides reference material for the Serial Synchronous Interface (SSI) peripheral. It includes a glossary of terms, a list of acronyms, extended usage examples, and frequently asked questions (FAQs). Use this section as a quick lookup guide when developing with SSI.

Appendix Overview#

The appendix is organized into the following sections:

  • Glossary: Defines important SSI-related terms.

  • Acronyms: Expands abbreviations commonly used in SSI development.

  • Extended Examples: Provides links to example projects in the WiSeConnect software development kit (SDK).

  • FAQs: Answers common questions about SSI usage, performance, and troubleshooting.

Glossary#

The glossary defines key terms related to SSI and its supported protocols.

Term

Description

CMSIS

Cortex Microcontroller Software Interface Standard – ARM's standardized interface for Cortex-M microcontrollers.

CPHA

Clock Phase – Determines when data is sampled relative to the clock edge.

CPOL

Clock Polarity – Determines the idle state of the serial clock.

DMA

Direct Memory Access – Transfers data without central processing unit (CPU) intervention.

Dual SPI

Dual Serial Peripheral Interface – Uses two data lines for increased throughput.

FIFO

First In, First Out – A buffer structure used in the SSI peripheral.

HAL

Hardware Abstraction Layer – A software layer that provides a uniform interface to hardware peripherals.

Microwire

A half-duplex serial protocol developed by National Semiconductor.

PLL

Phase-Locked Loop – A control system that generates a stable, high-frequency clock from a lower-frequency reference.

Primary

The device that initiates and controls serial transfers.

PS1

Power State 1 – Ultra-low power or standby state. The CPU and most peripherals are halted. Fast wake-up is possible. Used for deep energy savings.

PS2

Power State 2 – Low performance (up to 20–32 MHz CPU, 0.75 V supply). Many features and peripherals enter low-power mode. Maintains limited processing capability while conserving power.

PS3

Power State 3 – Medium performance (up to 90 MHz CPU, 1.05 V supply). Some features and peripherals may be disabled or limited. Consumes less power than PS4 but remains responsive.

PS4

Power State 4 – Maximum performance (up to 180 MHz CPU, 1.15 V supply). All features and peripherals are available. Used for full-speed operations and during startup after reset.

Quad SPI

Quad Serial Peripheral Interface – Uses four data lines for maximum throughput.

RTOS

Real-Time Operating System – An operating system designed for real-time applications with deterministic timing.

SDK

Software Development Kit – A collection of software tools and libraries for application development.

Secondary

The device that responds to transfers initiated by the Primary.

SPI

Serial Peripheral Interface – A synchronous serial communication protocol developed by Motorola.

SSI

Serial Synchronous Interface – A configurable peripheral that supports multiple protocols.

SSP

Synchronous Serial Protocol – A communication protocol developed by Texas Instruments.

ULP

Ultra-Low Power – A power domain designed for minimal energy consumption.

Acronyms#

Acronym

Description

APB

Advanced Peripheral Bus

CPHA

Clock Phase

CPOL

Clock Polarity

CS

Chip Select

DMA

Direct Memory Access

FIFO

First In, First Out

GPIO

General Purpose Input/Output

MISO

Master In Slave Out

MOSI

Master Out Slave In

PMU

Power Management Unit

PS1–PS4

Power Save Modes

RX

Receive

SCK

Serial Clock

SLC

Simplicity Studio Component

SPI

Serial Peripheral Interface

SSI

Serial Synchronous Interface

SSP

Synchronous Serial Protocol

TX

Transmit

UC

Universal Configurator

ULP

Ultra-Low Power

Extended Examples#

This section provides links to example projects that demonstrate SSI features and integration within the WiSeConnect SDK. Use these examples to accelerate development and validate configurations.

Basic SSI Examples#

Sensor Integration Examples#

FAQ#

This section answers frequently asked questions about SSI functionality, modes, and troubleshooting.

Q: What is the maximum Serial Peripheral Interface (SPI) clock frequency supported?#

A: The SSI peripheral supports up to 40 MHz for standard SPI mode and up to 10 MHz for Dual/Quad SPI modes.

Q: Can I use both Direct Memory Access (DMA) and interrupts simultaneously?#

A: Yes. When DMA is enabled, the driver uses DMA for data transfer and interrupts for completion notification and error handling.

Q: How do I switch between different SPI modes (Clock Polarity and Clock Phase)?#

A: Configure the frame format in the Universal Configurator (UC) or set the appropriate parameters in the sl_si91x_ssi_set_configuration() function.

Q: What happens to SSI configuration during sleep modes?#

A: For Ultra-Low-Power (ULP) SSI, configuration is retained during Power State 2 (PS2) and Power State 1 (PS1). For regular SSI, you must reinitialize the peripheral after waking from deep sleep.

Q: Can I communicate with multiple slave devices?#

A: Yes. The SSI Primary supports up to four chip select (CS) lines for addressing multiple slave devices.

Q: How do I troubleshoot timing issues in Dual or Quad SPI?#

A: Use a logic analyzer to verify clock phase, data setup and hold times, and ensure adequate wait cycles between command/address and data phases.

Q: What is the difference between blocking and non-blocking transfers?#

A: Blocking transfers wait until completion before returning. Non-blocking transfers (using DMA) return immediately and use callbacks to signal completion.

Q: How do I optimize power consumption with SSI?#

A: Use the ULP SSI instance with ULP General Purpose Input/Output (GPIO), enable Power State 2 (PS2), and leverage DMA for autonomous operation during sleep.

Q: Can I use SSI with external flash memory?#

A: Yes. The SSI peripheral works well for flash memory communication, particularly with Dual or Quad SPI modes for higher throughput.

Q: What should I do if I encounter persistent communication errors?#

A: Check hardware connections, verify clock settings, ensure proper impedance matching, and implement error recovery mechanisms as described in the debugging section.

Additional Resources#

Use these resources for further reference and support: