Lines Matching refs:adc
515 static void _cyhal_adc_extract_channel_conf(cyhal_adc_t* adc, cy_stc_sar2_channel_config_t* channel… in _cyhal_adc_extract_channel_conf() argument
521 if(NULL == adc->channel_config[i]) in _cyhal_adc_extract_channel_conf()
527 …lection = (cy_en_sar2_trigger_selection_t)_FLD2VAL(PASS_SAR_CH_TR_CTL_SEL, adc->base->CH[i].TR_CTL… in _cyhal_adc_extract_channel_conf()
528 …channel_configs[i].channelPriority = (uint8_t)_FLD2VAL(PASS_SAR_CH_TR_CTL_PRIO, adc->base->CH[i].… in _cyhal_adc_extract_channel_conf()
529 … = (cy_en_sar2_preemption_type_t)_FLD2VAL(PASS_SAR_CH_TR_CTL_PREEMPT_TYPE, adc->base->CH[i].TR_CTL… in _cyhal_adc_extract_channel_conf()
530 …channel_configs[i].isGroupEnd = (bool)_FLD2BOOL(PASS_SAR_CH_TR_CTL_GROUP_END, adc->base->CH[… in _cyhal_adc_extract_channel_conf()
531 … = (cy_en_sar2_done_level_t)_FLD2BOOL(PASS_SAR_CH_TR_CTL_DONE_LEVEL, adc->base->CH[i].TR_CTL… in _cyhal_adc_extract_channel_conf()
533 … = (cy_en_sar2_pin_address_t)_FLD2VAL(PASS_SAR_CH_SAMPLE_CTL_PIN_ADDR, adc->base->CH[i].SAMPLE… in _cyhal_adc_extract_channel_conf()
534 … = (cy_en_sar2_port_address_t)_FLD2VAL(PASS_SAR_CH_SAMPLE_CTL_PORT_ADDR, adc->base->CH[i].SAMPLE… in _cyhal_adc_extract_channel_conf()
535 …uxSelect = (uint8_t)_FLD2VAL(PASS_SAR_CH_SAMPLE_CTL_EXT_MUX_SEL, adc->base->CH[i].SAMPLE… in _cyhal_adc_extract_channel_conf()
536 …xtMuxEnable = (bool)_FLD2BOOL(PASS_SAR_CH_SAMPLE_CTL_EXT_MUX_EN, adc->base->CH[i].SAMPLE… in _cyhal_adc_extract_channel_conf()
537 …_en_sar2_precondition_mode_t)_FLD2VAL(PASS_SAR_CH_SAMPLE_CTL_PRECOND_MODE, adc->base->CH[i].SAMPLE… in _cyhal_adc_extract_channel_conf()
538 …_en_sar2_overlap_diag_mode_t)_FLD2VAL(PASS_SAR_CH_SAMPLE_CTL_OVERLAP_DIAG, adc->base->CH[i].SAMPLE… in _cyhal_adc_extract_channel_conf()
539 …eTime = (uint16_t)_FLD2VAL(PASS_SAR_CH_SAMPLE_CTL_SAMPLE_TIME, adc->base->CH[i].SAMPLE… in _cyhal_adc_extract_channel_conf()
540 …n_sar2_calibration_value_select_t)_FLD2VAL(PASS_SAR_CH_SAMPLE_CTL_ALT_CAL, adc->base->CH[i].SAMPLE… in _cyhal_adc_extract_channel_conf()
542 …cy_en_sar2_post_processing_mode_t)_FLD2VAL(PASS_SAR_CH_POST_CTL_POST_PROC, adc->base->CH[i].POST_C… in _cyhal_adc_extract_channel_conf()
543 …= (cy_en_sar2_result_alignment_t)_FLD2VAL(PASS_SAR_CH_POST_CTL_LEFT_ALIGN, adc->base->CH[i].POST_C… in _cyhal_adc_extract_channel_conf()
544 … = (cy_en_sar2_sign_extention_t)_FLD2VAL(PASS_SAR_CH_POST_CTL_SIGN_EXT, adc->base->CH[i].POST_C… in _cyhal_adc_extract_channel_conf()
545 …gs[i].averageCount = (uint8_t)_FLD2VAL(PASS_SAR_CH_POST_CTL_AVG_CNT, adc->base->CH[i].POST_C… in _cyhal_adc_extract_channel_conf()
546 …gs[i].rightShift = (uint8_t)_FLD2VAL(PASS_SAR_CH_POST_CTL_SHIFT_R, adc->base->CH[i].POST_C… in _cyhal_adc_extract_channel_conf()
547 …y_en_sar2_range_detection_mode_t)_FLD2VAL(PASS_SAR_CH_POST_CTL_RANGE_MODE, adc->base->CH[i].POST_C… in _cyhal_adc_extract_channel_conf()
549 …eDetectionLoThreshold = (uint16_t)_FLD2VAL(PASS_SAR_CH_RANGE_CTL_RANGE_LO, adc->base->CH[i].RANGE_… in _cyhal_adc_extract_channel_conf()
550 …eDetectionHiThreshold = (uint16_t)_FLD2VAL(PASS_SAR_CH_RANGE_CTL_RANGE_HI, adc->base->CH[i].RANGE_… in _cyhal_adc_extract_channel_conf()
552 channel_configs[i].channelHwEnable = (bool)(adc->base->CH[i].ENABLE); in _cyhal_adc_extract_channel_conf()
553 channel_configs[i].interruptMask = Cy_SAR2_Channel_GetInterruptMask(adc->base, i); in _cyhal_adc_extract_channel_conf()
819 static void _cyhal_adc_extract_channel_conf(cyhal_adc_t* adc, cy_stc_sar_channel_config_t* channel_… in _cyhal_adc_extract_channel_conf() argument
823 … (cy_en_sar_chan_config_port_pin_addr_t)_FLD2VAL(SAR_CHAN_CONFIG_PIN_ADDR, adc->base->CHAN_CONFIG[… in _cyhal_adc_extract_channel_conf()
824 …(cy_en_sar_chan_config_port_pin_addr_t)_FLD2VAL(SAR_CHAN_CONFIG_PORT_ADDR, adc->base->CHAN_CONFIG[… in _cyhal_adc_extract_channel_conf()
826 … channel_configs[i].avgEn = _FLD2BOOL(SAR_CHAN_CONFIG_AVG_EN, adc->base->CHAN_CONFIG[i]); in _cyhal_adc_extract_channel_conf()
827 … (cy_en_sar_channel_sampletime_t)_FLD2VAL(SAR_CHAN_CONFIG_SAMPLE_TIME_SEL, adc->base->CHAN_CONFIG[… in _cyhal_adc_extract_channel_conf()
828 …channel_configs[i].differential = _FLD2BOOL(SAR_CHAN_CONFIG_DIFFERENTIAL_EN, adc->base->CHAN_CONF… in _cyhal_adc_extract_channel_conf()
829 … (cy_en_sar_channel_ctrl_resolution_t)_FLD2VAL(SAR_CHAN_CONFIG_RESOLUTION, adc->base->CHAN_CONFIG[… in _cyhal_adc_extract_channel_conf()
831 … channel_configs[i].rangeIntrEn = (0u != (Cy_SAR_GetRangeInterruptMask(adc->base) & 1uL << i)); in _cyhal_adc_extract_channel_conf()
832 … channel_configs[i].satIntrEn = (0u != (Cy_SAR_GetSatInterruptMask(adc->base) & 1uL << i)); in _cyhal_adc_extract_channel_conf()
1239 cy_rslt_t cyhal_adc_init_cfg(cyhal_adc_t *adc, cyhal_adc_channel_t** channels, uint8_t* num_channel… in cyhal_adc_init_cfg() argument
1251 result = _cyhal_adc_config_hw(adc, cfg, NC, true); in cyhal_adc_init_cfg()
1262 channel->adc = adc; in cyhal_adc_init_cfg()
1977 uint32_t existing_config = obj->adc->base->CHAN_CONFIG[obj->channel_idx]; in _cyhal_adc_channel_update_config()
1991 bool resolution_override = (obj->adc->resolution != _CYHAL_ADC_RESOLUTION); in _cyhal_adc_channel_update_config()
1995 obj->adc->base->CHAN_CONFIG[obj->channel_idx] = result; in _cyhal_adc_channel_update_config()
2020 obj->adc->base->CHAN_CONFIG[obj->channel_idx] = result; in _cyhal_adc_channel_set_pin_config()
2031 bool single_ended = Cy_SAR_IsChannelSingleEnded(obj->adc->base, obj->channel_idx); in _cyhal_adc_update_chan_offset()
2037 bool neg_sel_vref = (neg_sel_vref_val == (obj->adc->base->CTRL & SAR_CTRL_NEG_SEL_Msk)); in _cyhal_adc_update_chan_offset()
2043 Cy_SAR_SetChannelOffset(obj->adc->base, obj->channel_idx, offset); in _cyhal_adc_update_chan_offset()
2048 cy_rslt_t cyhal_adc_channel_init_diff(cyhal_adc_channel_t *obj, cyhal_adc_t* adc, cyhal_gpio_t vplu… in cyhal_adc_channel_init_diff() argument
2051 CY_ASSERT(adc != NULL); in cyhal_adc_channel_init_diff()
2066 if(NULL == vplus_map || adc->resource.block_num != vplus_map->block_num) in cyhal_adc_channel_init_diff()
2082 if(NULL == adc->channel_config[chosen_channel]) in cyhal_adc_channel_init_diff()
2096 obj->adc = adc; in cyhal_adc_channel_init_diff()
2098 obj->adc->channel_config[chosen_channel] = obj; in cyhal_adc_channel_init_diff()
2111 if (NULL == vminus_map || adc->resource.block_num != vminus_map->block_num) in cyhal_adc_channel_init_diff()
2144 result = _cyhal_adc_populate_acquisition_timers(obj->adc); in cyhal_adc_channel_init_diff()
2151 _cyhal_adc_extract_channel_conf(obj->adc, channel_configs); in cyhal_adc_channel_init_diff()
2157 if (false == adc->vbg_chan_inited) in cyhal_adc_channel_init_diff()
2159 uint8_t block_idx = adc->resource.block_num; in cyhal_adc_channel_init_diff()
2161 _cyhal_adc_vbg_channels[block_idx].adc = adc; in cyhal_adc_channel_init_diff()
2163 …_cyhal_adc_vbg_channels[block_idx].adc->channel_config[_CYHAL_ADC_VBG_CHANNEL_IDX] = &_cyhal_adc_v… in cyhal_adc_channel_init_diff()
2171 adc->vbg_chan_inited = true; in cyhal_adc_channel_init_diff()
2176 result = _cyhal_adc_apply_channel_configs(obj->adc, channel_configs); in cyhal_adc_channel_init_diff()
2181 _CYHAL_ADC_SET_SWITCH(obj->adc->base, fw_ctrl_plus, true); in cyhal_adc_channel_init_diff()
2182 Cy_SAR_SetSwitchSarSeqCtrl(obj->adc->base, mux_ctrl_plus, _CYHAL_ADC_SARSEQ_STATE(true)); in cyhal_adc_channel_init_diff()
2189 _CYHAL_ADC_SET_SWITCH(obj->adc->base, fw_ctrl_minus, true); in cyhal_adc_channel_init_diff()
2190 … Cy_SAR_SetSwitchSarSeqCtrl(obj->adc->base, mux_ctrl_minus, _CYHAL_ADC_SARSEQ_STATE(true)); in cyhal_adc_channel_init_diff()
2215 _cyhal_adc_extract_channel_conf(obj->adc, channel_configs); in cyhal_adc_channel_configure()
2217 return _cyhal_adc_apply_channel_configs(obj->adc, channel_configs); in cyhal_adc_channel_configure()
2222 obj->adc->base->CHAN_EN |= 1u << obj->channel_idx; in cyhal_adc_channel_configure()
2226 obj->adc->base->CHAN_EN &= ~(1u << obj->channel_idx); in cyhal_adc_channel_configure()
2229 return _cyhal_adc_populate_acquisition_timers(obj->adc); in cyhal_adc_channel_configure()
2235 if(obj->adc != NULL) in cyhal_adc_channel_free()
2238 obj->adc->channel_config[obj->channel_idx] = NULL; in cyhal_adc_channel_free()
2241 if(false == obj->adc->owned_by_configurator) in cyhal_adc_channel_free()
2248 _CYHAL_ADC_SET_SWITCH(obj->adc->base, fw_ctrl_plus, false); in cyhal_adc_channel_free()
2249 … Cy_SAR_SetSwitchSarSeqCtrl(obj->adc->base, mux_ctrl_plus, _CYHAL_ADC_SARSEQ_STATE(false)); in cyhal_adc_channel_free()
2257 _CYHAL_ADC_SET_SWITCH(obj->adc->base, fw_ctrl_minus, false); in cyhal_adc_channel_free()
2258 … Cy_SAR_SetSwitchSarSeqCtrl(obj->adc->base, mux_ctrl_minus, _CYHAL_ADC_SARSEQ_STATE(false)); in cyhal_adc_channel_free()
2261 obj->adc->base->CHAN_CONFIG[obj->channel_idx] = 0; in cyhal_adc_channel_free()
2263 Cy_SAR2_Channel_DeInit(obj->adc->base, obj->channel_idx); in cyhal_adc_channel_free()
2266 if(false == obj->adc->owned_by_configurator) in cyhal_adc_channel_free()
2275 if (obj->adc->vbg_chan_inited) in cyhal_adc_channel_free()
2282 if(NULL != obj->adc->channel_config[chan_idx]) in cyhal_adc_channel_free()
2296 Cy_SAR2_Channel_DeInit(obj->adc->base, _CYHAL_ADC_VBG_CHANNEL_IDX); in cyhal_adc_channel_free()
2297 obj->adc->vbg_chan_inited = false; in cyhal_adc_channel_free()
2302 obj->adc = NULL; in cyhal_adc_channel_free()
2311 …const uint8_t RESULT_SCALING_FACTOR = UINT16_MAX / ((1 << obj->adc->resolution) - 1); // 12-bit SA… in cyhal_adc_read_u16()
2335 …bool isInterleaved = (CY_SAR_AVG_MODE_INTERLEAVED == (SAR_SAMPLE_CTRL(obj->adc->base) & SAR_SAMPLE… in cyhal_adc_read()
2342 if(!obj->adc->continuous_scanning) in cyhal_adc_read()
2347 _cyhal_adc_extract_channel_conf(obj->adc, channel_configs); in cyhal_adc_read()
2354 _cyhal_adc_apply_channel_configs(obj->adc, channel_configs); in cyhal_adc_read()
2356 …bool isChannelAveraging = (obj->adc->base->CHAN_CONFIG[obj->channel_idx] & SAR_CHAN_CONFIG_AVG_EN_… in cyhal_adc_read()
2358 old_en_mask = SAR_CHAN_EN(obj->adc->base); in cyhal_adc_read()
2359 Cy_SAR_SetChanMask(obj->adc->base, (uint32_t) (1U << obj->channel_idx)); in cyhal_adc_read()
2362 obj->adc->conversion_complete = false; in cyhal_adc_read()
2364 obj->adc->stop_after_scan = isChannelInterleaved; in cyhal_adc_read()
2366 _cyhal_adc_update_intr_mask(obj->adc); in cyhal_adc_read()
2377 Cy_SAR2_Channel_SoftwareTrigger(obj->adc->base, _cyhal_adc_first_enabled(obj->adc)); in cyhal_adc_read()
2379 …Cy_SAR_StartConvert(obj->adc->base, (isChannelInterleaved) ? CY_SAR_START_CONVERT_CONTINUOUS : CY_… in cyhal_adc_read()
2387 while(!obj->adc->conversion_complete) { } in cyhal_adc_read()
2392 …int32_t result = (int32_t)(Cy_SAR2_Channel_GetResult(obj->adc->base, obj->channel_idx, NULL /* We … in cyhal_adc_read()
2393 …obj->adc->vbg_last_value = Cy_SAR2_Channel_GetResult(obj->adc->base, _CYHAL_ADC_VBG_CHANNEL_IDX, N… in cyhal_adc_read()
2395 int32_t result = Cy_SAR_GetResult32(obj->adc->base, obj->channel_idx); in cyhal_adc_read()
2398 if(!obj->adc->continuous_scanning) in cyhal_adc_read()
2405 _cyhal_adc_apply_channel_configs(obj->adc, channel_configs); in cyhal_adc_read()
2407 Cy_SAR_SetChanMask(obj->adc->base, old_en_mask); in cyhal_adc_read()
2419 return _cyhal_adc_counts_to_uvolts(obj->adc, obj->channel_idx, counts); in cyhal_adc_read_uv()