![]() |
MCUXpresso SDK API Reference Manual
Rev 2.16.000
NXP Semiconductors
|
Data Structures | |
| struct | wm8962_audio_format_t |
| wm8962 audio format More... | |
| struct | wm8962_fll_clk_config_t |
| wm8962 master system clock configuration More... | |
| struct | wm8962_route_config_t |
| WM8962 data route configurations. More... | |
| struct | wm8962_config_t |
| Initialize structure of WM8962. More... | |
| struct | wm8962_handle_t |
| wm8962 codec handler More... | |
Macros | |
| #define | WM8962_I2C_HANDLER_SIZE CODEC_I2C_MASTER_HANDLER_SIZE |
| wm8962 handle size | |
| #define | WM8962_LINVOL 0x0U |
| Define the register address of WM8962. More... | |
| #define | WM8962_CACHEREGNUM 56U |
| Cache register number. | |
| #define | WM8962_CLOCK2_BCLK_DIV_MASK 0xFU |
| WM8962 CLOCK2 bits. | |
| #define | WM8962_IFACE0_FORMAT_MASK 0x13U |
| WM8962_IFACE0 FORMAT bits. | |
| #define | WM8962_IFACE0_WL_MASK 0x0CU |
| WM8962_IFACE0 WL bits. | |
| #define | WM8962_IFACE1_LRP_MASK 0x10U |
| WM8962_IFACE1 LRP bit. | |
| #define | WM8962_IFACE1_DLRSWAP_MASK 0x20U |
| WM8962_IFACE1 DLRSWAP bit. | |
| #define | WM8962_IFACE1_MS_MASK 0x40U |
| WM8962_IFACE1 MS bit. | |
| #define | WM8962_IFACE1_BCLKINV_MASK 0x80U |
| WM8962_IFACE1 BCLKINV bit. | |
| #define | WM8962_IFACE1_ALRSWAP_MASK 0x100U |
| WM8962_IFACE1 ALRSWAP bit. | |
| #define | WM8962_POWER1_VREF_MASK 0x40U |
| WM8962_POWER1. | |
| #define | WM8962_POWER2_DACL_MASK 0x100U |
| WM8962_POWER2. | |
| #define | WM8962_I2C_ADDR (0x34 >> 1U) |
| WM8962 I2C address. More... | |
| #define | WM8962_I2C_BAUDRATE (100000U) |
| WM8962 I2C baudrate. | |
| #define | WM8962_ADC_MAX_VOLUME_vALUE 0xFFU |
| WM8962 maximum volume value. | |
Functions | |
| status_t | WM8962_Init (wm8962_handle_t *handle, const wm8962_config_t *config) |
| WM8962 initialize function. More... | |
| status_t | WM8962_Deinit (wm8962_handle_t *handle) |
| Deinit the WM8962 codec. More... | |
| status_t | WM8962_SetDataRoute (wm8962_handle_t *handle, const wm8962_route_config_t *route) |
| Set audio data route in WM8962. More... | |
| status_t | WM8962_SetProtocol (wm8962_handle_t *handle, wm8962_protocol_t protocol) |
| Set the audio transfer protocol. More... | |
| status_t | WM8962_SetModuleVolume (wm8962_handle_t *handle, wm8962_module_t module, uint32_t volume) |
| Set the volume of different modules in WM8962. More... | |
| uint32_t | WM8962_GetModuleVolume (wm8962_handle_t *handle, wm8962_module_t module) |
| Get the volume of different modules in WM8962. More... | |
| status_t | WM8962_SetModuleMute (wm8962_handle_t *handle, wm8962_module_t module, bool isEnabled) |
| Mute modules in WM8962. More... | |
| status_t | WM8962_SetModulePower (wm8962_handle_t *handle, wm8962_module_t module, bool isEnabled) |
| Enable/disable expected devices. More... | |
| status_t | WM8962_ConfigDataFormat (wm8962_handle_t *handle, uint32_t sysclk, uint32_t sample_rate, uint32_t bits) |
| Configure the data format of audio data. More... | |
| status_t | WM8962_WriteReg (wm8962_handle_t *handle, uint16_t reg, uint16_t val) |
| Write register to WM8962 using I2C. More... | |
| status_t | WM8962_ReadReg (wm8962_handle_t *handle, uint16_t reg, uint16_t *val) |
| Read register from WM8962 using I2C. More... | |
| status_t | WM8962_ModifyReg (wm8962_handle_t *handle, uint16_t reg, uint16_t mask, uint16_t val) |
| Modify some bits in the register using I2C. More... | |
Driver version | |
| #define | FSL_WM8962_DRIVER_VERSION (MAKE_VERSION(2, 2, 0)) |
| CLOCK driver version 2.1.3. | |
| struct wm8962_audio_format_t |
Data Fields | |
| uint32_t | mclk_HZ |
| master clock frequency | |
| uint32_t | sampleRate |
| sample rate | |
| uint32_t | bitWidth |
| bit width | |
| struct wm8962_fll_clk_config_t |
Data Fields | |
| wm8962_fllclk_source_t | fllClockSource |
| fll clock source | |
| uint32_t | fllReferenceClockFreq |
| external input frequency | |
| uint32_t | fllOutputFreq |
| FLL output frequency value. | |
| struct wm8962_route_config_t |
Data Fields | |
| bool | enableLoopBack |
| enable loopback: ADC->DAC directly | |
| wm8962_input_pga_source_t | leftInputPGASource |
| Left input source for WM8962. | |
| uint32_t | leftInputMixerSource |
| left input MIXER source, combination value of wm8962_input_mixer_source_t | |
| wm8962_input_pga_source_t | rightInputPGASource |
| right input PGA source | |
| uint32_t | rightInputMixerSource |
| right input MIXER source, combination value of wm8962_input_mixer_source_t | |
| uint32_t | leftSpeakerMixerSource |
| speaker left MIXER source, combination value of wm8962_output_mixer_source_t | |
| wm8962_output_pga_source_t | leftSpeakerPGASource |
| speaker left PGA source | |
| uint32_t | rightSpeakerMixerSource |
| speaker right MIXER source, combination value of wm8962_output_mixer_source_t | |
| wm8962_output_pga_source_t | rightSpeakerPGASource |
| speaker left PGA source | |
| uint32_t | leftHeadphoneMixerSource |
| headphone left MIXER source, combination value of wm8962_output_mixer_source_t | |
| wm8962_output_pga_source_t | leftHeadphonePGASource |
| speaker left PGA source | |
| uint32_t | rightHeadphoneMixerSource |
| headphone left MIXER source, combination value of wm8962_output_mixer_source_t | |
| wm8962_output_pga_source_t | rightHeadphonePGASource |
| speaker left PGA source | |
| struct wm8962_config_t |
Data Fields | |
| wm8962_route_config_t | route |
| Audio data route. More... | |
| wm8962_protocol_t | bus |
| Audio transfer protocol. | |
| wm8962_audio_format_t | format |
| Audio format. | |
| bool | masterSlave |
| Master or slave. More... | |
| wm8962_sysclk_source_t | sysclkSource |
| sysclk source | |
| wm8962_fll_clk_config_t | fllClock |
| FLL clock configurations, shall be configured when masterSlave is true. | |
| uint8_t | slaveAddress |
| wm8962 device address | |
| codec_i2c_config_t | i2cConfig |
| i2c configuration | |
| wm8962_route_config_t wm8962_config_t::route |
| bool wm8962_config_t::masterSlave |
true: master mode, false: slave mode
| struct wm8962_handle_t |
Data Fields | |
| const wm8962_config_t * | config |
| wm8904 config pointer | |
| uint16_t | volume [DEBUG_WM8962_MODULE_NUM] |
| Audio volume value. | |
| uint8_t | i2cHandle [WM8962_I2C_HANDLER_SIZE] |
| i2c handle | |
| #define WM8962_LINVOL 0x0U |
| #define WM8962_I2C_ADDR (0x34 >> 1U) |
| anonymous enum |
| anonymous enum |
| enum wm8962_module_t |
| anonymous enum |
| enum wm8962_protocol_t |
| anonymous enum |
| anonymous enum |
| status_t WM8962_Init | ( | wm8962_handle_t * | handle, |
| const wm8962_config_t * | config | ||
| ) |
The second parameter is NULL to WM8962 in this version. If users want to change the settings, they have to use wm8962_write_reg() or wm8962_modify_reg() to set the register value of WM8962. Note: If the codec_config is NULL, it would initialize WM8962 using default settings. The default setting: codec_config->route = kWM8962_RoutePlaybackandRecord codec_config->bus = kWM8962_BusI2S codec_config->master = slave
| handle | WM8962 handle structure. |
| config | WM8962 configuration structure. |
| status_t WM8962_Deinit | ( | wm8962_handle_t * | handle | ) |
This function close all modules in WM8962 to save power.
| handle | WM8962 handle structure pointer. |
| status_t WM8962_SetDataRoute | ( | wm8962_handle_t * | handle, |
| const wm8962_route_config_t * | route | ||
| ) |
This function would set the data route according to route. The route cannot be combined, as all route would enable different modules. Note: If a new route is set, the previous route would not work.
| handle | WM8962 handle structure. |
| route | Audio data route in WM8962. |
| status_t WM8962_SetProtocol | ( | wm8962_handle_t * | handle, |
| wm8962_protocol_t | protocol | ||
| ) |
WM8960 only supports I2S, left justified, right justified, PCM A, PCM B format.
| handle | WM8960 handle structure. |
| protocol | Audio data transfer protocol. |
| status_t WM8962_SetModuleVolume | ( | wm8962_handle_t * | handle, |
| wm8962_module_t | module, | ||
| uint32_t | volume | ||
| ) |
This function would set the volume of WM8962 modules. Uses need to appoint the module. The function assume that left channel and right channel has the same volume.
Module:kWM8962_ModuleADC, volume range value: 0 is mute, 1-255 is -97db to 30db Module:kWM8962_ModuleDAC, volume range value: 0 is mute, 1-255 is -127db to 0db Module:kWM8962_ModuleHP, volume range value: 0 - 2F is mute, 0x30 - 0x7F is -73db to 6db Module:kWM8962_ModuleLineIn, volume range value: 0 - 0x3F is -17.25db to 30db Module:kWM8962_ModuleSpeaker, volume range value: 0 - 2F is mute, 0x30 - 0x7F is -73db to 6db
| handle | WM8962 handle structure. |
| module | Module to set volume, it can be ADC, DAC, Headphone and so on. |
| volume | Volume value need to be set. |
| uint32_t WM8962_GetModuleVolume | ( | wm8962_handle_t * | handle, |
| wm8962_module_t | module | ||
| ) |
This function gets the volume of WM8962 modules. Uses need to appoint the module. The function assume that left channel and right channel has the same volume.
| handle | WM8962 handle structure. |
| module | Module to set volume, it can be ADC, DAC, Headphone and so on. |
| status_t WM8962_SetModuleMute | ( | wm8962_handle_t * | handle, |
| wm8962_module_t | module, | ||
| bool | isEnabled | ||
| ) |
| handle | WM8962 handle structure. |
| module | Modules need to be mute. |
| isEnabled | Mute or unmute, 1 represent mute. |
| status_t WM8962_SetModulePower | ( | wm8962_handle_t * | handle, |
| wm8962_module_t | module, | ||
| bool | isEnabled | ||
| ) |
| handle | WM8962 handle structure. |
| module | Module expected to enable. |
| isEnabled | Enable or disable moudles. |
| status_t WM8962_ConfigDataFormat | ( | wm8962_handle_t * | handle, |
| uint32_t | sysclk, | ||
| uint32_t | sample_rate, | ||
| uint32_t | bits | ||
| ) |
This function would configure the registers about the sample rate, bit depths.
| handle | WM8962 handle structure pointer. |
| sysclk | system clock of the codec which can be generated by MCLK or PLL output. |
| sample_rate | Sample rate of audio file running in WM8962. WM8962 now supports 8k, 11.025k, 12k, 16k, 22.05k, 24k, 32k, 44.1k, 48k and 96k sample rate. |
| bits | Bit depth of audio file (WM8962 only supports 16bit, 20bit, 24bit and 32 bit in HW). |
| status_t WM8962_WriteReg | ( | wm8962_handle_t * | handle, |
| uint16_t | reg, | ||
| uint16_t | val | ||
| ) |
| handle | WM8962 handle structure. |
| reg | The register address in WM8962. |
| val | Value needs to write into the register. |
| status_t WM8962_ReadReg | ( | wm8962_handle_t * | handle, |
| uint16_t | reg, | ||
| uint16_t * | val | ||
| ) |
| handle | WM8962 handle structure. |
| reg | The register address in WM8962. |
| val | Value written to. |
| status_t WM8962_ModifyReg | ( | wm8962_handle_t * | handle, |
| uint16_t | reg, | ||
| uint16_t | mask, | ||
| uint16_t | val | ||
| ) |
| handle | WM8962 handle structure. |
| reg | The register address in WM8962. |
| mask | The mask code for the bits want to write. The bit you want to write should be 0. |
| val | Value needs to write into the register. |