Close

Hardware

A project log for Affordable Spectrum Analzyer

Analyze electrical signals using a raspberry pi with a user interface designed for students, hobbyists, and other beginners.

dan-kislingDan Kisling 07/10/2016 at 21:350 Comments

Skipping ahead now to hardware. My focus on this project was the hardware (Andrew focused on the much harder subject: software). This project log will be quite lengthy, and only really considers our second revision of the PCB. The first had a whole host of issues (and it was my first PCB I ever designed). Many issues were corrected in the second PCB, but there are still a few improvements I would like to introduce in the near future.

Hardware Selection

Multiplier

The multiplier considered are listed in components. We found that the low cost multiplier used in the electronics lab (AD633) was sufficient, and actually had some frequency properties that made it a good choice for this project.

Band Pass Filter

A very tight band pass filter is required for the design to function properly. As such, a band pass filter with middle frequency 455 kHz and 10 kHz bandwidth was selected. These already exist, have impressive brick-wall-like transfer functions, are inexpensive, and require no additional power considerations. The specific part chosen was the CFWLB455KJFA-B0 from muRata. Note that it requires a 2KΩ input and output resistance.

Oscillator

The variable oscillator chosen needs to be variable, easily controlled digitally by the Raspberry Pi, and low cost. Our simulations were able to show that multiplying signals by a clean sine wave was not necessary. In fact, we can get away with square waves as the images from the harmonics are separated sufficiently and filtered out by the band pass filter. The LTC6903 from linear technology was chosen for all of these reasons. It is able to produce square waves from 1kHz to 68 MHz with no external components. Communication is handled via SPI protocol, and the Raspberry Pi has dedicated SPI GPIO pins.

ADC

The analog to digital converter chosen needs to be able to work with specific sampling frequencies in order to achieve undersampling methods described above. For our purposes, we desired a parallel out digital signal so timing of communication would not complicate matters. Additionally, a track and hold topology is beneficial as it simplifies our circuitry and does not require an external sample and hold circuit. Considering all of this the ADC chosen is the ADS820U from Texas Instruments. Interfacing with the IC is simple. All that is required is a bit of signal interfacing, a clock signal, and the digital bits are provided at the output. As this ADC is 5V logic, a level shifter is required at the output to convert to the Raspberry Pi’s required 3.3V logic. The 74LVC4245A is chosen to do this as it can handle 8 bit level shifting at sufficient speeds, comes in a small package, has simple setup, and is low cost. A level shifting is required for the input clock signal as well, but this time 3.3V to 5V. This is a simpler operation, and so the extremely low cost 7404 hex inverter / buffer is utilized. The inversion of the clock signal requires no reprogramming as we are only concerned with signal frequency, not phase.

The ADS820U requires a good bit of interface circuitry. The components and connections are taken from figure 5 and figure 10 of the datasheet as an AC-coupling topology is preferable to our application as we are really only concerned with AC signals and allows us to neglect DC biasing to fit the ADC range.

Input Amplifier

The input amplifier needs to have a sufficiently high gain bandwidth product, and it is desireable to have an easy interface to control the amount of gain. Linear Technology’s LTC6910-1 is chosen. An added benefit of this IC is its ability to be powered by a single sided 5V supply, something the Raspberry Pi can do without any additional circuitry.

Power

Finally, the power is considered. With the exception of level shifter and the multiplier, every active component on the circuit is powered by the 5V power line from the Raspberry Pi. The level shifter also requires a 3.3V input (so it knows what level to shift to). This 3.3V input can also be supplied by the Raspberry Pi. All we are left with is supplying power to the multiplier. While it is suggested that a +/- 15V supply should be used for the multiplier, it is not necessary. The AD633 can function with supplies as narrow as +/-8V (which was verified in the lab). The two inputs will not exceed 5V, so meeting this +/-8V supply is all the more that is necessary (remember that the output is internally divided by 10). The Max680 from Maxim Integrated is chosen as it can convert a single sided 5V supply to a dual 10V supply with very little external circuitry (just 4 external capacitors).

Libraries

Custom libraries were created for each part. Symbols were chosen to be simple blocks with pin layouts identical to actual physical layout and naming to match the datasheet. With the exception of the band pass filter, all of the packages were copied from the standard packages library in Eagle. The bandpass filter had a special footprint that required a package to be built from scratch.

BPF Package Details from Datasheet , BPF Derived Land Pattern

Schematic

The full schematic is provided below (and is split for formatting purposes of this report).

Schematic of Spectrum Analyzer PCB

Layout

Layout of Custom Printed Circuit Board

In order to make troubleshooting an easier process, a technique that was handed down in a PCB workshop in California (thanks technolomaniac) was utilized. 3-Pin headers and 2-pin shunts are used to disrupt signal and reroute signal path. This allows us to override functional blocks in order to test. Pictured on the left in figure 8 is the board configuration that takes the full signal path. The jumper placement pictured in figure 9 bypasses the multiplier and filter, allowing the signal to come straight from the input amplifier and be fed into the analog to digital converter.

PCB utilizing full signal path, PCB Overriding Multiplier and BPF

These jumpers not only act as switches, they also make excellent probe points for test. A similar strategy is taken at the top of the board. There was not sufficient time to test the MAX680 alone. So the board is configured such that the power can easily be disconnected MAX680 if it is not sufficient, and an external power supply can be used. The MAX680 did turn out to sufficient for supply a dual sided supply.

Eagle files found here on github.

Files to send to PCB manufacturer are found here on github.

Discussions