A homemade receiver for GPS & GLONASS satellites

Matjaz Vidmar, S53MV (ex YU3UMV, YT3MV)

4. Homemade receiver modules for GPS & GLONASS

4.10. GPS/GLONASS DSP hardware

The theory of operation of the dedicated GPS/GLONASS DSP hardware has already been discussed in 3.6. Therefore the practical implementation will only be described in the following paragraph.

The dedicated GPS/GLONASS DSP hardware is built as a peripheral plug-in module for the DSP computer [1], [2]. The circuit diagram of the GPS/GLONASS DSP hardware is shown on Fig. 41 and Fig. 42. The DSP hardware module includes two amplifiers for the limited IF signal and master clock coming from the analog part of the GPS or GLONASS receiver, a look-up table RAM, four signal-despreading mixers, four correlator counters, all of the timing logic to scan the look-up table and generate interrupts to the CPU and all of the interface circuits necessary for the DSP computer bus.



The input signal amplifiers are built with 74HC04 inverters to amplify the input signals of a few hundred millivolts up to TTL levels. In this way the signal levels in the analog part of the GPS or GLONASS receiver can be kept more than 20dB lower, reducing the shielding requirements. The supply voltage of the 74HC04 is additionally filtered to reject the disturbs usually present on the +5V computer bus power supply. The limited input signal is then sampled by a D-flip-flop (1/2 74HC74). Considering the relationship between the IF and the sampling frequency, the sampling operation also provides a third downconversion.

The look-up tables are stored in a 32kX8 static RAM. The RAM area is divided into 8 separate areas of 4kbytes each, selectable through a microprocessor output port. In this way the look-up table needs not to be rewritten when switching to another satellite. The receiver is usually time-multiplexed among four different satellites and all four different look-up tables are stored in the RAM. When switching to another satellite, the hardware is simply switched to another look-up table and this only requires executing a few instructions instead of rewriting the whole 4kbyte table.

The 4kbytes of each look-up table are written as bytes by the microprocessor. The microprocessor writes all of the bytes to the same location, since the address counter is incremented automatically after each write operation. In read mode the look-up table is scanned by the same hardware counter (74HC4040) clocked at half the sampling frequency (3069.5kHz for GPS or 2250kHz for GLONASS). The byte data is latched (74HC273) and then multiplexed to 4 bits (74HC157) to get all of the four required local signal replicas to be multiplied (EXOR 74HC86) with each input signal sample. Each look-up table may be thus up to 8192 samples long. The unused samples need not be written since they are not used by the hardware.

The dedicated DSP hardware requires six programmable counters: four correlation accumulators, a sampling frequency divider and a variable delay counter, all contained in two uPD71054 (82C54) integrated circuits. Each uPD71054 contains three almost independent 16-bit counters that can be programmed in different ways. For example, the four correlation counters are clocked with the same signal sampling frequency and the signals are fed to the GATE inputs, which are programmed as clock enables.

The signal sampling frequency (6139 or 4500kHz) is divided down to 1kHz to match the C/A-code period (1ms). This signal is also used to request interrupts from the CPU, since the correlation counters need to be read each millisecond. After receiving an interrupt request, the CPU will latch the content of all counters in a single bus operation and then read the latched content of every single counter in separate bus operations. The sampling clock divider is also latched and read and its content is used as an accurate timing reference.

Every interrupt request sets a flip-flop that needs to be reset by the microprocessor after the interrupt has been serviced. Interrupt arm (enable) and reset (disable) is performed through one (Q4) of the eight output-port bits provided by the 74HC259 addressable latch. Of the remaining 7 bits, three (Q1, Q2 and Q3) are used to select one of the eight look-up tables in the RAM and another bit (Q0) is used to select either write or read mode for the look-up table logic. The last three bits (Q5, Q6 and Q7) are used to control the GLONASS PLL modulo or as spares in a GPS receiver.

The bus interface to the DSP computer bus includes a bidirectional data-bus buffer (74HC245) and an address selection logic (two 74HC138s and 74HC10). The bus interface does not request any wait states from the MC68010 CPU. The address decoding for the uPD71054 programmable counters must allow simultaneous write operations to both control registers of both peripherals, to be able to latch the content of all of the counters exactly at the same time. Finally, the RESET signal is fed to the 74HC259 addressable latch essentially to prevent any interrupts or other unintended operations before the whole DSP hardware is correctly initialized.

The bus addresses are assigned as follows:

$E0001   - Disable look-up table write mode
$E0003   - Enable look-up table write mode

$E0009   - Look-up table address A2 reset
$E000B   - Look-up table address A2 set
$E0041   - Look-up table address A1 reset
$E0043   - Look-up table address A1 set
$E0049   - Look-up table address A0 reset
$E004B   - Look-up table address A0 set

$E0081   - Reset & disable 1ms interrupt
$E0083   - Enable 1ms interrupt
$E0082   - Reset & enable 1ms interrupt, long transfer!

$E0089   - GLONASS PLL modulo STROBE reset
$E008B   - GLONASS PLL modulo STROBE set
$E00C1   - GLONASS PLL modulo DATA reset
$E00C3   - GLONASS PLL modulo DATA set
$E00C9   - GLONASS PLL modulo CLOCK reset
$E00CB   - GLONASS PLL modulo CLOCK set

$E800B   - Common WRITE to both 71054 command registers

$E8041   - 71054 #1 CTR0 - data 0,4 accumulator
$E8043   - 71054 #1 CTR1 - data 1,5 accumulator
$E8049   - 71054 #1 CTR2 - data 3,7 accumulator
$E804B   - 71054 #1 command register

$E8081   - 71054 #2 CTR0 - variable C/A-code delay
$E8083   - 71054 #2 CTR1 - GPS /6139 or GLONASS /4500 clk
$E8089   - 71054 #2 CTR2 - data 2,6 accumulator
$E808B   - 71054 #2 command register

$F8001   - WRITE byte to look-up table

However, one should notice that the remaining addresses in the range from $E0000 to $FFFFF are not fully or correctly decoded, although the module will acknowledge the access to the MC68010. Accessing other addresses in this range (either reading from or writing to) will probably cause an erratic operation of the module. The 74HC259 addressable latch is programmed by writing to the specified locations. Since only the address is important and the data is ignored, CLR.B instructions are used to write to single bytes and a CLR.L instruction is used to reset and arm the interrupt flip-flop.



The dedicated DSP hardware module is built on a double-sided printed-circuit board as shown on Fig. 43 and Fig. 44. The location of the components is shown on Fig. 45. The single resistors, diodes and the 100uH choke are installed horizontally. The eight 10kohm resistors are in a single 9-pin SIL package. The capacitors are ceramic except the 10uF "tantalum drop" and all have a pin spacing of 5mm.


The 74HC4040 should NOT be replaced by a standard 4040 device, since the latter is too slow for a correct operation in the described circuit. To allow an eventual troubleshooting it is recommended to install at least the two 71054 counters and the 43256 RAM on good-quality sockets. The speed of the RAM is unimportant, since even the slowest 150ns static RAMs are fast enough for this project.

The dedicated DSP hardware module is inserted in the DSP computer bus with a 64-pole "eurocard a+c" connector. The remaining connectors include a 5-pin socket for the input IF signal and clock, a 4-pin socket for the GLONASS PLL modulo control and a 8-pin socket for the interrupt selection. All of these are made from parts of good-quality IC sockets.

The dedicated DSP hardware module only includes logic circuits that require no alignments.

4.11. GPS/GLONASS portable receiver CPU

The described GPS or GLONASS receiver can be built as an interface for the DSP computer [1] and [2] or as a stand-alone, portable receiver. In the latter case the receiver needs its own microcomputer with a keyboard and a LCD display. After considering several possible alternatives, the simplest solution resulted in using a suitably modified CPU board as described in [1] and [2] as the microcomputer.



The circuit diagram of the modified CPU board is shown on Fig. 46 and Fig. 47. Since a GPS or GLONASS receiver is a portable device, the power consumption is important and 74HCxx logic devices should be used everywhere. This allows to omit three 3.3kohm pull-up resistors. The original DSP computer CPU board requires the following modifications:

(1) The pads below the EPROM socket should be connected so
    that pin 27 receives the A14 signal required by the
    27C256 EPROM. Originally this pin is connected to +5V,
    using a 27128 EPROM.
(2) The RAM should be increased from 64kbytes up to 128kbytes.
    This is achieved by piggy-back soldering two additional
    43256 RAM chips on top of the existing two RAM chips on
    CPU board. All pins of the additional RAMs are connected
    in parallel with the existing RAM pins except for pin 20
    (chip select). The two chip-select pins of the added RAM
    chips are then wired to pin 11 (Q4) of the middle 74HC138
    address decoder.
(3) A HSCH1001 Schottky diode should be connected between
    pin 11 (Q4) of the top 74HC138 address decoder and the
    DTACK signal (pin 12 of the 74HC05), to acknowledge the
    additional RAM chips to the CPU.

The keyboard connection remains unchanged. The total/partial reset switch has a new function with the GPS or GLONASS software. In the case of a stand-alone, portable receiver, this input should always be left open (+5V)!

The parallel output port (uPD71055 channel B) is now used to command the HD44780 LCD controller. Since there are only 8 output bits available, the HD44780 is driven in the 4-bit mode, write only. The real-time clock chip uPD4990 is required by the GPS or GLONASS software and must remain in place. The INT7 jumper must remain in place for keyboard interrupt requests while the INT1 jumper is no longer needed, although it may remain in place.



The printed circuit board is not modified, as shown on Fig. 48 and Fig. 49. The additions and modifications are well visible on the component location plan on Fig. 50. The connections of the 8-key keyboard and of the LCD controller are also shown on Fig. 50.


It is recommended that the CPU board is tested first, if possible, in a DSP computer and the described modifications are only applied to a 100% tested and working CPU board. In particular, the CPU board should be tested at higher clock frequencies to find any defective components. A 10MHz version of the MC68010 will usually work up to 15MHz clock frequency at room temperature, so a 12MHz clock crystal is a safe choice. The GPS or GLONASS software does not require such a high clock frequency, but the accuracy of some measurements is higher and the updating of the display is faster at higher clock rates.

4.12. 8-key keyboard

A portable GPS/GLONASS receiver requires a small keyboard to issue commands to the computer. Since a full ASCII keyboard is unpractical for a portable piece of equipment, a small 8-key keyboard was developed for portable receivers.


The circuit diagram of the 8-key keyboard is shown on Fig. 51. The 8 keys close towards ground, otherwise the input lines are held high by pull-up resistors. A priority encoder (74HC148) is used to encode the 8 keys into 3 bits. A double monostable (74HC4538) is used to generate the strobe pulse after a key is depressed.


The 8-key keyboard is assembled on a small single-sided printed circuit board shown on Fig. 52. This printed circuit board was designed to fit on the front panel of the receiver and carry eight square (12.7mmX12.7mm) pushbuttons. The location of the components is shown on Fig. 53. Due to the space constraints all of the components should have a low profile and small dimensions. The capacitors have a 2.5mm pin spacing and the resistors are installed horizontally. The eight 10kohm resistor network in a SIL package should be first soldered in place and then bent towards the circuit board. The 6-pin connector is installed on the back - solder side of the board!


The GPS/GLONASS receiver software only accepts ASCII characters from $30 to $37 as commands, corresponding to numerals 0 to 7. These can be generated by a standard ASCII keyboard with a parallel output or by suitably wiring the described 8-key keyboard. In particular, to obtain the codes between $30 and $37, the outputs D0, D1 and D2 should be wired to the corresponding inputs on the CPU board. In addition, D3, D6 and D7 should be connected to ground and D4 and D5 to +5V. All these connections, including the supply rails and the strobe signal, were already shown on Fig. 50.

4.13 LCD display module

The only practical display for a portable GPS/GLONASS receiver is a LCD module with built-in drivers. Such modules are available in many different sizes and shapes and may or may not be equipped with a display controller. LCD modules with a built-in controller are easy to use, since the interfacing to any microprocessor is very simple: it is identical to a parallel I/O port.

Most small dot-matrix alphanumeric LCD modules use the Hitachi HD44780 LCD controller. This integrated circuit has a built-in, extended ASCII character generator, a display area RAM including up to two rows of 40 characters each and all of the timing circuits to drive the LCD. Modules using the HD44780 controller may have a different number of characters per row or rows displayed, the total number of characters is however limited by the internal RAM to 80. Since the HD44780 SMD flat package has only 80 pins, additional LCD driver chips (HD44100) are used in most LCD modules.

A LCD module with two lines of 40 ASCII characters each was selected for the described GPS/GLONASS receiver. Such a LCD module includes the liquid-crystal display itself, one HD44780 LCD controller and four HD44100 LCD drivers. Further, the display module may include some form of illuminating the LCD, either EL foil or LED. The latter is recommended if the GPS/GLONASS receiver is to be used at night as well.

Although such display modules are available from several different manufacturers, they all have the same dimensions of the carrier printed circuit board: 182mm(width)X X33.5mm(height)X13mm(thickness) and the same 14-pin electrical connector. The pin numbers are usually marked on the printed-circuit board and the pin allocations are as follows:

pin  1    Vss    Ground
pin  2    Vdd    +5V supply
pin  3    Vo     LCD voltage, tap of the contrast control pot
pin  4    RS     Register Select, 0=instruction, 1=data
pin  5    R/W    Read/Write, 0=write, 1=read
pin  6    E      Enable, 0=inactive, 1=active
pin  7    DB0    LSB data, 8-bit bus
pin  8    DB1
pin  9    DB2
pin 10    DB3
pin 11    DB4    LSB data, 4-bit bus
pin 12    DB5
pin 13    DB6
pin 14    DB7    MSB data

EL or LED backlight may have two additional pins on the connector or solder pads on the printed-circuit board.

When LCDs are driven in time multiplex, the adjustment of the voltage applied to the LCD is critical to obtain a good contrast. A contrast control potentiometer is usually provided to adjust the best available contrast for a given viewing angle of the LCD. This potentiometer provides the Vo voltage to the LCD module. Modern LCD modules require operating voltages of less than 5V, so the resistor terminals can be conveniently connected to ground and to +5V while the tap is connected to the Vo input.

Due to the internal circuits of the LCD controller and driver chips, the internal LCD ground is Vdd (+5V). The voltage across the LCD equals the potential difference between Vdd and Vo. The current through the Vo terminal is very small, so a 10kohm potentiometer with a linear taper is sufficient for the LCD contrast control.

If using a LCD module with an EL foil backlight, a suitable power supply needs to be built. The EL foil usually requires a supply voltage of about 110V at about 500Hz. The EL foil behaves electrically as a lossy capacitor. The voltage across its terminals affects the amount of light produced while the frequency affects the colour of the light.


A suitable power supply is shown on Fig. 54 and includes a power oscillator (555), a step-up transformer and a few EMI filtering components. For 500Hz operation a conventional mains transformer with a laminated core can be used, either 220V/9V or 220V/6V, of course with the primary and secondary windings interchanged. A 1.2W or 1.5W transformer is usually the smallest available, although it is still quite large for this application.


The printed-circuit board for the EL foil supply is shown on Fig. 55 and the related location of components on Fig. 56. The power drain of the whole circuit is about 50mA from a 12VDC power supply, when the output is connected to the load. Since the oscillator feedback is taken from the output (pin 3 of the 555), some 555 ICs may not operate in a stable way in this circuit. In the latter case the solution is to increase the oscillator frequency by decreasing the 100nF capacitor.


Of course, a LED backlight is much easier to use and usually only requires a 5VDC supply.

4.14. Power supply & RESET circuit

The described GPS/GLONASS receiver is intended to be operated from a 12V battery, with the negative grounded. This supply voltage is common to all portable and mobile equipment. The analog circuits of the GPS/GLONASS receiver are already designed to operate from a +12V supply rail, since this voltage represents a convenient choice.

Of course, digital circuits require a +5V supply voltage. But besides the +5V supply there are other requirements. A GPS or GLONASS receiver should include a real-time clock that operates even when the receiver is powered down. Similarly, the almanac data including information about the available satellite orbits should be stored in the computer memory when the receiver is powered down. Finally, since the +5V power drain amounts to about one half of the total power drain of a GPS or GLONASS receiver, the +5V supply regulator should also have a good efficiency, especially in a portable receiver.


The requirements for the microcomputer power supply are therefore the same as for the DSP computer published in [1] and [2]. The original DSP computer power supply is however about 10 times too large for this application, so a scaled-down version is shown on Fig. 57. The latter includes a switching regulator from 12V to 5V, a memory (clock) backup battery and a very reliable RESET circuit.


The microcomputer power supply is built on a single-sided printed circuit as shown on Fig. 58. The corresponding location of components is shown on Fig. 59. All of the resistors, diodes and chokes are installed horizontally. All of the capacitors have a 5mm pin spacing. Several mounting holes and related pads are provided for different style NiCd batteries.


The power supply is designed for a 400mA to 500mA load on the +5V output. For this load the BD138 power switch does not require a heatsink yet and easily available "molded" chokes can be used in the switching regulator. In particular, a 100uH choke with the external dimensions of a 1/2W resistor will withstand a current of up to 200mA to 300mA, so two such chokes are used in parallel in the switching regulator.

The total power drain when using the described power supply and including the analog section, amounts to about 4W for a portable GPS receiver and to about 6W for a portable GLONASS receiver, both with the LCD backlight off.

4.15. GPS/GLONASS receiver module location

A GPS or GLONASS receiver includes both low-level RF signal amplification and processing and very noisy digital circuits, so the module location has to be selected carefully and some shielding is required in any case.

In the case of a GPS or GLONASS receiver operating as a peripheral for the DSP computer, the RF part of the receiver should be built in its own enclosure while the dedicated DSP hardware module is plugged in the computer bus. Of course it is assumed that the computer already has its own shielded enclosure.

The GPS-receiver RF part needs no additional internal shields among the three modules: RF, IF converter and IF amplifier. The GLONASS-receiver RF part is more complicated and requires some shielding. In particular, the GLONASS PLL synthesizer logic needs to be well shielded from the remaining modules: RF, IF converter, IF amplifier and PLL converter.

In the case of a stand-alone, portable GPS or GLONASS receiver it is of course desirable to have the complete receiver packaged in one single enclosure. It is suggested that enclosure is made of unpainted aluminum sheet to have a good electrical contact among the various parts. Such a container is made of a rectangular frame and two covers installed with self-locking screws. The frame has an additional internal plate that divides the internal volume in two sections shielded both from the outside and between themselves. One of the sections is used for the noisy digital circuits and the other for the low-level RF stages. "Interference-neutral" modules, like the keyboard or the power supplies may be installed in either section.

The suggested module location for a portable GPS receiver is shown on Fig. 60. The suggested dimensions are 200mm(width)X160mm(depth)X80mm(height). The internal plate is installed at a height of 30mm, so that the digital section gets a volume of 200mmX160mmX50mm (top) and the analog section gets a volume of 200mmX160mmX30mm (bottom). The internal plate is screwed on the frame on all four sides with many screws to ensure a good electrical shielding.





The two modules with 64-pole "eurocard" connectors are installed on a short bus "motherboard" with just two female connectors with the corresponding pins tied together. The bus can be made by cutting a piece of the DSP computer bus board or by simply installing the two connectors on a piece of an universal board with holes in a uniform 0.1" raster.

The connections between the analog and digital parts do not require feedthrough capacitors if they are routed carefully, away from sensitive or very noisy components. Sometimes it results useful to additionally ground the shields of coaxial cables when crossing the internal plate.

The suggested module location for a portable GLONASS receiver is shown on Fig. 61. The suggested dimensions are 240mm(width)X160mm(depth)X80mm(height). The internal plate is installed at a height of 30mm, so that the digital section gets a volume of 240mmX160mmX50mm (top) and the analog section gets a volume of 240mmX160mmX30mm (bottom). Like in the GPS RX the internal plate is screwed on the frame on all four sides. In addition there is a small shield between the RF module and the remaining modules in the analog part. On the other hand, in the GLONASS receiver the computer power supply is installed in the digital section, together with the PLL synthesizer logic.





* * * * *