Yahoo Groups archive

Lpc2000

Index last updated: 2026-04-28 23:31 UTC

Message

AtoD pins

2004-09-29 by douglasbolton

Hello

I'm having problems getting correct readings on the AtoD pins. I have 
3 inputs which I'm converting individually under software control. I 
drive one pin from a voltage follower with 2.26 volts. V3A is at 3.32 
volts. I expect an A/D reading of (2.26/3.32)*1023 = 696. The Atod 
varies considerably depending on whether I read the pin on it's own 
or cycle through the pins. Does anybody have schematic/details of the 
analog input pins on the LPC2292. 
I'd like not to use the voltage follower but am getting even less 
stable readings without it. My source impedance is 4k7. What is the 
input impedance of the pin?

If I continually read just one pin using -

ADCR_bit.SEL = 2;
ADCR_bit.START = 1;						
while((ADDR & 0x80000000) == 0);
Result = ADDR;			
ADCR_bit.START = 0;		
Result = ((uint16_t)Result>>6);	

I get and AtoD value of 726

if I cycle through the 3 port pins using

ADCR_bit.SEL = (0x01 << PortNum);
ADCR_bit.START = 1;						
while((ADDR & 0x80000000) == 0);
Result = ADDR;			
ADCR_bit.START = 0;		
Result = ((uint16_t)Result>>6);	

I get and AtoD value of 790


The voltages are all rock solid and I've set up the AtoD on the 
LPC2292 as follows -

uint32_t	dummy;
	
dummy = PINSEL2;	
// set p2.31 as AIN5 (DEPTH pressure)
dummy |= 0x00400000;	
// set p3.29 as AIN6 (AIR pressure)
dummy |= 0x00000040;
PINSEL2 = dummy;	
// set up feedback pin
PINSEL1_bit.P0_28 = 0x01;		
	
// set off a single software controlled 10 bit conversion on a port
// pclk = 60 mhz
ADCR_bit.PDN = 0x01;	
ADCR_bit.CLKDIV = 14;

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.