Go to the documentation of this file.
52 #ifndef __GR55xx_HAL_ADC_H__
53 #define __GR55xx_HAL_ADC_H__
190 #define HAL_ADC_ERROR_NONE ((uint32_t)0x00000000)
191 #define HAL_ADC_ERROR_TIMEOUT ((uint32_t)0x00000001)
192 #define HAL_ADC_ERROR_DMA ((uint32_t)0x00000004)
193 #define HAL_ADC_ERROR_INVALID_PARAM ((uint32_t)0x00000008)
200 #define ADC_CLK_16M LL_ADC_CLK_16M
201 #define ADC_CLK_8M LL_ADC_CLK_8M
202 #define ADC_CLK_4M LL_ADC_CLK_4M
203 #define ADC_CLK_1M LL_ADC_CLK_1M
204 #define ADC_CLK_16K LL_ADC_CLK_16K
205 #define ADC_CLK_8K LL_ADC_CLK_8K
206 #define ADC_CLK_4K LL_ADC_CLK_4K
207 #define ADC_CLK_NONE LL_ADC_CLK_NONE
214 #define ADC_REF_VALUE_0P8 LL_ADC_REF_VALUE_0P8
215 #define ADC_REF_VALUE_1P2 LL_ADC_REF_VALUE_1P2
216 #define ADC_REF_VALUE_1P6 LL_ADC_REF_VALUE_1P6
217 #define ADC_REF_VALUE_2P0 LL_ADC_REF_VALUE_2P0
224 #define ADC_INPUT_SINGLE LL_ADC_INPUT_SINGLE
225 #define ADC_INPUT_DIFFERENTIAL LL_ADC_INPUT_DIFFERENTIAL
231 #define ADC_INPUT_SRC_IO0 LL_ADC_INPUT_SRC_IO0
232 #define ADC_INPUT_SRC_IO1 LL_ADC_INPUT_SRC_IO1
233 #define ADC_INPUT_SRC_IO2 LL_ADC_INPUT_SRC_IO2
234 #define ADC_INPUT_SRC_IO3 LL_ADC_INPUT_SRC_IO3
235 #define ADC_INPUT_SRC_IO4 LL_ADC_INPUT_SRC_IO4
236 #define ADC_INPUT_SRC_IO5 LL_ADC_INPUT_SRC_IO5
237 #define ADC_INPUT_SRC_IO6 LL_ADC_INPUT_SRC_IO6
238 #define ADC_INPUT_SRC_IO7 LL_ADC_INPUT_SRC_IO7
239 #define ADC_INPUT_SRC_TMP LL_ADC_INPUT_SRC_TMP
240 #define ADC_INPUT_SRC_BAT LL_ADC_INPUT_SRC_BAT
241 #define ADC_INPUT_SRC_REF LL_ADC_INPUT_SRC_REF
248 #define ADC_REF_SRC_BUF_INT LL_ADC_REF_SRC_BUF_INT
249 #define ADC_REF_SRC_IO0 LL_ADC_REF_SRC_IO0
250 #define ADC_REF_SRC_IO1 LL_ADC_REF_SRC_IO1
251 #define ADC_REF_SRC_IO2 LL_ADC_REF_SRC_IO2
252 #define ADC_REF_SRC_IO3 LL_ADC_REF_SRC_IO3
258 #define ADC_DEFAULT_CONFIG LL_ADC_DEFAULT_CONFIG
270 #define __HAL_ADC_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->state = HAL_ADC_STATE_RESET)
276 #define __HAL_ADC_ENABLE(__HANDLE__) ll_adc_enable()
282 #define __HAL_ADC_DISABLE(__HANDLE__) ll_adc_disable()
288 #define __HAL_ADC_GET_FLAG_NOTEMPTY(__HANDLE__) ll_adc_is_fifo_notempty()
294 #define __HAL_ADC_TRY_SWTOKEN_LOCK(__HANDLE__) ll_adc_try_lock_sw_token()
300 #define __HAL_ADC_FLUSH_FIFO(__HANDLE__) do { \
301 while(ll_adc_is_fifo_notempty()) \
303 ll_adc_flush_fifo(); \
319 #define IS_ADC_INPUT(__INPUT__) (((__INPUT__) == ADC_INPUT_SRC_IO0) || \
320 ((__INPUT__) == ADC_INPUT_SRC_IO1) || \
321 ((__INPUT__) == ADC_INPUT_SRC_IO2) || \
322 ((__INPUT__) == ADC_INPUT_SRC_IO3) || \
323 ((__INPUT__) == ADC_INPUT_SRC_IO4) || \
324 ((__INPUT__) == ADC_INPUT_SRC_IO5) || \
325 ((__INPUT__) == ADC_INPUT_SRC_IO6) || \
326 ((__INPUT__) == ADC_INPUT_SRC_IO7) || \
327 ((__INPUT__) == ADC_INPUT_SRC_TMP) || \
328 ((__INPUT__) == ADC_INPUT_SRC_BAT) || \
329 ((__INPUT__) == ADC_INPUT_SRC_REF))
336 #define IS_ADC_INPUT_MODE(__MODE__) (((__MODE__) == ADC_INPUT_SINGLE) || \
337 ((__MODE__) == ADC_INPUT_DIFFERENTIAL)
344 #define IS_ADC_REF(__INPUT__) (((__INPUT__) == ADC_REF_SRC_BUF_INT) || \
345 ((__INPUT__) == ADC_REF_SRC_INT) || \
346 ((__INPUT__) == ADC_REF_SRC_IO0) || \
347 ((__INPUT__) == ADC_REF_SRC_IO1) || \
348 ((__INPUT__) == ADC_REF_SRC_IO2) || \
349 ((__INPUT__) == ADC_REF_SRC_IO3))
356 #define IS_ADC_REF_VALUE(__VALUE__) (((__VALUE__) >= ADC_REF_VALUE_0P5) && \
357 ((__VALUE__) <= ADC_REF_VALUE_2P0))
365 #define IS_ADC_CLOCK(__CLOCK__) (((__CLOCK__) == ADC_CLK_16M) || \
366 ((__CLOCK__) == ADC_CLK_8M) || \
367 ((__CLOCK__) == ADC_CLK_1M) || \
368 ((__CLOCK__) == ADC_CLK_250K)|| \
369 ((__CLOCK__) == ADC_CLK_16K)|| \
370 ((__CLOCK__) == ADC_CLK_8K)|| \
371 ((__CLOCK__) == ADC_CLK_1K)|| \
372 ((__CLOCK__) == ADC_CLK_NONE))
374 #define IS_ADC_CLOCK(__CLOCK__) (((__CLOCK__) == ADC_CLK_16M) || \
375 ((__CLOCK__) == ADC_CLK_8M) || \
376 ((__CLOCK__) == ADC_CLK_4M) || \
377 ((__CLOCK__) == ADC_CLK_2M) || \
378 ((__CLOCK__) == ADC_CLK_1M) || \
379 ((__CLOCK__) == ADC_CLK_1P6M))
hal_status_t hal_adc_poll_for_conversion(adc_handle_t *p_adc, uint16_t *p_data, uint32_t length)
Polling for conversion.
void(* adc_conv_cplt_callback)(adc_handle_t *p_adc)
ADC conversion completed callback
uint16_t offset_int_1p2
Internal reference 1.2v.
uint32_t hal_adc_get_error(adc_handle_t *p_adc)
Return the ADC error code.
uint16_t offset_int_2p0
Internal reference 2.0v.
uint16_t slope_int_1p6
Internal reference 1.6v.
uint16_t adc_get_trim_func(adc_trim_info_t *p_adc_trim)
adc_get_trim_func.
hal_lock_t
HAL Lock structures definition.
__IO uint32_t error_code
ADC error code
@ HAL_ADC_STATE_BUSY
An internal process is ongoing
hal_status_t hal_adc_start_dma_sg_llp(adc_handle_t *p_adc, uint16_t *p_data, uint32_t length, dma_sg_llp_config_t *sg_llp_config)
DMA for conversion.
void(* adc_msp_init)(adc_handle_t *p_adc)
ADC init MSP callback
Header file containing functions prototypes of ADC LL library.
@ HAL_ADC_STATE_RESET
Peripheral not initialized
uint16_t offset_int_0p8
Internal reference 0.8v.
uint16_t * p_buffer
Pointer to ADC conversion buffer
hal_status_t hal_adc_stop_dma(adc_handle_t *p_adc)
Abort ongoing conversion (blocking mode).
uint16_t slope_ext_1p0
External reference 1.0v.
hal_status_t hal_adc_init(adc_handle_t *p_adc)
Initialize the ADC according to the specified parameters in the adc_init_t and initialize the associa...
hal_status_t hal_adc_resume_reg(adc_handle_t *p_adc)
Restore some registers related to ADC configuration after sleep.
uint16_t slope_int_0p8
Internal reference 0.8v.
LL DMA sg and llp config definition.
struct _adc_handle adc_handle_t
ADC handle Structure definition.
hal_status_t hal_adc_suspend_reg(adc_handle_t *p_adc)
Suspend some registers related to ADC configuration before sleep.
uint16_t slope_int_2p0
Internal reference 2.0v.
hal_adc_state_t
HAL ADC State Enumerations definition.
void hal_adc_msp_init(adc_handle_t *p_adc)
Initialize the ADC MSP.
__IO hal_adc_state_t state
ADC communication state
hal_status_t hal_adc_clock_start(adc_handle_t *p_adc)
Start the ADC clock.
void hal_adc_conv_cplt_callback(adc_handle_t *p_adc)
Conversion completed callback.
uint16_t adc_temp
ADC TEMP.
uint16_t(* adc_get_trim_func)(adc_trim_info_t *p_adc_trim)
ADC get trim information callback(must return 0x0000 when successful)
ADC handle Structure definition.
Header file containing functions prototypes of DMA HAL library.
uint16_t offset_ext_1p0
External reference 1.0v.
hal_status_t
HAL Status structures definition.
void hal_adc_msp_deinit(adc_handle_t *p_adc)
De-initialize the ADC MSP.
ADC trim parameter information definition.
ll_adc_init_t adc_init_t
ADC init structure definition.
hal_status_t hal_adc_start_dma(adc_handle_t *p_adc, uint16_t *p_data, uint32_t length)
DMA for conversion.
struct _hal_adc_callback hal_adc_callback_t
HAL ADC Callback function definition.
uint16_t slope_int_1p2
Internal reference 1.2v.
hal_status_t hal_adc_get_avg_voltage(adc_handle_t *p_adc, float *p_data, uint32_t length)
Get the ADC sampling code by polling, and convert sampling code of the specified length to the averag...
hal_status_t hal_adc_change_channels(adc_handle_t *p_adc)
Set the new channels parameter to ADC.
adc_init_t init
ADC configuration parameters
@ HAL_ADC_STATE_ERROR
Peripheral in error
hal_status_t hal_adc_deinit(adc_handle_t *p_adc)
De-initialize the ADC peripheral.
dma_handle_t * p_dma
ADC DMA Handle parameters
uint16_t offset_int_1p6
Internal reference 1.6v.
uint32_t retention[2]
ADC important register information.
@ HAL_ADC_STATE_READY
Peripheral initialized and ready for use
__IO hal_lock_t lock
Locking object
DMA handle Structure definition.
This file contains HAL common definitions, enumeration, macros and structures definitions.
__IO uint32_t buff_count
Conversion buffer counter
HAL ADC Callback function definition.
__IO uint32_t buff_size
Conversion buffer size
hal_adc_state_t hal_adc_get_state(adc_handle_t *p_adc)
Return the ADC handle state.
void(* adc_msp_deinit)(adc_handle_t *p_adc)
ADC de-init MSP callback