56typedef enum : uint8_t {
71typedef enum : uint8_t {
Error Code Definitions for ra8-firmware.
ra8_err_codes_t ra8_err_t
Canonical error-return type used by every ra8-firmware API.
ra8_err_t ra8_pdm_stop(uint8_t ch)
Stop a channel and wait for its filter to halt.
void(* ra8_pdm_data_callback_t)(void *ctx, const int32_t *samples, uint32_t count)
PDM FIFO data callback invoked from ICU interrupt context.
ra8_pdm_coeff_count_t
Filter-coefficient array lengths (HUM Ch 49.2.21-49.2.35).
@ k_ra8_pdm_hpf_h_count
High-pass filter h(0..1) coefficients.
@ k_ra8_pdm_comp_h_count
Compensation filter h(0..10) coefficients.
@ k_ra8_pdm_lpf_h1_count
Low-pass (half-band) h1(0..19) coefficients.
ra8_err_t ra8_pdm_init(void)
Release the PDM-IF module stop and reset its common bank.
ra8_err_t ra8_pdm_read_enable(uint8_t ch)
Clear status, enable data read and prime the receive FIFO.
ra8_err_t ra8_pdm_configure(uint8_t ch, const ra8_pdm_channel_cfg_t *cfg)
Program a channel's mode, decimation and filter coefficients.
ra8_err_t ra8_pdm_stream_enable(uint8_t ch, ra8_pdm_data_callback_t callback, void *ctx, uint8_t priority)
Enable interrupt-driven FIFO delivery for one running channel.
ra8_pdm_channel_t
PDM-IF channel selectors.
@ k_ra8_pdm_ch_count
Number of channels (bound).
@ k_ra8_pdm_ch1
Channel 1.
@ k_ra8_pdm_ch0
Channel 0.
@ k_ra8_pdm_ch2
Channel 2 (EK-RA8D2 MEMS mic).
ra8_err_t ra8_pdm_stream_disable(uint8_t ch)
Disable interrupt-driven delivery for one channel.
ra8_err_t ra8_pdm_start(uint8_t ch)
Activate a configured channel's filter (start trigger).
ra8_err_t ra8_pdm_deinit(void)
Put the PDM-IF block back into module stop.
ra8_err_t ra8_pdm_read(uint8_t ch, int32_t *out, uint32_t max, uint32_t *out_count)
Drain up to max PCM samples from a channel's FIFO.
One PDM channel's mode + filter configuration.
uint16_t lpf_h0
Low-pass filter coefficient h0.
uint16_t hpf_h[k_ra8_pdm_hpf_h_count]
High-pass filter h(0..1).
uint16_t comp_h[k_ra8_pdm_comp_h_count]
Compensation filter h(0..10).
uint16_t lpf_h1[k_ra8_pdm_lpf_h1_count]
Low-pass filter h1(0..19).
uint8_t hpf_shift
High-pass input shift (PDMDSR.HFIS[1:0]).
uint8_t rx_threshold
Data reception threshold code (PDDBCR.DATRITHR).
uint16_t hpf_k1
High-pass filter coefficient k(1).
uint8_t sinc_order
Sinc filter order 1..4 (PDMDSR.SFMD).
uint8_t data_shift
Data-buffer input shift (PDMDSR.DBIS[3:0]).
uint8_t clock_div
PDM_CLKn divider code (PDSFCR.CKDIV[3:0]).
uint8_t lpf_shift
Low-pass input shift (PDMDSR.LFIS[1:0]).
uint8_t cf_shift
Compensation input shift (PDMDSR.CFIS[1:0]).
uint8_t sinc_dec
Sinc decimation ratio - 1 (PDSFCR.SINCDEC[7:0]).
uint8_t sinc_range
Sinc output clip range (PDSFCR.SINCRNG[4:0]).
uint8_t edge
0: rise-edge ch n; 1: fall-edge ch n-1 (INPSEL).
uint16_t hpf_s0
High-pass filter coefficient s(0).