PIC18F2550 MAX114 4-Channel ADC

I have experimented with MAX1241s and MAX144s in the past, hoping to find an external analog to digital converter (ADC) that will allow for multi-channel high-speed data acquisition. The MAX114 is an 8-bit four-channel ADC that allows for up to 1Msps (1,000,000 samples per second) with a parallel 8-bit microcontroller interface. This project investigated the viability of developing a high-speed multi-channel oscilloscope using the MAX114 and the PIC18F2550.

Full Circuit

The source and firmware for the circuit can be found at the bottom of the page. Each section of the circuit is labeled in the schematic. All of the sections and their components are described and discussed below. The part numbers for the components are linked to websites for data and more information when available.

Power Supply

The power supply uses a 9 volt battery and a TC1262-5.0V high-accuracy low-dropout linear voltage regulator to provide a stable 5 volt supply for the microcontroller and the MAX114. A 1uF (microFarad) polarized decoupling capacitor is necessary on the output of the voltage regulator to prevent power spikes or ripples. A wall wart power supply as low as 5.3V can be substituted for the 9 Volt battery.

Analog Input

The analog input is connected to the A0 pin on the PIC, which is configured to be an analog input, and the IN1, IN2, IN3, and IN4 pins on the MAX114. Please note that for the PIC, “The source impedance affects the offset voltage at the analog input (due to pin leakage current). The maximum recommended impedance for analog sources is 2.5 kΩ” (PIC18F2550, pp. 260). In addition, please note that for the MAX114, “The typical 32pF input capacitance allows source resistance as high as 800 Ohms without setup problems. For larger resistances, the acquisition time (tACQ) must be increased.” (MAX114, pp. 10).


The MAX114 is a “microprocessor-compatible, 8-bit, 4-channel … analog-to-digital converter (ADC). [It] operates from a single +5V supply and uses a half-flash technique to achieve a 660ns conversion time (1Msps).” (MAX114, pp. 1). The MAX114 is a high-speed ADC that allows for multi-channel data acquisition with minimal processor overhead. The bypass capacitors (C2 and C3) are necessary to minimize power input fluctuations.


The microcontroller used is a Microchip PIC18F2550. I modified the PIC18F2550 Tiny PIC Bootloader assembly file so I could use a 20MHz crystal/resonator at 115,200 baud (the modified bootloader can be found at the bottom of the page). The PIC18F2550 runs at 48MHz using the internal PLL. R1 is a pull-up resistor necessary for operation. C1 is a stabilizing capacitor that is used for the onboard USB voltage regulator, which is not used in this project. The component marked ‘RES’ is a 20MHz resonator.

RS232 Level Converter

The microcontroller USART pins need to be connected to a RS-232 Level Converter to connect to a PC for firmware updates using the Tiny PIC Bootloader. Otherwise, after initial programming they can be left disconnected.

Source and Firmware

The PIC must initially programmed with the ‘SAC_tinybld18F2550usb _20MHz_115200_48MHz’ hex file to program the bootloader on the PIC. Then, using Tiny PIC Bootloader, the hex file can be placed on the chip using the Tiny PIC Bootloader frontend with ’12h 34h 56h 78h 90h’ in the ‘List of codes to send first:’ in the ‘Options’ menu. Please feel free to contact me if you have any problems.
18F2550 MAX114.c (hex)

6 thoughts to “PIC18F2550 MAX114 4-Channel ADC”

  1. How can I make combine this with the previous PIC18F2550 USB HID Oscilloscope and then connect with my PC with USB?

  2. could i get the source so i can compile for an 18f4550 instead of the 18f2550 as i have a few of these laying about and the nice people at maxim have sent me samples of the max114 and i’m looking to recreate the project


  3. I am truly impressed have you considered kitting or producing some of these for sale or at least a pc board with a pre programed chip?? I would be interested.

  4. Hi,
    Actually, I can’t believe this result. I tried to interface high speed adc to PIC18f4550 microcontroller but i couldn’t read the port very fast. any way well done…!

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.