PIC18F2550 KS0108 Graphical LCD Oscilloscope

Using the PIC18F2550 GLCD Text Test as a basis for further experimentation, I put together a simple and accurate graphical oscilloscope using a PIC18F2550 microcontroller and a AGM1264F graphical LCD. The oscilloscope measures the average voltage, the maximum voltage, the minimum voltage, the peak-to-peak voltage, and the zero-crossing frequency for a DC signal over 100 samples. The oscilloscope has a built in edge trigger function that can be set to capture on rise or fall (or disabled altogether). The time scale for the display is variable and can be easily redefined using the changeTimeDivision function. Likewise, the voltage range can be change to 0-5V, 0-2.5V, and 0-1.25V. The main limitations of this oscilloscope include relatively slow acquisition time and sampling rate (~60kHz) and the fact that the inputs are limited by the constraints of the internal ADC. However, it is a very nice display and I highly suggest you view the videos to see it in action. (more…)

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. (more…)

PIC18F2550 MAX144 2-Channel ADC

As discussed in my MAX1241 project, there are a number of advantages for utilizing external analog to digital converters (ADCs) in a project’s design. The MAX144 is a 12-bit two-channel ADC that has a “7.4µs successive-approximation ADC, automatic power-down, fast wake-up (2.5µs), an on-chip clock, and a high-speed, 3-wire serial interface.” All of these contribute to a wonderful, fast, two-channel analog-to-digital converter, which can be utilized in a number of situations where high-speed (108ksps) data acquisition is necessary. (more…)

PIC18F2550 MAX1241 1-Channel ADC

There are a number of advantages for utilizing an external analog to digital converter (ADC) in a project’s design. The internal ADC of the PIC18F series is limited to 10-bit resolution, while much higher resolution ADCs are available. In addition, high-speed multi-channel conversion is possible utilizing multiple external ADCs and multi-channel ADCs. The MAX1241 is a 12-bit single-channel ADC that has a “7.5µs successive-approximation ADC, a fast track/hold (1.5µs), an on-chip clock, and a high-speed, 3-wire serial interface.” All of these contribute to a great compact analog-to-digital converter, which can be utilized in a number of situations where high-speed sampling (73ksps) is required. (more…)

PIC18F2550 USB HID IO

After completing the PIC18F2550 USB HID Oscilloscope, I decided to expand upon the project and firmware to include multiple analog inputs and digital i/o. The base firmware for this project is the same as the PIC18F2550 USB HID Oscilloscope‘s; however, more features have been added that allow the user to access the PIC18F2550’s Port B for digital i/o. In addition, the firmware now allows the user to access the AN0-AN4 analog pins for monitoring and data acquisition. (more…)

PIC18F2550 USB HID Oscilloscope

This is a project that I’ve been planning on putting together for a long time. After creating an oscilloscope using a PIC12F675, I wanted to create a simple and effective USB oscilloscope using the higher performance PIC18F2550. During the development of this project, I learned quite a bit about USB HID communication, which allows me to quickly and effectively communicate with the desktop computer. Using HID means that this oscilloscope does not require drivers (only the oscilloscope software). (more…)