I am working on C8051F120, I am getting a problem in ADC value.
When I am working on Internal Oscillator (24.5 MHz), my PLL Setting makes SYSCLK as 98 MHZ. My Reference is provided from external source (3.0V). when I read 1.5V value on any channel, I get 2048 (which is correct). But when I change the Oscillator to an external one (25MHz), my SYSCLK becomes 100MHz. with all the same settings and no change in the code, my ADC starts reading it as 2080 instead of 2048. I had tried reducing SAR Clock value and also tried increasing the Settling time by providing a much bigger delay but the result is unchanged.
Had anybody encountered such a problem ?
I contacted with Silabs technical team about this particular issue. They suggested me to recreate the same scenario in the Evaluation Board to narrow down the nature of the problem.
I connected the signals from my board to Evaluation board, and found that there is no issue with it.
This test clears that it is something to do with the Board design or maybe with the particular piece of MCU placed on my Board. I'll work with the team to diagnose this hardware issue.
I had checked that there is no variation in reference or signal value on my board
have you checked the reference voltage in the 2 cases?
Erik
Yes I have checked the reference voltage and AIN voltage also in all the cases. I'll construct one more board and test it.