ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
ra8_audio_source_pdm.h File Reference

RA8 PDM-IF backend for the transport-neutral audio facade. More...

#include <stdint.h>
#include "ra8_audio.h"
#include "ra8_pdm.h"
Include dependency graph for ra8_audio_source_pdm.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  ra8_audio_source_pdm_cfg_t
 Complete PDM source initialization and capture policy. More...
struct  ra8_audio_source_pdm_state_t
 Caller-owned mutable state for one PDM source backend. More...

Functions

ra8_err_t ra8_audio_source_pdm_init (ra8_audio_source_t *source, ra8_audio_source_pdm_state_t *state, const ra8_audio_source_pdm_cfg_t *cfg)
 Configure, start, settle, and bind one PDM audio source.

Detailed Description

RA8 PDM-IF backend for the transport-neutral audio facade.

Tag
[Ring 4 / Service] {World: NS}

Binds one PDM-IF channel as a fixed-size mono PCM-S32LE source. Filter coefficients and board pin routing remain caller/BSP policy.

Since
0.1.0

Definition in file ra8_audio_source_pdm.h.

Function Documentation

◆ ra8_audio_source_pdm_init()

ra8_err_t ra8_audio_source_pdm_init ( ra8_audio_source_t * source,
ra8_audio_source_pdm_state_t * state,
const ra8_audio_source_pdm_cfg_t * cfg )
nodiscard

Configure, start, settle, and bind one PDM audio source.

Parameters
[out]sourceGeneric source handle.
[out]stateCaller-owned backend state.
[in]cfgPDM filter and fixed-frame policy.
Returns
Error code.
Return values
k_ra8_okSource is running and bound.
k_ra8_err_null_ptrAn argument was nullptr.
k_ra8_err_invalid_argConfiguration is invalid.
otherPropagated PDM HAL error.
Precondition
PDM pins are routed and ra8_time_init has run.
source and state out-live all later operations.
Postcondition
On success no heap is used and captures return PCM-S32LE.
On error hardware is stopped/deinitialized on a best-effort basis.
Note
Not thread-safe with respect to the PDM-IF block.
Since
0.1.0

Definition at line 384 of file ra8_audio_source_pdm.c.

References ra8_audio_source_pdm_cfg_t::channel, internal_pdm_prepare_hardware(), internal_pdm_validate_cfg(), ra8_audio_source_pdm_cfg_t::irq_priority, k_ra8_audio_format_pcm_s32le, k_ra8_err_null_ptr, k_ra8_ok, ra8_audio_source_pdm_cfg_t::poll_attempts, s_pdm_source_iface, ra8_audio_source_pdm_cfg_t::sample_rate_hz, ra8_audio_source_pdm_cfg_t::samples_per_frame, and ra8_audio_source_pdm_cfg_t::valid_bits.

Referenced by c6_cam_audio_start(), and pdm_demo_pdm_or_halt().