ADC/DAC/VREF/Comparators
  12-Bit ADC conversion flikers heavily on C8051F500?

Post New Topic  Post A Reply
profile | register | preferences | faq | search

UBBFriend: Email This Page to Someone! next newest topic | next oldest topic
Author Topic:   12-Bit ADC conversion flikers heavily on C8051F500?
dingyg99
Member
posted August 05, 2010 02:40 AM     Click Here to See the Profile for dingyg99   Click Here to Email dingyg99     Edit/Delete Message
Dear all:
We are using the C8051F500 to finished ADC and send it to the master node via CAN bus, now we found the ADC conversion flikers heavily, why?

In our board, there are two DC voltage which values to be 4.989V and 4.364V by multimeter, and the difference is 4.989V-4.364V=0.625V, we have taken long time monitor on the two voltage, they keep very steady.

We then assign the P0.2 and P0.3 to acquire the value two voltage, it is found the ADC result flikers heavily.

To get a smoother value, we put them in data pool(item size=200) for averge.

V1 = ADC: P0.2
V2 = ADC: P0.3
V3 = fabs( V2 - V1 )
V4 = ( Sum of V1 ) / 200
V5 = ( Sum of V2 ) / 200
V6 = fabs( V5 - V4 )
V7 = fabs( V6 - V3 )


Below is the debug result:
#0X01 Reading ADC0 ... OK V1=4.959 V2=4.360 V3=0.599 V4=5.000 V5=4.381 V6=0.619 V7=0.019
#0X01 Reading ADC0 ... OK V1=5.060 V2=4.410 V3=0.650 V4=5.000 V5=4.382 V6=0.619 V7=0.031
#0X01 Reading ADC0 ... OK V1=4.928 V2=4.380 V3=0.548 V4=5.000 V5=4.382 V6=0.619 V7=0.070
#0X01 Reading ADC0 ... OK V1=4.999 V2=4.360 V3=0.640 V4=4.999 V5=4.381 V6=0.618 V7=0.022
#0X01 Reading ADC0 ... OK V1=4.989 V2=4.400 V3=0.589 V4=4.999 V5=4.382 V6=0.618 V7=0.029
#0X01 Reading ADC0 ... OK V1=4.938 V2=4.390 V3=0.548 V4=4.999 V5=4.382 V6=0.617 V7=0.069
#0X01 Reading ADC0 ... OK V1=4.999 V2=4.390 V3=0.609 V4=4.999 V5=4.382 V6=0.617 V7=0.008
#0X01 Reading ADC0 ... OK V1=5.050 V2=4.367 V3=0.683 V4=4.999 V5=4.382 V6=0.618 V7=0.065
#0X01 Reading ADC0 ... OK V1=5.020 V2=4.400 V3=0.620 V4=4.999 V5=4.382 V6=0.617 V7=0.003
#0X01 Reading ADC0 ... OK V1=4.994 V2=4.380 V3=0.614 V4=4.999 V5=4.381 V6=0.617 V7=0.003
#0X01 Reading ADC0 ... OK V1=5.010 V2=4.327 V3=0.683 V4=5.000 V5=4.381 V6=0.619 V7=0.064
#0X01 Reading ADC0 ... OK V1=4.867 V2=4.380 V3=0.487 V4=4.999 V5=4.381 V6=0.618 V7=0.130
#0X01 Reading ADC0 ... OK V1=5.020 V2=4.370 V3=0.650 V4=4.999 V5=4.381 V6=0.618 V7=0.032
#0X01 Reading ADC0 ... OK V1=5.010 V2=4.370 V3=0.640 V4=4.999 V5=4.381 V6=0.618 V7=0.021
#0X01 Reading ADC0 ... OK V1=4.979 V2=4.400 V3=0.579 V4=4.999 V5=4.381 V6=0.619 V7=0.040
#0X01 Reading ADC0 ... OK V1=5.111 V2=4.410 V3=0.701 V4=5.000 V5=4.381 V6=0.619 V7=0.082
#0X01 Reading ADC0 ... OK V1=5.098 V2=4.339 V3=0.759 V4=5.000 V5=4.381 V6=0.619 V7=0.140
#0X01 Reading ADC0 ... OK V1=4.928 V2=4.309 V3=0.620 V4=5.000 V5=4.381 V6=0.619 V7=0.000
#0X01 Reading ADC0 ... OK V1=4.979 V2=4.380 V3=0.599 V4=5.000 V5=4.381 V6=0.619 V7=0.020
#0X01 Reading ADC0 ... OK V1=5.030 V2=4.349 V3=0.680 V4=5.000 V5=4.380 V6=0.620 V7=0.061
#0X01 Reading ADC0 ... OK V1=4.857 V2=4.390 V3=0.467 V4=5.000 V5=4.381 V6=0.619 V7=0.152
#0X01 Reading ADC0 ... OK V1=4.979 V2=4.400 V3=0.579 V4=5.000 V5=4.380 V6=0.620 V7=0.041
#0X01 Reading ADC0 ... OK V1=4.867 V2=4.390 V3=0.477 V4=4.999 V5=4.380 V6=0.618 V7=0.141
#0X01 Reading ADC0 ... OK V1=4.979 V2=4.400 V3=0.579 V4=4.998 V5=4.381 V6=0.618 V7=0.039
#0X01 Reading ADC0 ... OK V1=4.979 V2=4.360 V3=0.620 V4=4.999 V5=4.380 V6=0.618 V7=0.001
#0X01 Reading ADC0 ... OK V1=4.817 V2=4.390 V3=0.427 V4=4.999 V5=4.380 V6=0.618 V7=0.192
#0X01 Reading ADC0 ... OK V1=5.060 V2=4.421 V3=0.640 V4=5.000 V5=4.381 V6=0.619 V7=0.021
#0X01 Reading ADC0 ... OK V1=5.071 V2=4.400 V3=0.670 V4=5.000 V5=4.381 V6=0.619 V7=0.051
#0X01 Reading ADC0 ... OK V1=4.989 V2=4.367 V3=0.622 V4=5.000 V5=4.381 V6=0.620 V7=0.002
#0X01 Reading ADC0 ... OK V1=4.959 V2=4.387 V3=0.571 V4=5.001 V5=4.381 V6=0.620 V7=0.049
#0X01 Reading ADC0 ... OK V1=5.058 V2=4.360 V3=0.698 V4=5.001 V5=4.381 V6=0.620 V7=0.078
#0X01 Reading ADC0 ... OK V1=5.040 V2=4.390 V3=0.650 V4=5.001 V5=4.381 V6=0.620 V7=0.030
#0X01 Reading ADC0 ... OK V1=4.989 V2=4.380 V3=0.609 V4=5.001 V5=4.381 V6=0.620 V7=0.011
#0X01 Reading ADC0 ... OK V1=4.977 V2=4.367 V3=0.609 V4=5.001 V5=4.381 V6=0.621 V7=0.011
#0X01 Reading ADC0 ... OK V1=5.101 V2=4.380 V3=0.721 V4=5.003 V5=4.381 V6=0.622 V7=0.099
#0X01 Reading ADC0 ... OK V1=5.040 V2=4.421 V3=0.620 V4=5.004 V5=4.381 V6=0.623 V7=0.003
#0X01 Reading ADC0 ... OK V1=5.091 V2=4.380 V3=0.711 V4=5.004 V5=4.381 V6=0.623 V7=0.088
#0X01 Reading ADC0 ... OK V1=4.867 V2=4.400 V3=0.467 V4=5.003 V5=4.381 V6=0.622 V7=0.155
#0X01 Reading ADC0 ... OK V1=4.989 V2=4.390 V3=0.599 V4=5.003 V5=4.381 V6=0.622 V7=0.023
#0X01 Reading ADC0 ... OK V1=4.898 V2=4.339 V3=0.559 V4=5.003 V5=4.381 V6=0.621 V7=0.063
#0X01 Reading ADC0 ... OK V1=4.979 V2=4.398 V3=0.581 V4=5.001 V5=4.381 V6=0.620 V7=0.038
#0X01 Reading ADC0 ... OK V1=5.040 V2=4.360 V3=0.680 V4=5.001 V5=4.381 V6=0.620 V7=0.061
#0X01 Reading ADC0 ... OK V1=5.139 V2=4.421 V3=0.719 V4=5.002 V5=4.381 V6=0.621 V7=0.098
#0X01 Reading ADC0 ... OK V1=5.040 V2=4.390 V3=0.650 V4=5.001 V5=4.381 V6=0.620 V7=0.030
#0X01 Reading ADC0 ... OK V1=4.847 V2=4.339 V3=0.508 V4=5.000 V5=4.381 V6=0.619 V7=0.111
#0X01 Reading ADC0 ... OK V1=5.040 V2=4.370 V3=0.670 V4=5.000 V5=4.381 V6=0.620 V7=0.051
#0X01 Reading ADC0 ... OK V1=5.020 V2=4.339 V3=0.680 V4=5.000 V5=4.381 V6=0.620 V7=0.061
#0X01 Reading ADC0 ... OK V1=4.959 V2=4.400 V3=0.559 V4=5.000 V5=4.381 V6=0.619 V7=0.061
#0X01 Reading ADC0 ... OK V1=5.040 V2=4.370 V3=0.670 V4=5.000 V5=4.381 V6=0.620 V7=0.051
#0X01 Reading ADC0 ... OK V1=4.994 V2=4.370 V3=0.625 V4=5.000 V5=4.381 V6=0.620 V7=0.005
#0X01 Reading ADC0 ... OK V1=5.020 V2=4.339 V3=0.680 V4=5.000 V5=4.380 V6=0.620 V7=0.061
#0X01 Reading ADC0 ... OK V1=5.060 V2=4.380 V3=0.680 V4=5.000 V5=4.380 V6=0.620 V7=0.060
#0X01 Reading ADC0 ... OK V1=4.999 V2=4.410 V3=0.589 V4=5.000 V5=4.381 V6=0.620 V7=0.031
#0X01 Reading ADC0 ... OK V1=4.979 V2=4.360 V3=0.620 V4=5.001 V5=4.380 V6=0.620 V7=0.001
#0X01 Reading ADC0 ... OK V1=4.994 V2=4.380 V3=0.614 V4=5.000 V5=4.380 V6=0.620 V7=0.006
#0X01 Reading ADC0 ... OK V1=5.111 V2=4.410 V3=0.701 V4=5.000 V5=4.381 V6=0.620 V7=0.081
#0X01 Reading ADC0 ... OK V1=4.979 V2=4.360 V3=0.620 V4=5.000 V5=4.381 V6=0.619 V7=0.000
#0X01 Reading ADC0 ... OK V1=5.010 V2=4.372 V3=0.637 V4=5.000 V5=4.380 V6=0.620 V7=0.018
#0X01 Reading ADC0 ... OK V1=5.091 V2=4.344 V3=0.746 V4=5.001 V5=4.380 V6=0.621 V7=0.126
#0X01 Reading ADC0 ... OK V1=4.913 V2=4.387 V3=0.526 V4=5.001 V5=4.380 V6=0.620 V7=0.095
#0X01 Reading ADC0 ... OK V1=4.959 V2=4.387 V3=0.571 V4=5.000 V5=4.380 V6=0.620 V7=0.049
#0X01 Reading ADC0 ... OK V1=5.020 V2=4.441 V3=0.579 V4=5.000 V5=4.381 V6=0.619 V7=0.040
#0X01 Reading ADC0 ... OK V1=4.999 V2=4.380 V3=0.620 V4=5.000 V5=4.381 V6=0.620 V7=0.000
#0X01 Reading ADC0 ... OK V1=4.814 V2=4.370 V3=0.444 V4=4.999 V5=4.381 V6=0.619 V7=0.175
#0X01 Reading ADC0 ... OK V1=4.928 V2=4.390 V3=0.538 V4=5.000 V5=4.381 V6=0.619 V7=0.081
#0X01 Reading ADC0 ... OK V1=5.020 V2=4.410 V3=0.609 V4=5.000 V5=4.381 V6=0.619 V7=0.009
#0X01 Reading ADC0 ... OK V1=5.040 V2=4.410 V3=0.630 V4=5.000 V5=4.381 V6=0.619 V7=0.011
#0X01 Reading ADC0 ... OK V1=5.030 V2=4.390 V3=0.640 V4=5.000 V5=4.382 V6=0.619 V7=0.021
#0X01 Reading ADC0 ... OK V1=4.989 V2=4.421 V3=0.569 V4=5.000 V5=4.382 V6=0.619 V7=0.050
#0X01 Reading ADC0 ... OK V1=4.949 V2=4.370 V3=0.579 V4=5.000 V5=4.382 V6=0.619 V7=0.040
#0X01 Reading ADC0 ... OK V1=5.007 V2=4.408 V3=0.599 V4=5.000 V5=4.382 V6=0.619 V7=0.020
#0X01 Reading ADC0 ... OK V1=5.050 V2=4.400 V3=0.650 V4=5.001 V5=4.382 V6=0.619 V7=0.031
#0X01 Reading ADC0 ... OK V1=4.959 V2=4.319 V3=0.640 V4=5.001 V5=4.381 V6=0.619 V7=0.021
#0X01 Reading ADC0 ... OK V1=5.091 V2=4.309 V3=0.782 V4=5.002 V5=4.381 V6=0.620 V7=0.162
#0X01 Reading ADC0 ... OK V1=4.959 V2=4.459 V3=0.500 V4=5.001 V5=4.381 V6=0.620 V7=0.120
#0X01 Reading ADC0 ... OK V1=4.979 V2=4.380 V3=0.599 V4=5.002 V5=4.381 V6=0.621 V7=0.022
#0X01 Reading ADC0 ... OK V1=4.959 V2=4.390 V3=0.569 V4=5.003 V5=4.381 V6=0.621 V7=0.052
#0X01 Reading ADC0 ... OK V1=4.989 V2=4.380 V3=0.609 V4=5.003 V5=4.381 V6=0.622 V7=0.012
#0X01 Reading ADC0 ... OK V1=4.977 V2=4.410 V3=0.566 V4=5.003 V5=4.381 V6=0.622 V7=0.055
#0X01 Reading ADC0 ... OK V1=5.172 V2=4.410 V3=0.762 V4=5.004 V5=4.382 V6=0.623 V7=0.139
#0X01 Reading ADC0 ... OK V1=4.938 V2=4.357 V3=0.581 V4=5.004 V5=4.381 V6=0.623 V7=0.041
#0X01 Reading ADC0 ... OK V1=5.076 V2=4.426 V3=0.650 V4=5.005 V5=4.382 V6=0.623 V7=0.027
#0X01 Reading ADC0 ... OK V1=4.928 V2=4.398 V3=0.531 V4=5.003 V5=4.382 V6=0.621 V7=0.091
#0X01 Reading ADC0 ... OK V1=4.936 V2=4.421 V3=0.515 V4=5.003 V5=4.382 V6=0.621 V7=0.106
#0X01 Reading ADC0 ... OK V1=5.030 V2=4.390 V3=0.640 V4=5.003 V5=4.382 V6=0.621 V7=0.019
#0X01 Reading ADC0 ... OK V1=4.977 V2=4.380 V3=0.597 V4=5.003 V5=4.382 V6=0.621 V7=0.025
#0X01 Reading ADC0 ... OK V1=4.936 V2=4.339 V3=0.597 V4=5.003 V5=4.382 V6=0.622 V7=0.025
#0X01 Reading ADC0 ... OK V1=4.949 V2=4.360 V3=0.589 V4=5.002 V5=4.382 V6=0.621 V7=0.032

[This message has been edited by dingyg99 (edited August 05, 2010).]

IP: Logged

dingyg99
Member
posted August 05, 2010 02:45 AM     Click Here to See the Profile for dingyg99   Click Here to Email dingyg99     Edit/Delete Message
Below is the ADC init code:

// *****************************************************************************
// Design Notes:
// -----------------------------------------------------------------------------
void HAL_Init_ADC0()
{
unsigned char iPage;

// Backup the sfr page
iPage = SFRPAGE;

// Switch to active page
SFRPAGE = ACTIVE_PAGE;

// The regulator output=2.6V
REG0CN = 0X10;

// The voltage reference=VDD
REF0CN = 0X0F;

// GAINEN = 1
ADC0CF = 0XF9;

// Load the ADC0GNH address
ADC0H = 0X04;

// Load the upper byte of 0X3C00 to ADC0GNH
ADC0L = 0X3C;

// Load the ADC0GNL address
ADC0H = 0X07;

// Load the lower nibble of 0X3C00 to ADC0GNL
ADC0L = 0X00;

// Load the ADC0GNA address
ADC0H = 0X08;

// Set the GAINADD bit
ADC0L = 0X01;

// GAINEN = 0
ADC0CF = 0XF8;

// Enable the ADC0
ADC0CN = 0X80;

// Restore the sfr page
SFRPAGE = iPage;
}

[This message has been edited by dingyg99 (edited August 05, 2010).]

IP: Logged

dingyg99
Member
posted August 05, 2010 02:47 AM     Click Here to See the Profile for dingyg99   Click Here to Email dingyg99     Edit/Delete Message
Below is the ADC data acquision code:

// *****************************************************************************
// Design Notes:
// -----------------------------------------------------------------------------
unsigned short GetADC0Value16( unsigned char iChannel )
{
unsigned char iPage;
unsigned char index;
unsigned char iCount;
unsigned short iValue;

// Backup the sfr page
iPage = SFRPAGE;

// Switch to active page
SFRPAGE = ACTIVE_PAGE;

// Get the repeat counter
iCount = ADC0CF;

// The repeat counter
iCount = ( iCount >> 0X01 ) & 0X03;
switch ( iCount )
{
case 0X00:
{
iCount = 0X01;
}
break;

case 0X01:
{
iCount = 0X04;
}
break;

case 0X02:
{
iCount = 0X08;
}
break;

case 0X03:
{
iCount = 0X16;
}
break;

default:
{
iCount = 0X01;
}
break;
}

// The ADC channel
ADC0MX = iChannel;

// Clear the control status
AD0BUSY = 0X00;

// Clear the ADC interrupt flag
AD0INT = 0X00;

// All the conversion
for ( index = 0X00; index < iCount; index++ )
{
// Start conversion
AD0BUSY = 0X01;

// Wait for complete
while ( AD0BUSY );
}

// Wait for ADC interrupt
while ( !AD0INT );

// The ADC finished, read the result
iValue = ( ( unsigned short )ADC0H << 0X08 ) + ADC0L;

// Restore the sfr page
SFRPAGE = iPage;

// Regulate the value
iValue /= iCount;

// 12-bit ADC results
iValue &= 0X0FFF;

// The final result
return iValue;
}

// *****************************************************************************
// Design Notes:
// -----------------------------------------------------------------------------
float ReadADC0( unsigned char iChannel )
{
float fRetValue;
unsigned short iValue;

// Get the ADC-16 value
iValue = GetADC0Value16( iChannel );

// The ADC convert result
fRetValue = 2.600f * iValue / 4096.000;

// Convert the gain value
fRetValue *= 4.000f;

// Return the value
return fRetValue;
}

IP: Logged

tony.hague
Member
posted August 05, 2010 07:40 AM     Click Here to See the Profile for tony.hague     Edit/Delete Message
I would get rid off all the stuff to do with repeat counters which apperears not to be used; there are a couple of bugs in it
(setting the busy flag to start a convert then waiting for not busy usually fails, and you have 0x16 where you mean 16).

Your issues are most likely electrical, I would guess. I've plotted your data above and it doesn't look outrageous. Note particlarly that the analog inputs must NEVER exceed VIO (looks like you are close) and that a little analog filtering on the input usually yeilds rewards. If you are using VDD as the reference, this is likely to provide a noise path too. Make sure it is well decoupled, or use the internal reference (noting that it must be routed out to a pin and decoupled if you do).

IP: Logged

vanmierlo
Member
posted August 05, 2010 04:04 PM     Click Here to See the Profile for vanmierlo   Click Here to Email vanmierlo     Edit/Delete Message
It's better to wait for AD0INT instead of !AD0BUSY.

IP: Logged

dingyg99
Member
posted August 05, 2010 10:02 PM     Click Here to See the Profile for dingyg99   Click Here to Email dingyg99     Edit/Delete Message
Dear Tony:
I have tried according to your instructions to add a 0.1uF capacitor on the ADC channels, then the ADC result improved a lot.

In this example we mount 8 client nodes on the CAN bus, the master node receive the data via the CAN bus and print out by the UART0 port.

Please note that I have fixed the bug you pointed out in the function GetADC0Value16 (0X10 misspelling to 0X16), although it does not affect the ADC result.

Below is sample of the ADC result:

#0X01 Reading ADC0 ... OK V1=4.912 V2=4.362 V3=0.632 V4=4.964 V5=4.344 V6=0.620 V7=0.003
#0X02 Reading ADC0 ... OK V1=4.411 V2=3.790 V3=0.615 V4=4.401 V5=3.775 V6=0.626 V7=0.021
#0X03 Reading ADC0 ... OK V1=3.780 V2=3.160 V3=0.615 V4=3.769 V5=3.142 V6=0.627 V7=0.006
#0X04 Reading ADC0 ... OK V1=3.156 V2=2.525 V3=0.644 V4=3.137 V5=2.511 V6=0.626 V7=0.005
#0X05 Reading ADC0 ... OK V1=2.504 V2=1.889 V3=0.611 V4=2.511 V5=1.885 V6=0.626 V7=0.018
#0X06 Reading ADC0 ... OK V1=1.901 V2=1.263 V3=0.623 V4=1.891 V5=1.261 V6=0.630 V7=0.015
#0X07 Reading ADC0 ... OK V1=1.241 V2=0.617 V3=0.628 V4=1.241 V5=0.620 V6=0.621 V7=0.002
#0X08 Reading ADC0 ... OK V1=0.634 V2=0.002 V3=0.634 V4=0.630 V5=0.001 V6=0.629 V7=0.005

#0X01 Reading ADC0 ... OK V1=4.973 V2=4.380 V3=0.607 V4=4.965 V5=4.345 V6=0.620 V7=0.016
#0X02 Reading ADC0 ... OK V1=4.415 V2=3.780 V3=0.642 V4=4.401 V5=3.775 V6=0.627 V7=0.001
#0X03 Reading ADC0 ... OK V1=3.771 V2=3.156 V3=0.648 V4=3.769 V5=3.143 V6=0.627 V7=0.026
#0X04 Reading ADC0 ... OK V1=3.111 V2=2.516 V3=0.640 V4=3.138 V5=2.511 V6=0.627 V7=0.008
#0X05 Reading ADC0 ... OK V1=2.512 V2=1.903 V3=0.611 V4=2.512 V5=1.885 V6=0.627 V7=0.007
#0X06 Reading ADC0 ... OK V1=1.885 V2=1.263 V3=0.623 V4=1.891 V5=1.261 V6=0.630 V7=0.006
#0X07 Reading ADC0 ... OK V1=1.241 V2=0.617 V3=0.621 V4=1.241 V5=0.620 V6=0.621 V7=0.010
#0X08 Reading ADC0 ... OK V1=0.623 V2=0.000 V3=0.621 V4=0.630 V5=0.001 V6=0.629 V7=0.005

#0X01 Reading ADC0 ... OK V1=4.912 V2=4.362 V3=0.636 V4=4.965 V5=4.345 V6=0.621 V7=0.005
#0X02 Reading ADC0 ... OK V1=4.380 V2=3.796 V3=0.628 V4=4.401 V5=3.775 V6=0.627 V7=0.009
#0X03 Reading ADC0 ... OK V1=3.739 V2=3.166 V3=0.619 V4=3.770 V5=3.142 V6=0.628 V7=0.024
#0X04 Reading ADC0 ... OK V1=3.123 V2=2.533 V3=0.632 V4=3.138 V5=2.511 V6=0.627 V7=0.008
#0X05 Reading ADC0 ... OK V1=2.496 V2=1.901 V3=0.638 V4=2.512 V5=1.886 V6=0.626 V7=0.003
#0X06 Reading ADC0 ... OK V1=1.876 V2=1.265 V3=0.636 V4=1.891 V5=1.262 V6=0.629 V7=0.011
#0X07 Reading ADC0 ... OK V1=1.233 V2=0.619 V3=0.611 V4=1.240 V5=0.620 V6=0.620 V7=0.003
#0X08 Reading ADC0 ... OK V1=0.636 V2=0.000 V3=0.636 V4=0.630 V5=0.001 V6=0.629 V7=0.009

#0X01 Reading ADC0 ... OK V1=4.940 V2=4.383 V3=0.611 V4=4.964 V5=4.344 V6=0.620 V7=0.020
#0X02 Reading ADC0 ... OK V1=4.370 V2=3.808 V3=0.623 V4=4.402 V5=3.775 V6=0.627 V7=0.013
#0X03 Reading ADC0 ... OK V1=3.747 V2=3.156 V3=0.623 V4=3.770 V5=3.142 V6=0.628 V7=0.022
#0X04 Reading ADC0 ... OK V1=3.148 V2=2.525 V3=0.619 V4=3.139 V5=2.510 V6=0.629 V7=0.019
#0X05 Reading ADC0 ... OK V1=2.496 V2=1.901 V3=0.607 V4=2.512 V5=1.884 V6=0.628 V7=0.005
#0X06 Reading ADC0 ... OK V1=1.893 V2=1.263 V3=0.621 V4=1.891 V5=1.262 V6=0.629 V7=0.006
#0X07 Reading ADC0 ... OK V1=1.245 V2=0.628 V3=0.623 V4=1.240 V5=0.620 V6=0.620 V7=0.007
#0X08 Reading ADC0 ... OK V1=0.628 V2=0.002 V3=0.636 V4=0.629 V5=0.001 V6=0.628 V7=0.008

#0X01 Reading ADC0 ... OK V1=4.912 V2=4.362 V3=0.636 V4=4.964 V5=4.344 V6=0.620 V7=0.011
#0X02 Reading ADC0 ... OK V1=4.395 V2=3.812 V3=0.617 V4=4.402 V5=3.775 V6=0.627 V7=0.004
#0X03 Reading ADC0 ... OK V1=3.771 V2=3.156 V3=0.640 V4=3.771 V5=3.142 V6=0.629 V7=0.007
#0X04 Reading ADC0 ... OK V1=3.140 V2=2.525 V3=0.619 V4=3.138 V5=2.510 V6=0.627 V7=0.018
#0X05 Reading ADC0 ... OK V1=2.516 V2=1.893 V3=0.617 V4=2.512 V5=1.885 V6=0.627 V7=0.009
#0X06 Reading ADC0 ... OK V1=1.885 V2=1.274 V3=0.638 V4=1.891 V5=1.261 V6=0.630 V7=0.006
#0X07 Reading ADC0 ... OK V1=1.241 V2=0.623 V3=0.615 V4=1.241 V5=0.620 V6=0.621 V7=0.007
#0X08 Reading ADC0 ... OK V1=0.628 V2=0.002 V3=0.628 V4=0.629 V5=0.001 V6=0.628 V7=0.001

#0X01 Reading ADC0 ... OK V1=4.990 V2=4.370 V3=0.611 V4=4.964 V5=4.345 V6=0.619 V7=0.004
#0X02 Reading ADC0 ... OK V1=4.411 V2=3.780 V3=0.632 V4=4.403 V5=3.776 V6=0.627 V7=0.022
#0X03 Reading ADC0 ... OK V1=3.734 V2=3.168 V3=0.632 V4=3.770 V5=3.142 V6=0.628 V7=0.020
#0X04 Reading ADC0 ... OK V1=3.111 V2=2.516 V3=0.611 V4=3.137 V5=2.511 V6=0.626 V7=0.011
#0X05 Reading ADC0 ... OK V1=2.525 V2=1.893 V3=0.636 V4=2.511 V5=1.885 V6=0.626 V7=0.015
#0X06 Reading ADC0 ... OK V1=1.901 V2=1.261 V3=0.644 V4=1.891 V5=1.261 V6=0.630 V7=0.006
#0X07 Reading ADC0 ... OK V1=1.241 V2=0.621 V3=0.611 V4=1.240 V5=0.620 V6=0.620 V7=0.001
#0X08 Reading ADC0 ... OK V1=0.636 V2=0.002 V3=0.638 V4=0.629 V5=0.001 V6=0.628 V7=0.010

#0X01 Reading ADC0 ... OK V1=4.903 V2=4.380 V3=0.623 V4=4.964 V5=4.344 V6=0.620 V7=0.012
#0X02 Reading ADC0 ... OK V1=4.415 V2=3.780 V3=0.640 V4=4.403 V5=3.776 V6=0.627 V7=0.009
#0X03 Reading ADC0 ... OK V1=3.759 V2=3.168 V3=0.623 V4=3.770 V5=3.142 V6=0.628 V7=0.008
#0X04 Reading ADC0 ... OK V1=3.136 V2=2.533 V3=0.640 V4=3.137 V5=2.512 V6=0.625 V7=0.014
#0X05 Reading ADC0 ... OK V1=2.525 V2=1.893 V3=0.636 V4=2.511 V5=1.885 V6=0.626 V7=0.012
#0X06 Reading ADC0 ... OK V1=1.889 V2=1.265 V3=0.615 V4=1.891 V5=1.262 V6=0.629 V7=0.006
#0X07 Reading ADC0 ... OK V1=1.241 V2=0.619 V3=0.621 V4=1.240 V5=0.620 V6=0.621 V7=0.007
#0X08 Reading ADC0 ... OK V1=0.630 V2=0.000 V3=0.638 V4=0.629 V5=0.001 V6=0.628 V7=0.010

#0X01 Reading ADC0 ... OK V1=5.006 V2=4.333 V3=0.640 V4=4.964 V5=4.344 V6=0.621 V7=0.007
#0X02 Reading ADC0 ... OK V1=4.362 V2=3.808 V3=0.628 V4=4.403 V5=3.776 V6=0.627 V7=0.017
#0X03 Reading ADC0 ... OK V1=3.763 V2=3.152 V3=0.615 V4=3.770 V5=3.142 V6=0.628 V7=0.003
#0X04 Reading ADC0 ... OK V1=3.115 V2=2.516 V3=0.619 V4=3.137 V5=2.511 V6=0.626 V7=0.022
#0X05 Reading ADC0 ... OK V1=2.525 V2=1.889 V3=0.619 V4=2.512 V5=1.885 V6=0.627 V7=0.015
#0X06 Reading ADC0 ... OK V1=1.901 V2=1.269 V3=0.621 V4=1.891 V5=1.261 V6=0.630 V7=0.012
#0X07 Reading ADC0 ... OK V1=1.241 V2=0.621 V3=0.625 V4=1.240 V5=0.620 V6=0.620 V7=0.004
#0X08 Reading ADC0 ... OK V1=0.630 V2=0.002 V3=0.628 V4=0.630 V5=0.001 V6=0.629 V7=0.001

#0X01 Reading ADC0 ... OK V1=4.928 V2=4.383 V3=0.603 V4=4.965 V5=4.345 V6=0.620 V7=0.019
#0X02 Reading ADC0 ... OK V1=4.383 V2=3.796 V3=0.611 V4=4.402 V5=3.775 V6=0.627 V7=0.017
#0X03 Reading ADC0 ... OK V1=3.759 V2=3.148 V3=0.652 V4=3.770 V5=3.142 V6=0.628 V7=0.022
#0X04 Reading ADC0 ... OK V1=3.140 V2=2.533 V3=0.642 V4=3.138 V5=2.510 V6=0.628 V7=0.010
#0X05 Reading ADC0 ... OK V1=2.516 V2=1.893 V3=0.619 V4=2.512 V5=1.885 V6=0.627 V7=0.017
#0X06 Reading ADC0 ... OK V1=1.885 V2=1.269 V3=0.640 V4=1.891 V5=1.262 V6=0.629 V7=0.013
#0X07 Reading ADC0 ... OK V1=1.233 V2=0.621 V3=0.613 V4=1.240 V5=0.620 V6=0.620 V7=0.003
#0X08 Reading ADC0 ... OK V1=0.632 V2=0.002 V3=0.621 V4=0.629 V5=0.001 V6=0.628 V7=0.005

#0X01 Reading ADC0 ... OK V1=4.936 V2=4.350 V3=0.640 V4=4.965 V5=4.344 V6=0.620 V7=0.007
#0X02 Reading ADC0 ... OK V1=4.395 V2=3.812 V3=0.617 V4=4.403 V5=3.776 V6=0.627 V7=0.006
#0X03 Reading ADC0 ... OK V1=3.730 V2=3.156 V3=0.609 V4=3.770 V5=3.142 V6=0.629 V7=0.005
#0X04 Reading ADC0 ... OK V1=3.140 V2=2.525 V3=0.619 V4=3.138 V5=2.511 V6=0.627 V7=0.004
#0X05 Reading ADC0 ... OK V1=2.512 V2=1.889 V3=0.619 V4=2.511 V5=1.885 V6=0.626 V7=0.017
#0X06 Reading ADC0 ... OK V1=1.893 V2=1.274 V3=0.617 V4=1.891 V5=1.261 V6=0.630 V7=0.008
#0X07 Reading ADC0 ... OK V1=1.237 V2=0.628 V3=0.617 V4=1.240 V5=0.620 V6=0.620 V7=0.009
#0X08 Reading ADC0 ... OK V1=0.623 V2=0.002 V3=0.632 V4=0.630 V5=0.001 V6=0.629 V7=0.005

#0X01 Reading ADC0 ... OK V1=4.953 V2=4.387 V3=0.599 V4=4.964 V5=4.344 V6=0.620 V7=0.024
#0X02 Reading ADC0 ... OK V1=4.415 V2=3.790 V3=0.615 V4=4.402 V5=3.775 V6=0.627 V7=0.004
#0X03 Reading ADC0 ... OK V1=3.763 V2=3.168 V3=0.636 V4=3.771 V5=3.142 V6=0.628 V7=0.005
#0X04 Reading ADC0 ... OK V1=3.123 V2=2.533 V3=0.615 V4=3.138 V5=2.511 V6=0.627 V7=0.003
#0X05 Reading ADC0 ... OK V1=2.516 V2=1.889 V3=0.636 V4=2.512 V5=1.886 V6=0.626 V7=0.014
#0X06 Reading ADC0 ... OK V1=1.876 V2=1.265 V3=0.640 V4=1.891 V5=1.262 V6=0.629 V7=0.008
#0X07 Reading ADC0 ... OK V1=1.245 V2=0.623 V3=0.619 V4=1.240 V5=0.620 V6=0.620 V7=0.009
#0X08 Reading ADC0 ... OK V1=0.634 V2=0.000 V3=0.623 V4=0.629 V5=0.001 V6=0.628 V7=0.005

#0X01 Reading ADC0 ... OK V1=4.912 V2=4.383 V3=0.611 V4=4.963 V5=4.343 V6=0.620 V7=0.012
#0X02 Reading ADC0 ... OK V1=4.354 V2=3.792 V3=0.630 V4=4.402 V5=3.775 V6=0.627 V7=0.009
#0X03 Reading ADC0 ... OK V1=3.782 V2=3.144 V3=0.642 V4=3.770 V5=3.142 V6=0.628 V7=0.013
#0X04 Reading ADC0 ... OK V1=3.144 V2=2.520 V3=0.615 V4=3.138 V5=2.511 V6=0.627 V7=0.004
#0X05 Reading ADC0 ... OK V1=2.508 V2=1.889 V3=0.609 V4=2.512 V5=1.885 V6=0.627 V7=0.013
#0X06 Reading ADC0 ... OK V1=1.893 V2=1.274 V3=0.625 V4=1.892 V5=1.261 V6=0.631 V7=0.001
#0X07 Reading ADC0 ... OK V1=1.241 V2=0.619 V3=0.611 V4=1.241 V5=0.620 V6=0.621 V7=0.003
#0X08 Reading ADC0 ... OK V1=0.628 V2=0.002 V3=0.636 V4=0.630 V5=0.001 V6=0.629 V7=0.001

#0X01 Reading ADC0 ... OK V1=4.944 V2=4.387 V3=0.599 V4=4.964 V5=4.344 V6=0.620 V7=0.020
#0X02 Reading ADC0 ... OK V1=4.362 V2=3.808 V3=0.623 V4=4.402 V5=3.775 V6=0.627 V7=0.013
#0X03 Reading ADC0 ... OK V1=3.755 V2=3.148 V3=0.650 V4=3.769 V5=3.143 V6=0.627 V7=0.025
#0X04 Reading ADC0 ... OK V1=3.123 V2=2.533 V3=0.636 V4=3.139 V5=2.510 V6=0.628 V7=0.013
#0X05 Reading ADC0 ... OK V1=2.512 V2=1.889 V3=0.636 V4=2.512 V5=1.884 V6=0.628 V7=0.004
#0X06 Reading ADC0 ... OK V1=1.901 V2=1.269 V3=0.621 V4=1.892 V5=1.261 V6=0.630 V7=0.005
#0X07 Reading ADC0 ... OK V1=1.233 V2=0.619 V3=0.625 V4=1.241 V5=0.620 V6=0.621 V7=0.008
#0X08 Reading ADC0 ... OK V1=0.636 V2=0.000 V3=0.638 V4=0.629 V5=0.001 V6=0.628 V7=0.001

#0X01 Reading ADC0 ... OK V1=4.973 V2=4.354 V3=0.640 V4=4.964 V5=4.344 V6=0.620 V7=0.004
#0X02 Reading ADC0 ... OK V1=4.362 V2=3.796 V3=0.611 V4=4.402 V5=3.775 V6=0.627 V7=0.017
#0X03 Reading ADC0 ... OK V1=3.747 V2=3.156 V3=0.607 V4=3.770 V5=3.142 V6=0.627 V7=0.023
#0X04 Reading ADC0 ... OK V1=3.148 V2=2.520 V3=0.611 V4=3.139 V5=2.510 V6=0.628 V7=0.012
#0X05 Reading ADC0 ... OK V1=2.525 V2=1.887 V3=0.615 V4=2.511 V5=1.885 V6=0.626 V7=0.014
#0X06 Reading ADC0 ... OK V1=1.889 V2=1.265 V3=0.621 V4=1.891 V5=1.262 V6=0.630 V7=0.006
#0X07 Reading ADC0 ... OK V1=1.233 V2=0.621 V3=0.617 V4=1.241 V5=0.620 V6=0.621 V7=0.003
#0X08 Reading ADC0 ... OK V1=0.636 V2=0.000 V3=0.628 V4=0.630 V5=0.001 V6=0.629 V7=0.009

#0X01 Reading ADC0 ... OK V1=4.953 V2=4.383 V3=0.607 V4=4.964 V5=4.344 V6=0.620 V7=0.019
#0X02 Reading ADC0 ... OK V1=4.395 V2=3.812 V3=0.619 V4=4.402 V5=3.775 V6=0.627 V7=0.004
#0X03 Reading ADC0 ... OK V1=3.751 V2=3.156 V3=0.605 V4=3.770 V5=3.142 V6=0.628 V7=0.008
#0X04 Reading ADC0 ... OK V1=3.156 V2=2.510 V3=0.615 V4=3.138 V5=2.511 V6=0.627 V7=0.012
#0X05 Reading ADC0 ... OK V1=2.525 V2=1.889 V3=0.615 V4=2.511 V5=1.885 V6=0.626 V7=0.009
#0X06 Reading ADC0 ... OK V1=1.885 V2=1.274 V3=0.625 V4=1.891 V5=1.262 V6=0.630 V7=0.006
#0X07 Reading ADC0 ... OK V1=1.233 V2=0.621 V3=0.625 V4=1.240 V5=0.620 V6=0.620 V7=0.007
#0X08 Reading ADC0 ... OK V1=0.623 V2=0.002 V3=0.630 V4=0.630 V5=0.001 V6=0.629 V7=0.005

#0X01 Reading ADC0 ... OK V1=4.953 V2=4.354 V3=0.640 V4=4.964 V5=4.344 V6=0.620 V7=0.014
#0X02 Reading ADC0 ... OK V1=4.395 V2=3.796 V3=0.619 V4=4.401 V5=3.775 V6=0.627 V7=0.003
#0X03 Reading ADC0 ... OK V1=3.763 V2=3.148 V3=0.632 V4=3.770 V5=3.142 V6=0.627 V7=0.022
#0X04 Reading ADC0 ... OK V1=3.123 V2=2.531 V3=0.605 V4=3.137 V5=2.511 V6=0.626 V7=0.007
#0X05 Reading ADC0 ... OK V1=2.520 V2=1.901 V3=0.611 V4=2.512 V5=1.886 V6=0.626 V7=0.015
#0X06 Reading ADC0 ... OK V1=1.901 V2=1.261 V3=0.640 V4=1.891 V5=1.261 V6=0.630 V7=0.013
#0X07 Reading ADC0 ... OK V1=1.245 V2=0.621 V3=0.625 V4=1.240 V5=0.620 V6=0.620 V7=0.003
#0X08 Reading ADC0 ... OK V1=0.632 V2=0.002 V3=0.619 V4=0.629 V5=0.001 V6=0.628 V7=0.007

#0X01 Reading ADC0 ... OK V1=4.938 V2=4.383 V3=0.603 V4=4.964 V5=4.344 V6=0.620 V7=0.020
#0X02 Reading ADC0 ... OK V1=4.428 V2=3.792 V3=0.640 V4=4.402 V5=3.775 V6=0.627 V7=0.000
#0X03 Reading ADC0 ... OK V1=3.780 V2=3.156 V3=0.623 V4=3.770 V5=3.142 V6=0.629 V7=0.001
#0X04 Reading ADC0 ... OK V1=3.148 V2=2.516 V3=0.615 V4=3.137 V5=2.511 V6=0.626 V7=0.019
#0X05 Reading ADC0 ... OK V1=2.525 V2=1.893 V3=0.615 V4=2.512 V5=1.886 V6=0.626 V7=0.017
#0X06 Reading ADC0 ... OK V1=1.876 V2=1.265 V3=0.636 V4=1.892 V5=1.261 V6=0.630 V7=0.007
#0X07 Reading ADC0 ... OK V1=1.245 V2=0.625 V3=0.615 V4=1.240 V5=0.620 V6=0.620 V7=0.003
#0X08 Reading ADC0 ... OK V1=0.632 V2=0.000 V3=0.623 V4=0.629 V5=0.001 V6=0.628 V7=0.005

IP: Logged

dingyg99
Member
posted August 05, 2010 10:13 PM     Click Here to See the Profile for dingyg99   Click Here to Email dingyg99     Edit/Delete Message
Dear tony:
We have tried to use the VREF as the ADC reference, we want to know if we use the VREF=1.50V/2.2V as the reference, the ADC perfomance may be improved or not.

But to our supprise, the VREF output on P0.0 is not steady but changes heavily. for example:
(1) Set REF0CN=0X01, the VREF=P0.0 should be 1.50V, but in most time the value maybe 0.742V, 0.235V etc. Although we occasionly watched the value to be steadly 1.5V.

(2) Set REF0CN=0X11, the VREF=P0.1 should be 2.2V. but in most time the value maybe 2.023V, 1.845V, 0.379V etc. Although we occasionly watched the value to be steadly 2.233V.

Please note that there is a 4.7uF + 0.1uF capacitor on this pin, the XBR initialization code is below:

// *****************************************************************************
// Design Notes:
// -----------------------------------------------------------------------------
void InitXBR()
{
SFRPAGE = CONFIG_PAGE;
P0MDIN = 0XF0;
P0MDOUT = 0X50;
P0SKIP = 0X0F;
XBR0 = 0X03;
XBR2 = 0X40;
SFRPAGE = ACTIVE_PAGE;
}

Then what cause the internal reference output on P0.0 not steady?

Thanks & Best Regards

IP: Logged

dingyg99
Member
posted August 05, 2010 10:16 PM     Click Here to See the Profile for dingyg99   Click Here to Email dingyg99     Edit/Delete Message
Dear All:

To improve the ADC result, we may want to try the external voltage reference for the 12-bit ADC.

We have select the ADI voltage REF195 (SO-8), does anyone used the exteranl reference?

May the external reference improve the ADC performance?

Thanks & Best Regards!

[This message has been edited by dingyg99 (edited August 05, 2010).]

IP: Logged

tony.hague
Member
posted August 06, 2010 04:36 AM     Click Here to See the Profile for tony.hague     Edit/Delete Message
VDDA and Analog ground connected properly ?

IP: Logged

erikm
Member
posted August 06, 2010 05:30 AM     Click Here to See the Profile for erikm   Click Here to Email erikm     Edit/Delete Message
VDDA and Analog ground connected properly ?
reminds me of a fun episode. Prior to my arrival it had been decided that a given component was not "good enough" and another, more expensive, had been substituted with total success. I had a look and put a wire on the original board and it worked. the reason for the "total success" was not the new component but the new layout.

many forget that "a wire is not a wire"

in the high precision A/D game design is 10%, layout is 90%

Erik

[This message has been edited by erikm (edited August 06, 2010).]

IP: Logged

All times are CT (US)

next newest topic | next oldest topic

Administrative Options: Close Topic | Archive/Move | Delete Topic
Post New Topic  Post A Reply
Hop to:

Contact Us | MCU User Forum

Have you seen our MCU Knowledge Base?


Ultimate Bulletin Board 5.47b