2024-10-06 18:11:20 +08:00
---
2024-10-06 18:30:17 +08:00
title: "Dev log: GPS receiver based on MAX2769 and Zynq 7010 FPGA"
2024-10-06 18:11:20 +08:00
author: peter
date: 2024-10-02 20:10:44 +0800
2024-10-06 18:30:17 +08:00
categories: [Electronics, Programming] # Blogging | Electronics | Programming | Mechanical | SelfHosting
tags: [rf, electronics, fpga, ebaz4205, max2769, zynq7010] # systems | embedded | rf | microwave | electronics | solidworks | automation | tip
2024-10-06 18:11:20 +08:00
# image: assets/img/2024-10-02-Dev-log-GPS-receiver/preview.png
---
2024-10-06 18:15:27 +08:00
## 🚧🚧 THIS PAGE IS NOT FINISHED 🚧🚧
2024-10-06 18:11:20 +08:00
## Notes:
https://github.com/iliasam/STM32F4_SDR_GPS?tab=readme-ov-file
https://habr.com/ru/articles/789382/
https://dsp.stackexchange.com/questions/92028/max2769-i-q-for-signal-acquisition-tracking
## Datasheet
> The MAX2769B features an on-chip ADC to digitize the
> downconverted GPS signal. The maximum sampling
> rate of the ADC is approximately 50Msps. The sampled
> output is provided in a **2-bit format (1-bit magnitude and
> 1-bit sign) by default** and also can be configured as a
> **1-bit or 2-bit** in both I and Q channels, or 1-bit, 2-bit, or
> 3-bit in the I channel only. The ADC supports the digital
> outputs in three different formats: the unsigned binary,
> the sign and magnitude, or the two’ s complement format
> by setting bits FORMAT in Configuration register 2. MSB
> bits are output at I1 or Q1 pins and LSB bits are output at
> I0 or Q0 pins, for I or Q channel, respectively. In the case
> of 3-bit, output data format is selected in the I channel
> only, the MSB is output at I1, the second bit is at I0, and
> the LSB is at Q1.
Surely two-bit correlation is the same process, just with more precision because of the additional bit?
2024-10-13 04:41:15 +08:00
## I and Q
This answer says we need both I and Q for acquisition
https://dsp.stackexchange.com/questions/92028/max2769-i-q-for-signal-acquisition-tracking
But the GPS document says
> The two L1 carrier components modulated by the two separate bit trains (C/A-code plus data and P(Y)-code
> plus data) shall be in phase quadrature (within ±100 milliradians) with the C/A signal carrier lagging the P
> signal by 90 degrees
Another confusing thing is the GPS doc says In phase is P(Y) xor D(t) while Quadrature is C/A xor D(t), but the MAX2769 seems to operate where I is the C/A code since that's the only component the STM32 based GPS receiver uses. However, the diagram in the MAX2769 seems to have Q be +90deg phase shift ahead of I, whereas in the GPS document C/A lags by 90deg behind P(y) so I in GPS doc is +90deg phase shift ahead of Q in gps doc, so i guess the receiver and the doc have opposite conventions?
## Signal generation
Use MATLAB
https://au.mathworks.com/help/satcom/ug/gps-waveform-generation.html#mw_rtc_GPSWaveformGenerationExample_52AA1397
Looks like this generates a GPS baseband waveform OR it can generate the bits.