AGGA-4 Support

From dmon2
Jump to navigationJump to search

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.

AGGA4-BlockDiagram1.png

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.

AGGA4-BlockDiagram2.png

DMON supports the functional blocks on the AGGA-4 and the specific features below:

  1. System Visualisation
    1. Devices present and their state
    2. Register details/modify
  2. GNSS
    1. Configuration Blocks Display and Modify
    2. Interrupt Configuration
    3. Power Level
  3. Channel Configurations
    1. Overall display
    2. Set, Copy, Modify, Save and Load
    3. Dump observables to file
  4. FFT
  5. 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).

AGGA4-Console.png

Power Level Detector window

AGGA4-PLD.png

Power Level Detector chart

DMON reads PLD Accumulation Registers and Displays as Bar Chart

AGGA4-PLDchart.png

Channel Matrix Window

AGGA4-CHmatrix.png

Input Module window

AGGA4-IM.png

Channel Control window

AGGA4-CHcontrol1.png

Channel Final Down Converter window

AGGA4-FDC.png

Channel Code Delay Line Unit window

AGGA4-CDL.png

Channel Code Generator Unit window

AGGA4-CGU.png

Channel Correlator Unit window

AGGA4-Correlator.png

Channel Aiding Unit window

AGGA4-CHaiding.png

Channel GNSS DMA window

AGGA4-GNSSdma.png

Channel Status window

AGGA4-CHstatus.png

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

AGGA4-CHcopy.png

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.

AGGA4-CHsave.png


Dialog to Save GNSS to xml file below.

AGGA4-CHexport.png

Dialog to Save AGGA4 specific registers to xml file below.

AGGA4-CHexport1.png

Dialog to select xml configuration file to be imported below.

AGGA4-CHimport.png

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.

AGGA4-FFTtasks.png

Find FFT and click create task.

AGGA4-FFTtasks1.png

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.

AGGA4-FFTconfig.png

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.

AGGA4-FFTconfig1.png

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.

AGGA4-FFTtasks2.png

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.

AGGA4-FFTresults.png

You can also view the fft information via a line or bar graph by issuing the fft display command.

AGGA4-FFTline.png


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.

AGGA4-CRCconfig.png

AGGA4-CRCtask.png

The results window shows what properties you used to generate the CRC as well as the result and log of the crc task.

AGGA4-CRCresults.png


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