Microchip® Advanced Software Framework

wm8904_example.c File Reference

WM8904 example for SAM.

Copyright (c) 2015-2018 Microchip Technology Inc. and its subsidiaries.

#include <asf.h>

Macros

#define BITS_BY_SLOT   (16)
 Bits per slot. More...
 
#define MICROBLOCK_LEN   0x1000
 Micro-block length for single transfer. More...
 
#define SAMPLE_RATE   (48000)
 Wav feature. More...
 
#define SLOT_BY_FRAME   (1)
 Wav slot per frame. More...
 
#define STRING_EOL   "\r"
 
#define STRING_HEADER
 
#define TOTAL_BUFFERS   4
 XDMA Descriptor. More...
 
#define XDMA_CH_SSC_RX   0
 XDMA channel used in this example. More...
 
#define XDMA_CH_SSC_TX   1
 

Functions

static void configure_codec (void)
 
static void configure_console (void)
 Configure UART console. More...
 
static void configure_ssc (void)
 
static void configure_xdma (void)
 
int main (void)
 

Variables

static uint16_t AudioBuffer [TOTAL_BUFFERS *MICROBLOCK_LEN *(BITS_BY_SLOT/8)]
 
static lld_view1 linklist_read [TOTAL_BUFFERS]
 
static lld_view1 linklist_write [TOTAL_BUFFERS]
 

#define BITS_BY_SLOT   (16)

Bits per slot.

Referenced by configure_ssc().

#define MICROBLOCK_LEN   0x1000

Micro-block length for single transfer.

Referenced by configure_xdma().

#define SAMPLE_RATE   (48000)

Wav feature.

#define SLOT_BY_FRAME   (1)

Wav slot per frame.

Referenced by configure_ssc().

#define STRING_EOL   "\r"
#define STRING_HEADER
Value:
"-- WM8904 Example --\r\n" \
"-- "BOARD_NAME" --\r\n" \
"-- Compiled: "__DATE__" "__TIME__" --"STRING_EOL
#define STRING_EOL
Definition: wm8904_example.c:90
#define BOARD_NAME
Name of the board.
Definition: samv71_xplained_ultra.h:75

Referenced by main().

#define TOTAL_BUFFERS   4

XDMA Descriptor.

Referenced by configure_xdma().

#define XDMA_CH_SSC_RX   0

XDMA channel used in this example.

Referenced by configure_xdma(), and main().

#define XDMA_CH_SSC_TX   1

Referenced by configure_xdma(), and main().

static void configure_codec ( void  )
static

References delay_ms, WM8904_ADCL_ENA, WM8904_ADCR_ENA, WM8904_AIF_FMT_I2S, WM8904_ANALOGUE_HP_0, WM8904_ANALOGUE_LEFT_INPUT_0, WM8904_ANALOGUE_OUT12_ZC, WM8904_ANALOGUE_OUT1_LEFT, WM8904_ANALOGUE_OUT1_RIGHT, WM8904_ANALOGUE_RIGHT_INPUT_0, WM8904_AUDIO_INTERFACE_1, WM8904_AUDIO_INTERFACE_2, WM8904_AUDIO_INTERFACE_3, WM8904_BCLK_DIR, WM8904_BCLK_DIV, WM8904_BIAS_CONTROL_0, WM8904_BIAS_ENA, WM8904_CHARGE_PUMP_0, WM8904_CLASS_W_0, WM8904_CLK_DSP_ENA, WM8904_CLK_SYS_ENA, WM8904_CLK_SYS_RATE, WM8904_CLOCK_RATES_0, WM8904_CLOCK_RATES_1, WM8904_CLOCK_RATES_2, WM8904_CP_DYN_PWR, WM8904_CP_ENA, WM8904_DAC_DIGITAL_1, WM8904_DACL_ENA, WM8904_DACR_ENA, WM8904_DC_SERVO_0, WM8904_DC_SERVO_1, WM8904_DCS_ENA_CHAN_0, WM8904_DCS_ENA_CHAN_1, WM8904_DCS_ENA_CHAN_2, WM8904_DCS_ENA_CHAN_3, WM8904_DCS_TRIG_STARTUP_0, WM8904_DCS_TRIG_STARTUP_1, WM8904_DCS_TRIG_STARTUP_2, WM8904_DCS_TRIG_STARTUP_3, WM8904_DEEMPH, WM8904_FLL_CONTROL_1, WM8904_FLL_CONTROL_2, WM8904_FLL_CONTROL_3, WM8904_FLL_CONTROL_4, WM8904_FLL_ENA, WM8904_FLL_FRACN_ENA, WM8904_FLL_FRATIO, WM8904_FLL_K, WM8904_FLL_N, WM8904_FLL_OUTDIV, WM8904_HPL_ENA, WM8904_HPL_ENA_DLY, WM8904_HPL_ENA_OUTP, WM8904_HPL_PGA_ENA, WM8904_HPL_RMV_SHORT, WM8904_HPOUT_VU, WM8904_HPOUTL_VOL, WM8904_HPOUTR_VOL, WM8904_HPR_ENA, WM8904_HPR_ENA_DLY, WM8904_HPR_ENA_OUTP, WM8904_HPR_PGA_ENA, WM8904_HPR_RMV_SHORT, WM8904_INL_ENA, WM8904_INR_ENA, WM8904_ISEL_HP_BIAS, WM8904_LIN_VOL, WM8904_LRCLK_DIR, WM8904_LRCLK_RATE, WM8904_POWER_MANAGEMENT_0, WM8904_POWER_MANAGEMENT_2, WM8904_POWER_MANAGEMENT_6, wm8904_read_register(), WM8904_RIN_VOL, WM8904_SAMPLE_RATE, WM8904_SW_RESET_AND_ID, WM8904_SYSCLK_SRC, WM8904_VMID_BUF_ENA, WM8904_VMID_CONTROL_0, WM8904_VMID_ENA, WM8904_VMID_RES_FAST, WM8904_VMID_RES_NORMAL, and wm8904_write_register().

Referenced by main().

static void configure_console ( void  )
static

uint16_t AudioBuffer[TOTAL_BUFFERS *MICROBLOCK_LEN *(BITS_BY_SLOT/8)]
static

Referenced by configure_xdma().

lld_view1 linklist_read[TOTAL_BUFFERS]
static
lld_view1 linklist_write[TOTAL_BUFFERS]
static