 
					
				
		
Hi,
I'm using the LPC5528 on a custom board and ran code based on the "lpadc_interrupt" example (SDK version 2.12.0).
The ADC clock is at 18.5 MHz. The input of ADC0 is held at 1/2 Vcc (aka. half rail) using a simple voltage divider. Further, I output 2000 samples that are acquired as fast as possible.
This is the output plotted as a histogram when the ADC is configured in low-resolution (full range contains 4096 code symbols):
Then I change the code to configure the ADC in high-resolution using:
#define DEMO_LPADC_USE_HIGH_RESOLUTION 1
This is the output plotted as a histogram when the ADC is configured in high-resolution (full range contains 65536 code symbols) using
This is a part of the histogram data:
...
 32761  73 
 32762  0
 32763  0
 32764  0
 32765  0
 32766  160  
 32767  0
 32768  1
 32769  0  
 32770  51  
 32771  0
 32772  0
 32773  0
 32774  342 
 32775  1  
 32776  0
 32777  0
 32778  45  
...
Obviously some output codes are missing.
Why is this?
Thanks!
Daniel
 
					
				
		
 xiangjun_rong
		
			xiangjun_rong
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		Hi,
Pls try to calibrate the ADC, then use the ADC example code to sample analog channel, then do the histogram.
LPADC_Init(DEMO_LPADC_BASE, &mLpadcConfigStruct);
LPADC_DoOffsetCalibration(DEMO_LPADC_BASE);
LPADC_DoAutoCalibration(DEMO_LPADC_BASE);
Pls have a try.
BR
XiangJun Rong
 
					
				
		
Hi @xiangjun_rong ,
as you know, the code I'm running is based on the "lpadc_interrupt" example from the SDK.
Starting from there, I extended the example code by adding:
#define DEMO_LPADC_DO_OFFSET_CALIBRATION true // changed to true
This enables offset calibration. In MCUXpresso IDE the code looks like:
As you can see, the three lines of code that you provided are used in this example.
Running this code on LPCXpresso55S28 demo board with the input of ADC channel 0A (pin 4 of connector P19, i.e., pin 20 of MCU) held at 1/2 AVDD results in this histogram:
This doesn't look any better. In fact, the result on the demo board is worse as conversion results are shifted towards higher values away from the "correct" 1/2 full scale value 🤨.
Any idea why this is and what I could try next?
Thanks.
Best regards,
Daniel
 
					
				
		
 xiangjun_rong
		
			xiangjun_rong
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		Hi,
Regarding the missing code of ADC result sample, I do not know if the design/test team has the spec, anyway, I have asked AE team, I will give you a reply after I get feedback.
BR
XiangJun rong
 
					
				
		
 alex_yang
		
			alex_yang
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		Hi ,
It's a sticky code issue on LPC55S28, which already confirm by design, will be fixed in future slicion version.
Due to deisgn request. Customer need to assign NDA if they want to see more details explanation on this.
 
					
				
		
Hi,
I see that this issue has not been documented in the errata sheet for LPC55S2x/LPC552x. I think it is important to know which silicon versions are affected.
Further, I wonder whether the ADC in LPC553x family exhibits missing codes, too.
Please advise!
Thanks.
Daniel
 
					
				
		
Thanks for the information. I suggest to mention this ADC issue in the Errata Sheet (it's not discussed in version 2.2).
As workaround, one has to enable averaging, I guess. Do you see any other workaround?
