37#ifndef DRIVER_LD3320_H
38#define DRIVER_LD3320_H
62#ifndef LD3320_CYSTAL_MHZ
63 #define LD3320_CYSTAL_MHZ 22.1184f
173#define DRIVER_LD3320_LINK_INIT(HANDLE, STRUCTURE) memset(HANDLE, 0, sizeof(STRUCTURE))
181#define DRIVER_LD3320_LINK_SPI_INIT(HANDLE, FUC) (HANDLE)->spi_init = FUC
189#define DRIVER_LD3320_LINK_SPI_DEINIT(HANDLE, FUC) (HANDLE)->spi_deinit = FUC
197#define DRIVER_LD3320_LINK_SPI_READ_ADDRESS16(HANDLE, FUC) (HANDLE)->spi_read_address16 = FUC
205#define DRIVER_LD3320_LINK_SPI_WRITE_COMMAND(HANDLE, FUC) (HANDLE)->spi_write_cmd = FUC
213#define DRIVER_LD3320_LINK_RESET_GPIO_INIT(HANDLE, FUC) (HANDLE)->reset_gpio_init = FUC
221#define DRIVER_LD3320_LINK_RESET_GPIO_DEINIT(HANDLE, FUC) (HANDLE)->reset_gpio_deinit = FUC
229#define DRIVER_LD3320_LINK_RESET_GPIO_WRITE(HANDLE, FUC) (HANDLE)->reset_gpio_write = FUC
237#define DRIVER_LD3320_LINK_DELAY_MS(HANDLE, FUC) (HANDLE)->delay_ms = FUC
245#define DRIVER_LD3320_LINK_DELAY_US(HANDLE, FUC) (HANDLE)->delay_us = FUC
253#define DRIVER_LD3320_LINK_DEBUG_PRINT(HANDLE, FUC) (HANDLE)->debug_print = FUC
261#define DRIVER_LD3320_LINK_DEBUG_RECEIVE_CALLBACK(HANDLE, FUC) (HANDLE)->receive_callback = FUC
269#define DRIVER_LD3320_LINK_MP3_READ_INT(HANDLE, FUC) (HANDLE)->mp3_read_init = FUC
277#define DRIVER_LD3320_LINK_MP3_READ_DEINT(HANDLE, FUC) (HANDLE)->mp3_read_deinit = FUC
285#define DRIVER_LD3320_LINK_MP3_READ(HANDLE, FUC) (HANDLE)->mp3_read = FUC
uint8_t ld3320_get_mode(ld3320_handle_t *handle, ld3320_mode_t *mode)
get the chip mode
struct ld3320_info_s ld3320_info_t
ld3320 information structure definition
uint8_t ld3320_get_mic_gain(ld3320_handle_t *handle, ld3320_mic_gain_t *gain)
get the microphone gain
uint8_t ld3320_set_vad(ld3320_handle_t *handle, ld3320_vad_t vad)
set the vad
uint8_t ld3320_deinit(ld3320_handle_t *handle)
deinit the chip
uint8_t ld3320_stop(ld3320_handle_t *handle)
stop the process
uint8_t ld3320_get_key_words(ld3320_handle_t *handle, char text[50][50], uint8_t *len)
get the key words
ld3320_mode_t
ld3320 mode enumeration definition
ld3320_status_t
ld3320 asr status enumeration definition
uint8_t ld3320_init(ld3320_handle_t *handle)
initialize the chip
uint8_t ld3320_configure_mp3(ld3320_handle_t *handle, char *name)
configure the mp3
uint8_t ld3320_set_key_words(ld3320_handle_t *handle, char text[50][50], uint8_t len)
set the key words
uint8_t ld3320_get_speaker_volume(ld3320_handle_t *handle, uint8_t *volume)
get the speaker volume
ld3320_vad_t
ld3320 vad enumeration definition
struct ld3320_handle_s ld3320_handle_t
ld3320 handle structure definition
uint8_t ld3320_set_headset_volume(ld3320_handle_t *handle, uint8_t volume_left, uint8_t volume_right)
set the headset volume
uint8_t ld3320_info(ld3320_info_t *info)
get chip's information
uint8_t ld3320_start(ld3320_handle_t *handle)
start the process
uint8_t ld3320_irq_handler(ld3320_handle_t *handle)
irq handler
uint8_t ld3320_get_vad(ld3320_handle_t *handle, ld3320_vad_t *vad)
get the vad
uint8_t ld3320_get_headset_volume(ld3320_handle_t *handle, uint8_t *volume_left, uint8_t *volume_right)
get the headset volume
uint8_t ld3320_set_mode(ld3320_handle_t *handle, ld3320_mode_t mode)
set the chip mode
uint8_t ld3320_set_mic_gain(ld3320_handle_t *handle, ld3320_mic_gain_t gain)
set the microphone gain
uint8_t ld3320_get_status(ld3320_handle_t *handle, ld3320_status_t *status)
get the status
uint8_t ld3320_set_speaker_volume(ld3320_handle_t *handle, uint8_t volume)
set the speaker volume
ld3320_mic_gain_t
ld3320 mic gain enumeration definition
@ LD3320_STATUS_ASR_ERROR
@ LD3320_STATUS_ASR_RUNNING
@ LD3320_STATUS_ASR_FOUND_OK
@ LD3320_STATUS_MP3_ERROR
@ LD3320_STATUS_MP3_RUNNING
@ LD3320_STATUS_ASR_FOUND_ZERO
uint8_t ld3320_set_reg(ld3320_handle_t *handle, uint8_t reg, uint8_t data)
set the chip register
uint8_t ld3320_get_reg(ld3320_handle_t *handle, uint8_t reg, uint8_t *data)
get the chip register
ld3320 handle structure definition
uint8_t(* mp3_read_init)(char *name, uint32_t *size)
uint8_t(* spi_init)(void)
uint8_t(* mp3_read)(uint32_t addr, uint16_t size, uint8_t *buffer)
void(* delay_ms)(uint32_t ms)
uint8_t(* reset_gpio_deinit)(void)
uint8_t(* mp3_read_deinit)(void)
void(* debug_print)(const char *const fmt,...)
uint8_t(* spi_read_address16)(uint16_t addr, uint8_t *buf, uint16_t len)
void(* receive_callback)(uint8_t type, uint8_t index, char *text)
void(* delay_us)(uint32_t us)
uint8_t(* spi_deinit)(void)
uint8_t(* reset_gpio_init)(void)
uint8_t(* spi_write_cmd)(uint8_t *buf, uint16_t len)
uint8_t(* reset_gpio_write)(uint8_t data)
ld3320 information structure definition
float supply_voltage_max_v
char manufacturer_name[32]
float supply_voltage_min_v