3.6 KiB
title | author | date | categories | tags | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dev log: GPS receiver based on MAX2769 and Zynq 7010 FPGA | peter | 2024-10-02 20:10:44 +0800 |
|
|
🚧🚧 THIS PAGE IS NOT FINISHED 🚧🚧
Updates
2024-11-15: First PCB design
The openGNSS PCB is done! The tab extending down on the left side of the board is to provide a mounting point for the board to mount to the ebaz4205 board if the top mounting points cannot be used, since IREC regulations do not allow use of connectors as mechanical mounting.
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?
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
Looks like this generates a GPS baseband waveform OR it can generate the bits.
https://gge.ext.unb.ca/Resources/gpsworld.april93.pdf Observables (carrier phase, pseudorange)
https://descanso.jpl.nasa.gov/monograph/series2/Descanso2_S13.pdf Observables
ZYNQ platform
https://www.xilinx.com/support/answers/65240.html https://old.reddit.com/r/FPGA/comments/e5e8ia/be_aware_of_zynq_7020_arm_core_1_bricking_due_to/ Seems important for devboard