Could you please let us know what exactly is the observation at your end ? Is the device malfunctioning ? Or are you getting wrong results ?
I just want to know how to configure the ADC to read input voltages from 0V to 5V.
I tried it this morning.
I created a project with following schematic and connected a pot externally.
The pot's vdd is connected to the VDD of CY8CKIT-147 and vss is connected to the GND of CY8CKIT-147.
Then I changed the position of the POT from min to max
and read the value from ADC.
So it seems that we can measure from 0V to 5V, although the configuration of ADC states 3.3V.
Then I modified my main.c as below
#define VDDA 5.0
#define ADC_MAX 0x7FF
char str ; /* print buffer */
void print(char *str)
CyGlobalIntEnable; /* Enable global interrupts. */
print("ADC Test CY8CKIT-147 ") ;
sprintf(str, "(%s %s)\n", __DATE__, __TIME__) ;
int16_t value ;
value = ADC_GetResult16(0) ;
int16_t ivalue = 0 ;
ivalue = measure() ;
sprintf(str, "%d: %d.%03dV\n",
(int)(VDDA * ivalue / ADC_MAX),
(int)(1000 * VDDA * ivalue / ADC_MAX) % 1000
/*  END OF FILE */
The UART output to TeraTerm was
Thank you. This answered my question.