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

EK-RA8D2 onboard SPH0690 PDM microphone policy. More...

#include <stdint.h>
#include "ra8_err.h"
#include "ra8_pdm.h"
Include dependency graph for ra8_board_ek_ra8d2_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_board_pdm_mic_config_t
 Board-owned PDM mechanism configuration for one microphone. More...

Enumerations

enum  ra8_board_pdm_mic_t : uint8_t {
  k_ra8_board_pdm_mic1 = 0U ,
  k_ra8_board_pdm_mic2 ,
  k_ra8_board_pdm_mic_count
}
 Selects one of the two SPH0690 microphones sharing PDM channel 2. More...

Functions

ra8_err_t ra8_board_pdm_mic_route (void)
 Route P812/P502 to PDMCLK2/PDMDAT2.
ra8_err_t ra8_board_pdm_mic_get_config (ra8_board_pdm_mic_t microphone, ra8_board_pdm_mic_config_t *out_config)
 Return the validated SPH0690 filter policy for one board microphone.

Detailed Description

EK-RA8D2 onboard SPH0690 PDM microphone policy.

Tag
[Ring 5 / BSP] {World: S}

Kept separate from the connector-only header so consumers that need board pin constants do not inherit the PDM HAL dependency.

Since
0.1.0

Definition in file ra8_board_ek_ra8d2_pdm.h.

Enumeration Type Documentation

◆ ra8_board_pdm_mic_t

enum ra8_board_pdm_mic_t : uint8_t

Selects one of the two SPH0690 microphones sharing PDM channel 2.

Enumerator
k_ra8_board_pdm_mic1 

Rising-edge MIC1 (SELECT tied low).

k_ra8_board_pdm_mic2 

Falling-edge MIC2 (SELECT tied high).

k_ra8_board_pdm_mic_count 

Number of on-board PDM microphones.

Definition at line 29 of file ra8_board_ek_ra8d2_pdm.h.

Function Documentation

◆ ra8_board_pdm_mic_get_config()

ra8_err_t ra8_board_pdm_mic_get_config ( ra8_board_pdm_mic_t microphone,
ra8_board_pdm_mic_config_t * out_config )
nodiscard

Return the validated SPH0690 filter policy for one board microphone.

Parameters
[in]microphoneMIC1 or MIC2 selector.
[out]out_configReceives channel, rate, width, and HAL coefficients.
Returns
Error code.
Return values
k_ra8_okConfiguration returned.
k_ra8_err_null_ptrout_config was nullptr.
k_ra8_err_invalid_argmicrophone is out of range.
Precondition
out_config points to writable storage.
Postcondition
On success out_config describes 16 kHz, 20-bit mono PCM.
Note
Thread-safe; returns immutable board policy by value.
Since
0.1.0

Definition at line 77 of file ra8_board_ek_ra8d2_pdm.c.

References ra8_pdm_channel_cfg_t::edge, k_board_pdm_sample_rate_hz, k_board_pdm_valid_bits, k_ra8_board_pdm_mic1, k_ra8_board_pdm_mic_count, k_ra8_err_invalid_arg, k_ra8_err_null_ptr, k_ra8_ok, k_ra8_pdm_ch2, ra8_board_pdm_mic_config_t::pdm, and s_board_pdm_sph0690.

Referenced by c6_cam_audio_start(), and pdm_demo_pdm_or_halt().

◆ ra8_board_pdm_mic_route()

ra8_err_t ra8_board_pdm_mic_route ( void )
nodiscard

Route P812/P502 to PDMCLK2/PDMDAT2.

Returns
Error code.
Return values
k_ra8_okBoth microphone pins were routed.
k_ra8_err_gpio_conflictA pin is already claimed.
otherPropagated pin-routing error.
Precondition
PDMIFCLK is available from MOCO and ra8_mstp_init has run.
Postcondition
The shared microphone clock/data pins are assigned to PDM-IF.
Note
Not thread-safe; call once during board initialization.
Since
0.1.0

Definition at line 67 of file ra8_board_ek_ra8d2_pdm.c.

References k_ra8_ok, k_ra8_psel_pdm, ra8_pfs_route_peripheral(), s_board_pdm_pin_clk, and s_board_pdm_pin_dat.

Referenced by c6_cam_audio_start(), and pdm_demo_io_or_halt().