• Fault-tolerant SPARC V8 processor with 31 register
windows, 192KiB EDAC protected tightly coupled
memory and support for reduced instruction set.
• Double precision IEEE-754 floating point unit
• Advanced on-chip debug support unit
• Memory protection units
• 8-bit external PROM/SRAM interface with BCH EDAC
protection
• Boot from external SRAM/PROM, SPI or I
2
C memory
protected by EDAC and dual memory redundancy
• SpaceWire interface with time distribution support
• SPI for Space master and slave interface
• MIL-STD-1553B interface
• CAN 2.0B controller interface
• PacketWire with CRC acceleration support
• On-chip 12-bit DAC and two 11-bit ADC
• Programmable PWM interface
• UARTs, SPI, I
2
C, GPIO, Timers with Watchdog, Inter-
rupt controller, Status registers, UART debug, etc.
• Configurable I/O switch matrix
Floating
Point
Unit
Local
Dual-port
Instruction
RAM
Main bus
FTMCTRL
UART
I2CMST /
I2CSLV
SPICTRL
GRGPIO
GRPULSE
GRPWM
On-chip
LDO
Integer
Unit
AMBA
Interface
On-chip
Oscillator
PLL
Debug
Support
Unit
Local
Dual-port
Data
RAM
Memory
Scrubber
SPIMCTRL
IRQ Control
Timers
AHBSTAT
GRADCDAC
On-chip DAC
On-chip ADC
Brownout
Detector
Power-on
reset
LEON3
Statistics
Unit
Debug bus
DMA bus
AHB2AHB
Bridge
AHBROM
MEMPROT
CLKGATE
GPREG
LSTAT
UART
Dbg Link
AHB2AHB
Bridge
AHB
Trace
DMA
Controller
APBCTRL
Bridges
1553B
SpaceWire
I2C to AHB
SPI to AHB
GRPWRX
(MAP)
GRPWTX
GRCAN
AHB
UART
Description
The GR716 device is a fault-tolerant LEON3
SPARC V8 processor with various communication
interfaces and on-chip ADC, DAC, Power-onReset, Oscillator, Brown-out detection, LVDS
transceivers, regulators to support single 3.3V
supply, ideally suited for space and other high-rel
applications.
Specification
• System frequency up-to 50 MHz
• SpaceWire links up-to 100 Mbps
• CQFP132 hermetically sealed ceramic package
• Total Ionizing Dose (TID) up to 100 krad (Si)
• Single-Event Latch-up Immunity (SEL) to LET
> 118 MeV-cm
• Single-Event Upset (SEU) below 10
2
mg
-6
errors per
TH
device and day in space environment (TBC)
• Support for single 3.3V supply
Applications
The GR716 microcontroller is an advanced microcontroller, targeting high reliability space and aeronautics applications.
Support for many different standard interfaces makes
the GR716 microcontroller ideal for supervision, monitoring and control in a satellite, such as:
• propulsion system control
• sensor bus control
• robotics applications control
• simple motor control
• mechanism control
• power control
• particle detector instrumentation
• radiation environment monitoring
• thermal control
• antenna pointing control
• AOCS / GNC (Gyro, IMU, MTM)
• remote terminal unit control
• simple instrument control
• wireless networking
Availability
The GR716 microcontroller is currently available as engineering samples. Contact Cobham Gaisler for information on flight model schedule.
GR716-DS-UM, May 2019, Version 1.29www.cobham.com/gaisler
1.3Updates and feedback.............................................................................................................................. 9
3.2Configuration for flight ......................................................................................................................... 63
3.3Complete signal list ............................................................................................................................... 64
4.10Clock gating unit ...................................................................................................................................69
4.11Debug AHB bus clocking......................................................................................................................69
16.2LEON3 integer unit .............................................................................................................................120
16.3Local instruction and data RAM .........................................................................................................128
18.4Loop back mode .................................................................................................................................. 143
25.4Status and monitoring.......................................................................................................................... 214
33.4Time-code distribution ........................................................................................................................ 301
GR716-DS-UM, May 2019, Version 1.298www.cobham.com/gaisler
GR716
1Introduction
1.1Scope
This document is the advanced data sheet and user’s manual for the GR716 LEON3FT microcontroller. The GR716 microcontroller has been developed in an activity initiated by the European Space
Agency under ESTEC contract 40001117749/14/NL/AK.
1.2Data sheet limitations
Note that this document is an advanced data sheet:
•Advanced data sheet - Product in development
•Preliminary data sheet - Shipping prototype
•Data sheet - Shipping space-grade product
1.3Updates and feedback
Feedback can be sent to:
Cobham Gaisler AB support: support@gaisler.com
1.4Software support
The GR716 LEON3FT microcontroller design is supported by standard toolchains provided by
Cobham Gaisler. Toolchains can be downloaded from http://www.cobham.com/gaisler.
1.5Reference documents
[AMBA] AMBA Specification, Rev 2.0, ARM Limited
[GRLIB]GRLIB IP Library User's Manual, Cobham Gaisler, www.cobham.com/gaisler
[GRIP]GRLIB IP Core User's Manual, Cobham Gaisler, www.cobham.com/gaisler
[SPARC]The SPARC Architecture Manual, Version 8, SPARC International Inc.
[LEON-REX] LEON-REX Instruction Set Extension, Cobham Gaisler
[GRMON3]GRMON3 User's Manual, Cobham Gaisler
GR716-DS-UM, May 2019, Version 1.299www.cobham.com/gaisler
GR716
1.6Document revision history
Change record information is provided in table 1.
Table 1. Change record
VersionDateNote
1.29May 2019First public release
GR716-DS-UM, May 2019, Version 1.2910www.cobham.com/gaisler
GR716
1.7Acronyms
Table 2. Acronyms
AcronymComment
AHBAdvanced High-performance bus, part of [AMBA]
AMBAAdvanced Microcontroller Bus Architecture
APBAdvanced Peripheral Bus, part of [AMBA]
BCHBose–Chaudhuri–Hocquenghem, class of error-correcting codes
CANController Area Network, bus standard
CPUCentral Processing Unit, used to refer to one LEON4 processor core.
DMADirect Memory Access
DSUDebug Support Unit
EDACError Detection and Correction
FIFOFirst-In-First-Out, refers to buffer type
FPUFloating Point Unit
Gb
GB
GiB
Gigabit, 10
Gigabyte, 10
Gibibyte, gigabinary byte, 2
9
bits
9
bytes
30
bytes, unit defined in IEEE 1541-200
I/OInput/Output
ISRInterrupt Service Routine
JTAGJoint Test Action Group (developer of IEEE Standard 1149.1-1990)
kB
KiB
Mb, Mbit
MB, Mbyte
MiB
Kilobyte, 10
Kibibyte, 2
Megabit, 10
Megabyte, 10
Mebibyte, 2
3
bytes
10
bytes, unit defined in IEEE 1541-2002
6
bits
6
bytes
20
bytes, unit defined in IEEE 1541-2002
PROMProgrammable Read Only Memory
RAMRandom Access Memory
SEESingle Event Effects
SEL/SEU/
Single Event Latchup/Upset/Transient
SET
SPARCScalable Processor ARChitecture
SWSoftware
UARTUniversal Asynchronous Receiver/Transmitter
GR716-DS-UM, May 2019, Version 1.2911www.cobham.com/gaisler
GR716
1.8Definitions
This section and the following subsections define the typographic and naming conventions used
throughout this document.
1.8.1Bit numbering
The following conventions are used for bit numbering:
•The most significant bit (MSb) of a data type has the leftmost position
•The least significant bit of a data type has the rightmost position
•Unless otherwise indicated, the MSb of a data type has the highest bit number and the LSb the
1.8.2Radix
The following conventions is used for writing numbers:
•Binary numbers are indicated by the prefix "0b", e.g. 0b1010.
•Hexadecimal numbers are indicated by the prefix "0x", e.g. 0xF00F
•Unless a radix is explicitly declared, the number should be considered a decimal.
lowest bit number
1.8.3Data types
Byte (BYTE)8 bits of data
Halfword (HWORD)16 bits of data
Word (WORD)32 bits of data
GR716-DS-UM, May 2019, Version 1.2912www.cobham.com/gaisler
GR716
1.9Register descriptions
An example register, showing the register layout used throughout this document, can be seen
in table 3. The values used for the reset value fields are described in table 4, and the values
used for the field type fields are described in table 5. Fields that are named RESERVED,
RES, or R are read-only fields. These fields can be written with zero or with the value read
from the same register field.
<Reset value for EF3><Reset value for EF2><Reset value for EF1><Reset value for EF0>
<Field type for EF3><Field type for EF2><Field type for EF1><Field type for EF0>
31: 24Example field 3 (EF3) - <Field description>
23: 16Example field 2 (EF2) - <Field description>
15: 8Example field 1 (EF1) - <Field description>
7: 0Example field 0 (EF0) - <Field description>
Table 4. Reset value definitions
ValueDescription
0Reset value 0.
1Reset value 1. Used for single-bit fields.
0xNNHexadecimal representation of reset value. Used for multi-bit fields.
0bNNBinary representation of reset value. Used for multi-bit fields.
NRField not reset
*Special reset condition, described in textual description of the field. Used for example when reset
value is taken from a pin.
-Don’t care / Not applicable
Table 5. Field type definitions
ValueDescription
rRead-only. Writes have no effect.
wWrite-only. Used for a writable field in a register where the field’s read-value has no meaning.
rwReadable and writable.
rw*Readable and writable. Special condition for write, described in textual description of field.
wcWrite-clear. Readable, and cleared when written with a 1
casReadable, and writable through compare-and-swap. Only applies to SpaceWire Plug-and-Play regis-
ters.
GR716-DS-UM, May 2019, Version 1.2913www.cobham.com/gaisler
GR716
2Architecture
Floating
Point
Unit
Local
Dual-port
Instruction
RAM
Main bus
FTMCTRL
UART
I2CMST /
I2CSLV
SPICTRL
GRGPIO
GRPULSE
GRPWM
On-chip
LDO
Integer
Unit
AMBA
Interface
On-chip
Oscillator
PLL
Debug
Support
Unit
Local
Dual-port
Data
RAM
Memory
Scrubber
SPIMCTRL
IRQ Control
Timers
AHBSTAT
GRADCDAC
On-chip DAC
On-chip ADC
Brownout
Detector
Power-on
reset
LEON3
Statistics
Unit
Debug bus
DMA bus
AHB2AHB
Bridge
AHBROM
MEMPROT
CLKGATE
GPREG
LSTAT
UART
Dbg Link
AHB2AHB
Bridge
Figure 1. GR716 block diagram
AHB
Trace
DMA
Controller
APBCTRL
Bridges
1553B
SpaceWire
I2C to AHB
SPI to AHB
GRPWRX
(MAP)
GRPWTX
GRCAN
AHB
UART
The microcontroller is a single core LEON3FT SPARC V8 processor, with advanced interface protocols, that has been optimized for real-time systems and deterministic software execution. Features
such as SPARC V8E Alternate Window Pointer, interrupt zero jitter latency, SPARC V8E multiply
step instructions and the possibility to run software (including interrupt handlers) from local RAM are
supported to increase the determinism and responsiveness in the system. The LEON-REX instruction
set extension is also supported by the microcontroller and is further described in [LEON-REX].
The architecture is centered around multiple instances of the AMBA Advanced High-speed Bus
(AHB), to which the LEON3FT processor and other high-bandwidth units are connected. Low bandwidth peripherals/functions are connected to the AMBA Advanced Peripheral Bus (APB) which is
accessed through an AHB to APB bridge. The use of multiple processor buses also enables non-intrusive debugging and the possibility to have direct access to on-board memory without interrupting or
involving the LEON3FT processor.
64 external CMOS pins and six LVDS transceivers are configurable from software via configuration
registers. Pre-defined pin configurations are defined in the boot software and can be enabled by using
pull-up/pull-down resistors on external pins during reset. Pre-defined configuration of external pins
are useful in cases when the microcontroller should boot from external memories or remote controlled
via SpaceWire, UART, SPI or I2C after reset. The program controlling the microcontroller needs to
set appropriate direction and functionality on all pins after reset depending on the environment that
the microcontroller is used in. On-chip LVDS transceivers for SpaceWire and SPI for Space and dedicated pins for external SPI boot ROM boot are available and can optionally be used.
The microcontroller has a high level of integrated analog functions. Analog function integrated onchip includes Analog to digital converters, Brown out detection, Crystal Oscillator, Digital to Analog
Converters, Power-on and reset functionality and Linear Voltage Regulators for single 3.3V supply.
GR716-DS-UM, May 2019, Version 1.2916www.cobham.com/gaisler
GR716
2.1Key features
•Core
•Memories
-Fault-tolerant SPARC V8 processor with 31 register windows and support for LEONREX.
-Double precision IEEE-754 floating point unit.
-Memory protection units with 8 zones and individual access control of APB peripherals
for memory protection.
-Advanced on-chip debug support unit with trace buffers and statistic unit for software profiling.
-Single cycle instructions execution and data fetch from tightly coupled memory.
-Deterministic instruction execution and interrupt latency.
-192KiB EDAC protected tightly coupled memory with single cycle access from processor
and ATOMIC bit operations.
-Embedded ROM with boot loader for initializing and remote access.
-Dedicated SPI memory interface with boot ROM capability.
-I2C memory interface with boot ROM capability.
-8-bit SRAM/ROM (FTMCTRL) with support up to 16 MB ROM and 256 MB SRAM.
-Support for package option with embedded SRAM/PROM (FTMCTRL).
-Scrubber with programmable scrub rate for all embedded memories and external PROM/
SRAM and SPI memories.
•System
-On-chip voltage regulators for single supply support. Capability to sense core voltage for
trimming of the embedded voltage regulator for low power applications.
-Power-on-reset, brownout detection and dual watchdogs for safe operation. External reset
signal generation for reseting companion chips.
-Crystal oscillator support.
-PLL for System and SpaceWire clock generation. In-application programming of system
clock and peripheral clocks. System and SpaceWire clocks switches glitch free.
-Low power mode and individual clock gating of functions and peripherals.
-Temperature and core voltage sensor.
-External precision voltage reference for precision measurement.
-Four programmable DMA controllers with up to 16 individual channels. DMA transfers
can be triggered on events such as interrupts or bits/register changing value.
-Timer units with seven 32-bit timers including watchdog.
-Multiple bus structures for non-intrusive debug, DMA transfers and memory scrubbers.
-Atomic access support for all APB registers (AND, OR, XOR, Set&Clear).
GR716-DS-UM, May 2019, Version 1.2917www.cobham.com/gaisler
GR716
-Support for NVRAM (SRAM and/or PROM) embedded in package. Support for software
boot and execution from embedded RAM for future package options.
-Peripheral access control.
-Embedded trace and statistics unit for profiling of the system.
•Peripherals
-SpaceWire with support for RMAP and Time Distribution Protocol.
-SPI4SPACE - hardware support for SPI protocol 0,1 and 2 in HW for SPI for SPI4SPACE.
-Two I2C master/slave serial ports.
-PacketWire interface.
-PWM with up to 16 channels. PWM clock support up to 200 MHz.
-Up to 64 general purpose input and outputs (GPIO) with external interrupt capability,
pulse generation and sampling.
-Four single ended Digital to Analog Converters (DAC), 12-bit at 3MS/s.
-Four differential or eight single ended Analog to Digital Converters (ADC) 11-bit at
200KS/s with programmable pre-amplifier and support for oversampling. Dual sample and
hold circuit integrated for simultaneously sampling.
-External ADC and DAC support up to 16-bit at 1MS/s.
•I/O
-Configurable I/O selection matrix with support for mixed signals, internal pull-up/pulldown resistors.
-LVDS transceivers for SpaceWire or SPI4SPACE.
-Dedicated SPI boot ROM support for configuration.
•Supply
-Single 3.3V±0.3V supply or separate Core Voltage 1.8V±0.18V, I/O voltage 3.3V±0.3V.
•Radiation tolerance
-Technology: 180 nm process, UMC Taiwan
-Library: DARE+ Library version 5.5, IMEC
-TID: up to 100 Krad(Si)
-SEL: > 118 MeV-cm2/mg
-SEU: Proven tolerance with hardened flip-flops and error corrections on all on-chip and
external memories
•Package
-132-lead CQFP, 0.635 mm pitch, 24mm x 24mm, hermetically sealed with flat pins and
insulating lead-frame for customer trim and form.
•Software
-Supported by standard tools-chains and debug tools provided by Cobham Gaisler. Toolchains, simulators and debug software is available at www.cobham.com/gaisler.
GR716-DS-UM, May 2019, Version 1.2918www.cobham.com/gaisler
GR716
•Boot ROM and boot options
-Remote boot directly via SpaceWire, UART, SPI or I2C.
-Direct software execution from onchip RAM, external SRAM, PROM or SPI memory.
-Direct software execution from in package embedded memory.
-Application Software Container (ASW) for boot software integrity check.
-Boot via ASW from external SRAM, PROM, SPI memory or I2C memory.
-Boot from redundant memory.
-Fast boot option.
•System configuration
-Reset and boot status.
-Individual reset and clock control for digital and analog peripherals.
-Remote reset and boot control.
-Clock source and divide control for the system, SpaceWire, SPI4S, ADC, DAC, 1553 and
PWM clock domain.
-Support for external system reset.
-Support for external clock source for the system, SpaceWire, SPI4S, 1553 and PWM.
-Automatic oscillator shutdown if oscillator not used.
-Individual programmable brown-out levels.
-Protection for erroneous I/O configuration during power-up and power-down.
-Programmable LDO output level for low power mode.
GR716-DS-UM, May 2019, Version 1.2919www.cobham.com/gaisler
GR716
AHBSTAT
Onchip
ADC &
DAC
Bridge
Bridge
BridgeBridgeBridge
Debug
Unit
(DSU)
I2C
DMA AMBA AH B
AMBA APB 0
Memory
Controller
Serial
Debug
Link
RS232
I2C
SPI
1553 A/B
Mil-1553B
BC/RT/MT
SpaceWire
Links
RMAP
CAN
2.0
LVDS /
LVTTL
CAN N/R
DMA
Controller
I/O Port
LEON3FT
SPARC V8
Mul
Trace
64kB
D-ram
FPU
PacketWire
LVDS /
LVTTL
SPI
GPIO
External
ADC &
DAC
PWM
PWM
UART
RS232
Config &
Status
DMA
Controller
Scrub &
ahbstat
AMBA
128kB
I-ram
REX
Main AMB A AHB
Memory
Prot
Embeeded
Boot ROM
Bridge
IrqCtrl &
Timers
Onchip
ADCDAC
Bridge
SPI2AHB
SPI
I2C2AHB
I2C
SPI4S
SPI
Memory
Controller
Scrubber Bus
PacketWire
Debug Control
Reset /
Clock
Reset /
Watchdog
Clock
DBG AMBA
BO
POR
BO
LDO
NVRAM
Controller
AMBA APB 1
Ext
ADC
SpacWire
TDP
AHBUART
RS232
AMBA APB 2
SPI
Memory
Ext
PROM/SRAM
Memory
NVRAM
AMBA APB 3
Status
and
Control
2.2Digital Architecture Overview
The system is built around three 32-bit AMBA AHB buses; one 32-bit Main AHB bus, one 32-bit
DMA AHB buses and one 32-bit Debug AHB bus. The main bus connects the LEON3FT core with
all other peripheral cores in the design as well as the external memory controllers. Several peripherals
are connected through AMBA AHB/APB bridges where one of the bridges is integrated with the
DMA controller.
The debug AMBA AHB bus connects a UART serial debug communications link to the debug support unit and also to the rest of the system through an AMBA AHB bridge.
Figure 2. Simplified architecture and functional block diagram of the microcontroller
2.2.1Processor core and memory subsystem
The microcontroller implements a LEON3FT 32-bit processor core conforming to the IEEE-1754
(SPARC V8) architecture. The microcontroller is designed for embedded applications, combining
high performance with low complexity and low power consumption. The LEON3FT core has the following main features: 7-stage pipeline with Harvard architecture, hardware multiplier and divider and
on-chip debug support. The LEON3FT processor is enhanced with fault tolerance against SEU errors.
The fault tolerance is focused on the protection of the on-chip RAM, processor register file and protection of external memory interfaces.
The LEON3FT integer pipeline is implemented with 31 register windows, SEU protection of register
file with zero impact on software timing, and hardware multiply and divide units. The multiplier is a
16x16 hardware multiplier that is iterated four times. Floating-point operations are supported by integration of a hardware floating-point unit (GRFPU-lite).
Memory protection units are located on the AMBA system bus and on AMBA DMA bus. Each protection unit monitors access on the AHB bus. When an access is made to a protected area then the protection unit will assert a signal to the memory controller that will annul the operation and respond to
the AMBA access with an AMBA ERROR response. Four areas can be protected on the system bus
and four areas can be protected on the DMA bus.
Exclusive write permission can be enforced for individual APB peripherals to protect interfaces from
erroneous writes during normal operations.
GR716-DS-UM, May 2019, Version 1.2920www.cobham.com/gaisler
GR716
To protect tightly coupled instruction and data memory directly connected to the processor core from
software the LEON3FT hardware watchpoints (located within the processor integer unit) can function
as memory protection registers for both the instruction and data RAM.
Several features are supported in the architecture in order to enhance it for embedded microcontroller
applications:
•Support for SPARC V8E write partial %psr
•Support for SPARC V8E Alternative Window Pointer
•Support of the SPARC V8E Multiply step instructions
The microcontroller program execution is deterministic due to the microcontroller being cache-less,
and AMBA accesses made by the processor being unaffected by other AMBA masters in the microcontroller. The processor uses separate EDAC protected instruction and data memories with fixed
latencies. The instruction memory latency is 1 system clock and the delay for the data memory is 1
system clock. The local instruction and data memory in the system have the same latency and behaviour in the corrected as in the uncorrected case. This also applies to the CPU, so dynamic SEU handling schemes such as the LEON3FT pipeline restart on error options is not be used.
The microcontroller has 64 KiB of shared data RAM and 128 KiB of tightly coupled instruction memory connected to the processor. The tightly coupled instruction and data RAM can be accessed via the
AMBA buses. This AMBA access can be used to upload new software into the instruction memory or
read/write data to/from any AMBA master in the system. The access to the data memory will not
affect or delay any access made by the processor on the AMBA bus.
The processor or any AMBA master can access the external PROM/SRAM or SPI memory controller
for program execution or reading/writing data. The external SRAM memory can be protected by the
scrubber located on the main system bus. The scrubber connected to the main system bus will block
access for the processor to the external memories during scrub execution. The scrub rate can be configured and should be set to an acceptable rate for the mission. The scrubber access will not block the
AMBA bus since masters and slaves on the main system bus support split transactions.
GR716-DS-UM, May 2019, Version 1.2921www.cobham.com/gaisler
GR716
2.2.2DMA controller
The microcontroller has four parallel DMA controllers. The GRDMAC core provides a flexible direct
memory access controller. The DMA controller can perform burst transfers of data between AHB and
APB peripherals at aligned or unaligned memory addresses. The GRDMAC core has multiple AHB
master interfaces for access to AHB peripheral bus and direct access to all APB slaves. The GRDMAC is able to perform programmable sequences of data transfers between any slaves in AMBA
address space. The IP core is able to transfer data between peripherals and memory and between
memory areas. If the accessed memory is internal or external does not matter, as long as the memory
is mapped into AMBA address space reachable from the AHB bus where the DMA controller is
mapped.
The DMA controller configuration registers are accessible through an APB interface. Each DMA controller can be flexibly configured by means of two descriptor chains residing in main memory: a
Memory to Buffer (M2B) chain and a Buffer to Memory (B2M) chain. Each chain is composed of a
linked list of descriptors, where each descriptor specifies an AHB address and the size of the data to
read/write, supporting a scatter/gather behavior.
Once enabled, the DMA controller will proceed in reading the descriptor chains, then reading memory mapped addresses specified by the M2B chain and filling its internal buffer. It will then write the
content of the buffer back to memory-mapped addresses by elaborating the B2M descriptor chain.
The DMA controller supports a simplified mode of operation, with only one channel. In this mode of
operation only one descriptor is present for each of the M2B and B2M chains. These two descriptors
are written directly in the core's register via APB.
The DMA controller will offload the CPU and provide DMA capabilities to IP cores in the microcontroller design that do not have an internal DMA engine. The DMA controller can be programmed to
initiate DMA transfers on events, such as interrupts, to the GRDMAC core to achieve timely readouts
of values. An example of use can be found the detailed description of the DMA controller in section
28.
2.2.3Interrupt handling
The microcontroller supports interrupt time stamping and interrupt handling mechanism to ensure that
a fixed number of clock cycles occurs between the assertion of an interrupt and the processor's jump
to the trap table. Depending on the software application, several types of time stamping can be of
interest:
•Timestamp when interrupt line is raised from peripheral IP core. This time is of particular importance when time needs to be synchronized with an external event.
•Timestamp when processor acknowledges the interrupt. This stamp is primarily of interest in system characterization where users may want to measure the time it takes for the processor to divert
execution flow to the interrupt service routine after the processor has discovered the pending
interrupt.
•Timestamp when software enters ISR. This timestamp is typically taken by software by reading a
timer register when the ISR is entered.
Interrupt time stamping is controlled via the Interrupt Timestamp Control register(s) described in section 40. Each Interrupt Timestamp Control register contains a field (TSTAMP) that contains the number of timestamp register sets that the core implements. A timestamp register sets consist of one
Interrupt Timestamp Counter register, one Interrupt Timestamp Control register, one Interrupt Assertion Timestamp register and one Interrupt Acknowledge Timestamp register.
Software enables time stamping for a specific interrupt via an Interrupt Timestamp Control Register.
When the selected interrupt line is asserted, software will save the current value of the interrupt timestamp counter into the Interrupt Assertion Timestamp register. When the processor acknowledges the
interrupt, the Interrupt Timestamp Control register will be set and the current value of the timestamp
GR716-DS-UM, May 2019, Version 1.2922www.cobham.com/gaisler
GR716
counter will be saved in the Interrupt Acknowledge Timestamp Register. The difference between the
Interrupt Assertion timestamp and the Interrupt Acknowledge timestamp is the number of system
clock cycles that was required for the processor to react to the interrupt and divert execution to the
trap handler.
2.2.4Reset and software boot
The reset default behavior for all included cores, except the LEON3FT processor, is to enter an idle
state upon reset. The internal reset signal will be asserted as a result of power-on. In the idle state the
cores do not initiate any transactions nor keep any output signals in an idle state. This is of particular
concern for bidirectional signals to prevent contention.
The LEON3FT processor will normally start executing from a predefined start address 0x0000000 at
reset. The start of execution can be prevented by assertion of an external break signal. If the break signal is asserted then the processor will enter power-down mode after reset. This will allow software
upload from an external entity that can then start the processor at a dynamically specified address, by
writing to the interrupt controller's register interface. Processor can optionally be forced via bootstraps to be forced to start from external PROM, SRAM, MRAM, SPI or I2C memory. This mode
could be used if the application requires separate boot code than the one existing in the LEON3FT
microcontroller boot ROM. Boot addresses for external PROM and SPI memory are defined in section 2.11.
A boot ROM application is placed at address 0x00000000 and is normally executed after reset. The
boot application supports system functions controllability via external bootstrap registers. The application always starts executing after reset and checking the value of external bootstrap signals. Based
on these signals the processor performs tasks such as load software to internal RAM from an external
memory device, enable remote access via SpaceWire, SPI, UART or I2C. See section 3.1 for more
information about bootstrap options for the boot ROM.
In the case of boot from I2C, the boot ROM application will copy the content of the I2C into the onboard memory and start to execute the software setup by application.
A protocol to guard against the system trying to boot using a corrupt boot image is implemented using
a protected image format containing an image header, boot code, data checksum and header checksum, see section 51. Extra protection can be enabled via bootstraps by reading identical images from
redundant memories but needs to be configured before booting via an external boot strap.
Self-test and diagnostic test of the CPU and internal RAMs can be enabled via bootstraps. The internal ROM will check for Stuck-At and Transition errors in local instruction and data ram. Stuck-At or
Transition error(s) will result an error reported in the boot report, see 51.2.5.
2.2.5Direct boot from external memory
Custom boot options are supported via bootstrap options to bypass the internal boot ROM code. The
LEON3FT microcontroller can be configured to boot directly from external ROM, external SRAM,
external SPI Memory or internal NVRAM in package (GR716 with internal NVRAM is currently not
available).
2.2.6Atomic access
The microcontroller supports atomic bit and bit field access for all APB peripherals and in internal
data memory when accessed from the LEON3FT processor. The atomic access is supported via
address mirrors of the peripheral and local data ram. The microcontroller supports the following
atomic operations:
•Configuration register will 'or' data written from processor with contents of control register
•Configuration register will 'and' data written from processor with contents of control register
•Configuration register will 'xor' data written from processor with contents of control register
GR716-DS-UM, May 2019, Version 1.2923www.cobham.com/gaisler
GR716
•Configuration register will set and cleared using a double store from the processor written from
the processor.
The actual bit field operation is performed in the APB bridge and in the local on-chip data RAM and
will have no impact on the instruction execution or delay of data fetch. Atomic accesses are further
described in section 2.12.
2.2.7Remote access and control
The microcontroller can be accessed and controlled by an external control unit via SpaceWire
(RMAP), UART, SPI or I2C without using processor support. Full access, except for debug features
on the debug AMBA bus, will be granted to SpaceWire, UART, SPI or I2C if enabled at startup via
bootstraps after reset:
•SpaceWire: Remote Memory Access Protocol (RMAP) provides full remote access to the entire
AMBA address space of the microcontroller. See section for GRSPW2 for more information
•UART: Support for reading and writing to register via special protocol over UART provides full
remote access to the entire AMBA address space of the microcontroller. See section for
AHBUART for more information
•SPI: Support for reading and writing to register via special protocol over SPI provides full
remote access to the entire AMBA address space of the microcontroller. See section for
SPI2AHB for more information
•I2C: Support for reading and writing to register via special protocol over I2C provides full
remote access to the entire AMBA address space of the microcontroller. See section for
I2C2AHB for more information
All the communication interfaces above can be implemented to be functional directly after the microcontroller leaves reset, no initialisation from the processor is required. The communication links can
also be disabled by the processor, a feature that can be required for safety.
When debugging the microcontroller, the DSU is used to load software and initiate the program
counter. In the case when new software is remotely updated via SpaceWire, UART, SPI or I2C, a special feature in the interrupt handler is implemented to restart the system and to start execution of new
software. For more information see section 40.2.7 to 40.2.9.
2.2.8Pin sharing
A I/O switch matrix allows most of the GR716 microcontroller pins functionality to be configurable
and to be shared between several peripherals. The I/O switch matrix provides a flexible solution
where enabling one core changes the I/O switch matrix so that the current core gets connected to I/O
pads.
The microcontroller comprises on-chip ADC/DAC. The on-chip ADC/DAC requires special mixed
digital and analog I/Os. The mixed digital and analog I/O is controlled via configuration registers and
needs to be set to analog mode when an ADC or DAC is going to be used.
SPI4SPACE supports on-chip LVDS transceivers and CMOS I/Os. The redundant SPI4SPACE channel can be accessed via CMOS pins and the primary SPI4SPACE channel is accessed via on-chip
LVD S.
2.2.9Integrated ADC and DAC
The ADC digital control logic supports functions to control the on-chip ADC and to offload the processor. Support for automatic oversampling on all channels, sample sequencer and digital level comparators are examples of features integrated to offload the processor. The integrated DMA controller
can also be used to off-load the processor by automatic transfers of sample values to/from the integrated data and ADC/DAC.
GR716-DS-UM, May 2019, Version 1.2924www.cobham.com/gaisler
GR716
2.2.10 Debug and statistics
An external debug host can access the microcontroller Debug Support Unit (DSU) via UART
(RS232). The DSU can be used to access instruction trace buffers and registers of the LEON3FT processor. The DSU has also support for tracing AHB accesses that can be used for performance monitoring. For more information about the functionality see section 19. Since the DSU is connected to an
AMBA AHB bus and is accessed via debug communication links also connected to AMBA AHB, all
debug accesses will generate traffic over AMBA AHB. In order for the debugging to be completely
non-intrusive this debug traffic is separated from the non-debug AHB traffic.
The microcontroller includes a LEON3 statistics unit that allows the debugger to count a wide range
of events without interrupting or controlling execution. See section 41 for more information about the
LEON3 statistics unit.
The GR716 microcontroller have one dedicated Serial Debug interface. The Serial Debug unit is
directly connected to the AMBA debug bus. The Serial Debug unit have a unique AMBA address
described in chapter 2.11.
The debug interface is intended to be used during software development and have direct access to the
internal state of the processor and trace buffers. This interface can be disabled during mission via
external pin configuration i.e. tie DSU_EN to low.
The Serial Debug interface unit is fully described in section 48
2.2.11 AMBA Error detection
The microcontroller includes status registers to store information about AMBA AHB accesses triggering an error response on the Main and DMA AMBA bus. Error response on the AMBA main bus is
stored in either the memory scrubber unit or AHB Status unit 2. Error response triggered on the DMA
bus is stored in the AHB Status unit 1.
The Main AMBA bus can be configured to fetch all AMBA error responses in the memory scrubber,
see chapter 7.3.3. The system default configuration is to only fetch AMBA errors from the external
memory controllers in the memory scrubber. All other AMBA error responses on the Main bus will be
fetched in the AHB Status unit 2.
GR716-DS-UM, May 2019, Version 1.2925www.cobham.com/gaisler
GR716
Onchip
ADC &
DAC
AHBSTAT
I2C
Memory
Controller
RS232
I2C
SPI
1553 A/B
Mil-1553B
BC/RT/MT
SpaceWire
Links
RMAP
CAN
2.0
LVDS /
LVTTL
CAN N/R
DMA
Controller
I/O Port
LEON3FT
SPARC V8
Mul
Trace
64kB
D-ram
FPU
PacketWire
LVDS /
LVTTL
SPI
GPIO
External
ADC &
DAC
PWM
PWM
UART
RS232
Config &
Status
DMA
Controller
Scrub &
ahbstat
AMBA
128kB
I-ram
REX
Memory
Prot
Embeeded
Boot ROM
IrqCtrl &
Timers
Onchip
ADCDAC
SPI2AHB
SPI
I2C2AHB
I2C
SPI4S
SPI
Memory
Controller
PacketWire
Debug Control
Reset /
Clock
Reset /
Watchdog
Clock
BO
POR
BO
LDO
NVRAM
Controller
Ext
ADC
SpacWire
TDP
AHBUART
SPI
Memory
Ext
PROM/SRAM
Memory
NVRAM
Status
and
Control
RS232
WatchDog
Interrupt (Part of AMBA Bus Structure)
TDP
EDAC Errors
EDAC Errors
Scrubber
1553
Reset
Request
PWM
Interrupt, Power-Down, Restart
Memory Protection
AHBSTAT
Debug
(DSU)
Trace
Unit
TRACE
L3STAT
Unit
Serial
Debug
Link
2.2.12 Internal communication
Triggers, events and synchronization signals that require immediate response are distributed outside
the internal AMBA bus structure. This section explains the different connections next to the internal
AMBA structure.
Signal connections are visually shown in figure 3 and described in table 6 in this section.
Figure 3. Internal communication paths outside AMBA bus structure
Table 6. Internal communication paths outside the AMBA bus structure
Connecting functional
Internal bus name
EDAC ErrorAMBA status, local instruc-
EDAC Error Scrubber
blocksDescription
Connection for monitoring of correctable errors
tion memory and local data
memory
AMBA status functionality
in scrubber, external memory controller and NVRAM
signaled from the internal data and instruction
memory.
Connection for monitoring of correctable errors
signaled from the memory controller and
NVRAM controller.
controller
Interrupt BusAll blocks connected to the
Memory protectionProtection unit, external
internal AMBA structure
memory controller,
NVRAM controller, local
instruction memory and
local data memory
GR716-DS-UM, May 2019, Version 1.2926www.cobham.com/gaisler
Connection for distributing events from/to all
peripherals and digital functionality. The inter-
nal interrupt bus distributes all 64 unique inter-
rupts IDs in table 29. The interrupt bus is used
to program event driven functions e.g. the
DMA channel 0 to respond to a specific Inter-
rupt ID in table 29.
Connection for blocking write access to pro-
tected areas. Protection unit grants or denies
the ongoing AMBA access via the memory
protection bus.
GR716
Table 6. Internal communication paths outside the AMBA bus structure
Connecting functional
Internal bus name
Processor Interrupt, Power Down
and Restart
blocksDescription
LEON3FT, Interrupt controller and Primary Clock
gating unit.
The interrupts generated on the interrupt bus
are all forwarded to the interrupt controller.
The interrupt controller prioritizes, masks and
propagates the interrupt with the highest prior-
ity to the processor. This bus is also used for
request for Power-Down of the processor and
restart of the processor. Power down request
from the processor is described in section
16.2.16 and reboot is described in section
40.2.7.
Watch DogTimer unit 0 and reset
request logic
Watch dog timer unit drives a watchdog signal
on this bus to request restart of the system.
Watch dog functionality is described in section
35. User can override reset request with control
register described in section 7.3.
1553 Reset Request MIL-1553 peripheral inter-
faces and reset request logic
MIL-1553B codec request for reset of MIL-
1553B interface support.
TDPMIL-1553B and SpaceWireInternal bus for communication between the
SpaceWire Time Distribution Protocol core and
the SpaceWire interface or the MIL-1553B
interface. For more information see section 34.
DSUDSU and LEON3FTDebug interface for direct access and control of
the LEON3FT processor from debug interface.
PWMPWM, GPIO, DAC and
ADC
PWM synchronization tick outputs. Ticks or
events can be programmed individually for
each PWM to be generated at PWM compare
points, PWM period match, or not generated at
all. PWM ticks are distributed in the system to
synchronize events to the PWM output.
L3STATTo LEON3 Statistical UnitConnection for counting events in the system
defined in table 558 under section "
tion specific events
from REQ/GNT signals
" and in section "Events generated
". Bus is only passively lis-
Implementa-
tening.
TRACEFrom AMBA infrastructure
to Trace buffer
Main and DMA AMBA buses are routed to the
trace buffer. Trace buffer is passively listening
to signals.
GR716-DS-UM, May 2019, Version 1.2927www.cobham.com/gaisler
GR716
Memory
Controller
Mil-1553B
BC/RT/MT
SpaceWire
Links
RMAP
CAN
2.0
PacketWire
DMA
Controller
Scrub &
ahbstat
LEON3FT
SPARC V8
Mul
Trace
64kB
D-ram
FPU
AMBA
128kB
I-ram
REX
Memory
Prot
Embeeded
Boot ROM
IrqCtrl &
Timers
UART
SPI4S
BandGap
Ref
LVDS
BOPORXOPLLLDO
(PLL)
Mixed GPIO
MUX
ADC
ADC
LDO
(Core)
Control &
Status
LVDS
MUX
Clock Logic
Onchip
ADCDAC
Digital Mux Logic
Onchip
ADCDAC
Mixed GPIO
Digital GPIO
WDT
Logic
Reset
Logic
Debug
SPIM
Temp
Sensor
Core
Voltage
Sence
Internal
Ref
gen
VREF
Rref
5.11Kohm
C_1v8V
3.3V Supply
1.8V Supply
C_RST
C_PLL
Ext Reset
(RESET_OUT_N)
Ext Clock
Ext Xtal
4Mhz – 25Mhz
DACDACDACDAC
FLASH
ROM
SRAM
NVRAM
I2C
PWM
SPI
GPIO
AMBA
Infrastructure
IntRST_N
Int Vref
Int Iref
Vref
4.7nF
VDDA_REF
VSSA_REF
VDD_CORE
VSSA_PLL
GND_COREVSSA_REF
Vrefbuf
2.3Analog Architecture Overview
The analog/mixed and power-supply IP blocks are presented here. In figure 4, a simplified block diagram shows these blocks and their analog and power interconnections in the GR716 microcontroller.
Figure 4. Simplified block diagram of the analog/mixed and power-supply IPs in the GR716 microcontroller.
Generally, note that when the XO-oscillator and PLL are used to generate the GR716 microcontroller
clocks, these two blocks must be correctly connected and configured to obtain correct digital functionality of the GR716 microcontroller. Moreover, to obtain correct analog functionality of the GR716
microcontroller, the voltage and current references, set by Vref and Rref, must be correctly connected
and configured, since they provide the GR716 microcontroller with the internal references and bias
currents required by several other IPs in Figure 4.
2.3.1Reset and Brownout-detector
The RESET and Brownout-detector blocks supervise the supply voltages as shown in Figure 4. The
RESET block provides reset of the internal GR716 microcontroller logic. The internal reset signal,
IntRST_N, is available externally as a 3.3V CMOS output, RESET_OUT_N. The IntRST_N and
RESET_OUT_N signals are low when VDD_CORE is too low. There is also a reset release delay at
power up, starting to count when VDD_CORE goes above its reset threshold level. The Brownout
detectors are intended to be used as pre-warnings to the GR716 microcontroller that some supply voltage(s) has started to go down, so the CPU can perform a well-controlled system shutdown before any
reset detectors are activated. The Brownout detectors are implemented as one detector block on each
supply to be supervised, and each of them has a programmable threshold level that can be set individually. Each Brownout-detector output signal can be programmed by an interrupt mask bit to generate
an interrupt, and typically, the interrupt routine can be used to shut down the system in a controlled
way.
GR716-DS-UM, May 2019, Version 1.2928www.cobham.com/gaisler
GR716
2.3.2XO oscillator
The oscillator (XO) is supplied by the LEON3FT microcontroller core voltage, VDD_CORE (1.8V).
The oscillator output is a 3.3V CMOS output and is available on an external pin.
2.3.3PLL
The PLL is supplied by 1.8V from an internal LDO, which should have an external decoupling capacitor on the PLL supply pin (1.8V). This supply pin shall be left open, with exception of this decoupling capacitor. The PLL provides several internal clock outputs, typically used as clock for the
SpaceWire interface, etc. The PLL reference-clock input is a 3.3V CMOS input, to which the XOoscillator clock output can be directly connected, or any other clock signal generated on PCB fulfilling the electrical specification of this input. The PLL reference-clock input is allowed to be asynchronous to any other clocks in the GR716 microcontroller.
2.3.4Voltage reference
The reference blocks are supplied by VDDA_REF. This supply needs to have the best voltage integrity on the chip. Therefore, no fast load-current steps are present in any of the on-chip blocks using
this supply. It is essential that especially this supply has good PCB decoupling/filtering (across
VDDA_REF and VSSA_REF) in order to not feed external disturbances from PCB supplies into this
supply. The analog internal references are generated in two steps. First, a reference voltage is generated by an on-chip band-gap reference, which should have an external decoupling capacitor on the
VREF pin. Alternatively, the on-chip reference block can be turned off; then, an external reference
voltage must be applied to this pin (including the right decoupling capacitance needed in that voltagereference implementation). Second, this reference voltage is buffered and put out on the VREFBUF
pin. This reference voltage is also used by an internal current generator, which puts this voltage across
an external reference resistor, RREF on PCB, to generate a precision reference current. Since this reference current is used to generate both the current reference to each DAC and the internal bias cur-
rents required by several other on-chip blocks, RREF can not be chosen arbitrarily to get any desired
DAC full-scale value; it shall be 5.11kohm (or 4.64kohm + 464ohm).
GR716-DS-UM, May 2019, Version 1.2929www.cobham.com/gaisler
GR716
2.3.5On-chip ADC
There are two independent ADC blocks. Each ADC is a 11bit/200kSps SAR converter, and has an
analog MUX in-front of it, which means that one MUX channel at a time can be measured. The ADC
can be programmed to single-ended 11-bit range (0 - VREF) using one input pin per channel, or to
differential-input 11-bit range (-VREF to VREF) using two input pins per channel. In-between the
ADC and MUX, there is a fully differential pre-amplifier, which has three programmable gain-settings (x1, x2, x4). It is to be used together with the fully-differential ADC setting. The input impedance is in the order of 5-20 kohm (TBC) when the pre-amplifier is in use. The pre-amplifier can be bypassed by programming; then, the DC input impedance is high (dominated by MUX leakage currents). These three blocks are supplied by VDDA_ADC and VSSA_ADC. This supply is not the analog reference for ADC measurements; however, it must still be really well decoupled/filtered at high
frequencies (>~1MHz) to not degrade the ADC performance.
The ADC supply ground, VSSA_ADC, must always be hardwired to the same PCB ground point as
VSSA_REF, directly outside the Microcontroller package. Otherwise, the ADC measurement range
will be incorrect, since the reference voltage from the on-chip band-gap reference is a single-ended
signal referred to VSSA_REF, whereas the reference input of the on-chip ADC is a single-ended input
referred to VSSA_ADC.
2.3.6On-chip DAC
There are four independent 12bit/3MSps DAC blocks. The DAC output is a sourcing-current singleended output, typically to be loaded by virtual ground generated by an op-amp on PCB, or by a passive impedance connected to PCB ground providing the output voltage directly across this impedance.
These four DAC blocks are supplied by VDDA_DAC and VSSA_DAC. In the same way as for the
ADC, it is enough to provide really good decoupling/filtering at high frequencies (>~1MHz).
2.3.7LDO
The LDO provides VDD_CORE with a regulated 1.8V, and needs a 3.3V input supply. The LDO can
be by-passed and, then, the VDD_CORE pins are directly fed with 1.8V regulated supply voltage
from PCB. In this case, the 3.3V LDO input pins must not be connected to any low-impedance node
other than VDD_CORE; one other possibility is to leave the LDO input pins open (non-connected),
but the recommendation is to connect them directly to VDD_CORE. In any case, all VDD_CORE
pins must be decoupled on PCB with a small capacitor (in the order of 10nF) directly at each
VDD_CORE/GND pin pair. When in use, the LDO is always capable of supplying the full maximum
current consumption needed by VDD_CORE. However, the LDO will cause additional on-chip power
dissipation - the core average current times the LDO voltage drop - which will further increase the
junction temperature. Therefore, when running the core logic such that the core current is high, it is
critical to carefully check that the maximum allowed junction temperature is never exceeded in the
thermal situation at hand. This should of course be checked in all application implementations with
the GR716 microcontroller, but is especially important to do carefully when the LDO is in use at the
same time as core current can be high.
GR716-DS-UM, May 2019, Version 1.2930www.cobham.com/gaisler
GR716
2.3.8Temperature Sensor
There is a temperature sensor implemented on the GR716 microcontroller chip. Its output signal is a
monotonic voltage versus temperature, and is measured by the on-chip ADC in the same way as any
other MUX channel. Its output is not threshold detected or used in any other on-chip block, so if a
chip over-temperature protection is desired, the user needs to measure the sensor and take adequate
actions in the system application at hand.
2.3.9Core Voltage (VDD_CORE) Monitor
The core voltage level can be monitored via the on-chip ADC. The voltage measured can be used by
the application to trim the core voltage when the on-chip LDO is active. Default Core voltage trim
value is to have maximum core voltage to always guarantee functionality in worst case corners at
maximum supported clock frequency. For low power applications the core voltage can be decreased
to optimum level in order to minimize power consumption.
GR716-DS-UM, May 2019, Version 1.2931www.cobham.com/gaisler
GR716
MCTRLSPIUART ADCDACI2CGPIOSPWCANPWRXPW TX1553B
OnChip
ADCDAC
GPREG
Mixed Signal General Puropse
Inputs and outputs
SPW
SPI
For S pac e
LVD S fo r
SpaceWire or
SPI-for-Space
192K RAM
SPI Boot
ROM
IRQTIMERSLDO
POR
& BO
PLLLSTATDSULEON3XO
Power
supply
Oscillato r
Power
Sense
and
reset
SpaceWire
clock and
PLL status
DSU
enable,
break and
statu s
External
SPI Boot
ROM
2.4Signal Overview
The GR716 microcontroller has 64 external general purpose user input and outputs, 6 LVDS transceivers and dedicated SPI memory interface. Almost all 64 external inputs and outputs and LVDS
transceivers have multiple functionality. Functionality is selected by the application software during
startup and configuration. During startup i.e. after reset all user input and outputs are configured as
inputs.
LVDS transmitters are disabled after reset and only enabled if SpaceWire or SPI for Space is enabled.
2.5I/O switch matrix overview
This section provides a introduction to the I/O switch matrix and gives a presentation to the predefined set of pin configuration.
The I/O switch matrix provides access to several I/O units. When an interface is not activated, its pins
automatically become general purpose I/O. After reset, all I/O switch matrix pins are defined as inputs
until programmed otherwise. Configuration and assigning of functions to external I/O is flexible and
is controlled by software via registers described in section 7.1.
Figure 5 shows an overview of how the various I/O units are connected to the I/O switch matrix.
Figure 5.
Architectural block diagram showing connections to the I/O switch matrix
Table 2.6 shows a listing of all external CMOS pins in the I/O switch matrix and what functions can
be assign to external pins. Table 2.6 also shows configuration registers to assign specific function or
pin to external I/O. To assign a specific function or pin to an external interface the “column” value
should be written into the table ’row’ I/O configuration register and bit field. E.g. n register
SYS.CFG.GP0.GP5 described in section 7.1.
GR716-DS-UM, May 2019, Version 1.2932www.cobham.com/gaisler
GR716-DS-UM, May 2019, Version 1.2933www.cobham.com/gaisler
2.6.6External pin configuration for external SRAM boot memory
This section describes valid bootstrap configuration for external SRAM.
Table 13. SRAM memory pin configurations
Pin NameInterface NameFunctional description
GPIO[0]ADDR[0]Memory address interface
GPIO[1]ADDR[1]
GPIO[2]ADDR[2]
GPIO[3]ADDR[3]
GPIO[4]ADDR[4]
GPIO[5]ADDR[5]
GPIO[6]ADDR[6]
GPIO[7]ADDR[7]
GPIO[8]ADDR[8]
GPIO[9]ADDR[9]
GPIO[10]ADDR[10]
GPIO[11]ADDR[11]
GPIO[12]ADDR[12]
GPIO[13]ADDR[13]
GPIO[14]ADDR[14]
GPIO[15]ADDR[15]
GPIO[16]ADDR[16]
GPIO[17]ADDR[17]
GPIO[18]ADDR[18]
GPIO[33]OENOutput interface
GPIO[34]WRNWriten enable interface
GR716-DS-UM, May 2019, Version 1.2936www.cobham.com/gaisler
GR716
Table 13. SRAM memory pin configurations
Pin NameInterface NameFunctional description
GPIO[25]DATA[0]Data interface
GPIO[26]DATA[1]
GPIO[27]DATA[2]
GPIO[28]DATA[3]
GPIO[29]DATA[4]
GPIO[30]DATA[5]
GPIO[31]DATA[6]
GPIO[32]DATA[7]
GPIO[19]CSN[0]Chip Select
GPIO[20]CSN[1]Redundant Chip Select
Note 1:Interface uses CMOS type interface
2.6.7External pin configuration for external PROM/FLASH boot memory
This section describes valid bootstrap configuration for external PROM/FLASH.
Table 14. PROM/FLASH memory pin configurations
Pin NameInterface NameFunctional description
GPIO[0]ADDR[0]Memory address interface
GPIO[1]ADDR[1]
GPIO[2]ADDR[2]
GPIO[3]ADDR[3]
GPIO[4]ADDR[4]
GPIO[5]ADDR[5]
GPIO[6]ADDR[6]
GPIO[7]ADDR[7]
GPIO[8]ADDR[8]
GPIO[9]ADDR[9]
GPIO[10]ADDR[10]
GPIO[11]ADDR[11]
GPIO[12]ADDR[12]
GPIO[13]ADDR[13]
GPIO[14]ADDR[14]
GPIO[15]ADDR[15]
GPIO[16]ADDR[16]
GPIO[17]ADDR[17]
GPIO[18]ADDR[18]
33OENOutput interface
34WRNWriten enable interface
GR716-DS-UM, May 2019, Version 1.2937www.cobham.com/gaisler
GR716
Table 14. PROM/FLASH memory pin configurations
Pin NameInterface NameFunctional description
GPIO[25]DATA[0]Data interface
GPIO[26]DATA[1]
GPIO[27]DATA[2]
GPIO[28]DATA[3]
GPIO[29]DATA[4]
GPIO[30]DATA[5]
GPIO[31]DATA[6]
GPIO[32]DATA[7]
GPIO[35]CSN[0]Chip Select
GPIO[36]CSN[1]Redundant Chip Select
Note 1:Interface uses CMOS type interface
2.6.8External pin configuration for external I2C boot memory
This section describes valid bootstrap configuration for external I2C memory.
Table 15. I2C memory pin configurations
Pin NameInterface NameFunctional description
GPIO[2]SDAI2C Serial Data interface
GPIO[3]SCLI2C Serial Clock interface
GPIO[4]SDARedundant I2C Serial Data interface
GPIO[5]SCLRedundant I2C Serial Clock interface
Note 1:Interface uses CMOS type interface
2.7I/O switch matrix options, considerations and limitations
This chapter lists options and limitations when using different interfaces in the IO switch.
2.7.1SPI interfaces
The SPI interface can switch from being a Master to Slave interface and vice versa. In general this is
not a problem and adds flexibility to the I/O mux concept except for the ’slave select’ signal. The
’slave select’ signal will change direction when switching from Slave i.e. slave select input signal to
Master interface i.e. slave select output. In the worst scenario this can permanently damage the internal driver and receiver. To mitigate this problem the Master Slave select output and Slave Select input
has been assigned to different I/Os.
In a situation where the application board only requires the SPI interface to either be Slave or Master
the option is given to the designer to assign the extra pin to another system interface.
2.7.2External Memory interface
The external PROM/SRAM interface occupies many external I/Os due parallel data and address
buses. The system should only allocate the number of address and chip-select pins needed for the
application. E.g. a system that only requires 256KiB of memory only need to allocate and use 18
external address lines and 1 chip-select i.e. the system can assign 4 pins to another system interface.
There is also a potential saving to make if the functionality ’bus ready’ and ’bus exception’ isn’t used.
GR716-DS-UM, May 2019, Version 1.2938www.cobham.com/gaisler
GR716
2.7.3External ADC and DAC interface
The number of pins used for the external ADC and DAC interface depends upon the number of external ADC and DAC channel the application shall support. The interface can use up to 8 address lines in
order to address and control multiple ADC and DAC outside the GR716 microcontroller. On the other
hand, if very few or only one ADC or DAC is used the 8 address lines can be assigned to another system interface.
2.8I/O switch matrix pin validation script
This an introduction to the validation script provided upon request in order to validate pin configurations and to generate constants for the I/O switch configuration registers. The intention of the script is
to help the user of the GR716 microcontroller to validate a configuration according to table 2.6 and to
quickly setup a system for test. The script should not be used for any other purpose than test and
debug of systems using the GR716 microcontroller.
2.8.1Functional pin mapping sections
The I/O configuration script is written in TCL and contains lists for mapping functional pins to physical pins on the GR716 microcontroller as described in table 2.6. Each functional group maps individual functional pins to physical external pins. Example of UART0 configuration description are shown
in table 16.
Table 16. UART0 functional pin mapping to external pins of the GR716 microcontroller
set uart0_cfg0 { {uart0_cfg0} {
{ 1 1 uart_ctsn(0) in}
{ 0 1 uart_rtsn(0) out}
{ 2 1 uart_tx(0) out}
{ 3 1 uart_rx(0) in}
} }
Table 16 specifies the following for the configuration UART0_CFG0:
•functional pin UART_CTSN(0) of UART0 to mapped to external physical pin GPIO(0)
•functional pin UART_RTSN(0) of UART0 to mapped to external physical pin GPIO(1)
•functional pin UART_TX(0) of UART0 to mapped to external physical pin GPIO(2)
•functional pin UART_RX(0) of UART0 to mapped to external physical pin GPIO(3)
Functions can have multiple I/O configurations and are then differentiated by adding a consecutive
number to the name of the configuration. All interface options described in table 2.6 are described in
the I/O mux script.
2.8.2I/O configuration sections
The I/O configuration section specifies all functional groups to be available on physical pins. The
functions and configurations are listed and named in this section. Example of using UART0, UART1
and UART3 are listed in table 16.
Table 17. Example of mapping UART0, UART1 and UART2 to external pins of the GR716 microcontroller
set iomx_uart0_cfg [list \
$auart_cfg0 $uart2_cfg0 $uart3_cfg1 \
]
GR716-DS-UM, May 2019, Version 1.2939www.cobham.com/gaisler
GR716
2.8.3Usage of the pin validation script
Script needs to be modified and loaded into GRMON. After script been loaded the TCL command
gen_config can be run to generate the external I/O configuration register settings.
Table 18. Example of executing I/O configuration script
grmon2> source iomx.tcl
grmon2> gen_config $iomx_uart0_cfg
...
grmon2>
2.8.4Output of the pin validation script
The I/O script can be executed from within GRMON using the build-in TCL support. Here is an
example of running the script for setting up the system using with SpaceWire, 1 UART and external
SPI memory.
Table 19. Example of output from running the pin validation script when successful
grmon2> source iomx.tcl
grmon2> gen_config $iomx_apw_uart0_spi0_cfg
# Pin list
pin[0]: uart_ctsn(0)
pin[1]: uart_rtsn(0)
pin[2]: uart_tx(0)
pin[3]: uart_rx(0)
pin[12]: spim_sck(0)
pin[13]: spim_miso(0)
pin[14]: spim_mosi(0)
pin[15]: spim_slv(0)
pin[16]: spw_rxd
pin[17]: spw_rxs
pin[18]: spw_txs
pin[19]: spw_txd
// C constant
const int iomx[8] = {
0x00001111,
0x11110000,
0x00002222,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000};
grmon2>
GR716-DS-UM, May 2019, Version 1.2940www.cobham.com/gaisler
GR716
The script outputs:
•A section specifying all pins that are dedicated to specific interface. (All other pins are considered as GPIOs)
•A section that can be imported directly to standard ’C’ program for configuration of I/O mux registers, see section 7.1.
2.8.5Erroneous pin configuration
Script checks for conflicting pins and a third section will be printed when running the scripts.
Table 20. Example of output from running the pin validation script when conflicting pins are detected
grmon2> source iomx.tcl
...
Error: conflicting pin config
Double-mapped signal:
uart_ctsn(3) uart_rtsn(3) uart_tx(3) uart_rx(3)
grmon2>
The last printed section will print the pins violating the selected pins configuration.
2.8.6Validation of custom pin configuration
The supplied validation scripts contains variables for valid pin placement of each interface specified
in table 2.6. See script for valid names.
2.8.7Script limitations
The script is provided "as-is" and only checks for valid configurations according to pre-defined pin
allocations for specific interfaces defined in the script.
The script will not check pins placement or direction selected is correct according to target system or
PCB board.
GR716-DS-UM, May 2019, Version 1.2941www.cobham.com/gaisler
GR716
2.9I/O switch matrix scenario examples
This chapter gives examples of how to configure the GR716 microcontroller and the I/O mux for following scenarios:
•Sensor / Actuator Node using external SRAM to store data
•Bus bridge using external SRAM to store data
•Bus bridge booting from external serial ROM
This chapter presents examples of I/O mux configuration tables. The configuration tables e.g. table 22
should be interpreted as follow:
•Each row represent an external I/O on the GR716 microcontroller device
•The first column states the register and bits used to control the external I/O
•The columns marked with a hexadecimal number states the value the function are selected with.
For reference see table
•The columns marked with <namn>.<index> are a combined user scenarios and gives the fixed
functions and pins for the scenario
•Empty entries in columns marked with <namn>.<index> indicates that the user can assign any
valid function to the external pin according to table
2.6.
2.6.
2.9.1Scenario #1 - Sensor / Actuator Node
This chapter describes how to configure the I/O mux to node bus either via SPW, CAN or MIL-1553B
and at the same run internal or external ADC.
The following assumptions are made for the system:
•All on-chip ADCs and DACs is used (or external ADC / DAC).
•External RAM needs to be greater than 128KiB. (If the application needs less than that the internal on-chip memory should be used in order to utilize the pins on the device more efficiently).
For this example we assume 256KiB is needed.
•Boot from external PROM is required.
In table 21 options of I/O configuration for using SPW, MIL-1553B and CAN as node bus are
depicted. Note that SpaceWire is connected on dedicated pins.
GR716-DS-UM, May 2019, Version 1.2942www.cobham.com/gaisler
Table 21. Examples of I/O configuration for using SPW, MIL-1553B and CAN as node bus
GR716-DS-UM, May 2019, Version 1.2943www.cobham.com/gaisler
GR716
2.9.2Scenario #2 - Bus bridge
This chapter describes how to configure the I/O mux for a node bus bridge.
The following assumptions are made for the system:
•External RAM needs to be greater than 128KiB. (If the application needs less than that the internal on-chip memory should be used in order to utilize the pins on the device more efficiently).
For this example we assume at least 256KiB is needed.
•Boot from external PROM is required.
•Connects to spacecraft bus either via 1553B or SpaceWire, and on the other side to node bus via
CAN.
In table 22 two example of I/O configurations for Node bus bridge are shown.
Note that SpaceWire is assumed to be connected on dedicated pins see BRIDGE.CFG1 in table 22. If
SpaceWire redundancy is required configuration BRIDGE.CFG2 in table 22 should be used.
GR716-DS-UM, May 2019, Version 1.2944www.cobham.com/gaisler
GR716
IO Config RegisterBRIDGE.CFG1BRIDGE.CFG2
SYS.CFG.GP0.GP0MEM_ADDR0MEM_ADDR0
SYS.CFG.GP0.GP1MEM_ADDR1MEM_ADDR1
SYS.CFG.GP0.GP2MEM_ADDR2MEM_ADDR2
SYS.CFG.GP0.GP3MEM_ADDR3MEM_ADDR3
SYS.CFG.GP0.GP4MEM_ADDR4MEM_ADDR4
SYS.CFG.GP0.GP5MEM_ADDR5MEM_ADDR5
SYS.CFG.GP0.GP6MEM_ADDR6MEM_ADDR6
SYS.CFG.GP0.GP7MEM_ADDR7MEM_ADDR7
SYS.CFG.GP1.GP0MEM_ADDR8MEM_ADDR8
SYS.CFG.GP1.GP1MEM_ADDR9MEM_ADDR9
SYS.CFG.GP1.GP2MEM_ADDR10MEM_ADDR10
SYS.CFG.GP1.GP3MEM_ADDR11MEM_ADDR11
SYS.CFG.GP1.GP4MEM_ADDR12MEM_ADDR12
SYS.CFG.GP1.GP5MEM_ADDR13MEM_ADDR13
SYS.CFG.GP1.GP6MEM_ADDR14MEM_ADDR14
SYS.CFG.GP1.GP7MEM_ADDR15MEM_ADDR15
SYS.CFG.GP2.GP0MEM_ADDR16MEM_ADDR16
SYS.CFG.GP2.GP1MEM_ADDR17MEM_ADDR17
SYS.CFG.GP2.GP2MEM_ADDR18MEM_ADDR18
SYS.CFG.GP2.GP3RAM_CSN0RAM_CSN0
SYS.CFG.GP2.GP4RAM_CSN1RAM_CSN1
SYS.CFG.GP2.GP5RAM_CSN2SPW_RXD
SYS.CFG.GP2.GP6RAM_CSN3SPW_RXS
SYS.CFG.GP2.GP7ROM_CSN0SPW_TXS
SYS.CFG.GP3.GP0ROM_CSN1SPW_TXD
SYS.CFG.GP3.GP1MEM_DATA0MEM_DATA0
SYS.CFG.GP3.GP2MEM_DATA1MEM_DATA1
SYS.CFG.GP3.GP3MEM_DATA2MEM_DATA2
SYS.CFG.GP3.GP4MEM_DATA3MEM_DATA3
SYS.CFG.GP3.GP5MEM_DATA4MEM_DATA4
SYS.CFG.GP3.GP6MEM_DATA5MEM_DATA5
SYS.CFG.GP3.GP7MEM_DATA6MEM_DATA6
SYS.CFG.GP4.GP0MEM_DATA7MEM_DATA7
SYS.CFG.GP4.GP1MEM_OENMEM_OEN
SYS.CFG.GP4.GP2MEM_WRNMEM_WRN
SYS.CFG.GP4.GP3ROM_CSN0
SYS.CFG.GP4.GP4ROM_CSN1
SYS.CFG.GP4.GP51553_RXENA1553_RXENA
SYS.CFG.GP4.GP61553_TXA1553_TXA
SYS.CFG.GP4.GP71553_RXA1553_RXA
SYS.CFG.GP5.GP01553_RXNA1553_RXNA
SYS.CFG.GP5.GP11553_TXNA1553_TXNA
SYS.CFG.GP5.GP21553_TXINHA1553_TXINHA
SYS.CFG.GP5.GP31553_RXB1553_RXB
SYS.CFG.GP5.GP41553_RXNB1553_RXNB
SYS.CFG.GP5.GP51553_RXENB1553_RXENB
SYS.CFG.GP5.GP61553_TXB1553_TXB
SYS.CFG.GP5.GP71553_CLK1553_CLK
SYS.CFG.GP6.GP01553_TXNB1553_TXNB
SYS.CFG.GP6.GP11553_TXINHB1553_TXINHB
SYS.CFG.GP6.GP2
SYS.CFG.GP6.GP3
SYS.CFG.GP6.GP4
SYS.CFG.GP6.GP5
SYS.CFG.GP6.GP6
SYS.CFG.GP6.GP7
SYS.CFG.GP7.GP0
SYS.CFG.GP7.GP1
SYS.CFG.GP7.GP2CAN_TX0CAN_TX0
SYS.CFG.GP7.GP3CAN_RX0CAN_RX0
SYS.CFG.GP7.GP4CAN_SEL0CAN_SEL0
SYS.CFG.GP7.GP5CAN_RX1CAN_RX1
SYS.CFG.GP7.GP6CAN_TX1CAN_TX1
SYS.CFG.GP7.GP7CAN_SEL1CAN_SEL1
Bridge
Table 22. Examples of I/O MUX configurations for Node bus bridges when using the external parallel memory
GR716-DS-UM, May 2019, Version 1.2945www.cobham.com/gaisler
GR716
2.9.3Scenario #3 - Bus bridge booting from external serial ROM
This chapter shows how to make use of more I/O and describes how to configure the I/O mux for a
node bus bridge.
The following assumptions are made for the system:
•System boots and runs software from external serial memory. (Software can also execute from
internal instruction memory).
•Connects to spacecraft bus either via MIL-1553B or SpaceWire, and on the other side to node
bus via CAN.
In table 23 two example of I/O configurations for Node bus bridge are depicted. Note that the external
SPI configuration ROM and SpaceWire are connected on dedicated pins.
GR716-DS-UM, May 2019, Version 1.2946www.cobham.com/gaisler
GR716
IO Config RegisterBRIDGE.CFG1BRIDGE.CFG2
SYS.CFG.GP0.GP0
SYS.CFG.GP0.GP1
SYS.CFG.GP0.GP2
SYS.CFG.GP0.GP3
SYS.CFG.GP0.GP4
SYS.CFG.GP0.GP5
SYS.CFG.GP0.GP6
SYS.CFG.GP0.GP7
SYS.CFG.GP1.GP0
SYS.CFG.GP1.GP1
SYS.CFG.GP1.GP2
SYS.CFG.GP1.GP3
SYS.CFG.GP1.GP4
SYS.CFG.GP1.GP5
SYS.CFG.GP1.GP6
SYS.CFG.GP1.GP7
SYS.CFG.GP2.GP0
SYS.CFG.GP2.GP1
SYS.CFG.GP2.GP2
SYS.CFG.GP2.GP3
SYS.CFG.GP2.GP4
SYS.CFG.GP2.GP5SPW_RXD
SYS.CFG.GP2.GP6SPW_RXS
SYS.CFG.GP2.GP7SPW_TXS
SYS.CFG.GP3.GP0SPW_TXD
SYS.CFG.GP3.GP1
SYS.CFG.GP3.GP2
SYS.CFG.GP3.GP3
SYS.CFG.GP3.GP4
SYS.CFG.GP3.GP5
SYS.CFG.GP3.GP6
SYS.CFG.GP3.GP7
SYS.CFG.GP4.GP0
SYS.CFG.GP4.GP1
SYS.CFG.GP4.GP2
SYS.CFG.GP4.GP3
SYS.CFG.GP4.GP4
SYS.CFG.GP4.GP51553_RXENA1553_RXENA
SYS.CFG.GP4.GP61553_TXA1553_TXA
SYS.CFG.GP4.GP71553_RXA1553_RXA
SYS.CFG.GP5.GP01553_RXNA1553_RXNA
SYS.CFG.GP5.GP11553_TXNA1553_TXNA
SYS.CFG.GP5.GP21553_TXINHA1553_TXINHA
SYS.CFG.GP5.GP31553_RXB1553_RXB
SYS.CFG.GP5.GP41553_RXNB1553_RXNB
SYS.CFG.GP5.GP51553_RXENB1553_RXENB
SYS.CFG.GP5.GP61553_TXB1553_TXB
SYS.CFG.GP5.GP71553_CLK1553_CLK
SYS.CFG.GP6.GP01553_TXNB1553_TXNB
SYS.CFG.GP6.GP11553_TXINHB1553_TXINHB
SYS.CFG.GP6.GP2
SYS.CFG.GP6.GP3
SYS.CFG.GP6.GP4
SYS.CFG.GP6.GP5
SYS.CFG.GP6.GP6
SYS.CFG.GP6.GP7
SYS.CFG.GP7.GP0
SYS.CFG.GP7.GP1
SYS.CFG.GP7.GP2CAN_TX0CAN_TX0
SYS.CFG.GP7.GP3CAN_RX0CAN_RX0
SYS.CFG.GP7.GP4CAN_SEL0CAN_SEL0
SYS.CFG.GP7.GP5CAN_RX1CAN_RX1
SYS.CFG.GP7.GP6CAN_TX1CAN_TX1
SYS.CFG.GP7.GP7CAN_SEL1CAN_SEL1
Bridge
Table 23. Examples of I/O MUX configurations for Node bus bridges when using the external serial memory
GR716-DS-UM, May 2019, Version 1.2947www.cobham.com/gaisler
GR716
2.10Cores
The design is based on the following cores from the GRLIB IP Library:
Table 24. Used IP cores
CoreFunctionVendorDevice
AHB2AHBBi-directional AHB/AHB bridge0x010x020
AHBROMGeneric AHB ROM0x010x1B
AHBSTATAHB Status Register0x010x052
AHBTRACEAHB trace buffer0x010x017
AHBUARTSerial/AHB Debug interface0x010x007
APBCTRLAHB/APB bridge0x010x006
APBUART8-bit UART with FIFO0x010x00C
DSU3LEON3 Debug Support Unit0x010x004
LRAMLocal on-chip SRAM with EDAC and AHB interface0x010x0A3
FTMCTRL8/16/32-bit memory controller with EDAC0x010x054
GPTIMERModular timer unit with watchdog0x010x038
GR1553BMIL-STD-1553B / AS15531 interface0x010x04D
GRADCDACADC/DAC Interface0x010x036
GRCANCAN 2.0 controller with DMA0x010x03D
GRCLKGATEClock gating unit0x010x02C
GRDMACDMA Controller with internal AHB/APB bridge0x010x095
GRGPIOGeneral Purpose I/O Port0x010x01A
GRGPIO_SEQGeneral Purpose Sequencer0x010x1F8
GRGPREGGeneral purpose register0x010x087
GRMEMPROTMemory protection0x010x1F1
GRPWMPWM controller0x010x04A
GRPWRXPacketWire receiver0x010x08D
GRPWTXPacketWire transmitter0x010x08E
GRSPW2SpaceWire codec with AHB host interface and RMAP0x010x029
I2C2AHBI2C to AHB bridge0x010x00B
I2CMSTI2C master0x010x028
I2CSLVI2C slave0x010x03E
IRQ(A)MPMultiprocessor interrupt controller with AMP extensions0x010x00D
L3STATLEON3 statistical unit0x010x098
LEON3FTLEON3 SPARC V8 32-bit processor0x010x053
MEMSCRUBMemory scrubber0x010x057
RSTGENReset generatorN/AN/A
SPI2AHBSPI to AHB bridge0x010x05C
SPICTRLSPI controller0x010x02D
SPIMCTRLSPI memory controller0x010x045
SPISLAVESPI for space slave0x010x0A7
The information in the last two columns is available via plug’n’play information in the system and is
used by software to detect peripherals and to initialize software drivers.
GR716-DS-UM, May 2019, Version 1.2948www.cobham.com/gaisler
GR716
2.11Memory map
The memory map of the internal AHB and APB buses as seen from the processor cores can be seen
below.
The column ’DMA Access’ in the Memory map table indicates if the AMBA peripheral is accessible
by a DMA controller.
Table 25. AMBA memory map, as seen from processors
Note 1:CPU and DMA controller accesses specified memory areas using different APB interfaces. The
Accesses to unused AMBA AHB address space will result in an AMBA ERROR response, this
applies to the memory areas that are marked as "Unused" in the table above. Accesses to unused areas
located on one of the AHB/APB bridges will not have any effect, note that these unoccupied address
ranges are not marked as "Unused" in the table above. No AMBA ERROR response will be given for
memory allocated to one of the APB bridges.
2.12Atomic access
This chapter describes how atomic read and modify operations are performed in the GR716 microcontroller. The GR716 microcontroller supports atomic read-modify-write operations in hardware by
mirroring the address space of the peripheral and internal data memory for different atomic operations. Atomic operations supported are OR, AND, XOR and Set&Clear.
Atomic operations are performed by adding an atomic operation offset to the destination register
address of the normal write operation of a atomic bit mask:
Table 26.
For atomic operations in local processor data memory
CPU and DMA can access different APB peripherals at the same time without conflict
GR716-DS-UM, May 2019, Version 1.2952www.cobham.com/gaisler
Local data memory use the following atomic offset:
•OR operation offset: 0x10000
•AND operation offset 0x20000
•XOR operation offset 0x30000
•Set and clear operation offset: 0x40000
APB peripheral registers use the following atomic of
fset:
•AND operation offset: 0x20000
•OR operation offset 0x40000
•XOR operation offset 0x60000
•Set and clear operation offset: 0x80000
When using the atomic set and clear function, some extra precautio
ns have to be taken. In order to be
able to both set and clear a 32 bit register two consecutive 32-bit writes need to be performed. The
access will not be executed and an error response will be given if a non-related access appears in
between the 2 writes to the same slave. To guarantee no non-related access in between the 2 atomic set
and clear write accesses the LEON3FT processors ability to perform a double store should be used.
[SPARC]
All addresses in the atomic set and clear address space have been aligned to 0x8 i.e. local write
address in processor data memory or APB peripheral needs to be modified in order to avoid exception
from the LEON3FT processor. The shifted address is automatically decoded in the local memory or
the APB peripheral.
Table 27. Set and clear atomic operation address definition
For simplicity and to guarantee the use of a double store it is recommended to include a function that
forces the usage of the double store operation. An example of such a function for using atomic set and
clear function to register in APB peripherals is included in this chapter:
Table 28. Example of Atomic set and clear function using SPARC V8 double store operation
// Atomic set and clear for aliging write address and setting operation offset
// function need set and clear mask and address to peripheral
void SetAndClear (unsigned int _set, unsigned int _clr, unsigned int *addr)
{
unsigned long long a = ((unsigned long long int) _set << 32) | _clr;// Concatenate set and clear
unsigned int b = (unsigned int)addr & 0xFFFFF000;// Keep base address
b += 0x80000;// Add atomic offset for op.
b |= (((unsigned int) addr & 0x00000FFF) << 1);// Align local address to 0x8
__asm__ volatile ("std %1, [%0]"::"r"(b),"r"(a));// Insert double store op
}
// mask
GR716-DS-UM, May 2019, Version 1.2953www.cobham.com/gaisler
GR716
2.13Interrupts
The table below indicates the interrupt default assignments. All interrupts are handled by the interrupt
controller and forwarded to the LEON3 processors. For more configuration and option see chapter
Table 29. Bus Interrupt line assignments
Interrupt IDInterrupt Line CoreComment
0n/anot used
11ExtendedExtended Interrupts for primary interrupt controller
22GRPWRXInterrupt from PacketWire RX controller
33GRPWTXInterrupt from PacketWire TX controller
44GR1553Interrupt from GR1553 controller
55GRSPW2Interrupt from SpaceWire controller
66GRDMACDMA controller interrupt 0 - 3
77I2CS/2AHB/SPI2AHBInterrupt from I2C Slave 0 and 1 / I2C2AHB / SPI2AHB
88GRPWMInterrupt from PWM controller
99GPTIMER0Interrupt 1 from timer block 0
1010GPTIMER0Interrupt 2 from timer block 0
1111GPTIMER0Interrupt 3 from timer block 0
1212GPTIMER0Interrupt 4 from timer block 0
1313GPTIMER0Interrupt 5 from timer block 0
1414GPTIMER0Interrupt 6 from timer block 0
1515GPTIMER0Interrupt 7 from timer block 0 (WDOG)
40
1616GRADCDACExternal ADC interface
1717GRGPIOInterrupt from GPIO controller 0 / External DAC
1818GRGPIO(Interrupt from GPIO controller 0)
1919GRGPIO(Interrupt from GPIO controller 0)
2020GRGPIO(Interrupt from GPIO controller 0)
2121GRCAN0&1Interrupt from CAN controller
2222GRCAN0&1Interrupt from CAN RX controller
2323GRCAN0&1Interrupt from CAN TX controller
2424APBUARTAPBUART interface interrupt 0
2525APBUARTAPBUART interface interrupt 1
2626DACon-chip DAC 0 interrupt
2727DACon-chip DAC 1 interrupt
2828ADC0on-chip ADC interrupt 0
2929ADC1on-chip ADC interrupt 1
3030ADC2on-chip ADC interrupt 2
3131ADC3on-chip ADC interrupt 3
2832ADC4on-chip ADC interrupt 4
2933ADC5on-chip ADC interrupt 5
3034ADC6on-chip ADC interrupt 6
GR716-DS-UM, May 2019, Version 1.2954www.cobham.com/gaisler
252SPIMCTRLInterrupt from SPI memory controller 0 and 1
2053GPTIMER1Interrupt 1 from timer block 1
2154GPTIMER1Interrupt 2 from timer block 1
2255GPTIMER1Interrupt 3 from timer block 1
2356GPTIMER1Interrupt 4 from timer block 1
2457GPTIMER1Interrupt 5 from timer block 1
2558GPTIMER1Interrupt 6 from timer block 1
2659GPTIMER1Interrupt 7 from timer block 1
1660GRGPIOSEQ0GPIO sequencer 0
1761GRGPIOSEQ1GPIO sequencer 1
1862PLLPLL interrupt, Power On Reset and Brown Out interrupt
1963AHBSTAT/DLRAM,
ILRAM/GRGPRBANK/
MEMSCRUB
AHB status, Scrubbers and I/O mux interrupt
GR716-DS-UM, May 2019, Version 1.2955www.cobham.com/gaisler
GR716
3Signals
3.1Bootstrap signals
The power-up and initialisation state is affected by several external signals as shown in table 30.The
bootstrap signals taken via GPIO, DUART and SPIM signals are saved when the on-chip system reset
is released. This occurs after deassertion of the internal power-on-reset or RESET_IN_N input and
valid input clock on the SYS_CLK pin. The state of the signals are sampled and stored in a bootstrap
register. See section 7.2 for boot strap register description.
Note that some pins used for bootstrapping have dual purpose can be used for normal operations after
reset has been released.
Table 30. Bootstrap signals
PinFunctional description
DSU_ENEnables the Debug Support Unit (DSU) and other members connected to the Debug AHB bus. If
DSU_BREAKPuts processor in debug mode when asserted while DSU_EN is HIGH. When DSU_EN is LOW,
GPIO[17]Enable bypass of internal boot ROM.
GPIO[0]Determines the use of EDAC for external boot RAM when the GR716 microcontroller shall boot from
GPIO[62]Enable test of internal memories at startup. The processor starts checking internal memory for bit errors
GPIO[63]Enables extra protection of external boot source or setting SpaceWire clock frequency
DUART_TXDIf boot from external SRAM/ROM/SPI-ROM this pin are used for selecting to copy ASW image from
SPIM_MOSIEnable remote access. When remote access is disabled processor will start from selected external boot
DSU_EN is HIGH the DSU and the Debug AHB bus will be clocked. If DSU_EN is LOW the DSU
and all members on the Debug AHB bus will be clock gated off
BREAK is assigned to the timer enable bit of the watchdog timer and also controls if the processor
starts executing after reset.
Boot strapping this signal 'high' will force the processor NOT to execute the internal boot software.
Normally the processor starts executing from address 0x0. But if this bootstrap is 'high' the processor
will start execute from software from address selected by bootstrap signals SPIM_MOSI & SPIM_SCK
& SPIM_SEL.
external memory. Set to low for enabling EDAC and to high for disabling EDAC.
Determine the use of PLL when the GR716 microcontroller shall boot via a remote source.
during boot if this bootstrap is set to 'high'. Setting this to 'high' will slow down the boot processes since
the check is software based.
If boot from external RAM/ROM this pin enable the use of redundant memory if primary boot memory
fails.
If remote access via SPW this pin together with DUART_TXD are used to set the SpaceWire default
speed.
selected external boot RAM/ROM (If not set for this option. The GR716 microcontroller will start execute from the selected external memory)
If remote access via SPW is selected this pin together with GPIO[63] are used to set the SPW default
speed. Set DUART_TXD & GPIO[63] accordingly depending on external SpaceWire frequency:
"00" - For 5Mhz external frequency source
"01" - For 10Mhz external frequency source
"10" - For 20Mhz external frequency source
"11" - For 25Mhz external frequency source
memory.
GR716-DS-UM, May 2019, Version 1.2956www.cobham.com/gaisler
GR716
Table 30. Bootstrap signals
PinFunctional description
SPIM_SCK &
SPIM_SEL
Note 1:User should use weak pull-up/pull-downs for configuration of the GR716 microcontroller. A weak
Note 2:Bootstrap signals determine state of GR716 microcontroller after reset has been released.
Note 3:The LEON3FT processor is always enabled after reset has been released.
Note 4:Remote access request will force the processor to power down according to 16.2.16 after initialization
Note 5:Remote access will enable clocks according to table:
Note 6:Only requested memory interface will have clock and pins enabled.
Note 7:Watchdog timer will always be enabled and not controllable from bootstraps.
This pin together with the pin SPIM_MOSI selects which source the LEON3FT microcontroller should
boot from:
When copy ASW boot from external source is selected (SPIM_MOSI is low)
"00" - Copy software image from SPI Memory
"01" - Copy software image from external SRAM
"10" - Copy software image from external ROM
"11" - Copy software image from external I2C
When boot from external source is selected (SPIM_MOSI is low)
"00" - Boot from SPI Memory
"01" - Boot from external SRAM
"10" - Boot from external ROM
"11" - Unused
Enable for remote access interfaces (SPIM_MOSI is high)
"00" - SPI remote access
"01" - SpaceWire RMAP enable
"10" - I2C remote access
"11" - UART remote access
resistor is defined as resistor which require low current from the drive circuitry. The resistance should
be greater or equal to 10K ohm.
has been completed.
1. SpaceWire option will enable SpaceWire core and external SpaceWire interface
2. SPI option will enable SPI for Space Slave and external SPI for Space interface
3. I2C option will enable I2C2AHB bridge and external I2C interface
4. UART option will enable AHBUART1 and external UART interface
GR716-DS-UM, May 2019, Version 1.2957www.cobham.com/gaisler
GR716
3.1.1Boot strap configuration for remote access
This section describes valid bootstrap configuration for remote access:
memory boot. Processor
will start execute application software direct
from memory after initialization of the processor.
lowlowlowlowlow
5)
high
7)
Enable external SPI
memory boot. Processor
will start execute application software direct
from memory.
lowlowlowhighlow
5)
lowlowEnable external ASW
SPI memory boot after
initialization of the processor. Processor will
copy and extract ASW
container before executing application software.
lowlowlowhighhigh
5)
lowlowEnable external ASW
SPI memory with DMR
protection boot after initialization of the processor. Processor will copy
and extract ASW container before executing
application software.
Note 1:To enable external memory access SPIM_MOSI must be bootstrapped to low.
Note 2:Configuration pin has no effect or not used for bootstrap configuration. It recommend to tie the pin either to
low or high.
Note 3: Enable ASW protection. ASW protection usage is described in section 51.
Note 4:Enable dual module redundancy protection. Option only valid in combination with ASW protection. Redun-
dant memory is expected to located at 0x04000000.
Note 5:Enable BCH EDAC protection. EDAC can be enabled and used in combination with all other options. When
configuration is used external memory must included BCH check bits.
Note 6: Enable bypass of the internal boot ROM. When enabled the processor will start execute code directly from
the primary memory at 0x02000000. Processor or internal memory is initialized after reset when this option
is used.
Note 7:Enable memory test. Memory test configuration can be used in combination with all other options. Memory
test have no affect when internal boot ROM is bypassed.
GR716-DS-UM, May 2019, Version 1.2960www.cobham.com/gaisler
GR716
3.1.3Boot strap configuration for external SRAM memory
This section describes valid bootstrap configuration for use of external memory options:
memory boot. Processor
will start execute application software direct
from memory after initialization of the processor.
lowlowhighlowlow
5)
high
7)
Enable external SRAM
memory boot. Processor
will start execute application software direct
from memory.
lowlowhighhighlow
5)
lowlowEnable external ASW
SRAM memory boot
after initialization of the
processor. Processor will
copy and extract ASW
container before executing application software.
lowlowhighhighhigh
5)
lowlowEnable external ASW
SRAM memory with
DMR protection boot
after initialization of the
processor. Processor will
copy and extract ASW
container before executing application software.
Note 1:To enable external memory access SPIM_MOSI must be bootstrapped to low.
Note 2:Configuration pin has no effect or not used for bootstrap configuration. It recommend to tie the pin either to
low or high.
Note 3: Enable ASW protection. ASW protection usage is described in section 51.
Note 4:Enable dual module redundancy protection. Option only valid in combination with ASW protection. Redun-
dant memory is expected to located at TBD.
Note 5:Enable BCH EDAC protection. EDAC can be enabled and used in combination with all other options. When
configuration is used external memory must included BCH check bits.
Note 6: Enable bypass of the internal boot ROM. When enabled the processor will start execute code directly from
the primary memory at 0x40000000. Processor or internal memory is initialized after reset when this option
is used.
Note 7:Enable memory test. Memory test configuration can be used in combination with all other options. Memory
test have no affect when internal boot ROM is bypassed.
GR716-DS-UM, May 2019, Version 1.2961www.cobham.com/gaisler
GR716
3.1.4Boot strap configuration for external PROM/FLASH memory
This section describes valid bootstrap configuration for use of external memory options:
FLASH memory boot.
Processor will start execute application software direct from memory
after initialization of the
processor.
lowhighlowlowlow
5)
high
7)
Enable external PROM/
FLASH memory boot.
Processor will start execute application software direct from
memory.
lowhighlowhighlow
5)
lowlowEnable external ASW
PROM/FLASH memory
boot after initialization of
the processor. Processor
will copy and extract
ASW container before
executing application
software.
lowhighlowhighhigh
5)
lowlowEnable external ASW
PROM/FLASH memory
with DMR protection
boot after initialization of
the processor. Processor
will copy and extract
ASW container before
executing application
software.
Note 1:To enable external memory access SPIM_MOSI must be bootstrapped to low
Note 2:Configuration pin has no effect or not used for bootstrap configuration. It recommend to tie the pin either to
low or high.
Note 3: Enable ASW protection. ASW protection usage is described in section 51.
Note 4:Enable dual module redundancy protection. Option only valid in combination with ASW protection. Redun-
dant memory is expected to located at TBD.
Note 5:Enable BCH EDAC protection. EDAC can be enabled and used in combination with all other options. When
configuration is used external memory must included BCH check bits.
Note 6: Enable bypass of the internal boot ROM. When enabled the processor will start execute code directly from
the primary memory at 0x01000000. Processor or internal memory is initialized after reset when this option
is used.
Note 7:Enable memory test. Memory test configuration can be used in combination with all other options. Memory
test have no affect when internal boot ROM is bypassed.
GR716-DS-UM, May 2019, Version 1.2962www.cobham.com/gaisler
GR716
3.1.5Boot strap configuration for external I2C memory
This section describes valid bootstrap configuration for use of external memory options:
I2C memory boot after
initialization of the processor. Processor will
copy and extract ASW
container before executing application software.
lowhighhighhighhigh
5)
low
7)
Enable external ASW
I2C memory with DMR
protection boot after initialization of the processor. Processor will copy
and extract ASW container before executing
application software.
Note 1:To enable external memory access SPIM_MOSI must be bootstrapped to low
Note 2:Configuration pin has no effect or not used for bootstrap configuration. It recommend to tie the pin either to
low or high.
Note 3: Enable ASW protection. ASW protection usage is described in section 51.
Note 4:Enable dual module redundancy protection. Option only valid in combination with ASW protection. Redun-
dant memory is expected to located at I2C master unit 1.
Note 5:Configuration pin has no effect or not used for bootstrap configuration. It recommend to tie the pin either to
low or high.
Note 6:Bypass boot ROM must always be strapped to low when I2C option is used.
Note 7:Enable memory test. Memory test configuration can be used in combination with all other options.
3.2Configuration for flight
To achieve the intended radiation tolerance in flight, certain bootstrap signals must be held at a fixed
configuration:
•DSU_EN must be held low (disabling debug interfaces)
GR716-DS-UM, May 2019, Version 1.2963www.cobham.com/gaisler
GR716
3.3Complete signal list
The design has the external signals shown in table 36.
Table 36: Complete signal list for the design
NameUsagePin sharing DirectionPolarity
RESET_OUT_NReset signal generated from the Power On
RESET_IN_NSystem input resetNoInLow
C_RSTInternal system release delay controlNo-Analog
XO_PCrystal oscillator positive inputNo-Analog
XO_NCrystal oscillator negative inputNo-Analog
XO_OUTDigital clock outputNoOut-
SYS_CLKSystem clockNoIn-
SPW_CLKSpaceWire clockNoIn-
DSU_ENDebug Support Unit enable signalNoInHigh
DSU_BREAKDebug Support Unit break signalNoBiDirHigh
NoOutLow
Reset or Software controlled reset. This signal will also indicate an error or watchdog
event has occurred.
SPI
Slave
SCKSCKMISORXD
MOSIMOSI-RXS
SELSEL--
--SCKTXD
--SELTXS
MISOMISOMOSI-
2)
General Purpose I/OYesBidir-
SPI4S
Slave
SPI
Master
Space-
Wire
Ye sI nH i gh
Ye sI nH i gh
Ye sI nH i gh
YesOutHigh
YesOutHigh
YesOutHigh
GR716-DS-UM, May 2019, Version 1.2964www.cobham.com/gaisler
GR716
Table 36: Complete signal list for the design
NameUsagePin sharing DirectionPolarity
VDDA_REFAnalog BandGap supplyNo-Analog
VSSA_REFAnalog BandGap groundNo-Analog
VREFBUFExternal Precision Voltage referenceNo-Analog
VREFExternal BandGap referenceNo-Analog
RREFExternal BandGap reference. Connect to
ground via resistance of 5.11 Kohm.
LDO_INLDO voltage supplyNo-Analog
1)
VDDIO
1)
VDD
GNDGroundNo-Analog
Note 1:Connect to ground via decoupling capacitors when internal LDO is used
Note 2:See chapter 2.5 for IO definition selection
Digital IO supplyNo-Analog
Core supplyNo-Analog
No-Analog
GR716-DS-UM, May 2019, Version 1.2965www.cobham.com/gaisler
GR716
4Clocking
Up to six unique external clock sources connected on five external input pins: SYS_CLK, SPW_CLK, PWRX_CLK, GR1553_CLK, SPI4S_CLK, PWM_CLK sources can be used for generating
different clocks in the GR716 Microcontroller. Internal ADC and DAC clock generation is also supported to control asynchronous interface for the ADC and DAC.
Note that external PacketWire
clock is only accessible via the IO switch matrix
Table 37. Clock inputs
Clock inputDescriptionFrequency Range
ADC_CLKADC clock generated from internal logic used for clocking and con-
trol of internal ADC
DAC_CLKDAC clock generated from internal logic used for clocking and con-
trol of the internal DAC
SYS_CLKSystem clock input
SPW_CLKSpaceWire clock
GR1553_CLKMIL-STD-1553B interface clock (Only valid via PIN muxing)
SPI4S_CLKSPI for Space clock
PWRX_CLKPacketWire receive clock
PWTX_CLKPacketWire loop-back clock for test purpose
PWM_CLKPWM clockup to 100MHz
up to 2 MHz
up to 3 MHz
1 - 50 MHz
4 - 100 MHz
20 MHz
up to 25 MHz
up to 12.5 MHz
up to 12.5 MHz
5)
2)
3)
3)
1)
1)
Note 1: Frequency shall be equal or lesser than system clock frequency divided by 4
Note 2: Duty cycle for SpaceWire clock shall be set to 50/50 for best jitter performance
Note 3: Duty cycle for MIL-STD-1553B clock shall be at least 40%
Note 4: Frequency shall be equal or lesser than system clock frequency divided by 2
Note 5: System clock must at all time be supplied to the system
The internal ADC_CLK is generated via control registers for the internal ADC, see chapter 12.
There are four internal DAC_CLK clocks. Each DAC_clock is generated individually via control registers, see chapter 15.
The SYS_CLK pin is used as the main system clock, and can be selected to directly drive the clock
network without PLL. The SYS_CLK is selected by default as system clock. The system clocks shall
always be running during reset and normal operation.
The SPW_CLK pin is the external SpaceWire clock, and it can be used to generate the internal clocks
directly or multiplied with a PLL, depending on the value of the configuration registers in PLL configuration block, see chapter 10.
The GR1553_CLK pin is the external MIL-1553B 20 MHz clock and can be used if MIL-1553B
interface requires external clock.
The PWRX_CLK pin is the external PacketWire Reciever clock and is used if PacketWirer receiver
interface is enabled.
The microcontroller PLL can be used to generate frequencies required for SpaceWire, 1553B or the
system. The lowest frequency to be used with the integrated PLL is 4 MHz to be able to meet jitter
performance for SpaceWire (with ideal supply).
Clock distribution and configuration in the microcontroller is shown in figure 5. In figure 5 the ’blue’,
’green’ and ’grey’ boxes represents logic. External pins are marked with ’names’ for cross reference
to the pin list in section 3.3. Control registers accessible via software or external boot-straps in order
to setup and configure clocks in the system are named using the format <register name>.<bitfield>.
GR716-DS-UM, May 2019, Version 1.2966www.cobham.com/gaisler
GR716
Clock
Divider
Sel
SYSREF.SEL
SYSREF.DUTY
SYSREF.DIV
System Clock
Dividor
ACFG.AC
DCFG.DS
SYSREF.SEL
SYSREF.DUTY
SYSREF.DIV
PWMxREF.SELPWMxREF.DUTY
PWMxREF.DIV
PWMxREF.200M
PLL
Sel
SYSSEL.S
Clock
Divider
Sel
SPWREF.SEL
SPWREF.DUTY
SPWREF.DIV
SpaceWire Clock
Dividor
On-chip PLL
Clock
Divider
Sel
PWMx Clock
Dividor
External
System
Clock
External
SpaceWire
Clock
PLLREF.SEL
PLL.CFG
PLL.PD
Sel
SYS.CFG.GPx
Clock
Divider
Sel
MIL-1553B Clock
Dividor
External
MIL/1553B
Clock
Clock Div
Clock Div
External
SPI4S
Clock
Internal
System
Clock
On-chip
ADC clock
On-chip
DAC clock
Internal
SpcaeWire
Clock
Internal
MIL-1553B
Clock
Internal
PWMx
Clock
Internal
SPI4S Clock
Sel
SYS.CFG.GPx
External
PacketWire
Clock
SYS_CLK
SPISL_SCK, GPIO[53]
GPIO[10]
GPIO[47]
GPIO[61]
GPIO[1]
GPIO[26]
GPIO[38]
GPIO[53]
GPIO[17], GPIO[18]External
PWM
Clock
Internal
PacketWire
Clock
Sel
Figure 5. LEON3FT microcontroller clock distribution scheme and control register.
4.1PLL Configuration and Status
The PLL is designed to mitigate radiation effects and to always output 400 MHz. In order to lock and
generate a 400 MHz output clock the PLL needs to be programmed with the input clocks frequency.
The input clock frequency is set via PLL control and status registers, see section 10.
When the GR716 Microcontroller is configured to be controlled via remote access the PLL is configured automatically after reset by the hardware. The setup used is determined by configuration bootstraps specified in chapter 3.1. The input frequency needs to be known by the hardware in order to
properly setup and synchronize the remote access link.
4.2Clock Source and divisor
The system clock, SpaceWire clock, PWM and GR1553B clock can be generated internally from
internal or external sources, see figure 5 and section 10. Clock source and divisor is selected via configuration registers described in section 10.
The clock source and divisor needs to be chosen carefully depended upon the application requirements for clock frequency, clock jitter and clock duty cycle.
GR716-DS-UM, May 2019, Version 1.2967www.cobham.com/gaisler
GR716
4.3System clock
The system clock is used to clock the processors, the AMBA buses, and all on-chip cores. The system
clock can be derived directly from input pin SYS_CLK or from the external pins SPWCLK via the
internal PLL.
The microcontroller includes an on-chip oscillator able to provide a 5 - 25 MHz internal clock. This
clock can optionally be used to generate other on-chip clocks for the processor system, SpaceWire and
MIL-STD-1553B. To be able to provide a high-accuracy reference clock a crystal oscillator is implemented, where the active oscillator part is implemented on-chip and the crystal is to be connected
externally. Alternatively, any arbitrary clock source can be applied as a logic-level clock signal on one
of the crystal-interface input pins.
The output from the on-chip oscillator needs to be connected outside the microcontroller device if to
used.
4.3.1System clock source selection
By selecting a system clock source and/or system clock divisor for the system. The core system can be
configured to run slower or faster than the external system clock. Special care needs to be taken when
switching system clock source in order to switch to a existing clock source.
The device will automatically switch back to use the default system input clock during reset and if the
system tries to switch to a disabled clock source.
4.4SpaceWire clock
The clock used for the SpaceWire link receiver and transmitter logic is taken from the dedicated
SpaceWire clock pin SPW_CLK either directly, or multiplied with a PLL, depending on the value of
the configuration register for the SpaceWire clock mux and PLL. See chapter 10 for more information.
4.5MIL-STD-1553B clock
The 20 MHz clock for the MIL-STD-1553B codec is taken from the dedicated pin gr1553b_clk or
from the external SPWCLK signal configured via the internal register.
4.5.1Using PLL clock as input clock for 1553B interface
The PLL output clock frequency can be used to generate a MIL-STD-1553B clock. The MIL-STD1553B clock can be generated by divide the PLL frequency by 20, see section 10 for details on the
MIL-STD-1553B clock divisor registers.
4.6PacketWire RX Clock
The external clock input for the PacketWire clock receiver is available via the IO mux, see table 2.6.
For more information about the PacketWire see section 31.
The PacketWire RX clock can also be generated from internal PacketWire TX clock. The PacketWire
TX clock is selected as input to the PacketWire RX clock when the PacketWire is deselected in the IO
mux.
4.7ADC Clock
ADC clock shall match the sampling speed required by the application. Maximum sampling speed is
200 Ksps i.e. maximum ADC clock frequency is 2 MHz. The ADC clock is configured via registers,
see 12.
GR716-DS-UM, May 2019, Version 1.2968www.cobham.com/gaisler
GR716
4.8DAC Clock
DAC clock shall match the sampling speed required by the application. Maximum sampling speed is
3 Msps i.e. maximum DAC clock frequency is 3 MHz. The DAC clock is configured via registers, see
15.
4.9PWM Clock
The PWM clock shall match the resolution required by the application. The PWM clock can be generated from the an external pin, from the system clock or from the PLL. The PWM frequency can be up
to 200 MHz.
4.10Clock gating unit
The design has a clock gating unit through which individual cores can have their clocks enabled/disabled and resets driven.
The LEON3 processor core will automatically be clock gated when the processor enters power-down
or halt state. The floating-point units (GRFPU) will be clock gated when the corresponding processor
has disabled FPU operations by setting the %psr.ef bit to zero, or when the processor has entered
power-down/halt mode.
For more information see the chapter about the clock gating unit section 26.
4.11Debug AHB bus clocking
All cores on the Debug AHB bus will be gated off when the DSU_EN signal is set to low.
4.12Test mode clocking
When in test mode (TESTEN signal = 1) all clocks in the design are connected to the SYS_CLK test
clock.
GR716-DS-UM, May 2019, Version 1.2969www.cobham.com/gaisler
GR716
5Reset
5.1IO Reset
The device has an on-chip reset generator that creates a reset signal that is fed to the rest of the system.
The reset is asynchronously set and synchronously released after a delay. The delay can be controlled
by connecting a external capacitance to the external pin C_RST input.
All peripherals can be reset independently while the processor continues execution. Thus giving the
option to force the full device into a known state during reset mode or just applying a hard reset to
selected peripherals. Peripherals are reset independently via register accessible from the processor in
the microcontroller or via remote accesses via
UART, I2C, SPI, CAN, MIL-STD-1553B or
SpaceWire interface. Remote access via CAN and MIL-STD-1553B requires external boot ram. For
more information about individual reset control see chapter 26.2.
The microcontroller includes a brown-out detector to supervise the external power supply for the system to shutdown in a controlled manor. A system shutdown is requested via an interrupt to the processor by the brown-out detector in case the supply voltage falls below a specific value. The voltage level
is programmable and is always set to the lowest possible value by default after reset.
The 64 General purpose IO described in chapter 2.4 and 2.5 will set to high impedance mode during
power-up/down, Brown detection or if a failure has been detected in the IO configuration registers
described in chapter 7.1.
GR716-DS-UM, May 2019, Version 1.2970www.cobham.com/gaisler
GR716
6Technical notes
6.1GRLIB AMBA plug&play scanning
The bus structure in this design requires some special consideration with regard to plug&play scanning. The default behavior of GRLIB AMBA plug&play scanning routines is to start scanning at
address 0xFFFF0000. If any AHB/AHB bridges or APB bridges are detected during the scan, the general scanning routine traverses the bridge and reads the plug&play information from the bus behind
the bridge. In this design, the default 0xFFFF0000 address gives plug&play information only for the
Processor AHB bus. For the plug&play scanning routine to get plug&play information from all AHB
buses the start address 0x9FFF0000 need to be used.
6.2Software portability
6.2.1Instruction set architecture
The LEON3FT processor used in this design implements the SPARC V8 instruction set architecture.
This means that any compiler that produces valid SPARC V8 executables can be used. Full instruction
set compatibility is kept with LEON2FT and LEON3FT applications.
6.2.2Peripherals
Standard GRLIB software drivers can be used.
For software driver development, this document describes the capabilities offered by the LEON3FT
microcontroller system. In order to write a generic driver for a GRLIB IP core, that can be used on all
systems based on GRLIB, please also refer to the generic IP core documentation in GRLIB IP Core
User’s Manual [GRIP]. Note, however, that the generic documentation may describe functionality not
present in this implementation and that this data sheet supersedes any documentation found in [GRIP]
for this system.
6.2.3Plug and play
Standard GRLIB AMBA plug&play layout is used. The same software routines used for typical
LEON/GRLIB systems can be used.
GR716-DS-UM, May 2019, Version 1.2971www.cobham.com/gaisler
GR716
7System Startup Status and General Configuration
This section describes general status register and control registers for LEON3FT microcontroller system. General status and configuration register described in this section are be used for IO function
selection and peripheral configuration. GPIOs are sampled during RESET and stored in register for
configuration of IO switch matrix and peripherals.
This section also describes how to get access to control signal to analog functions from external pins
and how to enable memory build test and interrupt test.
7.1Configuration Registers
The registers are mapped into AMBA address space. The register layout used for configuration of
GPIO is explained in section 2.5.
Table 38. System IO configuration register
AMBA addressRegisterAcronym
0x8000D000System IO configuration for GPIO 0 to 7SYS.CFG.GP0
0x8000D004System IO configuration for GPIO 8 to 15SYS.CFG.GP1
0x8000D008System IO configuration for GPIO 16 to 23SYS.CFG.GP2
0x8000D00CSystem IO configuration for GPIO 24 to 31SYS.CFG.GP3
0x8000D010System IO configuration for GPIO 32 to 39SYS.CFG.GP4
0x8000D014System IO configuration for GPIO 40 to 47SYS.CFG.GP5
0x8000D018System IO configuration for GPIO 48 to 55SYS.CFG.GP6
0x8000D01CSystem IO configuration for GPIO 56 to 63SYS.CFG.GP7
0x8000D020System IO Pullup configuration for GPIO 0 to 31SYS.CFG.PULLUP0
0x8000D024System IO Pullup configuration for GPIO 32 to 64SYS.CFG.PULLUP1
0x8000D028System IO Pulldown configuration for GPIO 0 to 31SYS.CFG.PULLDOWN0
0x8000D02CSystem IO Pulldown configuration for GPIO 32 to 64SYS.CFG.PULLDOWN1
12: 0Error status (ESTAT) BCH error status for individual register banks
7.2Boot Strap information register
The register shows the current status of the external boot strap configuration used. The register can be
modified in order to trigger a reboot and re-configuration of the microcontroller using the internal onchip boot ROM
Table 55. Boot strap register
AMBA addressRegisterAcronym
0x80008000Internal boot ROM configuration register. Register gets
default value from external bootstrap pins after reset.
29Redundant memory available. Default settings is determined by GPIO[63]. For more information see table 30 in
section 3.1
28Bypass of internal boot ROM. This will force the microcontroller to boot from external selected source. Default
settings is determined by GPIO[17]. For more information see table 30 in section 3.1
27: 25Not used
24: 21PLL Divisor startup value
0 - Input frequency to PLL is 50 Mhz
1 - Input frequency to PLL is 25 Mhz
2 - Input frequency to PLL is 20 Mhz
3 - Input frequency to PLL is 12.5 Mhz
4 - Input frequency to PLL is 10 Mhz
5 - Input frequency to PLL is 5 Mhz
All other values assume input frequency is set to 50 MHz. Default settings is determined by GPIO[63] and
DUART_TX. For more information see table 30 in section 3.1
20: 16SpaceWire clock divisor
The register field set the reset value of register CLKDIV.CLKDIVSTART in SpaceWire. The register CLKDIV.CLKDIVSTART determines the link-rate during initialization (all states up to and including the connectingstate). For more information see 33.3.5. Default settings is determined by GPIO[63] and DUART_TX. For more
information see table 30 in section 3.1
15Boot from NVRAM when bit is to ’0’. Only available in package option with embedded NVRAM. Pin strapped
to ’1’ by default in package without NVRAM in package.
14Internal NVRAM exists in package when bit is to ’0’. Pin strapped to ’1’ by default in package without
Default settings is determined by SPIM_MOSI, SPIM_SCK and SPIM_SEL. For more information see table 30
in section 3.1
1:Configure boot ROM to check and use ASW container. Default se
more information see table 30 in section 3.1
0:Not used
ttings is determined by DUART_TX. For
7.3Special Configuration Registers
The special registers are used for getting access to special functions in the LEON3FT microcontroller.
Special functions accessible via special configuration registers:
GR716-DS-UM, May 2019, Version 1.2978www.cobham.com/gaisler
GR716
•Make digital control and status signals for on-chip analog functionality available on the external
general inputs and outputs.
•Enable and run Production test on individual embedded memories
•Trigger interrupt test
•Enable external voltage reference
7.3.1On-chip analog functions
Access to digital control and status signals for integrated analog functionality. Access to control and
status for individual analog functions can be configured in the register SYS.CFG.ANA1 and
SYS.CFG.ANA2. Register described in this section is only available in debug mode. Please contact
Cobham Gaisler support if for more information is needed.
Table 57. Analog access configuration register
AMBA addressRegisterAcronym
0x94002000Configuration register for access of analog digital control
and status interface on external pins
0x94002004Configuration register for access of analog digital control
and status interface on external pins
SYS.CFG.ANA1
SYS.CFG.ANA2
Table 58. 0x94002000 - SYS.CFG.ANA1 - Analog access configuration register
310
ANA1
0x0
rw
31Enable PLL_FB output on internal analog test bus 4
30Enable PLL_LOCK output on internal analog test bus 4
29Enable PLL_OUT output on internal analog test bus 5 output on internal analog test bus 4
28Enable VMON33LVDS_BG33_OK output on internal analog test bus 4
27Enable VMON33LVDS_SUPPLY33_OK output on internal analog test bus 4
26Enable VMON33LVDS_COMPIN output on internal analog test bus 4
25Enable VMON33DAC_BG33_OK output on internal analog test bus 4
24Enable VMON33DAC_SUPPLY33_OK output on internal analog test bus 4
23Enable VMON33DAC_COMPIN output on internal analog test bus 4
22Enable VMON33BG_BG33_OK output on internal analog test bus 3
21Enable VMON33BG_SUPPLY33_OK output on internal analog test bus 3
20Enable VMON33BG_COMPIN output on internal analog test bus 3
19Enable VMON33ADC_BG33_OK output on internal analog test bus 3
18Enable VMON33ADC_SUPPLY33_OK output on internal analog test bus 3
17Enable VMON33ADC_COMPIN output on internal analog test bus 3
16Enable VMON33IO_BG33_OK output on internal analog test bus 3
15Enable VMON33IO_SUPPLY33_OK output on internal analog test bus 3
14Enable VMON33IO_COMPIN output on internal analog test bus 3
13Enable ADC0_OUTN_CROSS output on internal analog test bus 2
12Enable ADC0_OUTN output on internal analog test bus 2
11Enable ADC0_VREFN output on internal analog test bus 2
10Enable ADC0_AGND output on internal analog test bus 2
GR716-DS-UM, May 2019, Version 1.2979www.cobham.com/gaisler
GR716
Table 58. 0x94002000 - SYS.CFG.ANA1 - Analog access configuration register
9Enable Buffered VPTAT output on internal analog test bus 2
8Enable ip_hipo_23u<7> output on internal analog test bus 2
7Enable ip_ref_10u<42> output on internal analog test bus 2
6Enable ADC0_OUTP_CROSS output on internal analog test bus 1
5Enable ADC0_OUTP output on internal analog test bus 1
4Enable ADC0_VREFP output on internal analog test bus 1
3Enable CompOut33 output on internal analog test bus 1
2Enable Buffered bandgap VREF output on internal analog test bus 1
1Enable Unbuffered VPTAT output on internal analog test bus 1
0Enable GND3V3_REF_C output on internal analog test bus 1
Table 59. 0x94002004 - SYS.CFG.ANA2 - Analog access configuration register
31 30 2923 220
ADCReservedANA2
0x00x00x0
rwrwrw
31Enable control of ADC0 from external GPIO signals
30Enable observability of ADC0 output signals on external GPIO signals
29: 23Reserved
22Select external resistor reference (sel_VMON18_INT_COMPIN) for VMON18 1
21Select external resistor reference (sel_VMON33_INT_COMPIN5) for VMON33 5
20Select external resistor reference (sel_VMON33_INT_COMPIN4) for VMON33 4
19Select external resistor reference (sel_VMON33_INT_COMPIN3) for VMON33 3
18Select external resistor reference (sel_VMON33_INT_COMPIN2) for VMON33 2
17Select external resistor reference (sel_VMON33_INT_COMPIN1) for VMON33 1
16Enable (ena_TEST) test buffer 5
15Enable (ena_TEST) test buffer 4
14Enable (ena_TEST) test buffer 3
13Enable (ena_TEST) test buffer 2
12Enable (ena_TEST) test buffer 1
11Enable bypass (byp_TEST) measurement for test buffer 5
10Enable bypass (byp_TEST) measurement for test buffer 4
9Enable bypass (byp_TEST) measurement for test buffer 3
8Enable bypass (byp_TEST) measurement for test buffer 2
7Enable bypass (byp_TEST) measurement for test buffer 1
6Enable offset (i_TEST) measurement for test buffer 5
5Enable offset (i_TEST) measurement for test buffer 4
4Enable offset (i_TEST) measurement for test buffer 3
3Enable offset (i_TEST) measurement for test buffer 2
2Enable offset (i_TEST) measurement for test buffer 1
1Enable VMON18PLL_SUPPLY_OK output on internal analog test bus 5
0Enable VMON18PLL_COMPIN output on internal analog test bus 5
Access to specific functionality are granted on the following general purpose input and output signals
only if corresponding configuration bit is set in the register SYS.CFG.ANA1 and SYS.CFG.ANA2.
GR716-DS-UM, May 2019, Version 1.2980www.cobham.com/gaisler
GR716
Table 60. External access of integrated Analog digital configuration and status signals
When external access to analog digital control and status signals are enabled the mixed
GPIO signals are used as analog inputs and outputs to the integrated ADC and DAC.
Analog values inserted should respect the limits specified in chapter 52. GPIO[37-44]
are used as ADC inputs and GPIO[45-48] are used as DAC outputs.
Internal test buffers can be enabled on following pins in analog mode:
GPIO[39] - Test buffer 1 output (Internal test bus 1)
GPIO[40] - Test buffer 2 output (Internal test bus 2)
GPIO[42] - Test buffer 3 output (Internal test bus 3)
GPIO[48] - Test buffer 4 output (Internal test bus 4)
External test voltage references can be enabled on following pins in analog mode:
GPIO[44] - Analog test input reference voltage for ADC domain
GPIO[47] - Analog test input reference voltage for IO and Core domain
User
Mode
GPIO[49-63]Analog
Mode
User
Mode
Mixed Analog Digital user GPIO.
Internal test buffer can be enabled on following pins in analog mode:
GPIO[49] - Test buffer 5 output
External test voltage reference can be enabled on following pins in analog mode:
GPIO[50] - Analog test input reference voltage for PLL domain
User GPIO pin 63. Note that the GPIO pin #63 can only be configured as output
7.3.2Memory Test
All memory entities have a build-in test structure for automatic testing. The automatic testing is triggered from software and can only be enabled when the external DSU_EN signal is high. The test is
destructive and all memory contents will be overwritten.
The memory test algorithm used is a March C- (evolved March C). The advantage of using the March
C- test algorithm is that the algorithm covers many faults models without knowing the internal structure or the layout of the memory. The covered fault models includes Stuck-At, Transition, Coupling,
Neighborhood Sensitivity and Address decoding fault.
The disadvantage of using the March C- algorithm is that it is very time consuming due to its nature of
checking bit by bit multiple times.
March C- algorithm implemented
{↑(w0);↑(r0,w1);↑(r1,w0);↓(r0,w1);↓(r1,w0);↓(r0)}
Notation of the algorithm:
GR716-DS-UM, May 2019, Version 1.2981www.cobham.com/gaisler
GR716
↑ : address 0 bit 0 to address n-1 bit m
↓ : address n-1 bit m to address n bit 0
w0: write 0 to bit (memory cell) location
w1: write 1 to bit (memory cell) location
r0: read a bit (memory cell) value should be 0
r1: read a bit (memory cell) value should 1
The March C- test algorithm is enabled per memory instantiation by writing to the configuration register SYS.CFG:MEMTEST.
Table 61. Memory test configuration register
AMBA addressRegisterAcronym
0x80008004Configuration register for memory testSYS.CFG.MEMTEST
Table 62. 0x80008004 - SYS.CFG.MEMTEST - Memory test configuration register
0x0 - Not used (Memory bit for memory is kept in reset state)
0x1 - Enable March C- test algorithm
0x2 - Write 0x0 to all locations in memory
0x3 - Not used
29: 28On-chip Instruction memory test control bits (IM):
0x0 - Not used (Memory bit for memory is kept in reset state)
0x1 - Enable March C- test algorithm
0x2 - Write 0x0 to all locations in memory
0x3 - Not used
27: 26Trace Memory on MAIN AHB bus (DBG0 - DBG5):
25: 24
23: 22
21: 20
19: 18
17: 16
15: 14Trace Memory on MAIN AHB bus (DSU0 - DSU5):
13: 12
11: 10
9: 8
7: 6
5: 4
0x0 - Not used (Memory bit for memory is kept in reset state)
0x1 - Enable March C- test algorithm
0x2 - Write 0x0 to all locations in memory
0x3 - Not used
0x0 - Not used (Memory bit for memory is kept in reset state)
0x1 - Enable March C- test algorithm
0x2 - Write 0x0 to all locations in memory
0x3 - Not used
GR716-DS-UM, May 2019, Version 1.2982www.cobham.com/gaisler
GR716
Table 62. 0x80008004 - SYS.CFG.MEMTEST - Memory test configuration register
3: 2LEON3FT register Window 1 memory (RW1):
0x0 - Not used (Memory bit for memory is kept in reset state)
0x1 - Enable March C- test algorithm
0x2 - Write 0x0 to all locations in memory
0x3 - Not used
1: 0LEON3FT register Window 0 memory (RW0):
0x0 - Not used (Memory bit for memory is kept in reset state)
0x1 - Enable March C- test algorithm
0x2 - Write 0x0 to all locations in memory
0x3 - Not used
To minimize the power consumption all memory tests should be executed in sequence. It is still possible to execute all tests in parallel to shorten the test time. The run time is depended upon the number
of memory cells in the memory entity. The largest memory entity's are the data (64Kib) and instruction memory (128KiB).
The results and current status can be read in the status register SYS.STAT:MEMTEST. The status register indicates if test is running and if any error was detected during the memory test per memory
entity in the LEON3FT microcontroller.
Table 63. Memory test status register
AMBA addressRegisterAcronym
0x8000E004Status register for memory testSYS.STAT.MEMTEST
Table 64. 0x8000E004 - SYS.STAT.MEMTEST - Memory test status register
0x0 - No error detected during last test (If test has been run)
0x1 - Enable March C- test algorithm
0x2 - Error during last scan
0x3 - Invalid state and test result
29: 28On-chip Instruction memory test control bits (IM):
0x0 - No error detected during last test (If test has been run)
0x1 - Enable March C- test algorithm
0x2 - Error during last scan
0x3 - Invalid state and test result
27: 26Trace Memory on MAIN AHB bus (DBG0 - DBG5):
25: 24
23: 22
21: 20
19: 18
17: 16
0x0 - No error detected during last test (If test has been run)
0x1 - Enable March C- test algorithm
0x2 - Error during last scan
0x3 - Invalid state and test result
GR716-DS-UM, May 2019, Version 1.2983www.cobham.com/gaisler
GR716
Table 64. 0x8000E004 - SYS.STAT.MEMTEST - Memory test status register
15: 14Trace Memory on MAIN AHB bus (DSU0 - DSU5):
13: 12
11: 10
9: 8
7: 6
5: 4
3: 2LEON3FT register Window 1 memory (RW1):
1: 0LEON3FT register Window 0 memory (RW0):
0x0 - No error detected during last test (If test has been run)
0x1 - Enable March C- test algorithm
0x2 - Error during last scan
0x3 - Invalid state and test result
0x0 - No error detected during last test (If test has been run)
0x1 - Enable March C- test algorithm
0x2 - Error during last scan
0x3 - Invalid state and test result
0x0 - No error detected during last test (If test has been run)
0x1 - Enable March C- test algorithm
0x2 - Error during last scan
0x3 - Invalid state and test result
7.3.3System configuration register
This register can be used to test system, change system error behavior or enable special system functions e.g. interface loopback functionality or to enable external voltage refernce.
The interrupt test is accessible to the system in all functional modes. Protection scheme has been
added to the interrupt test functionality in order to prevent erroneous accesses to the functionality. The
generated interrupt event will be inserted into the interrupt controller and the intention is to test interrupt controller and interrupt software.
The interrupt test control register contains a interrupt number bit field and two protection bits. The
two protection bits are used as protection and enable bits for the interrupt test. When the protection
bits are toggled an interrupt event is asserted to the interrupt controller.
Table 65. Interrupt test configuration register
AMBA addressRegisterAcronym
0x8000E000Configuration register for memory test, LVDS reference
and Main bus configuration
Table 66. 0x8000E000 - SYS.CFG.SCFG - Interrupt test configuration register
3121 2018 17 16 15 14 13 12 11 10 9832 10
RVREFSPW LLLSLE FSPRIRQMR WE EE
SYS.CFG.SCFG
0x00x00x0 0x0 0x0 0x0 0x0 0x00x00x0 0x0 0x0
rrwrwrwrwrwrwrwrwrwrwrw
31: 18Not used
20: 18Enable and control of external voltage reference
Bit #20 - Enable external voltage reference
Bit #19 - Input external voltage reference (Only for test purpose during production)
Bit #18 - Bypass buffer, this bit should normally be set to 0 in order to get a full scale ADC reference output.
To enable and output a reference for precision measurements using internal ADC set VREF bits to 100b.
GR716-DS-UM, May 2019, Version 1.2984www.cobham.com/gaisler
GR716
Table 66. 0x8000E000 - SYS.CFG.SCFG - Interrupt test configuration register
17: 16SpaceWire Loop-back control (SPW) - Control of SpaceWire loop-back production test.
Bit #17 - Enable internal loop-back for SpaceWire PHY 0 (LVDS)
Bit #16 - Enable internal loop-back for SpaceWire PHY 1 (CMOS)
Internal loop-back means that the ports internal data and strobe signals are not mapped to the corresponding
external SpaceWire I/O pins. They are instead routed back to the port internally (transmit data to receive data,
transmit strobe to receive strobe).
External loop-back means that the external LVDS I/O pins are not routed to the corresponding port. Instead they
are routed back out on the external pins (LVDS_RXp/n to LVDS_TXp/n). Enable of external loop-back forces
the LVDS receiver and transmitter to be enabled.
LVDS external loop-back mode enables external test of voltage input and low level detection.
0x0 - Normal operation
0x1 - External loop-back mode routed back via rising edge clocked flip-flops
0x2 - External loop-back mode routed back via falling edge clocked flip-flops
0x3 - External loop-back mode routed back via rising or falling edge clocked flip-flops
SpaceWire External loop-back means that the external SpaceWire I/O pins are routed via SpaceWire-Phy to the
corresponding port. Pins are routed back via SpaceWire-Phy out on the external pins (SPW_RXDp/n to
SPW_TXDp/n and SPW_RXSp/n to SPW_TXSp/n).
Test option 0x1 and 0x2 are used for setup and hold measurements for respective clock edge. Test option 0x3 is
used for minimum pulse width detection.
12Locken (LE) - Support Locked transfers in SCRUBBER.
11Force Scrubber (FS) - Force Scrubber to function as AHBSTAT unit on main AMBA bus.
10: 9Interrupt test protection bits (PROT) - Protection and generation of interrupt test for specified interrupt source.
The protection bits needs to be toggled in-order to generate a test interrupt i.e.both PROT bits needs to be read
and bitwise inverted before written back to the PROT bit-field to generate a interrupt.
8:3Interrupt source (IRQ) - An event will be generated on the interrupt source
2MIL-1553B reset disable (MR) - Disable reset signal from MIL-1553B core
1Override watchdog error generation (WE) - Disables reset request. To be used during debug of the system
0Override error generation (EE) - Disables reset generation when processor error is detected. To be used during
debug of the system
GR716-DS-UM, May 2019, Version 1.2985www.cobham.com/gaisler
GR716
8Reset Generation and Brownout Detection
8.1Overview
The Reset Generation and Brownout detection provides the system with a reset signal, deterministic
startup behavior during power-on of the system and detection of power supply failure on board level.
The generated reset is output on a 3.3V IO to be used in the system.
8.2Operation
8.2.1System overview
The Reset generation and Brownout detection consists of two analog functions: The Power On Reset
(POR) and the Brownout detection (BO).
The Brownout detectors will monitor the 1.8V and all 3.3V supplies. At the event of crossing a
Brownout threshold, an interrupt will be generated. When such an interrupt is detected, the software
needs to take action, typically shutting down critical parts of the system in a well controlled way. The
time from detection of supply brownout to activation of system reset is determined by the external
power supplies capability to maintain the supply voltages (the amount of decoupling capacitance on
PCB).
8.2.2Detailed description
An internal reset signal is generated from level detection of the core supply voltage, VDD_CORE.
When this supply is below the detector threshold, the internal reset signal is low. When the supply
goes above the threshold, the internal reset is still kept low until the reset release time has pasted;
then, it goes high.
There is an external input reset signal, RESET_IN_N, which forces start of a reset cycle when it goes
active (low). This reset cycle includes a full reset release time delay before the internal reset is
released (before it goes high).
The internal reset signal and the external reset input signal RESET_IN_N input are asynchronous.
However, note that the reset of all internal Microcontroller logic is synchronous with the system
clock. Therefore, a positive edge on this clock is required after the internal reset is activated (after it
goes low), for the reset to start taking effect on the internal Microcontroller logic, and to complete the
internal Microcontroller reset state, 5 clock cycles are needed.
The RESET_OUT_N output is a buffered copy of the internal reset signal, and the output is a standard
CMOS 3.3V driver.
The reset release time or pulse width is set by the combination of an internal capacitor (400pF) and an
external capacitor C_RST.
The sum of power-on-reset capacitor must be large enough to keep the device in reset until power and
system clock is stable. The external power-on-reset capacitor, connected to C_RST, is recommend to
be at least 47nF and must be greater or equal to 5nF. The power-on-reset pulse width can be estimated
using the formula: Tpw = 755000*Crst. For example Tpw_47nF = 755000*47nF=~35ms.
The internal reset detection threshold has a hysteresis of at least 100mV(TBC). This is to ensure that
noise on VDD_CORE power-up/down ramp does not cause spurious toggling of the interal reset signal. The hysteresis also ensures that the delay circuitry, which generates the reset release time, functions properly (that the internal delay circuit is ensured to have enough time for proper discharge
before VDD_CORE can cross the threshold again).
The Brownout detector on the supplies, VDD_CORE, VDD_IO, VDDA_PLL, VDDA_ADC,
VDDA_DAC, VDD_LVDS, VDDA_REF, have individually programmable threshold levels. The
threshold selected for each supply must, in worst case, be set below the guaranteed minimum supply
GR716-DS-UM, May 2019, Version 1.2986www.cobham.com/gaisler
GR716
voltage instant peak level provided on the package pins for each supply, respectively. Otherwise,
undesired Brownout detections giving inadvertent system shutdowns can result. Note however that
the Brownout detectors have a spurious-pulse rejection filter of about 5us.
Furthermore, for any supply voltage in the system that is equipped with a reset threshold detection,
such as the on-chip VDD_CORE detector or any arbitrary supply detector on PCB, the Brownout
level must be set with a certain margin higher than the reset level, such that there is enough time to
ensure that the Brownout interrupt routine can be executed before the reset is activated. Therefore, the
selection of the Brownout threshold levels should be extra carefully co-designed with the power-supply and reset designs on PCB, in Microcontroller applications that will utilize the Brownout detectors
on supply voltages that are also reset detected (which the VDD_CORE always is).
The Brownout detection is latched in the interrupt handling logic, and the detected event can then be
taken care of by the interrupt service routine.
After power-on reset, the Microcontroller starts with all Brownout interrupt mask bits set to enable.
8.2.3Reset IO control
The 64 General purpose IO described in chapter 2.4 and 2.5 is forced to high impedance mode when
core voltage supply is lower than the threshold for releasing the system reset.
8.2.4Brownout IO control
The control register for the 64 General purpose IO described in chapter 2.4 and 2.5 described in chapter Configuration Registers can be forced by the system to keep its state when Brown Out has been
detected for at least one of the external voltage supplies, VDD_CORE, VDD_IO, VDDA_PLL,
VDDA_ADC, VDDA_DAC, VDD_LVDS, VDDA_REF.
The system can force all 64 General purpose IO by disabling clock source #23 described in section 26
8.2.5Access control
The reset release time is programmable by an external capacitor, C_RST. Capacitor value and release
time is specified in section 52.10
Brown Out detection level and interrupt generation can be controlled via registers.
8.3Registers
The Reset Generation and Brownout Detection is programmed through registers mapped into APB
address space.
Table 67. Reset Generation and Brownout Detection status and control registers
APB address offsetRegister
0x00Configuration register
0x04Status register
0x08Interrupt register
0x0CInterrupt mask register
0x10LDO trim register
0x14Voltage monitor delay register
0x18Voltage monitor powerdown register
0x1CUnused
0x20Power control, XO and LVDS driver enable register
0x24Brown Out disable IO from local register
GR716-DS-UM, May 2019, Version 1.2987www.cobham.com/gaisler
Table 73. 0x14 - VDEL - Voltage monitor delay register
3114131211109876543210
RBDIBDCBDABDDBDBBDLBDP
0b00b00b00b00b00b00b00
rwrwrwrwrwrwrw
31: 14Reserved
13: 12Brown Out Delay for 3.3 V power supply (BDI)
11: 10Brown Out Delay for 1.8 V power supply (BDC)
9: 8Brown Out Delay for Analog ADC supply (BDA)
7: 6Brown Out Delay for Analog DAC supply (BDD)
GR716-DS-UM, May 2019, Version 1.2989www.cobham.com/gaisler
GR716
Table 73. 0x14 - VDEL - Voltage monitor delay register
5: 4Brown Out Delay for BandGap supply (BDB)
3: 2Brown Out Delay for LVDS power supply (BDL)
1: 0Brown Out Delay for PLL power supply (BDP)
Table 74. 0x18 - VPD - Voltage monitor powerdown register
316543210
RESERVEDBI BC BA BD BB BL BP
0x000000000 00 00 0 0
rrwrwrwrwrwrwrw
31: 7RESERVED
6Brown Out Powerdown (BI) - Powerdown 3.3 V power supply detected
5Brown Out Powerdown (BC) - Powerdown 1.8 V power supply detected
4Brown Out Powerdown (BA) - Powerdown ADC power supply
3Brown Out Powerdown (BD) - Powerdown DAC power supply
2Brown Out Powerdown (BB) - Powerdown BandGap power supply
1Brown Out Powerdown (BL) - Powerdown LVDS power supply detected
0Brown Out Powerdown (BP) - Powerdown PLL power supply detected
Table 75. 0x20 - XEN - Power control, XO and LVDS driver enable register
313210
RESERVEDLP PP XP
0x000000000 0 0
rrwrwrw
31: 3RESERVED
2Power down LVDS (LP) - Power down LVDS power supply
1Power down POR (PP) - Power Down POR power supply
0Power down XO (XP) - Power down XO power supply
Note: Register is protected by password. Contact supportgasiler.com
Table 76. 0x24 - BDI - Brown Out disable IO from local register
3110
RESERVEDD
0x000000000
rrw
31: 2RESERVED
0Disable IO (D) - Brown Out disable IO from local register
Note: Register is protected by password. Contact supportgasiler.com
GR716-DS-UM, May 2019, Version 1.2990www.cobham.com/gaisler
GR716
C
X0
C
X1
XO_X0
XO_X1
XTAL
GND
GND
9Crystal (XO) Oscillator
9.1Overview
The on-chip crystal oscillator (XO) contains all active oscillator parts, and a crystal (XTAL) is added
on PCB. It provides a clock output signal as a 3.3V CMOS square-wave output.
9.2Operation
9.2.1System overview
The on-chip XO supports generation of an accurate XTAL-based oscillator clock signal, where its
output signal can be directly connected to the system clock input on the LEON3FT microcontroller.
This clock signal can also be arbitrarily used on PCB. If a precision XO on PCB is needed, the onchip XO can then be made to draw negligible power if desired.
9.2.2Detailed description
The XO block is supplied by the Microcontroller core voltage, VDD_CORE (1.8V). The oscillator
output is a 3.3V CMOS output and is available on an external pin. The XO block requires an external
crystal on PCB (parallel-resonant fundamental-tone AC-cut XTAL). The XTAL two terminals are to
be connected directly to the two external XO pins, and a capacitor to ground on each XO pin is added
for fine-tuning of the oscillator frequency. The range of supported XTAL frequencies is 5 to 25 MHz,
where 5MHz is recommended for low-power applications and up to 25MHz for high-performance
applications. See chapter TBD for the details how to implement the XO interface in PCB design.
In applications where an external high-precision oscillator on PCB needs to be used (TCXO, OCXO,
etc), a 3.3V CMOS-compatible oscillator signal should be fed into the system clock input. All three
external pins on the on-chip XO can then be left open. To minimize the XO current consumption, an
detector is build-in to disable the XO if no external XTAL is connected to the external XO pins.
9.2.3Typical crystal configurations
This section specifies a number of typical crystal configurations for the GR716 device.
GR716-DS-UM, May 2019, Version 1.2991www.cobham.com/gaisler
Note 1: The total crystal load capacitance should take into account the PCB stray capacitance
and the input capacitance of the GR716 device on XO pins to ground. The XO input
pins to ground are typically 4 pF. E.g. Assuming a crystal with load capacitance of
20pF and PCB stray capacitance would require C
Note 2:Due to the known issue with weak XO amplifier on revision GR716-XX-AAAA and
GR716-XX-AAAB the C
The C
should be = 6.8 pF and the CX2 = 22 pF
X1
and CX2 is chosen carefully for this specific revision.
X1
= CX2 = 33 pF
X1
1) 2)
2)
9.2.4Access control
N/A
GR716-DS-UM, May 2019, Version 1.2992www.cobham.com/gaisler
GR716
10PLL
10.1Overview
10.2Operation
The Phase-Lock-Loop (PLL) is capable of generating an phase locked output clock of 400MHz to the
system. The input reference clock is multiplied by 16, 20, 32, 40 or 80.
10.2.1 System overview
The PLL provides a 400MHz internal clock, typically used as SpaceWire clock, etc. The PLL reference-clock input is a 3.3V CMOS input, to which the XO-oscillator clock output can be directly connected, or any other clock signal generated on PCB fulfilling the electrical specification of this input.
The PLL reference-clock input is allowed to be asynchronous to any other clocks in the GR716
LEON3FT microcontroller.
10.2.2 Detailed description
For more information about using the PLL in the system see section 4.
10.2.3 Access control
PLL status and configuration can be accessed via registers
10.2.4 Configuration protection
The PLL control registers are provided with an BCH EDAC that can correct and detect errors for the
PLL and clock configuration. When an correctable or uncorrectable error is detected an interrupt can
optionally be generated to the system.
In case of a uncorrectable error was detected the default configuration will be selected i.e. system
clock source is the external SYS_CLK pin
The protection scheme needs to be enabled by system to be active.
GR716-DS-UM, May 2019, Version 1.2993www.cobham.com/gaisler
31PLL power down (PD) - If this bit is written to 1, the PLL is powerdown. The PLL should always be in power
down mode when not used, i.e.,when the PLL is bypassed.
30: 3RESERVED
2: 0PLL configuration (CFG) - Internal PLL multiplier depended upon the input frequency of the PLL
011b - when input frequency 25MHz (division by 16)
101b - when input frequency 20MHz(division by 20)
100b - when input frequency 12.5MHz(division by 32)
110b - when input frequency 10MHz (division by 40)
111b - when input frequency 5MHz (division by 80)
000b - not used
001b - not used
* This register can be changed after reset due to bootstrap pins
Table 80. 0x04 - STS - PLL status register
31210
RESERVEDLL CL
0x00000000wc
rrw
-
r
31: 2RESERVED
1Lost lock (LL) - This bit is a sticky bit that indicates if the lock bit from the SpaceWire clock PLL has gone low.
This bit can be cleared by writing a 1 to the PLL clear lost lock bit.
0PLL clock lock (CL) - Shows the current value of the PLL lock output.
GR716-DS-UM, May 2019, Version 1.2994www.cobham.com/gaisler
23: 16DUTY cycle for generated clock frequency - The duty cycle bitfield specifies how many of the total clock cycles
specified in the DIV bitfield the generated clock shall be high. IF this register is set to 0x0 the duty cycle will be
set to clock cycles defined in DIV and the clock period to 2xDIV.
15: 10RESERVED
GR716-DS-UM, May 2019, Version 1.2995www.cobham.com/gaisler
0x0 - Bypass when PLL is in power down mode (Clock source from external signal SYS_CLK or SPW_CLK)
0x1 - Clock generated from PLL
All other values will result in the clock generated from the PLL to be used.
The output from the PLL is always 400 MHz
* This registers default value can be changed after reset due to bootstrap pins
7: 0SpaceWire Reference Clock Divisor (DIV) - Set the divisor for input reference clock. Zero (default) bypass the
divisor.
When bitfield DUTY period is set to 0x0 or 0x1. The input clock frequency will be divided by 2xDIV clock
cycles with the duty cycle set to 50%. Valid configurations when DUTY period is set to 0 or 1:
0x00 - Bypass i.e. input frequency is divided by 1
0x02 - Divide input frequency by 4
0x04 - Divide input frequency by 8
0x06 - Divide input frequency by 12
0x08 - Divide input frequency by 16
0x0A - Divide input frequency by 20
0x0C - Divide input frequency by 24
0x0E - Divide input frequency by 28
0x10 - Divide input frequency by 32
0x14 - Divide input frequency by 40
0x16 - Divide input frequency by 44
0x18 - Divide input frequency by 48
0x1A - Divide input frequency by 52
0x1C - Divide input frequency by 56
0x1E - Divide input frequency by 60
All other combinations is not valid.
When bitfield DUTY period is equal or greater then 0x2.The DIV bifield will divide the input frequency by DIV
clock cycles and with the duty cycle defined in the DUTY bitfield.
0x04 - Divide input frequency by 4
0x06 - Divide input frequency by 6
0x08 - Divide input frequency by 8
0x0A - Divide input frequency by 10
0x0C - Divide input frequency by 12
0x0E - Divide input frequency by 14
0x10 - Divide input frequency by 16
0x14 - Divide input frequency by 20
0x16 - Divide input frequency by 22
0x18 - Divide input frequency by 24
0x1A - Divide input frequency by 26
0x1C - Divide input frequency by 28
0x1E - Divide input frequency by 30
23: 16DUTY cycle for generated clock frequency - The duty cycle bitfield specifies how many of the total clock cycles
specified in the DIV bitfield the generated clock shall be high. IF this register is set to 0x0 the duty cycle will be
set to clock cycles defined in DIV and the clock period to 2xDIV.
GR716-DS-UM, May 2019, Version 1.2996www.cobham.com/gaisler
0x1 - External 1553B clock pin selected by the IO mux
0x2 - Clock source from external signal SPW_CLK
0x3 - Clock generated from PLL
External or active 1553B clock is selected via IO mux configuration
7: 01553B reference Clock Divisor (DIV) - Set the divisor for input reference clock. Zero (default) bypass the divi-
sor.
When bitfield DUTY period is set to 0x0. The input clock frequency will be divided by 2xDIV clock cycles with
the duty cycle set to 50%
When bitfield DUTY period is larger then 0x1.The DIV bifield will divide the input frequency by DIV clock
cycles and with the duty cycle defined in the DUTY bitfield
23: 16DUTY cycle for generated clock frequency - The duty cycle bitfield specifies how many of the total clock cycles
specified in the DIV bitfield the generated clock shall be high. IF this register is set to 0x0 the duty cycle will be
set to clock cycles defined in DIV and the clock period to 2xDIV.
15: 10RESERVED
9: 8System Reference Clock (SEL) - Select system clock frequency and source
0x0 - Clock source from external signal SYS_CLK input pin
0x1 - Clock source from external signal SPW_CLK input pin
0x2 - Clock generated from PLL
All other values will result in the clock generated from the external signal SYS_CLK to be used
7: 0System Reference Clock Divisor (DIV) - Set the divisor for input reference clock. Zero (default) bypass the divi-
sor.
When bitfield DUTY period is set to 0x0. The input clock frequency will be divided by 2xDIV clock cycles with
the duty cycle set to 50%
When bitfield DUTY period is larger then 0x1.The DIV bifield will divide the input frequency by DIV clock
cycles and with the duty cycle defined in the DUTY bitfield
Table 85. 0x18 - SYSSEL - Select system clock source
3110
RESERVEDS
0x0
r
0
rw
31: 1RESERVED
0Select new system clock source (S) - Writing to this register will force the system clock selected in register SYS-
REF to be selected and used.as system clock.
GR716-DS-UM, May 2019, Version 1.2997www.cobham.com/gaisler
GR716
Table 86. 0x1C - CTRL - Enable interrupt generation from PLL and clock logic
3110
RESERVEDIE
0x0
r
0
rw
31: 1RESERVED
0Interrupt Enable (IE) - Writing to this register will enable interrupt generation from PLL and clock logic
27: 24Error control (ECTRL) - Enable error detection and correction of clock control registers
b0000 - Disable all error detection and correction
b1111 - Enable error detection and correction
21: 20Error status (ESTAT) -Error status register
bx1 - Error detected in bitfields for PD, ECTRL, TCTRL, CFG or system clock configuration register
b1x - Error detected in bitfields for PLL, SPW or 1553B clock configuration registers
24Divide reference clock by 2. To generate a 200 MHz clock the PWM0REF.SEL must be set to 0x3 i.e. the source
of the PWM clock must be the output of the PLL.
23: 16DUTY cycle for generated clock frequency - The duty cycle bitfield specifies how many of the total clock cycles
specified in the DIV bitfield the generated clock shall be high. IF this register is set to 0x0 the duty cycle will be
set to clock cycles defined in DIV and the clock period to 2xDIV.
7: 0PWM reference Clock Divisor (DIV) - Set the divisor for input reference clock. Zero (default) bypass the divi-
sor.
When bitfield DUTY period is set to 0x0. The input clock frequency will be divided by 2xDIV clock cycles with
the duty cycle set to 50%
When bitfield DUTY period is larger then 0x1.The DIV bifield will divide the input frequency by DIV clock
cycles and with the duty cycle defined in the DUTY bitfield
24Divide reference clock by 2. To generate a 200 MHz clock the PWM1REF.SEL must be set to 0x3 i.e. the source
of the PWM clock must be the output of the PLL.
23: 16DUTY cycle for generated clock frequency - The duty cycle bitfield specifies how many of the total clock cycles
specified in the DIV bitfield the generated clock shall be high. IF this register is set to 0x0 the duty cycle will be
set to clock cycles defined in DIV and the clock period to 2xDIV.
7: 0PWM reference Clock Divisor (DIV) - Set the divisor for input reference clock. Zero (default) bypass the divi-
sor.
When bitfield DUTY period is set to 0x0. The input clock frequency will be divided by 2xDIV clock cycles with
the duty cycle set to 50%
When bitfield DUTY period is larger then 0x1.The DIV bifield will divide the input frequency by DIV clock
cycles and with the duty cycle defined in the DUTY bitfield
GR716-DS-UM, May 2019, Version 1.2999www.cobham.com/gaisler
GR716
11Voltage and Current References
11.1Overview
The internal voltage and current reference block provides accurate reference voltage and currents in
the system.
11.2Operation
11.2.1 System overview
The internal voltage and current references consist of a bandgap reference providing a high-impedance unbuffered voltage of nominal 1V and a bias block generating accurate bias currents. The bias
block includes a temperature sensor compatible with the ADC IP to enable digital temperature read
out.
11.2.2 Detailed description
The reference blocks, internal voltage reference and current reference generator, are supplied by
VDDA_REF and VSSA_REF. It is essential that there is good PCB decoupling on this supply, especially at high frequencies, since the on-chip disturbance suppression commonly is poor at high frequencies, which would result in high-frequency disturbance transferred directly onto the references
used by analog blocks such as ADC and DACs.
Another decoupling capacitor, which is the most critical (sensitive) one for the whole Microcontroller,
is on the internal voltage reference output pin, VREF. This decoupling capacitance should be 4.7nF
located very close to the VREF pin, and grounded (very close) to the VSSA_REF pin. There should
be no other components on PCB connected to the VREF pin, and its PCB layout connection should
not extend beyond the decoupling capacitor, to avoid disturbance on this pin. Preferably, a
VSSA_REF local ground plane and guard ring around this pin should be implemented in the PCB layout.
The reference buffer providing VREFBUF is a buffer amplifier with gain 2.4 of VREF. The maximum
load current on VREFBUF, with full voltage performance maintained, is 2mA. It can be used, for
example, to perform accurate bridge measurements with the ADC, such as thermistor measurements,
or wherever a reference voltage (referred to VSSA_REF) is needed in application circuits on PCB. It
is, however, critical that no fast current load steps are present on the VREFBUF output, since that can
cause erroneous voltage transients.
The reference resistor, RREF, sets all the reference currents for internal bias currents and the fullscale
current for the four DACs. Therefore, it is critical that RREF always is within 4.9-5.3 kohm over
worst-case conditions. The DAC fullscale current is proportional to the current through RREF, where
5.11 Kohm gives a nominal fullscale current of 4.0m.
GR716-DS-UM, May 2019, Version 1.29100www.cobham.com/gaisler
GR716
Figure 7. GR716 ADC bus and pin connection
GPIO37
LEON3FT
Processor
BridgeBridge
MEMPROT
Bridge
APB
(0x80000000-
GRCLKGATE
0x800FFFFF)
APB
(0x80100000 0x801FFFFF)
APB
(0x80400000-
0x804FFFFF)
ADC0ADC1ADC2
ADC5
ADC6ADC7
ADC
GPIO44
Main AHB
(0x00000000 0xFFFFFFFF)
Select Outputs
Enable ADCx clocks
(0x8000D000 0x8000D03F)
(0x80006000 0x8000600F)
GRGPREG
Memory Protection
(0x8001A000 0x8001AFFF)
ADC3
ADC MUX & ARBITER
Conv
0
ADC
Conv
1
ADC MUX & ARBITER
ADC4
Te mp
Core
Voltage
12ADC, Pre-Amplifier and Analog MUX
12.1Overview
The GR716 has 2 separate 11 bit Analog-to-Digital Converters (ADC) converters and 8 separate ADC
control units. Each 11 bit resolution Analog-to-Digital Converters (ADC) converts analog singleended or differential input signals to 11 bit digital outputs. An integrated analog multiplexer and preamplifier allow measuring both on- and off-chip analog signals. ADC control and status registers are
accessible via 8 ADC control units from the processor. The 8 ADC control units supports CPU offloading, autonomously ADC measurements and level detection to off-load the processor.
The ADC control units are located on APB bus in the address range from 0x80400000 to
0x80407FFF. See ADC converters and ADC control units connections in the next drawing. The figure
shows memory locations and functions used for ADC configuration and control.
The primary clock gating unit GRCLKGATE described in section 26 is used to enable/disable indi-
vidual ADC converters and ADC control units. The unit GRCLKGATE can also be used to perform
reset of individual ADC control units. Software must enable clock and release reset described in section 26 before ADC configuration and sampling can start.
External IO selection per ADC input pin is made in the system IO configuration register (GRG-PREG) in the address range from 0x8000D000 to 0x8000D03F. See section 7.1 for further information.
GR716-DS-UM, May 2019, Version 1.29101www.cobham.com/gaisler
GR716
12.2Operation
Each ADCx control unit has access to external ADC pins via ADC converters and has a unique
AMBA address described in chapter 2.11. ADC control unit 0, 1, 2, 3, 4, 5, 6 and 7 have identical configuration and status registers. Configuration and status registers are described in section 12.3.
The system can be configured to protect and restrict access to individual ADC units in the MEM-
PROT unit. See section 47 for more information.
12.2.1 System overview
Each ADC converter is a 11bit/200kSps SAR converter, and has an analog MUX in-front of it, which
means that one MUX channel at a time can be measured. The ADC can be programmed to singleended 11-bit range (0 V - 2.5 V) using one input pin per channel, or to differential-input 11-bit range
(-2.0V- 2.0V) using two input pins per channel. In-between the ADC and MUX, there is a fully differential pre-amplifier, which has three programmable gain-settings (x1, x2, x4). It is to be used together
with the fully-differential ADC setting. The amplifier input impedance is in the order of 5 to 20 kohm
(TBC). The amplifier can be by-passed by programming; then, the DC input impedance is high (dominated by MUX leakage currents). These three blocks are supplied by VDDA_ADC and VSSA_ADC.
This supply is not the analog reference for the ADC measurements. However, it must still be really
well decoupled/filtered at high frequencies (>~1MHz) to not degrade the ADC performance.
The ADC supply ground, VSSA_ADC, should be hardwired to the same PCB ground point as
VSSA_REF, directly outside the Microcontroller package.
12.2.2 Detailed description
The on-chip ADC and pre-amplifier has a digital control and status interface accessible via register on
the APB bus. To support CPU offloading, autonomously ADC measurements and level detection a
digital interface has been implemented in the digital core of the microcontroller to support different
complex sampling modes over multiple ADC channels. The digital interface also supports sampling
modes to suppress noise and to increase the resolution and ENOB. Increasing the resolution is supported via oversampling and increasing the ENOB by using higher gain-settings in the pre-amplifier.
In order to make the oversampling effective the measured signal needs to be of AC signal type or a
DC signal with dithering i.e. introduce random noise in the analog input signal to the ADC. AC signal
is defined as a signal where the quantization error of 2 consequence samples are independent.
Single-ended or differential mode is selected per ADC channel but will only be valid for ADC channel 0,2,4 and 6, since multiple channel inputs will be used when differential mode is enabled. Differential mode have the capability to measure more accurately and the input gain can be adjusted using
the on-chip amplifier. The on-chip amplifier gain can be configured individually for the differential
channels to x1, x2 or x4. To use just a pin when single-ended mode is selected, bypass mode should be
selected too. If bypass is not selected, the negative pin shall be grounded.
The digital control logic supports following Sampling modes and configuration:
•Read current value i.e. via the ADC status register see section12.3for register description.
•Oversampling and averaging to extend the number of effective bits. The sampling rate and
number of samples accumulated is controlled via registers. The number of samples can be con
figured in the range of 1 to 65535 samples. No other manipulation of the results is performed in
hardware. The accumulated samples can be consecutive or taken with a configurable distance inbetween. For each additional bit resolution, the signal must be oversampled by a factor of four.
For simplicity the hardware do not perform any truncation or division of the accumulated samples. To get a correct average sampled value the accumulated sample value shall be rounded and
divided by the number of samples used. For application where the truncation error is less import
GR716-DS-UM, May 2019, Version 1.29102www.cobham.com/gaisler
-
-
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.