AGGA-4 Support
AGGA-4 hardware
The AGGA-4 (Advanced GPS/GALILEO ASIC) is a radiation tolerant GNSS baseband ASIC capable of processing the modernized GPS and Galileo Signals. Due to its flexibility it is also able to process not only GPS and Galileo but also other GNSS systems like Glonass, Compass, etc. AGGA-4 also incorporates the processor, the communication interfaces and other support functions (e.g. FFT, CRC) inside the ASIC which simplifies the GNSS receiver board design.
The functional blocks are shown in the diagram below.
The GNSS Core (shown below) consists of 4 Input Modules (IM), one Power Level Detector (PLD) Module, two Beam Forming (DBF) Modules, a Time Base Generator (TBG), an Antenna Switch Controller (ASC) and 36 channels.
DMON supports the functional blocks on the AGGA-4 and the specific features below:
- System Visualisation
- Devices present and their state
- Register details/modify
- GNSS
- Configuration Blocks Display and Modify
- Interrupt Configuration
- Power Level
- Channel Configurations
- Overall display
- Set, Copy, Modify, Save and Load
- Dump observables to file
- FFT
- CRC
See below some example screenshots from the tool.
Main AGGA4 console
GNSS on AGGA4 has a lot of Configuration Registers. DMON identifies GNSS as AGGA4_GNSS_FE/CHS dummy device and logically AGGA4_GNSS_FR_END device (IM0, IM1, IM2, IM3 and PLD) and AGGA4_GNSS_CHS device (Channel Matrix, IC, Channels).
Power Level Detector window
Power Level Detector chart
DMON reads PLD Accumulation Registers and Displays as Bar Chart
Channel Matrix Window
Input Module window
Channel Control window
Channel Final Down Converter window
Channel Code Delay Line Unit window
Channel Code Generator Unit window
Channel Correlator Unit window
Channel Aiding Unit window
Channel GNSS DMA window
Channel Status window
Commands
The sections below describe the AGGA-4 commands. The table below is a summary of these commands.
Command | Description |
---|---|
gnss copy <nomem>[ch[#]..ch[n]/all] | copy config from ch# to other space separated channels/all if <nomem> used the RAM code not copied |
gnss [save/load] ch# file | Save/load Channel Configurations to File as xml |
gnss dump [start/stop] ch# file | Start/Stop dumping of Channel Observables to File |
gnss dump reset ch# | Reset dumping of Channel Observables to initial state |
gnss printreg ch [#] [RegName] | Display Registers/Register for GNSS Channel [number] |
gnss printreg cm [RegName] | Display Registers/Register for GNSS Channel Matrix |
gnss printreg ic [RegName] | Display Registers/Register for GNSS Interrupt Controller |
gnss printreg im [#][RegName] | Display Registers/Register for GNSS Input Module |
gnss printreg pld [RegName] | Display Registers/Register for GNSS POWER LEVEL DETECTOR |
gnss setreg ch [#] [RegName/FieldName][val] | Set Register/Bitfield for GNSS Channel [number] |
gnss setreg cm [RegName/FieldName][val] | Set Register/Bitfield for GNSS Channel Matrix |
gnss setreg ic [RegName/FieldName][val] | Set Register/Bitfield for GNSS Interrupt Controller |
gnss setreg im [#][RegName/FieldName][val] | Set Register/Bitfield for GNSS Input Module |
gnss setreg pld [RegName/FieldName][val] | Set Register/Bitfield for GNSS PLD |
gnss slave [ch[#] ch[n]/all] | Slave channel/channels from to/all to previous Channel |
fft <display> | Periodically checks FFT_Done bit and display results, <display> opens up graph panel |
fft [file in] <optional> | Processes input file in pairs of 128, if output file is omitted then results will be stored .out.csv added to end of [file in]. Possible optional arguments are <file out> <nohex,onlyhex> |
fft stop | Stops periodically polling |
crc alias [name][poly][init] <opt> | Creates new alias, option arguments are <xor> <revdata> <revrslt> |
crc alias display | Display list of aliases in current DMON session |
crc calculate [bin] <addr> | Calculates crc of bin file, addr argument sets starting address for file |
crc calculate [elffile] <sections> | Calculates crc of elf file, section argument allows calculation only on that section |
crc calculate [srec] | Calculates crc of srec file |
crc calculate [start][end]<init> | Calculates crc of a range of address, if init value is specified then that value will be written to CRCLFSR register before beginning. |
crc init [alias] | Initialises CRC device with values in alias |
crc init [ploy][init] <opt> | Initialises CRC device, optional arguments are <xor> <revdata> <revrslt> |
reset <software/gnss> | Reset system software or gnss software |
reset set <key> <value> | set the reset key <swen, swex, gnssen, gnssex> with value |
spwdebug <IP/port> <port> | Change debug link to SpaceWire port |
GNSS commands
DMON > gnss copy nomem ch0 ch1 Configurations from Channel 0 were copied to Channel 1 without RAM DATA DMON > gnss copy ch0 ch1 ch2 Configurations from Channel 0 were copied to Channel 1 Configurations from Channel 0 were copied to Channel 2
Or Alternatively Copy Dialog Window can be used
The user can select Channel, Configuration Registers and Values for exporting to xml file. This file can be loaded later for the same Channel or any other.
DMON > gnss save ch0 MyFile.xml Currently processing XML, please wait Successfully save configuration to C:\Projects\OCE\trunk\dmon_product\com.oce.dmon\MyFile.xml DMON > gnss load ch0 MyFile.xml Processing XML Initialising Registers Successfully initialised registers
Dialog to Save Channel configurations to xml file below.
Dialog to Save GNSS to xml file below.
Dialog to Save AGGA4 specific registers to xml file below.
Dialog to select xml configuration file to be imported below.
DMON > gnss printreg ch 0 AGGA4 GNSS CHANNEL 0 Registers 0xa0000000 channelctrl 0x00000000 0xa0000004 carrswfreq 0x00000000 0xa0000008 carrswshift 0x00000000 0xa000000c codeswfreq ….
DMON > gnss printreg ch 0 channelctrl GNSS Channel #0 Reg :: channelctrl = 0x00000000 Register Contents : 0x00000000 [ 0, 4]:InputSel : first bypass of DBF0 (IM 0) [ 5]:CarrSel : Local [ 6]:CodeSel : Local [ 7]:IntEpochSel : Local [ 8]:TimeBaseSel : Local
DMON > gnss printreg cm AGGA4 GNSS CHANNEL MATRIX Registers : 0xa0240000 chactivation0 0x00000001 0xa0240004 chactivation1 0x00000000 0xa0240008 dbfinputsel 0x00000000 0xa024000c epochclkdiv …
DMON > gnss printreg cm chactivation0 GNSS Channel Matrix Reg :: chactivation0 = 0x00000001 Register Contents : 0x00000001 [ 0]:Channel_0 : enabled [ 1]:Channel_1 : disabled [ 2]:Channel_2 : disabled [ 3]:Channel_3 : disabled [ 4]:Channel_4 : disabled [ 5]:Channel_5 : disabled [ 6]:Channel_6 ….
DMON > gnss printreg ic AGGA4 GNSS Interrupt Controller Registers : 0xa02c0000 gic_mask0 0x00000000 0xa02c0004 gic_mask1 0x00000000 0xa02c0008 gic_prio0 0x00000001 0xa02c000c gic_prio1 0x00000000 0xa02c0010 gic_pend0 0x00000000 0xa02c0014 gic_pend1 0x00000070 0xa02c0018 gic_clear0 0x00000000 0xa02c001c gic_clear1 0x00000000 0xa02c0020 gic_queuelow 0x0000003f 0xa02c0024 gic_queuehigh 0x0000003f 0xa02c0028 gic_queuestatus 0x00000000
DMON > gnss printreg ic gic_mask0 GNSS Interrupt Controller Reg :: gic_mask0 = 0x00000000 Register Contents : 0x00000000 [ 0]:Channel_0 : Pending Register [ 1]:Channel_1 : Pending Register [ 2]:Channel_2 : Pending Register [ 3]:Channel_3 : Pending Register [ 4]:Channel_4 : Pending Register [ 5]:Channel_5 …
DMON > gnss printreg im 0 AGGA4 GNSS Input Module_0 Registers : 0xa0250000 inputmodulectrl 0x00000000 0xa0250004 ddcmainphaseinc 0x00000000 0xa0250008 ddcmainfirquantthres 0x00000000 0xa025000c ddcauxphaseinc 0x00000000 0xa0250010 ddcauxfirquantthres 0x00000000 0xa0250014 dacontrolbitfielddefaultr 0x00000000
DMON > gnss printreg im 0 inputmodulectrl GNSS Input Module #0 Reg :: inputmodulectrl = 0x00000000 Register Contents : 0x00000000 [ 0, 1]:Mode : Input Format Converter Mode (IFC) [ 2, 3]:IFCFormat : Sign/Magnitude [ 4]:DDCMainInSel : local [ 5]:DDCAuxInSel : local
DMON > gnss printreg pld AGGA4 GNSS POWER LEVEL DETECTOR Registers : 0xa02b0000 pld5iinputsel 0x00000000 0xa02b0004 pld5ictrl 0x00000000 0xa02b0008 pldiqinputsel 0x00000000 0xa02b000c pldiqpreaccctrl 0x00000000 0xa02b0010 pldiqctrl 0x00000000 0xa02b0014 acc5iplusseven 0x00000000 0xa02b0018 acc5iplusfive 0x00000000 0xa02b001c acc5iplusthree …
DMON > gnss printreg pld pld5ictrl
GNSS Power Level Detector Reg :: pld5ictrl = 0x00000000 Register Contents : 0x00000000 [ 0,23]:AccTime : 0 [24]:SelectTrigger : latched after AccTime Samples
DMON > gnss setreg cm chactivation0 0xffffffff Value for Register chactivation0 set to 0xFFFFFFFF
DMON > gnss setreg cm chactivation0 Channel_0 0x0 Value for Register chactivation0 set to 0xFFFFFFFE
DMON > gnss slave ch1 Channel 1 was set as Slave
FFT commands
Creating FFT Task through the gui, start by clicking on the menu Tasks>>Configure Tasks.
Find FFT and click create task.
If you don’t enter an output file, then an output file will be generated in the input file directory with the same filename but suffixed with .csv.
The output type can be changed to have all (which includes the hex and float values) or just hex or float. All is set by default.
When the job is running, it will be located in the overview window, when it is done, it will be moved to the history tab. You will be able to see the time it took for the task to run as well as the result. You can click on the log icon to open the log window or alternatively clicking on the x icon deletes the task from history.
Here is the results from the FFT task, as you can see a csv suffix was added to the output file. As well as the results being displayed in the Inphase and Quad phase Panels you will also notice log information for this task.
You can also view the fft information via a line or bar graph by issuing the fft display command.
COMMANDS
fft <display> Periodically checks FFT_Done bit and display results, <display> opens up graph panel
DMON > fft Waiting for Done bit to be set
fft [file in] <optional> Processes input file in pairs of 128, if output file is omitted then results will be stored .out.csv added to end of [file in]. Possible optional arguments are <file out> <nohex|onlyhex>
DMON > fft C: /newline_sep_data_full.txt C: /newline_data_full_output.txt Starting batch processing for FFT Finished processing Batch Number: 1 Finished processing input file\s
DMON > fft C: /newline_sep_data_full.txt C: /newline_data_full_output.txt onlyhex Starting batch processing for FFT Finished processing Batch Number: 1 Finished processing input file\s
DMON > fft C: /newline_sep_data_full.txt C: /newline_data_full_output.txt nohex Starting batch processing for FFT Finished processing Batch Number: 1 Finished processing input file\s
DMON > fft C: /newline_sep_data_fIll.txt C: /newline_data_fill_output.txt Starting batch processing for FFT Finished processing Batch Number: 1 Finished processing Batch Number: 2 Finished processing input file\s
fft stop Stops periodically polling
DMON > fft stop Stopped FFT batch processing
CRC commands
You can create a CRC task by clicking on CRC in the dropdown menu and clicking create task. Here you will be able to set the different properties to be used for generating the CRC.
The results window shows what properties you used to generate the CRC as well as the result and log of the crc task.
COMMANDS
crc alias [name][poly][init] <opt> Creates new alias, option arguments are <xor> <revdata> <revrslt>
DMON > crc alias myAlias 0x3 0x4 0x5 1 1 Successfully added myAlias alias
crc alias display Display list of aliases in current DMON session
DMON > crc alias display Name Polynum Init FinalXOR RevIn RevRes crc16 0x0000A001 0x00000000 0x00000000 true true ccitt 0x00008408 0x0000FFFF 0x00000000 false false crc32 0xEDB88320 0xFFFFFFFF 0xFFFFFFFF true true myAlias 0x00000003 0x00000004 0x00000005 true true
crc calculate [bin] <addr> Calculates crc of bin file, addr argument sets starting address for file
DMON > crc calculate C: /binaryfileAGGA4.bin 0x40000024 Binary File Loading file from address: 0x40000024 Wrote bytes 0% Entry point: 0x40000024 There are no Sections in this file. Calculating CRC for Loaded file Starting CRC Polling CRC Polling complete Checksum is : 0xDCC7C62F