Misread on ADC around Vref/2 with XMC 4700

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
User12943
Level 1
Level 1
Hi,
I'm having an issue where I'm getting a misread by the ADC. Any value between ~1845 to 2048 is read as 2048. I am sampling a ~4kHz sine wave at 25kHz.
I'm using the VADC_GROUP_CONFIG app. Enabling broken wire detect has no affect Here is the configuration:

/********************************* {channel_name} ADC Channel configuration structure ********************************/
static const XMC_VADC_CHANNEL_CONFIG_t VADC_GROUP_CONFIG_0_channel_0_ch_config =
{
.input_class = (uint32_t) XMC_VADC_CHANNEL_CONV_GROUP_CLASS0,
.lower_boundary_select = (uint32_t) XMC_VADC_CHANNEL_BOUNDARY_GROUP_BOUND1,
.upper_boundary_select = (uint32_t) XMC_VADC_CHANNEL_BOUNDARY_GROUP_BOUND0,
.event_gen_criteria = (uint32_t) XMC_VADC_CHANNEL_EVGEN_NEVER,
.sync_conversion = (uint32_t) false, /* Sync feature disabled*/
.alternate_reference = (uint32_t) XMC_VADC_CHANNEL_REF_INTREF,
.result_reg_number = (uint32_t) 3, /* GxRES[{result_reg_num}] selected */
.use_global_result = (uint32_t) 0,
.result_alignment = (uint32_t) XMC_VADC_RESULT_ALIGN_LEFT, /* Result alignment - Left Aligned*/
.broken_wire_detect_channel = (uint32_t) XMC_VADC_CHANNEL_BWDCH_VAGND, /* No Broken wire mode select*/
.broken_wire_detect = (uint32_t) false, /* Broken wire detection*/
.channel_priority = (bool) false, /* Highest Priority: 1 selected*/
.alias_channel = (int8_t) XMC_VADC_CHANNEL_ALIAS_CH3
};


/********************************* {channel_name} ADC Channel configuration structure ********************************/
static const XMC_VADC_CHANNEL_CONFIG_t VADC_GROUP_CONFIG_0_channel_1_ch_config =
{
.input_class = (uint32_t) XMC_VADC_CHANNEL_CONV_GROUP_CLASS0,
.lower_boundary_select = (uint32_t) XMC_VADC_CHANNEL_BOUNDARY_GROUP_BOUND1,
.upper_boundary_select = (uint32_t) XMC_VADC_CHANNEL_BOUNDARY_GROUP_BOUND0,
.event_gen_criteria = (uint32_t) XMC_VADC_CHANNEL_EVGEN_NEVER,
.sync_conversion = (uint32_t) false, /* Sync feature disabled*/
.alternate_reference = (uint32_t) XMC_VADC_CHANNEL_REF_INTREF,
.result_reg_number = (uint32_t) 1, /* GxRES[{result_reg_num}] selected */
.use_global_result = (uint32_t) 0,
.result_alignment = (uint32_t) XMC_VADC_RESULT_ALIGN_LEFT, /* Result alignment - Left Aligned*/
.broken_wire_detect_channel = (uint32_t) XMC_VADC_CHANNEL_BWDCH_VAGND, /* No Broken wire mode select*/
.broken_wire_detect = (uint32_t) false, /* Broken wire detection*/
.channel_priority = (bool) false, /* Highest Priority: 1 selected*/
.alias_channel = (int8_t) XMC_VADC_CHANNEL_ALIAS_DISABLED, /* ALIAS is Disabled*/
};


Here is a graph of the output:
3655.attach

Does any one have any ideas how to get rid of this error?

Cheers,
Nick
0 Likes
0 Replies