![]() |
MCUXpresso SDK API Reference Manual
Rev. 0
NXP Semiconductors
|
Data Structures | |
| struct | wm8960_audio_format_t |
| wm8960 audio format More... | |
| struct | wm8960_config_t |
| Initialize structure of WM8960. More... | |
| struct | wm8960_handle_t |
| wm8960 codec handler More... | |
Macros | |
| #define | WM8960_I2C_HANDLER_SIZE CODEC_I2C_MASTER_HANDLER_SIZE |
| wm8960 handle size | |
| #define | WM8960_LINVOL 0x0 |
| Define the register address of WM8960. More... | |
| #define | WM8960_CACHEREGNUM 56 |
| Cache register number. | |
| #define | WM8960_IFACE1_FORMAT_MASK 0x03 |
| WM8960_IFACE1 FORMAT bits. | |
| #define | WM8960_IFACE1_WL_MASK 0x0C |
| WM8960_IFACE1 WL bits. | |
| #define | WM8960_IFACE1_LRP_MASK 0x10 |
| WM8960_IFACE1 LRP bit. | |
| #define | WM8960_IFACE1_DLRSWAP_MASK 0x20 |
| WM8960_IFACE1 DLRSWAP bit. | |
| #define | WM8960_IFACE1_MS_MASK 0x40 |
| WM8960_IFACE1 MS bit. | |
| #define | WM8960_IFACE1_BCLKINV_MASK 0x80 |
| WM8960_IFACE1 BCLKINV bit. | |
| #define | WM8960_IFACE1_ALRSWAP_MASK 0x100 |
| WM8960_IFACE1 ALRSWAP bit. | |
| #define | WM8960_POWER1_VREF_MASK 0x40 |
| WM8960_POWER1. | |
| #define | WM8960_POWER2_DACL_MASK 0x100 |
| WM8960_POWER2. | |
| #define | WM8960_I2C_ADDR 0x1A |
| WM8960 I2C address. More... | |
| #define | WM8960_I2C_BAUDRATE (100000U) |
| WM8960 I2C baudrate. | |
| #define | WM8960_ADC_MAX_VOLUME_vALUE 0xFFU |
| WM8960 maximum volume value. | |
Functions | |
| status_t | WM8960_Init (wm8960_handle_t *handle, const wm8960_config_t *wm8960Config) |
| WM8960 initialize function. More... | |
| status_t | WM8960_Deinit (wm8960_handle_t *handle) |
| Deinit the WM8960 codec. More... | |
| status_t | WM8960_SetDataRoute (wm8960_handle_t *handle, wm8960_route_t route) |
| Set audio data route in WM8960. More... | |
| status_t | WM8960_SetLeftInput (wm8960_handle_t *handle, wm8960_input_t input) |
| Set left audio input source in WM8960. More... | |
| status_t | WM8960_SetRightInput (wm8960_handle_t *handle, wm8960_input_t input) |
| Set right audio input source in WM8960. More... | |
| status_t | WM8960_SetProtocol (wm8960_handle_t *handle, wm8960_protocol_t protocol) |
| Set the audio transfer protocol. More... | |
| void | WM8960_SetMasterSlave (wm8960_handle_t *handle, bool master) |
| Set WM8960 as master or slave. More... | |
| status_t | WM8960_SetVolume (wm8960_handle_t *handle, wm8960_module_t module, uint32_t volume) |
| Set the volume of different modules in WM8960. More... | |
| uint32_t | WM8960_GetVolume (wm8960_handle_t *handle, wm8960_module_t module) |
| Get the volume of different modules in WM8960. More... | |
| status_t | WM8960_SetMute (wm8960_handle_t *handle, wm8960_module_t module, bool isEnabled) |
| Mute modules in WM8960. More... | |
| status_t | WM8960_SetModule (wm8960_handle_t *handle, wm8960_module_t module, bool isEnabled) |
| Enable/disable expected devices. More... | |
| status_t | WM8960_SetPlay (wm8960_handle_t *handle, uint32_t playSource) |
| SET the WM8960 play source. More... | |
| status_t | WM8960_ConfigDataFormat (wm8960_handle_t *handle, uint32_t sysclk, uint32_t sample_rate, uint32_t bits) |
| Configure the data format of audio data. More... | |
| status_t | WM8960_SetJackDetect (wm8960_handle_t *handle, bool isEnabled) |
| Enable/disable jack detect feature. More... | |
| status_t | WM8960_WriteReg (wm8960_handle_t *handle, uint8_t reg, uint16_t val) |
| Write register to WM8960 using I2C. More... | |
| status_t | WM8960_ReadReg (uint8_t reg, uint16_t *val) |
| Read register from WM8960 using I2C. More... | |
| status_t | WM8960_ModifyReg (wm8960_handle_t *handle, uint8_t reg, uint16_t mask, uint16_t val) |
| Modify some bits in the register using I2C. More... | |
Driver version | |
| #define | FSL_WM8960_DRIVER_VERSION (MAKE_VERSION(2, 1, 2)) |
| CLOCK driver version 2.1.2. | |
| struct wm8960_audio_format_t |
Data Fields | |
| uint32_t | mclk_HZ |
| master clock frequency | |
| uint32_t | sampleRate |
| sample rate | |
| uint32_t | bitWidth |
| bit width | |
| struct wm8960_config_t |
Data Fields | |
| wm8960_route_t | route |
| Audio data route. More... | |
| wm8960_protocol_t | bus |
| Audio transfer protocol. | |
| wm8960_audio_format_t | format |
| Audio format. | |
| bool | master_slave |
| Master or slave. More... | |
| bool | enableSpeaker |
| True means enable class D speaker as output, false means no. | |
| wm8960_input_t | leftInputSource |
| Left input source for WM8960. | |
| wm8960_input_t | rightInputSource |
| Right input source for wm8960. | |
| wm8960_play_source_t | playSource |
| play source | |
| uint8_t | slaveAddress |
| wm8960 device address | |
| codec_i2c_config_t | i2cConfig |
| i2c configuration | |
| wm8960_route_t wm8960_config_t::route |
| bool wm8960_config_t::master_slave |
| struct wm8960_handle_t |
Data Fields | |
| const wm8960_config_t * | config |
| wm8904 config pointer | |
| uint8_t | i2cHandle [WM8960_I2C_HANDLER_SIZE] |
| i2c handle | |
| #define WM8960_LINVOL 0x0 |
| #define WM8960_I2C_ADDR 0x1A |
| enum wm8960_module_t |
| enum _wm8960_play_channel |
| enum wm8960_play_source_t |
| enum wm8960_route_t |
Only provide some typical data route, not all route listed. Note: Users cannot combine any routes, once a new route is set, the previous one would be replaced.
| enum wm8960_protocol_t |
| enum wm8960_input_t |
| enum _wm8960_sample_rate |
| status_t WM8960_Init | ( | wm8960_handle_t * | handle, |
| const wm8960_config_t * | wm8960Config | ||
| ) |
The second parameter is NULL to WM8960 in this version. If users want to change the settings, they have to use wm8960_write_reg() or wm8960_modify_reg() to set the register value of WM8960. Note: If the codec_config is NULL, it would initialize WM8960 using default settings. The default setting: codec_config->route = kWM8960_RoutePlaybackandRecord codec_config->bus = kWM8960_BusI2S codec_config->master = slave
| handle | WM8960 handle structure. |
| wm8960Config | WM8960 configuration structure. |
| status_t WM8960_Deinit | ( | wm8960_handle_t * | handle | ) |
This function close all modules in WM8960 to save power.
| handle | WM8960 handle structure pointer. |
| status_t WM8960_SetDataRoute | ( | wm8960_handle_t * | handle, |
| wm8960_route_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 | WM8960 handle structure. |
| route | Audio data route in WM8960. |
| status_t WM8960_SetLeftInput | ( | wm8960_handle_t * | handle, |
| wm8960_input_t | input | ||
| ) |
| handle | WM8960 handle structure. |
| input | Audio input source. |
| status_t WM8960_SetRightInput | ( | wm8960_handle_t * | handle, |
| wm8960_input_t | input | ||
| ) |
| handle | WM8960 handle structure. |
| input | Audio input source. |
| status_t WM8960_SetProtocol | ( | wm8960_handle_t * | handle, |
| wm8960_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. |
| void WM8960_SetMasterSlave | ( | wm8960_handle_t * | handle, |
| bool | master | ||
| ) |
| handle | WM8960 handle structure. |
| master | 1 represent master, 0 represent slave. |
| status_t WM8960_SetVolume | ( | wm8960_handle_t * | handle, |
| wm8960_module_t | module, | ||
| uint32_t | volume | ||
| ) |
This function would set the volume of WM8960 modules. Uses need to appoint the module. The function assume that left channel and right channel has the same volume.
Module:kWM8960_ModuleADC, volume range value: 0 is mute, 1-255 is -97db to 30db Module:kWM8960_ModuleDAC, volume range value: 0 is mute, 1-255 is -127db to 0db Module:kWM8960_ModuleHP, volume range value: 0 - 2F is mute, 0x30 - 0x7F is -73db to 6db Module:kWM8960_ModuleLineIn, volume range value: 0 - 0x3F is -17.25db to 30db Module:kWM8960_ModuleSpeaker, volume range value: 0 - 2F is mute, 0x30 - 0x7F is -73db to 6db
| handle | WM8960 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 WM8960_GetVolume | ( | wm8960_handle_t * | handle, |
| wm8960_module_t | module | ||
| ) |
This function gets the volume of WM8960 modules. Uses need to appoint the module. The function assume that left channel and right channel has the same volume.
| handle | WM8960 handle structure. |
| module | Module to set volume, it can be ADC, DAC, Headphone and so on. |
| status_t WM8960_SetMute | ( | wm8960_handle_t * | handle, |
| wm8960_module_t | module, | ||
| bool | isEnabled | ||
| ) |
| handle | WM8960 handle structure. |
| module | Modules need to be mute. |
| isEnabled | Mute or unmute, 1 represent mute. |
| status_t WM8960_SetModule | ( | wm8960_handle_t * | handle, |
| wm8960_module_t | module, | ||
| bool | isEnabled | ||
| ) |
| handle | WM8960 handle structure. |
| module | Module expected to enable. |
| isEnabled | Enable or disable moudles. |
| status_t WM8960_SetPlay | ( | wm8960_handle_t * | handle, |
| uint32_t | playSource | ||
| ) |
| handle | WM8960 handle structure. |
| playSource | play source , can be a value combine of kWM8960_ModuleHeadphoneSourcePGA, kWM8960_ModuleHeadphoneSourceDAC, kWM8960_ModulePlaySourceInput, kWM8960_ModulePlayMonoRight, kWM8960_ModulePlayMonoLeft. |
| status_t WM8960_ConfigDataFormat | ( | wm8960_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 | WM8960 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 WM8960. WM8960 now supports 8k, 11.025k, 12k, 16k, 22.05k, 24k, 32k, 44.1k, 48k and 96k sample rate. |
| bits | Bit depth of audio file (WM8960 only supports 16bit, 20bit, 24bit and 32 bit in HW). |
| status_t WM8960_SetJackDetect | ( | wm8960_handle_t * | handle, |
| bool | isEnabled | ||
| ) |
| handle | WM8960 handle structure. |
| isEnabled | Enable or disable moudles. |
| status_t WM8960_WriteReg | ( | wm8960_handle_t * | handle, |
| uint8_t | reg, | ||
| uint16_t | val | ||
| ) |
| handle | WM8960 handle structure. |
| reg | The register address in WM8960. |
| val | Value needs to write into the register. |
| status_t WM8960_ReadReg | ( | uint8_t | reg, |
| uint16_t * | val | ||
| ) |
| reg | The register address in WM8960. |
| val | Value written to. |
| status_t WM8960_ModifyReg | ( | wm8960_handle_t * | handle, |
| uint8_t | reg, | ||
| uint16_t | mask, | ||
| uint16_t | val | ||
| ) |
| handle | WM8960 handle structure. |
| reg | The register address in WM8960. |
| 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. |