Pulse Code Modulation (PCM) Architecture#
This topic describes the Pulse Code Modulation (PCM) peripheral on the SiWx917 platform and how to use it effectively in your applications. It introduces the hardware blocks, software layers, power domains, and dependencies. Examples reference the WiSeConnect software development kit (SDK) and Simplicity Studio IDE.
Peripheral Overview#
The SiWx917 platform integrates a PCM controller that enables high-quality digital audio transfer between the microcontroller unit (MCU) and external audio devices such as codecs, digital-to-analog converters (DACs), and digital signal processors (DSPs).
The PCM controller supports multiple data formats, configurable frame sizes, and flexible clocking options. It can operate as either a primary or secondary device, allowing seamless audio communication with both internal and external audio systems.
PCM Frame Format#
PCM communication is based on time-division multiplexing (TDM). Each audio frame defines a complete set of left and right channel samples synchronized to a frame-sync (FSYNC) signal.
The following timing diagrams illustrate the relationship between frame synchronization and bit-level data transfer when FSYNC is asserted with the least significant bit (LSB) or the most significant bit (MSB).


Figure: PCM timing diagram with FSYNC asserted on the least significant bit (LSB).


Figure: PCM timing diagram with FSYNC asserted on the most significant bit (MSB).
PCM Features#
Operates in primary or secondary mode for flexible audio interfacing
Supports full-duplex data transfer between devices
Supports frame sizes of 16-bit, 24-bit, and 32-bit
Transmits data on the rising edge and samples on the falling edge of the bit clock
Operates at bit-clock frequencies up to 24 MHz
Supports mono audio for voice or low-bandwidth applications
Provides two frame-sync options:
Transmit MSB in the same clock cycle as FSYNC
Transmit MSB in the next clock cycle after FSYNC
Power-Save and Subsystem Features#
Works with direct memory access (DMA) for efficient, non-blocking audio data transfer
Runs in the high-performance (HP) domain for stable audio communication
Supports direct audio bridging for wireless streaming use cases
PCM Software Architecture#
The PCM software stack uses a layered abstraction model to promote modularity, maintainability, and scalability in embedded audio development.


Figure: PCM software architecture.
Core Components#
The PCM driver stack includes the following layers:
Application Layer – Example projects and user applications that call PCM APIs
Unified API Layer – High-level APIs for initialization, configuration, and data transfers
Peripheral Driver Layer – Low-level register access and DMA integration
Hardware Layer – The physical PCM interface on the SiWx917 system-on-chip (SoC)
This layered approach:
Abstracts hardware complexity behind a unified API
Promotes code reuse and modular integration
Enables DMA-assisted high-performance streaming
Simplifies debugging through clear functional separation
Directory Structure in WiSeConnect SDK#
wiseconnect/
├── components/
│ └── device/
│ └── silabs/
│ └── si91x/
│ └── mcu/
│ └── drivers/
│ └── unified_api/
│ ├── inc/
│ │ └── sl_si91x_pcm.h
│ └── src/
│ └── sl_si91x_pcm.c
└── examples/
└── si91x_soc/
└── peripheral/
├── sl_si91x_pcm_loopback
├── sl_si91x_pcm_primary
└── sl_si91x_pcm_secondaryClock and Power Management#
The WiSeConnect SDK and Simplicity Studio automatically manage PCM clocking and power-domain configuration. When the PCM component is enabled, the SDK ensures that the required HP-domain clocks are active.
PCM is available in PS4 and PS3 Active power states.
It operates only in the HP domain for consistent timing and throughput
Manual clock or power configuration is not required for normal development. For advanced debugging or custom power optimization, refer to:
SiWx917 Hardware Reference Manual
WiSeConnect SDK documentation for clock and power domain behavior.
Power Domain Overview#
The SiWx917 SoC locates the PCM peripheral entirely within the HP domain to ensure consistent audio quality and data throughput.
High-Performance PCM Interface#
PCM base address: 0x4705_0000
This interface is available in PS4 and PS3 power states and is optimized for high-speed, full-duplex digital audio streaming.
Dependencies#
Before using PCM on SiWx917, confirm that the following requirements are met:
WiSeConnect SDK - Installed and configured in Simplicity Studio.
Simplicity Studio Configuration – The
.slcpproject file includes PCM components.Universal Configurator (UC) - Used to set parameters such as sample rate, data width, and thresholds.
Clocking – Clock and divider configurations are managed by the SDK.
Power States – PCM is available only in PS4 and PS3.
GPIO Configuration – Initialize BCLK, FSYNC, and DATA pins using
sl_si91x_pcm_pin_init().
For detailed setup instructions, see the PCM Initialization and Configuration Guide.