SlideShare ist ein Scribd-Unternehmen logo
1 von 13
Downloaden Sie, um offline zu lesen
PRACTICAL NO. 5 Programming LPC214X On-chip ADC
1 TY BTECH (SCHOOL OF ELECTRICAL ENGINEERING) EMBEDDED PROCESSOR
Name: Omkar Rane
Roll No: TETB118 Batch:1 Block:1
ENTC
Problem No.1: Program the LPC21XX On-chip ADC to implement a simple Data
Acquisition System
OBJECTIVES
• Features of On-chip 10-bit ADC (4 / 8 channels) and type of ADC used
• Programming the On-chip 10-bit ADC of the development board
EQUIPMENTS
• LPC2148 Micro–A748 Development Board
• Keil µvision IDE enabled PC
• Sensors
THEORY
Analog to Digital Converter
The A/D converter present on some LPC2000 variants is a 10-bit
successive approximation converter, with a conversion time of 2.44
µSec. The A/D converter has either 4 or 8 multiplexed inputs
depending on the variant. The programming interface for the A/D
converter is shown below
Figure 1: ADC is available with 4 or 8 channels of 10-bit
resolution
PRACTICAL NO. 5 Programming LPC214X On-chip ADC
2 TY BTECH (SCHOOL OF ELECTRICAL ENGINEERING) EMBEDDED PROCESSOR
Features of ADC
• 2 internal ADC's - ADC0 (6 Channel), ADC1 (8 Channel)
• Type: 10-bit, Successive Approximation type,
• Supports burst mode (repeated conversion at 3-bit to 10-bit resolution)
• Supports simultaneous conversion on both ADC's
• Conversion time: 2.44 micro-seconds
• Start of Conversion by software control / on timer match /transition on a pin
• Range: 0 V – VREF (+3.3 V)
• Max. clock frequency is 4.5 MHz, (by programming ADC Control (ADxCON Register)
ADC Control Registers:
1. SEL: The bits from (0 to 7) are used to select the channel for ADC conversion. One bit is
allotted for each channel. For example setting the Bit-0 will make the ADC to sample AD0.1 for
conversion. And setting the bit -1 will make AD0.1; similarly setting bit-7 will do the conversion
for AD0.7. Important step is we have PINSEL according to the port we are using for example
PINSEL0 for PORT0 in PLC2148.
2. CLCKDIV: The bits from (8 to 15) are for Clock Divisor. Here the APB clock (ARM
Peripheral Bus clock) is divided by this value plus one to produce the clock required for the A/D
converter, which should be less than or equal to 4.5 MHz as we are using successive
approximation method in LPC2148.
3. BURST: The bit 16 is used for BURST conversion mode.
Setting 1: The ADC will do the conversion for all the channels that are selected in SEL bits.
Setting 0: Will disable the BURST conversion mode.
4. CLCKS: The bits from (17 to 19) three bits are used for selecting resolution and the number
of clocks for A/D conversion in burst mode as it is continuous A/D conversion mode.
5. PDN: The bit 21 is for selecting Power down Mode of ADC in LPC2148.
1. A/D is in PDN mode.
2. A/D is in operational mode
6. START: The bits from (24 to 26) are for START. When the BURST conversion mode is OFF
by setting 0, these START bits are useful for when to start the A/D conversion. The START is
used for edge controlled conversion also. That is when there is an input in CAP or MAT pin of
LPC2148 the A/D starts to convert.
7. EDGE: The 27th
bit is for EDGE is used only when the START bit contains 010-111. It starts
conversion when there is CAP or MAT input you can see above table for that.
Setting: 0 - On Falling Edge
1- On Rising Edge
PRACTICAL NO. 5 Programming LPC214X On-chip ADC
3 TY BTECH (SCHOOL OF ELECTRICAL ENGINEERING) EMBEDDED PROCESSOR
Configure ADC (AD0CR / AD1CR)
Observations:
Voltage Theoretical Values Practical
Values
ADC Hex
Values
1.0 V 1/1024=9.7656 mV 1021 V 013D
1.5 V 1.5/1024=1.4648 mV 1591 V 01EE
2.0 V 2/1024=1.9531 mV 2072 V 0283
2.5 V 2.5/1024=2.4414 mV 2587 V 0329
3.0 V 3/1024=2.587 mV 3106 V 03C4
3.1 V 3.1/1024=3.027 mV 3229 V 03EA
INTERFACING DETAILS / CONNECTIONS
PRACTICAL NO. 5 Programming LPC214X On-chip ADC
4 TY BTECH (SCHOOL OF ELECTRICAL ENGINEERING) EMBEDDED PROCESSOR
ALGORITHM / FLOWCHART
Steps for configuring the on-chip ADC
1. Configuring the ADC Power and ADC Port Pin
2. Configure ADC (AD0CR / AD1CR)
3. Reading the status of ADC
4. Reading the conversion results and displaying the Hex value on LCD display
PROGRAM CODE
adc_new.c file:
#include "lpc214x.h"
#include"stdio.h"
#include"UART.h"
#define ADC0 1<<24
#define ADC1 1<<26
#define ADC_ON 1<<21
#define ADC_Start 1<<24
#define ADC_Channel 0x03
#define ADC_Divider 0x03<<8
#define ADC_Burst 1<<16
#define ADC_CLKS 0x00<<17
void Display(int);
void adcdelay(unsigned int time)
{
unsigned int i,j;
for(i=0;i<time;i++)
{
for(j=0;j<10000;j++);
}
}
PRACTICAL NO. 5 Programming LPC214X On-chip ADC
5 TY BTECH (SCHOOL OF ELECTRICAL ENGINEERING) EMBEDDED PROCESSOR
void ADCInit(void)
{
int i;
i=PINSEL1;
i=(i& 0xF0FFFFFF);
PINSEL1=(i | (ADC0 | ADC1));
AD0CR=(ADC_Channel | ADC_Divider|ADC_Burst|ADC_CLKS);
i=AD0CR;
AD0CR=(i|ADC_ON);
}
unsigned int get_adc_voltage(unsigned int volt)
{
unsigned int volt_mv;
volt_mv=((volt*3300)/1024);
return volt_mv;
}
int main(void)
{
unsigned int ad0_data,ad1_data,voltage;
unsigned char * String="ADC Value(hex)";
UartInit(9600);
ADCInit();
//ADCInit();
printf("rn %s",String);
while(1)
{
if(AD0STAT & 0x03)
{
ad1_data=(AD0DR1 & 0x0000FFC0)>>6;
adcdelay(500);
voltage=get_adc_voltage(ad1_data);
printf("rnADC Voltage (mV)=%4d",voltage);
Display(ad1_data);
}
return 0;
}
}
PRACTICAL NO. 5 Programming LPC214X On-chip ADC
6 TY BTECH (SCHOOL OF ELECTRICAL ENGINEERING) EMBEDDED PROCESSOR
void Display(int v)
{
unsigned char Character[17]={"0123456789ABCDEF"};
unsigned char res[5]={"n"};
int i=0;
unsigned int DivValue=0x1000,BaseValue=16;
while(DivValue)
{
res[i]=Character[v/DivValue];
i++;
v%=DivValue;
DivValue/=BaseValue;
}
printf("rn ADC value in Hex = %s",res);
UART_PutChar('n');
}
Header File UART.h :
void UartInit(unsigned int);
int UART_PutChar(unsigned char);
UART.c file:
#include "lpc214x.h"
#include "stdio.h"
void UartInit(unsigned int baudrate) //setting the baud rate for
115200 baud
{
int i,FDiv;
i = PINSEL0; // read the value of the pins function
i = i & 0xFFFFFFF0; // modify the value
PINSEL0 = (i | 0x05); // set the functionality of the TxD and Rxd Pin
:01
PRACTICAL NO. 5 Programming LPC214X On-chip ADC
7 TY BTECH (SCHOOL OF ELECTRICAL ENGINEERING) EMBEDDED PROCESSOR
//set the baud rate
U0LCR = 0x83; // Line control
register :DLAB=1 ; 8 bits ; 1 stop bit ; no parity
FDiv = (15000000 / 16 ) / baudrate ; //
U0DLM = FDiv /256; //0x00;
U0DLL = FDiv %256; //0x97;
U0LCR = 0x03; // Line control
register :DLAB=0 ; 8 bits ; 1 stop bit ; no parity
U0TER = 0x80;
}
int UART_GetChar(void)
{
while(!(U0LSR & 0x1));
return(U0RBR);
}
int UART_PutChar(unsigned char Ch)
{
if (Ch == 'n') {
while (!(U0LSR & 0x20));
U0THR = 0x0D; /* output CR */
}
while(!(U0LSR & 0x20));
return( U0THR = Ch);
}
int fputc(int ch, FILE *f) {
return (UART_PutChar(ch));
}
struct __FILE { int handle; /* Add whatever you need here */ };
FILE __stdout;
PRACTICAL NO. 5 Programming LPC214X On-chip ADC
8 TY BTECH (SCHOOL OF ELECTRICAL ENGINEERING) EMBEDDED PROCESSOR
PROGRAM OUTPUT / RESULTS
Host Machine and Target Board
PRACTICAL NO. 5 Programming LPC214X On-chip ADC
9 TY BTECH (SCHOOL OF ELECTRICAL ENGINEERING) EMBEDDED PROCESSOR
PRACTICAL NO. 5 Programming LPC214X On-chip ADC
10 TY BTECH (SCHOOL OF ELECTRICAL ENGINEERING) EMBEDDED PROCESSOR
UART Readings On Host PC:
1.0 Volt
1.5 Volt
PRACTICAL NO. 5 Programming LPC214X On-chip ADC
11 TY BTECH (SCHOOL OF ELECTRICAL ENGINEERING) EMBEDDED PROCESSOR
2.0 Volt
2.5 Volt
PRACTICAL NO. 5 Programming LPC214X On-chip ADC
12 TY BTECH (SCHOOL OF ELECTRICAL ENGINEERING) EMBEDDED PROCESSOR
3.0 Volt
3.1 Volt
‘
PRACTICAL NO. 5 Programming LPC214X On-chip ADC
13 TY BTECH (SCHOOL OF ELECTRICAL ENGINEERING) EMBEDDED PROCESSOR
REFERENCES
1. Andrew Sloss, Dominic Symes, Chris Wright, “ARM System Developer’s
Guide – Designing and Optimizing System Software, ELSEVIER.
2. LPC 214x User manual (UM10139): www.nxp.com
3. ARM architecture reference manual: www.arm.com
4. Trevor Martin, “An Engineer’s Introduction to the LPC2100 series”, Hitex
(UK)
CONCLUSION
In this experiment we studied about various registers in ADC on chip peripheral
of LPC 2148 . We programmed them suitably to obtain respective results via
UART . AD0.1 was given voltage between 0-3.1 V and voltage readings
observed via UART on terminal screen. Theoretical and practical values almost
same.

Weitere ähnliche Inhalte

Was ist angesagt?

8279 in microprocessor
8279 in microprocessor8279 in microprocessor
8279 in microprocessor
Aisu
 

Was ist angesagt? (20)

3.programmable interrupt controller 8259
3.programmable interrupt controller 82593.programmable interrupt controller 8259
3.programmable interrupt controller 8259
 
RTC Interfacing and Programming
RTC Interfacing and ProgrammingRTC Interfacing and Programming
RTC Interfacing and Programming
 
Finite word length effects
Finite word length effectsFinite word length effects
Finite word length effects
 
Ec8791 lpc2148 pwm
Ec8791 lpc2148 pwmEc8791 lpc2148 pwm
Ec8791 lpc2148 pwm
 
8255 PPI
8255 PPI8255 PPI
8255 PPI
 
Interfacing with peripherals: analog to digital converters and digital to ana...
Interfacing with peripherals: analog to digital converters and digital to ana...Interfacing with peripherals: analog to digital converters and digital to ana...
Interfacing with peripherals: analog to digital converters and digital to ana...
 
LINEAR INTEGRATED CIRCUITS
LINEAR INTEGRATED CIRCUITSLINEAR INTEGRATED CIRCUITS
LINEAR INTEGRATED CIRCUITS
 
8257 DMA Controller
8257 DMA Controller8257 DMA Controller
8257 DMA Controller
 
Microprocessor 8085 complete
Microprocessor 8085 completeMicroprocessor 8085 complete
Microprocessor 8085 complete
 
06. thumb instructions
06. thumb instructions06. thumb instructions
06. thumb instructions
 
8051 Microcontroller
8051 Microcontroller8051 Microcontroller
8051 Microcontroller
 
Ppt Digital Electronics
Ppt Digital ElectronicsPpt Digital Electronics
Ppt Digital Electronics
 
Serial Communication in 8051
Serial Communication in 8051Serial Communication in 8051
Serial Communication in 8051
 
PIC MICROCONTROLLERS -CLASS NOTES
PIC MICROCONTROLLERS -CLASS NOTESPIC MICROCONTROLLERS -CLASS NOTES
PIC MICROCONTROLLERS -CLASS NOTES
 
8051 MICROCONTROLLER ARCHITECTURE.pptx
 8051 MICROCONTROLLER ARCHITECTURE.pptx 8051 MICROCONTROLLER ARCHITECTURE.pptx
8051 MICROCONTROLLER ARCHITECTURE.pptx
 
Pic microcontroller architecture
Pic microcontroller architecturePic microcontroller architecture
Pic microcontroller architecture
 
LCD Interacing with 8051
LCD Interacing with 8051LCD Interacing with 8051
LCD Interacing with 8051
 
8279 in microprocessor
8279 in microprocessor8279 in microprocessor
8279 in microprocessor
 
Encoders
EncodersEncoders
Encoders
 
ARM CORTEX M3 PPT
ARM CORTEX M3 PPTARM CORTEX M3 PPT
ARM CORTEX M3 PPT
 

Ähnlich wie Analog To Digital Conversion (ADC) Programming in LPC2148

STM_ADC para microcontroladores STM32 - Conceptos basicos
STM_ADC para microcontroladores STM32 - Conceptos basicosSTM_ADC para microcontroladores STM32 - Conceptos basicos
STM_ADC para microcontroladores STM32 - Conceptos basicos
ps6005tec
 
analog to digital converter and dac final
analog to digital converter and dac finalanalog to digital converter and dac final
analog to digital converter and dac final
DrVikasMahor
 
Atmel microcontrollers-a tmega328-p_datasheet
Atmel microcontrollers-a tmega328-p_datasheetAtmel microcontrollers-a tmega328-p_datasheet
Atmel microcontrollers-a tmega328-p_datasheet
AlexTronciu
 
Vhdl-Code-for-Adc0804-Comparator-and-Parity-Generator.pptx
Vhdl-Code-for-Adc0804-Comparator-and-Parity-Generator.pptxVhdl-Code-for-Adc0804-Comparator-and-Parity-Generator.pptx
Vhdl-Code-for-Adc0804-Comparator-and-Parity-Generator.pptx
asolis5
 
digitalvoltmeterusing805112b2-170214173216 (1).pdf
digitalvoltmeterusing805112b2-170214173216 (1).pdfdigitalvoltmeterusing805112b2-170214173216 (1).pdf
digitalvoltmeterusing805112b2-170214173216 (1).pdf
satyamsinha37
 
Analog to digital converter
Analog to digital converterAnalog to digital converter
Analog to digital converter
Corrado Santoro
 

Ähnlich wie Analog To Digital Conversion (ADC) Programming in LPC2148 (20)

04 adc (pic24, ds pic with dma)
04 adc (pic24, ds pic with dma)04 adc (pic24, ds pic with dma)
04 adc (pic24, ds pic with dma)
 
AVR_Course_Day6 external hardware interrupts and analogue to digital converter
AVR_Course_Day6 external hardware  interrupts and analogue to digital converterAVR_Course_Day6 external hardware  interrupts and analogue to digital converter
AVR_Course_Day6 external hardware interrupts and analogue to digital converter
 
Analog to Digital Converter
Analog to Digital ConverterAnalog to Digital Converter
Analog to Digital Converter
 
STM_ADC para microcontroladores STM32 - Conceptos basicos
STM_ADC para microcontroladores STM32 - Conceptos basicosSTM_ADC para microcontroladores STM32 - Conceptos basicos
STM_ADC para microcontroladores STM32 - Conceptos basicos
 
Módulo adc 18f4550
Módulo adc   18f4550Módulo adc   18f4550
Módulo adc 18f4550
 
Lecture 12 (adc) rv01
Lecture 12  (adc) rv01Lecture 12  (adc) rv01
Lecture 12 (adc) rv01
 
Anup2
Anup2Anup2
Anup2
 
EEE UNIT-2 PPT.pdf
EEE UNIT-2 PPT.pdfEEE UNIT-2 PPT.pdf
EEE UNIT-2 PPT.pdf
 
Chapter5 dek3133
Chapter5 dek3133Chapter5 dek3133
Chapter5 dek3133
 
analog to digital converter and dac final
analog to digital converter and dac finalanalog to digital converter and dac final
analog to digital converter and dac final
 
Analog to Digital Converters
Analog to Digital ConvertersAnalog to Digital Converters
Analog to Digital Converters
 
8255
82558255
8255
 
Keypad interfacing 8051 -NANOCDAC
Keypad interfacing 8051 -NANOCDACKeypad interfacing 8051 -NANOCDAC
Keypad interfacing 8051 -NANOCDAC
 
Mc module5 lcd_interface_ppt_msj
Mc module5 lcd_interface_ppt_msjMc module5 lcd_interface_ppt_msj
Mc module5 lcd_interface_ppt_msj
 
Atmel microcontrollers-a tmega328-p_datasheet
Atmel microcontrollers-a tmega328-p_datasheetAtmel microcontrollers-a tmega328-p_datasheet
Atmel microcontrollers-a tmega328-p_datasheet
 
Vhdl-Code-for-Adc0804-Comparator-and-Parity-Generator.pptx
Vhdl-Code-for-Adc0804-Comparator-and-Parity-Generator.pptxVhdl-Code-for-Adc0804-Comparator-and-Parity-Generator.pptx
Vhdl-Code-for-Adc0804-Comparator-and-Parity-Generator.pptx
 
digitalvoltmeterusing805112b2-170214173216 (1).pdf
digitalvoltmeterusing805112b2-170214173216 (1).pdfdigitalvoltmeterusing805112b2-170214173216 (1).pdf
digitalvoltmeterusing805112b2-170214173216 (1).pdf
 
DIGITAL VOLTMETER USING 8051 MICROCONTROLLER
DIGITAL VOLTMETER USING 8051 MICROCONTROLLERDIGITAL VOLTMETER USING 8051 MICROCONTROLLER
DIGITAL VOLTMETER USING 8051 MICROCONTROLLER
 
Analog to digital converter
Analog to digital converterAnalog to digital converter
Analog to digital converter
 
A 1.2V 10-bit 165MSPS Video ADC
A 1.2V 10-bit 165MSPS Video ADCA 1.2V 10-bit 165MSPS Video ADC
A 1.2V 10-bit 165MSPS Video ADC
 

Mehr von Omkar Rane

Mehr von Omkar Rane (20)

Enabling SSL Elasticsearch on server
Enabling SSL Elasticsearch on serverEnabling SSL Elasticsearch on server
Enabling SSL Elasticsearch on server
 
Anti lock braking (ABS) Model based Design in MATLAB-Simulink
Anti lock braking (ABS) Model based Design in MATLAB-SimulinkAnti lock braking (ABS) Model based Design in MATLAB-Simulink
Anti lock braking (ABS) Model based Design in MATLAB-Simulink
 
Autosar fundamental
Autosar fundamentalAutosar fundamental
Autosar fundamental
 
Stress Management
Stress ManagementStress Management
Stress Management
 
Bootloaders (U-Boot)
Bootloaders (U-Boot) Bootloaders (U-Boot)
Bootloaders (U-Boot)
 
Concept of Diversity & Fading (wireless communication)
Concept of Diversity & Fading (wireless communication)Concept of Diversity & Fading (wireless communication)
Concept of Diversity & Fading (wireless communication)
 
Tata Motors GDC .LTD Internship
Tata Motors GDC .LTD Internship Tata Motors GDC .LTD Internship
Tata Motors GDC .LTD Internship
 
Machine Learning Model for M.S admissions
Machine Learning Model for M.S admissionsMachine Learning Model for M.S admissions
Machine Learning Model for M.S admissions
 
Timer 0 programming on LPC 1768
Timer 0 programming on LPC 1768Timer 0 programming on LPC 1768
Timer 0 programming on LPC 1768
 
ADC (Analog to Digital conversion) using LPC 1768
ADC (Analog to Digital conversion) using LPC 1768ADC (Analog to Digital conversion) using LPC 1768
ADC (Analog to Digital conversion) using LPC 1768
 
PWM based motor speed control using LPC 1768
PWM based motor speed control using LPC 1768PWM based motor speed control using LPC 1768
PWM based motor speed control using LPC 1768
 
UART interfacing on LPC1768 (Cortex M3 micro controller)
UART interfacing on LPC1768 (Cortex M3 micro controller)UART interfacing on LPC1768 (Cortex M3 micro controller)
UART interfacing on LPC1768 (Cortex M3 micro controller)
 
LED Blinking logic on LPC1768
LED Blinking logic on LPC1768LED Blinking logic on LPC1768
LED Blinking logic on LPC1768
 
CAN interfacing on LPC1768 (ARM Cortex M3 based Micro controller)
CAN interfacing on LPC1768 (ARM Cortex M3 based Micro controller)CAN interfacing on LPC1768 (ARM Cortex M3 based Micro controller)
CAN interfacing on LPC1768 (ARM Cortex M3 based Micro controller)
 
Vlisi Course project presentation:Keypad Scanner
Vlisi Course project presentation:Keypad ScannerVlisi Course project presentation:Keypad Scanner
Vlisi Course project presentation:Keypad Scanner
 
VlSI course project report : Keypad Scanner
VlSI course project report : Keypad Scanner VlSI course project report : Keypad Scanner
VlSI course project report : Keypad Scanner
 
LPC 1768 A study on Real Time clock features
LPC 1768 A study on Real Time clock featuresLPC 1768 A study on Real Time clock features
LPC 1768 A study on Real Time clock features
 
Nexys4ddr rm FPGA board Datasheet
Nexys4ddr rm  FPGA board DatasheetNexys4ddr rm  FPGA board Datasheet
Nexys4ddr rm FPGA board Datasheet
 
Linear Regression (Machine Learning)
Linear Regression (Machine Learning)Linear Regression (Machine Learning)
Linear Regression (Machine Learning)
 
transmission gate based design for 2:1 Multiplexer in micro-wind
transmission gate based design for 2:1 Multiplexer in micro-windtransmission gate based design for 2:1 Multiplexer in micro-wind
transmission gate based design for 2:1 Multiplexer in micro-wind
 

Kürzlich hochgeladen

VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
MsecMca
 
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Kürzlich hochgeladen (20)

Work-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptxWork-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptx
 
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
 
2016EF22_0 solar project report rooftop projects
2016EF22_0 solar project report rooftop projects2016EF22_0 solar project report rooftop projects
2016EF22_0 solar project report rooftop projects
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghly
 
Minimum and Maximum Modes of microprocessor 8086
Minimum and Maximum Modes of microprocessor 8086Minimum and Maximum Modes of microprocessor 8086
Minimum and Maximum Modes of microprocessor 8086
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
 
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
 
Unit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdfUnit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdf
 
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
 
Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the start
 
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
 
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
 
Hostel management system project report..pdf
Hostel management system project report..pdfHostel management system project report..pdf
Hostel management system project report..pdf
 
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
 
chapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineeringchapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineering
 

Analog To Digital Conversion (ADC) Programming in LPC2148

  • 1. PRACTICAL NO. 5 Programming LPC214X On-chip ADC 1 TY BTECH (SCHOOL OF ELECTRICAL ENGINEERING) EMBEDDED PROCESSOR Name: Omkar Rane Roll No: TETB118 Batch:1 Block:1 ENTC Problem No.1: Program the LPC21XX On-chip ADC to implement a simple Data Acquisition System OBJECTIVES • Features of On-chip 10-bit ADC (4 / 8 channels) and type of ADC used • Programming the On-chip 10-bit ADC of the development board EQUIPMENTS • LPC2148 Micro–A748 Development Board • Keil µvision IDE enabled PC • Sensors THEORY Analog to Digital Converter The A/D converter present on some LPC2000 variants is a 10-bit successive approximation converter, with a conversion time of 2.44 µSec. The A/D converter has either 4 or 8 multiplexed inputs depending on the variant. The programming interface for the A/D converter is shown below Figure 1: ADC is available with 4 or 8 channels of 10-bit resolution
  • 2. PRACTICAL NO. 5 Programming LPC214X On-chip ADC 2 TY BTECH (SCHOOL OF ELECTRICAL ENGINEERING) EMBEDDED PROCESSOR Features of ADC • 2 internal ADC's - ADC0 (6 Channel), ADC1 (8 Channel) • Type: 10-bit, Successive Approximation type, • Supports burst mode (repeated conversion at 3-bit to 10-bit resolution) • Supports simultaneous conversion on both ADC's • Conversion time: 2.44 micro-seconds • Start of Conversion by software control / on timer match /transition on a pin • Range: 0 V – VREF (+3.3 V) • Max. clock frequency is 4.5 MHz, (by programming ADC Control (ADxCON Register) ADC Control Registers: 1. SEL: The bits from (0 to 7) are used to select the channel for ADC conversion. One bit is allotted for each channel. For example setting the Bit-0 will make the ADC to sample AD0.1 for conversion. And setting the bit -1 will make AD0.1; similarly setting bit-7 will do the conversion for AD0.7. Important step is we have PINSEL according to the port we are using for example PINSEL0 for PORT0 in PLC2148. 2. CLCKDIV: The bits from (8 to 15) are for Clock Divisor. Here the APB clock (ARM Peripheral Bus clock) is divided by this value plus one to produce the clock required for the A/D converter, which should be less than or equal to 4.5 MHz as we are using successive approximation method in LPC2148. 3. BURST: The bit 16 is used for BURST conversion mode. Setting 1: The ADC will do the conversion for all the channels that are selected in SEL bits. Setting 0: Will disable the BURST conversion mode. 4. CLCKS: The bits from (17 to 19) three bits are used for selecting resolution and the number of clocks for A/D conversion in burst mode as it is continuous A/D conversion mode. 5. PDN: The bit 21 is for selecting Power down Mode of ADC in LPC2148. 1. A/D is in PDN mode. 2. A/D is in operational mode 6. START: The bits from (24 to 26) are for START. When the BURST conversion mode is OFF by setting 0, these START bits are useful for when to start the A/D conversion. The START is used for edge controlled conversion also. That is when there is an input in CAP or MAT pin of LPC2148 the A/D starts to convert. 7. EDGE: The 27th bit is for EDGE is used only when the START bit contains 010-111. It starts conversion when there is CAP or MAT input you can see above table for that. Setting: 0 - On Falling Edge 1- On Rising Edge
  • 3. PRACTICAL NO. 5 Programming LPC214X On-chip ADC 3 TY BTECH (SCHOOL OF ELECTRICAL ENGINEERING) EMBEDDED PROCESSOR Configure ADC (AD0CR / AD1CR) Observations: Voltage Theoretical Values Practical Values ADC Hex Values 1.0 V 1/1024=9.7656 mV 1021 V 013D 1.5 V 1.5/1024=1.4648 mV 1591 V 01EE 2.0 V 2/1024=1.9531 mV 2072 V 0283 2.5 V 2.5/1024=2.4414 mV 2587 V 0329 3.0 V 3/1024=2.587 mV 3106 V 03C4 3.1 V 3.1/1024=3.027 mV 3229 V 03EA INTERFACING DETAILS / CONNECTIONS
  • 4. PRACTICAL NO. 5 Programming LPC214X On-chip ADC 4 TY BTECH (SCHOOL OF ELECTRICAL ENGINEERING) EMBEDDED PROCESSOR ALGORITHM / FLOWCHART Steps for configuring the on-chip ADC 1. Configuring the ADC Power and ADC Port Pin 2. Configure ADC (AD0CR / AD1CR) 3. Reading the status of ADC 4. Reading the conversion results and displaying the Hex value on LCD display PROGRAM CODE adc_new.c file: #include "lpc214x.h" #include"stdio.h" #include"UART.h" #define ADC0 1<<24 #define ADC1 1<<26 #define ADC_ON 1<<21 #define ADC_Start 1<<24 #define ADC_Channel 0x03 #define ADC_Divider 0x03<<8 #define ADC_Burst 1<<16 #define ADC_CLKS 0x00<<17 void Display(int); void adcdelay(unsigned int time) { unsigned int i,j; for(i=0;i<time;i++) { for(j=0;j<10000;j++); } }
  • 5. PRACTICAL NO. 5 Programming LPC214X On-chip ADC 5 TY BTECH (SCHOOL OF ELECTRICAL ENGINEERING) EMBEDDED PROCESSOR void ADCInit(void) { int i; i=PINSEL1; i=(i& 0xF0FFFFFF); PINSEL1=(i | (ADC0 | ADC1)); AD0CR=(ADC_Channel | ADC_Divider|ADC_Burst|ADC_CLKS); i=AD0CR; AD0CR=(i|ADC_ON); } unsigned int get_adc_voltage(unsigned int volt) { unsigned int volt_mv; volt_mv=((volt*3300)/1024); return volt_mv; } int main(void) { unsigned int ad0_data,ad1_data,voltage; unsigned char * String="ADC Value(hex)"; UartInit(9600); ADCInit(); //ADCInit(); printf("rn %s",String); while(1) { if(AD0STAT & 0x03) { ad1_data=(AD0DR1 & 0x0000FFC0)>>6; adcdelay(500); voltage=get_adc_voltage(ad1_data); printf("rnADC Voltage (mV)=%4d",voltage); Display(ad1_data); } return 0; } }
  • 6. PRACTICAL NO. 5 Programming LPC214X On-chip ADC 6 TY BTECH (SCHOOL OF ELECTRICAL ENGINEERING) EMBEDDED PROCESSOR void Display(int v) { unsigned char Character[17]={"0123456789ABCDEF"}; unsigned char res[5]={"n"}; int i=0; unsigned int DivValue=0x1000,BaseValue=16; while(DivValue) { res[i]=Character[v/DivValue]; i++; v%=DivValue; DivValue/=BaseValue; } printf("rn ADC value in Hex = %s",res); UART_PutChar('n'); } Header File UART.h : void UartInit(unsigned int); int UART_PutChar(unsigned char); UART.c file: #include "lpc214x.h" #include "stdio.h" void UartInit(unsigned int baudrate) //setting the baud rate for 115200 baud { int i,FDiv; i = PINSEL0; // read the value of the pins function i = i & 0xFFFFFFF0; // modify the value PINSEL0 = (i | 0x05); // set the functionality of the TxD and Rxd Pin :01
  • 7. PRACTICAL NO. 5 Programming LPC214X On-chip ADC 7 TY BTECH (SCHOOL OF ELECTRICAL ENGINEERING) EMBEDDED PROCESSOR //set the baud rate U0LCR = 0x83; // Line control register :DLAB=1 ; 8 bits ; 1 stop bit ; no parity FDiv = (15000000 / 16 ) / baudrate ; // U0DLM = FDiv /256; //0x00; U0DLL = FDiv %256; //0x97; U0LCR = 0x03; // Line control register :DLAB=0 ; 8 bits ; 1 stop bit ; no parity U0TER = 0x80; } int UART_GetChar(void) { while(!(U0LSR & 0x1)); return(U0RBR); } int UART_PutChar(unsigned char Ch) { if (Ch == 'n') { while (!(U0LSR & 0x20)); U0THR = 0x0D; /* output CR */ } while(!(U0LSR & 0x20)); return( U0THR = Ch); } int fputc(int ch, FILE *f) { return (UART_PutChar(ch)); } struct __FILE { int handle; /* Add whatever you need here */ }; FILE __stdout;
  • 8. PRACTICAL NO. 5 Programming LPC214X On-chip ADC 8 TY BTECH (SCHOOL OF ELECTRICAL ENGINEERING) EMBEDDED PROCESSOR PROGRAM OUTPUT / RESULTS Host Machine and Target Board
  • 9. PRACTICAL NO. 5 Programming LPC214X On-chip ADC 9 TY BTECH (SCHOOL OF ELECTRICAL ENGINEERING) EMBEDDED PROCESSOR
  • 10. PRACTICAL NO. 5 Programming LPC214X On-chip ADC 10 TY BTECH (SCHOOL OF ELECTRICAL ENGINEERING) EMBEDDED PROCESSOR UART Readings On Host PC: 1.0 Volt 1.5 Volt
  • 11. PRACTICAL NO. 5 Programming LPC214X On-chip ADC 11 TY BTECH (SCHOOL OF ELECTRICAL ENGINEERING) EMBEDDED PROCESSOR 2.0 Volt 2.5 Volt
  • 12. PRACTICAL NO. 5 Programming LPC214X On-chip ADC 12 TY BTECH (SCHOOL OF ELECTRICAL ENGINEERING) EMBEDDED PROCESSOR 3.0 Volt 3.1 Volt ‘
  • 13. PRACTICAL NO. 5 Programming LPC214X On-chip ADC 13 TY BTECH (SCHOOL OF ELECTRICAL ENGINEERING) EMBEDDED PROCESSOR REFERENCES 1. Andrew Sloss, Dominic Symes, Chris Wright, “ARM System Developer’s Guide – Designing and Optimizing System Software, ELSEVIER. 2. LPC 214x User manual (UM10139): www.nxp.com 3. ARM architecture reference manual: www.arm.com 4. Trevor Martin, “An Engineer’s Introduction to the LPC2100 series”, Hitex (UK) CONCLUSION In this experiment we studied about various registers in ADC on chip peripheral of LPC 2148 . We programmed them suitably to obtain respective results via UART . AD0.1 was given voltage between 0-3.1 V and voltage readings observed via UART on terminal screen. Theoretical and practical values almost same.