| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- /*
- * @File name : driver_sdadc.h
- * @Author : Bluetrum IOT Team
- * @Date : 2023-06-08
- * @Description : This file contains all the functions prototypes for the SDADC library.
- *
- * Copyright (c) by Bluetrum, All Rights Reserved.
- */
- #ifndef _DRIVER_SDADC_H
- #define _DRIVER_SDADC_H
- #include "driver_com.h"
- /**
- * @brief Flag Enumeration.
- */
- typedef enum {
- SDADC_FLAG_SINGLE_SAMPLE = 0x01,
- SDADC_FLAG_DMA_ALL_DONE = 0x02,
- SDADC_FLAG_DMA_HALF_DONE = 0x04,
- } SDADC_FLAG_TYPEDEF;
- /**
- * @brief Digital Gain Select Enumeration.
- */
- typedef enum {
- DIG_GAIN_400 = 0x0400,
- DIG_GAIN_800 = 0x0800,
- DIG_GAIN_1600 = 0x1600,
- DIG_GAIN_3200 = 0x3200,
- DIG_GAIN_4800 = 0x4800,
- DIG_GAIN_6400 = 0x6400,
- DIG_GAIN_8000 = 0x8000,
- } SDADC_DIGITAL_GAIN_TYPEDEF;
- /**
- * @brief Sample Rate Enumeration.
- */
- typedef enum {
- SPR_48000 = 0x00000000,
- SPR_32000 = 0x00000002,
- SPR_24000 = 0x00000004,
- SPR_16000 = 0x00000006,
- SPR_12000 = 0x00000008,
- SPR_8000 = 0x0000000a,
- } SDADC_SAMPLING_TYPEDEF;
- /**
- * @brief GETDC Bits Enumeration.
- */
- typedef enum{
- SDADC_GETDC_BITS_13BITS = 0x00000000,
- SDADC_GETDC_BITS_12BITS = 0x00000400,
- SDADC_GETDC_BITS_11BITS = 0x00000800,
- SDADC_GETDC_BITS_10BITS = 0x00000c00,
- } SDADC_GETDC_BITS_TYPEDEF;
- /**
- * @brief RemoveDC Bits Enumeration.
- */
- typedef enum{
- SDADC_RMDC_BITS_10BITS = 0x00000000,
- SDADC_RMDC_BITS_9BITS = 0x00000100,
- SDADC_RMDC_BITS_8BITS = 0x00000200,
- SDADC_RMDC_BITS_7BITS = 0x00000300,
- } SDADC_RMDC_BITS_TYPEDEF;
- /**
- * @brief SDADC Initialization Struct.
- */
- typedef struct{
- SDADC_SAMPLING_TYPEDEF sample_rate;
- MIC_ADC_CFG mic_analog_cfg;
- FUNCTIONAL_STATE subtract_soft_dc_en;
- FUNCTIONAL_STATE get_dc_en;
- FUNCTIONAL_STATE remove_dc_en;
- FUNCTIONAL_STATE dig_gain_en;
- } sdadc_init_typedef;
- void sdadc_init(sdadc_init_typedef *sdadc_init_struct);
- void sdadc_deinit(void);
- void sdadc_cmd(FUNCTIONAL_STATE state);
- void sdadc_dma_cmd(u32 addr, u16 len, FUNCTIONAL_STATE state);
- void sdadc_pic_config(isr_t isr, int pr, SDADC_FLAG_TYPEDEF flag_type, FUNCTIONAL_STATE state);
- FLAG_STATE sdadc_get_flag(SDADC_FLAG_TYPEDEF flag_type);
- void sdadc_clear_flag(SDADC_FLAG_TYPEDEF flag_type);
- void sdadc_digital_gain_set(SDADC_DIGITAL_GAIN_TYPEDEF dig_gain);
- void sdadc_removeDC_bits_set(SDADC_RMDC_BITS_TYPEDEF removeDC_bits_sel);
- void sdadc_getDC_bits_set(SDADC_GETDC_BITS_TYPEDEF getDC_bits_sel);
- uint16_t sdadc_digital_gain_get(void);
- SDADC_GETDC_BITS_TYPEDEF sdadc_getDC_bits_get(void);
- SDADC_RMDC_BITS_TYPEDEF sdadc_removeDC_bits_get(void);
- #endif
|