Summary of How to work with inbuilt ADC Module of PIC18F4550
The article explains the in-built Analog-to-Digital Converter (ADC) module of the PIC18F4550 microcontroller, which facilitates converting analog signals from transducers to digital signals without external ADCs. The PIC18F4550 ADC features a 10-bit resolution, 13 input channels, external voltage reference pins, multiple clock options, and auto-trigger mode. Key control registers ADCON0 and ADCON1 manage ADC operation, channel selection, and pin configuration for analog or digital modes, simplifying interfacing analog sensors with the microcontroller.
Parts used in the PIC18F4550 ADC Module Explanation:
- PIC18F4550 Microcontroller
- Analog input channels (RA0/AN0 to RB0/AN12 pins)
- ADCON0 Register (A/D CONTROL REGISTER 0)
- ADCON1 Register (A/D CONTROL REGISTER 1)
- Vref+ (RA3) pin for external reference voltage
- Vref- (RA2) pin for external reference voltage
A microcontroller, a digital device, can read, execute and transmit only digital signals. On the contrary, the outputs of the most of the transducers are analog in nature. Thus it is hard to interface these transducers directly with controllers. Analog-to-digital convertor (ADC) ICs are one way to make the analog input compatible with the microcontroller.
Using an external ADC adds complexity to the circuit. To avoid this complexity, PIC Microcontrollers have in-built ADC module which reduces the cost and connections of the circuit. This article explains the in-built ADC of PIC18F4550 controller.
As mentioned in the summary, a PIC microcontroller has inbuilt ADC for A/D conversion. The ADC module of PIC18F4550 controller has following specifications:
Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
— | — | CHS3 | CHS2 | CHS1 | CHS0 | GO/DONE | ADON |
CHS3:CHS0 | Analog Channel | Pin |
0000 | Channel 0 | RA0/AN0 |
0001 | Channel 1 | RA1/AN1 |
0010 | Channel 2 | RA2/AN2 |
0011 | Channel 3 | RA3/AN3 |
0100 | Channel 4 | RA5/AN4 |
0101 | Channel 5 | RE0/AN5 |
0110 | Channel 6 | RE1/AN6 |
0111 | Channel 7 | RE2/AN7 |
1000 | Channel 8 | RB2/AN8 |
1001 | Channel 9 | RB3/AN9 |
1010 | Channel 10 | RB1/AN10 |
1011 | Channel 11 | RB4/AN11 |
1100 | Channel 12 | RB0/AN12 |
Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
— | — | VCFG1 | VCFG0 | PCFG3 | PCFG2 | PCFG1 | PCFG0 |