Mamba: HI-6138: General Description
Mamba: HI-6138: General Description
Mamba: HI-6138: General Description
39 - MTSTOFF
48 - BCTRIG
37 - RTMC8
interrupts provide terminal status to the host processor.
47 - BENDI
41 - VCCP
44 - VCCP
40 - BUSB
42 - BUSB
43 - BUSA
45 - BUSA
38 - EE2K
46 - TEST
Circular data buffers in RAM have interrupts for rollover
and programmable “level attained”.
RT.
• 8K x 17-bit words internal static RAM with parity
• Autonomous terminal operation requires minimal 48 - Pin Plastic 6mm x 6mm
host intervention. Chip-Scale Package (QFN)
• 40 MHz SPI Host Interface.
• MIL-STD-1760 option sets Busy bit in Status See Section 26.1 on page 256 for 48-Pin PQFP Configuration
Word response during initialization.
• World’s smallest MIL-STD-1553 terminal, QFN
package measures just 6mm x 6mm.
• Fully programmable Bus Controller with 28 op
code instruction set.
• Simple Monitor Terminal (SMT) Mode records
commands and data separately, with 16-bit or 48-
bit time tagging.
• Independent 16-bit time tag counters and clock
sources for all modes. The Bus Controller and
Monitor also have 32- and 48-bit time count
options, respectively.
HOLT INTEGRATED CIRCUITS
DS6138 Rev. Q www.holtic.com 08/21
1
HI-6138
NOTES:
Table of Contents
1. BLOCK DIAGRAM........................................................................................... 14
2. FEATURE OVERVIEW ................................................................................... 15
2.1. Bus Controller Operation........................................................................................... 15
2.2. Remote Terminal Operation....................................................................................... 15
2.3. Monitor Terminal Operation........................................................................................ 15
2.4. Interrupts.................................................................................................................... 15
2.5. Reset and Initialization............................................................................................... 15
3. PIN DESCRIPTIONS...................................................................................... 16
4. MEMORY MAP................................................................................................ 19
5. RAM STRUCTURES ...................................................................................... 20
5.1. Interrupt Log Data Buffer........................................................................................... 20
5.2. Bus Controller (BC) Instruction List............................................................................ 20
5.3. Bus Controller (BC) Msg Control / Status Stack........................................................ 20
5.4. Bus Controller (BC) Call Stack................................................................................... 20
5.5. Bus Controller (BC) General Purpose Queue............................................................ 20
5.6. Monitor Terminal Temporary Buffers A & B................................................................ 20
5.7. Monitor Terminal (MT) Address List........................................................................... 20
5.8. Monitor Terminal (MT) Message Filter Table.............................................................. 21
5.9. Monitor Terminal (MT) Data Buffers........................................................................... 21
5.10. RT Command Illegalization Table.............................................................................. 21
5.11. RT Descriptor Table................................................................................................... 21
5.12. RT Temporary Receive Buffer.................................................................................... 21
5.13. RT Message Data Buffers.......................................................................................... 21
5.14. RT Storage for Mode Code Commands..................................................................... 21
List of Figures
Figure 1. Block Diagram............................................................................................................... 14
Figure 6. Structure of Bus Controller Message Control / Status Blocks in RAM.......................... 68
Figure 8. Deriving the Monitor Filter Table Address from the Received Command Word.......... 106
Figure 10. Deriving the Illegalization Table Address From the Received Command Word........ 142
Figure 12. Summary of RT Illegalization Table Addresses for Mode Code Commands ............ 144
Figure 14. Deriving a Descriptor Table Control Word Address From Command Word .............. 148
Figure 16. Ping-Pong Buffer Mode Example for a Receive Subaddress ................................... 174
Figure 18. Indexed Buffer Mode Example for a Receive Subaddress (broadcast disabled) ..... 178
Figure 20. Circular Buffer Mode 1 Example for a Receive Subaddress .................................... 182
Figure 22. Circular Buffer Mode 2 Example for a Receive Subaddress .................................... 187
List of Tables
Table 1. Pin Descriptions.............................................................................................................. 16
Table 7. Effect of “Broadcast Command Received” RT Status Bit on “Status Set” Condition...... 87
Table 8. Message Block in Circular Command Buffer for SMT Monitor using 16-bit Time Tag.... 98
Table 9. Message Block in Circular Command Buffer for SMT Monitor using 48-bit Time Tag.... 99
Table 13. Circular Buffer Mode 2 (Initialization factors based on message block size).............. 184
Table 18. READY delay times: from MR input pin rising edge to READY output pin rising edge.....
198
Table 21. Fast-Access SPI Commands for Lower Registers ..................................................... 221
1. BLOCK DIAGRAM
RTA4 - 0
RTAP
Configuration EE2K
Option BENDI
IRQ
Logic LOCK
READY Discrete
Signal Static RAM MTSTOFF
ACTIVE and
Outputs MODE1760
RTMC8 Registers
BC
Message
Address
TXINHA
Control
Processor
Data
Rx 1553 Words
Tx 1553 Words
RT TXINHB
MCLK Message
Address
Control
TTCLK BUSB
CLOCKS Manchester
MTTCLK All Devices Encoder
BUS
Bus B
AUTOEN Reset & Manchester
Decoder BUSB
EECOPY Initialization
MR Logic
TRANSCEIVER
VCCP
POWER
Address
Control
Data
GND
LOGIC POWER VCC
BCTRIG Discrete
Signal Serial
ACKIRQ
Input Peripheral
RTSSF Interface TEST
(SPI) to Test
Logic MODE
EEPROM
MISO
MOSI
ESCK
ECS
OPTIONAL
SERIAL EEPROM
(AUTO-CONFIG)
2. FEATURE OVERVIEW
The programmable Bus Controller autonomously supports multi-frame message scheduling, message retry schemes,
storage of message data, asynchronous message insertion and status/error reporting to the host processor.
2.4. Interrupts
Host interrupts can originate from device hardware or any of the enabled terminal devices (up to 3 devices). A circular
64-word Interrupt Log Buffer retains interrupt information from the last 32 interrupts, while the hardware maintains a
count of occurring interrupts since the previous host buffer service.
Hardware-assisted interrupt decoding provides quick identification of the interrupt source by terminal device: BC, MT,
RT or hardware. When a hardware interrupt occurs (e.g., Bus A Loopback Failure), a Pending Hardware Interrupt
register bit explicitly identifies the interrupt source. For interrupts from BC, MT or RT, the three low-order bits in the
same register identify the specific interrupt register (or registers) with pending interrupts: that is, the BC, MT or RT
Pending Interrupt registers.
Individual 1553 terminal devices (BC, MT, or RT) can be re-initialized from the serial EEPROM. Refer to “Reset and
Initialization” on page 198.
3. PIN DESCRIPTIONS
Table 1. Pin Descriptions
Input
MCLK Master clock input, 50.0MHz +/-100 ppm.
50kΩ pull-down
TTCLK Inputs Optional clock input for BC time base and RT time tag counters.
MTTCLK 50kΩ pull-down Optional clock input for the MT time tag counter.
Each function (BC, MT, RT) has an independent time tag counter. The BC
and RT counters share a common clock, selectable from internally generated
frequencies, or an external clock input. The MT time tag counter has its own
external or internal clock source.
Master reset, active low. A minimum pulsewidth of 50ns and two rising clock
Input edges are required following the rising edge of MR to complete reset.
MR
50kΩ pull-up The host can also assert software reset by setting bits in the “Master Status and
Reset Register (0x0001)”.
Transmit inhibit inputs for Bus A and Bus B, active high. These two inputs are
TXINHA Inputs logically ORed with the pair of corresponding bits in the “Master Configuration
TXINHB 50kΩ pull-up Register 1 (0x0000)” to enable or inhibit transmit on Bus A or Bus B, affecting
behavior for all enabled 1553 devices.
Memory test disable, active high. When this pin is low, the device performs a
Input memory test on the entire RAM after rising edge on the MR reset pin. When
MTSTOFF
50kΩ pull-down this pin is high, RAM testing is skipped, resulting in a faster reset process. For
further information, refer to “Reset and Initialization” on page 198.
Auto-Initialize Enable, active high. If this pin is high at rising edge on MR reset
Input pin, self-initialization proceeds, copying configuration data to registers and RAM
AUTOEN
50kΩ pull-down from an external serial EEPROM via a dedicated EEPROM SPl port. Refer to
“Reset and Initialization” on page 198.
When the AUTOEN pin is high, the EE2K input sets the range of the auto-
initialization process. When EE2K is low, registers and RAM occupying the 8K
Input address range from 0x0 to 0x1FFF are initialized. For applications needing
EE2K
50kΩ pull-down faster initialization, when EE2K is high, only registers and RAM occupying the
2K address range from 0x0 to 0x07FF are initialized. If the AUTOEN pin is low,
this pin is not used.
This pin is low when auto-initialization or built-in test is in process. The host
cannot read or write device RAM or registers when pin state is low; reads to any
READY Output address return the value in the “Master Status and Reset Register (0x0001)”.
When the AUTOEN pin is low at Master Reset, the host can configure device
RAM and registers after READY goes high.
ECS Output
ESCK Output Dedicated 4-wire Serial Peripheral Interface (SPI) for connection to an optional
MOSI Output external EEPROM used for automatic self-initialization when AUTOEN is high
MISO Input at Master Reset.
50kΩ pull-down
EEPROM Copy, active high. Asserting this input initiates RAM and register copy
Input
EECOPY into serial EEPROM used for auto-initialization. Refer to “Reset and Initialization”
50kΩ pull-down
on page 198.
Input
BCTRIG BC Trigger input, active high. Used in conjunction with certain BC instructions.
50kΩ pull-down
Mode 1760 enable, active high. Assert this pin during a hardware reset to enable
Input 1760 mode. During 1760 mode, the device will respond to any valid command
MODE1760
50kΩ pull-down (with matching RT address) with the BUSY bit set in the status word. No data
words will be transmitted and no interrupts or logging of data will occur.
Pin states are latched to the Lock bit in the RT Operational Status Register (see
page 125) when rising edge occurs on the MR pin. If status register Lock bit
Input
LOCK is high, the host cannot overwrite the terminal address in the same register. If
50kΩ pull-down
status register Lock bit is low, the host can overwrite the terminal address and
parity (and the Lock bit) in the RT Operational Status register.
Remote Terminal “Reset RT” mode command (MC8) received. This active low
Output output is asserted at Status Word completion when the RT received a “Reset
RTMC8
Open-Drain Remote Terminal” mode code command. The minimum output pulse width is
100ns, unaffected by MR assertion.
RT Subsystem Fail input, active high. When this input is high, the RT sets the
Input
RTSSF Subsystem Fail flag in its transmit status word. This input is logically-ORed with
50kΩ pull-down
the SSYSF bit in the RTs 1553 Status Word Bits Register.
Interrupt request, active low. This pin is asserted each time an enabled interrupt
event occurs. This signal is programmed as a brief low-going pulse output or
Output
IRQ as a level output by the INTSEL bit in the “Master Configuration Register 1
Open-Drain
(0x0000)”. If level output is selected, IRQ stays low until the host acknowledges
IRQ by pulsing a rising edge at the ACKIRQ pin.
Interrupt Acknowledge, active high. This input is only used when the INTSEL bit
Input in the RT Configuration Register is high, enabling level interrupt assertion for the
ACKIRQ
50kΩ pull-down IRQ pin. When interrupt assertion causes the IRQ pin to go low, a high-going
pulse on ACKIRQ (250ns minimum duration) clears the IRQ output to logic 1.
Remote terminal address bits 4 - 0, and parity bit for the RT. The RTAP pin
provides odd parity for the address on pins RTA4:0.
RTA4:0 Inputs The terminal address and parity pin levels are latched into the RT Operational
RTAP 50kΩ pull-ups Status Register (see page 125) when rising edge occurs on the MR pin. The
RT Operational Status Register value (not these pins) reflects the active terminal
address. The host can overwrite the RT Operational Status register address
value only when the register Lock bit is reset.
Big Endian configuration pin for selecting “endianness” or byte order, when
using byte transfers. Endianness is the system attribute that indicates whether
integers are represented with the most significant byte stored at the lowest
address (big endian) or at the highest address (little endian). Internal register /
Input RAM storage is “big endian.”
BENDI
50kΩ pull-down This pin controls the byte order of transferred 16-bit data following the SPI
command. When BENDI is low, “little endian” is chosen; the low order byte (bits
7:0) is transacted on the SPI before the high order byte (bits 15:8). When BENDI
is high, “big endian” is chosen and the high order byte is transacted on the SPI
before the low order byte.
Input Test enable input. The host asserts this pin to perform RAM self-test and loop-
TEST
50kΩ pull-down back tests.
Input
MODE Pin used for factory test. Do not connect.
50kΩ pull-up
VCC
VCCP Power Supply 3.3VDC power supply for logic and bus transceiver.
GND
Chip Enable, active low. When asserted, this pin enables host read or write
Input accesses to device RAM or registers via host SPI port. The SPI port operates
CE
50kΩ pull-up in Slave mode. This pin is connected to the Slave Select output on the host
SPI port.
Serial Peripheral Interface (SPI) Serial Output pin. This pin is connected to
SO Output MISO (Master In - Slave Out) pin on host SPI port. The SO pin is tri-stated
when not transmitting serial data to the host.
Input Serial Peripheral Interface (SPI) Serial Input pin. This pin is connected to
SI
50kΩ pull-down MOSI (Master Out - Slave In) pin on host SPI port.
Input Serial Peripheral Interface (SPI) Serial Clock pin. This pin is connected to SCK
SCK
50kΩ pull-down output pin on host SPI port.
4. MEMORY MAP
0x1FFF 0x01FF
32 Words
0x01E0
0x01DF
RT Temporary Receive Buffer.
32 Words
0x01C0
0x01BF
0x0600
0x05FF RT Descriptor Table.
Defines terminal behavior 0x0100
for valid commands: 0x00FF
how data is stored,
host interrupts, etc.
512 words BC General Purpose Queue.
64 Words
Multiple Descriptor Tables can be
used for fast context switching.
The active Descriptor Table is 0x00C0
defined by the Descriptor Table
0x00BF MT Address List B. 8 Words
Base Address Register.
0x0400 0x00B8
0x03FF 0x00B7 MT Address List A. 8 Words
0x00B0
256 Words
0x00AF
MT Temporary Buffer B.
42 Words
0x0300 0x0086
0x02FF 0x0085
RT Illegalization Table. MT Temporary Buffer A.
Initialized by the host, this table 42 Words
identifies illegal commands. 0x005C
256 Words 0x005B BC Call Stack. 8 Words
0x0200 0x0054
0x01FF 0x0053 Reserved. 2 Words
0x0052
Expanded 0x0051
at Right Registers
82 Locations
0x0000 0x0000
5. RAM STRUCTURES
Figure 2 shows a map for memory and registers. Application requirements dictate the specific RAM structures needed.
These structures listed here are explained later.
6. HARDWARE FEATURES
Figure 2 shows address mapping for registers and RAM. All registers and some RAM structures have fixed addresses.
Other RAM structures shown are relocatable; Each relocatable structure has a base address register. Figure 2
shows the default locations for relocatable structures. RAM allocations for0 unused MIL-STD-1553 functions can be
reassigned as needed. For example, an application using just a Bus Monitor can reassign all BC and RT RAM for
monitor needs. Device RAM and register address mapping is word oriented, rather than byte oriented.
8. REGISTER DEFINITIONS
Residing at the start of the memory address space, 82 addresses are reserved for registers. Register addresses
overlay the shared RAM address space. Register bits are active high and bit 15 is the most significant.
Hard
Register Hex
Used By Register Name Reset
Number Address
Default
1 0x0001 All “Master Status and Reset Register (0x0001)” on page 33 0x0000
10 0x000A All “Interrupt Count & Log Address Register (0x000A)” on page 37 0x0180
Hard
Register Hex
Used By Register Name Reset
Number Address
Default
28 0x001C RT “Remote Terminal Bus A Select Register (0x001C)” on page 130 0x0000
29 0x001D RT “Remote Terminal Bus B Select Register (0x001D)” on page 130 0x0000
Hard
Register Hex
Used By Register Name Reset
Number Address
Default
57 0x0039 All “Time Tag Counter Configuration Register (0x0039)” on page 48 0x0000
Hard
Register Hex
Used By Register Name Reset
Number Address
Default
“SMT Bus Monitor Time Tag Utility Mid Register (0x003E)” on page
62 0x003E MT 0x0000
113
67 0x0043 BC “Bus Controller (BC) Time Tag Counter (0x0043)” on page 92 0x0000
AP L1
e 0
TS d
TE d
TE d
d
TS O
es L
E T
D X
R rve
M rve
R rve
ve
TX HA
BC HB
M SE
IM EL
R SE
R NA
M NA
R NA
BC TR
IN TX
BS TE
er
TA
e
e
IN
IN
AP
S
es
es
es
TX
R
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MR Reset
RW Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
All bits in this 16-bit register are read-write and are fully maintained by the host. This register is cleared after MR pin
master reset, and is unaffected by assertion of the MTRESET, RTRESET bits in the “Master Status and Reset Register
(0x0001)”.
When configuring registers and RAM following Reset, “Master Configuration Register 1 (0x0000)” should always be
written last to ensure configuration and initialization is complete before starting terminal operation (i.e. this ensures
BCSTART and RTSTEX bits are not set until after configuration is complete). See “20.1. Hardware Master Reset and
Optional Auto-Initialization” for further details.
15 TXINHA R/W 0 This bit is logically ORed with the TXINHA input pin. This register bit and
the corresponding TXINHA pin globally affect all enabled 1553 devices
(BC, MT, RT). This inhibit disables all transmission on Bus A.
14 TXINHB R/W 0 This bit is logically ORed with the TXINHB input pin. This register bit and
the corresponding TXINHB pin globally affect all enabled 1553 devices
(BC, MT, RT). This inhibit disables all transmission on Bus B.
13 BCSTRT R/W 0 If the BCENA register bit is logic 1, a host write which sets this bit to 1
begins Bus Controller operation. When written to 1, this bit self-resets to
0. This bit always reads back a logic 0 state.
11 − 10 MAPSEL1:0 R/W 0 The full 16-bit register can be directly written by the host using SPI op
code 0x10, followed by 16-bit data word. An alternative method uses SPI
op codes 0xD8 – 0xDA that write just the 2-bit MAPSEL field, without
affecting other register data. These four SPI op codes only require
transmission of an 8-bit instruction, without accompanying data.
Note: “Fast access” SPI op codes contain embedded register addresses
and use a separate memory address pointer. This preserves values
contained in MAP1 through MAP4. The “fast access MAP” cannot be
read by the host but is written each time a “fast access” op code is
processed. Fast Access op codes are provided for these SPI operations:
• SPI reads to register addresses 0 through 0x000F (decimal 15)
• SPI writes to register addresses 0 through 0x003F (decimal 63)
9 Reserved - - This bit is not used and reads logic 0.
4 RTSTEX R/W 0 If register bit 6 is logic 1, setting this bit begins Remote Terminal
operation. Once running, resetting this bit (or the RTENA register bit)
immediately stops RT operation.
3 BSDTXO R/W 0 The AUTOBSD bit in the “Remote Terminal Configuration Register
(0x0017)” determines whether conditional MC20 “selected bus shutdown”
and MC21 “override selected bus shutdown” are fulfilled automatically,
or by host writes to the RTINHA or RTINHB bits in the “Remote Terminal
Configuration Register (0x0017)”:
• When the AUTOBSD bit is logic 1 in the “Remote Terminal
Configuration Register (0x0017)” (see page 119), automatic
fulfillment is disabled for MC20 “selected bus shutdown” and MC21
“override selected bus shutdown” mode commands. The host fulfills
bus shutdown and override by writing the RTINHA and RTINHB bits
in the “Remote Terminal Configuration Register (0x0017)”.
• When the AUTOBSD bit is logic 0 in the “Remote Terminal
Configuration Register (0x0017)”, automatic fulfillment is enabled
for MC20 “selected bus shutdown” and MC21 “override selected bus
shutdown” mode commands. When the received mode data word
matches the value stored in the RT “Bus A (or B) Select” register, the
RT automatically fulfills MC20 “selected bus shutdown” in accordance
with the BSDTXO setting, as well as MC21 “override selected bus
shutdown”. Auto-shutdown bypasses the RTINHA and RTINHB bits
in the “Remote Terminal Configuration Register (0x0017)”, but the
upper 4 bits in the RT’s BIT Word register indicate Tx and Rx bus
shutdown status.
IRQ Output Type Select.
When this bit is 0, the IRQ (interrupt request) output generates a 1µs
negative pulse when enabled interrupt events occur. When this bit is
2 INTSEL R/W 0 logic 1, the IRQ output consists of a continuous low level output requiring
host action to negate IRQ to the high state. When level interrupts are
enabled, the host negates IRQ by asserting the ACKIRQ input pin for at
least 250ns.
Indicate MT Activity.
When this bit equals 0, the ACTIVE status output is not asserted for Bus
Monitor activity, unless the monitored message involves another on-
1 IMTA R/W 0 chip terminal). When this bit equals 1, enabled Bus Monitor activity is
logically-ORed with the activity of the other on-chip devices to determine
ACTIVE status; the ACTIVE output is asserted during such Bus Monitor
activity, whether or not the monitored message involves another on-chip
terminal.
K T
D ID1 D
R rve 0
LB TA
e 6
BC H
EV N
es d
TE d
es 7
D XIN
TX EST
D STP
W ST
TF rve
R ID0
R ID3
R ID2
R ID1
M ID0
BC MS
R E1
W F
D
T
T
EV
EV
EV
EV
EV
T
T
D
D
O
TX
0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 MR Reset
RW R RW Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
14 TXTSTPND R/W 0 This bit is set when the host initiates a transmitter timeout protection
test. When the test begins on the next transmission, this bit clears
automatically.
Device ID
13 − 12 DEVID[1:0] R 11
These bits read 11 for HI-6138 following reset.
Revision ID.
11 − 8 REVID[3:0] R/W 0001
Following Reset, these bits will read 0001, the current revision ID.
3 WDTF R/W 0 If this bit is set, watchdog timer transmitter timeout will cause the
Terminal Flag status bit 0 in “Remote Terminal MIL-STD-1553 Status
Word Bits Register (0x001A)” to be set.
1 DBCMSTAT R/W 0 If this bit is set and the RT responds to a MC0 (Mode Code 0 Dynamic
Bus Control), the Masked Status Bit 7 of the “BC Block Status Word”
will be set if the RT Status Word DBCA bit 1 is set.
0 BCLBK R/W 0 Setting this bit enables BC to RT and MT digital loopback testing. No
loopback activity is transmitted to the bus. See Sections 21.2.6 and
21.2.7 for more details on digital loopback testing.
M ET
TM IV
TM d
TO d
TR d
es d
TI d
TR N
es E
R rve
AU rve
R rve
R erve
R rve
R ES
R DY
M E
R KE
BC ES
M CT
R IP
BC IP
R IP
IF
EE H
e
e
e
N
AM
C
EA
A
es
es
es
R
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MR Reset
R RW R Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
This 16-bit register has a combination of read only and read-write bits. This register is cleared after MR pin master
reset, but is unaffected by assertion of MTRESET, RTRESET register bits.
The READY output pin reflects the state of this register bit. READY
is low when auto-initialization, a soft reset caused by bit 12~10
assertion, or built-in test is underway. Host access to device registers
15 READY R 0 or RAM is locked out while READY is low. While READY = 0, any host
read access returns the value in this register, regardless of address
provided. When READY goes high, the host may access registers and
RAM.
13 AUTOEN R 0 This bit reflects the state of the AUTOEN input pin that applied at the
rising edge on the MR Master Reset input pin. If the register bit is high,
auto-initialization was performed following MR reset.
BC Message in Process.
BC Active.
8 BCACTIVE R 0 This bit is high when the BC is enabled and running. It will read logic
1 during MIL-STD-1553 message processing and during programmed
delays.
Within each register triplet, corresponding register bits are mapped to the same interrupt-causing event. Initialize the
Interrupt Enable Register to select interrupt-causing events heeded by the HI-6138; most applications utilize just a
subset of the available interrupt options. Interrupt-causing events are ignored if their corresponding bits are reset in
the Interrupt Enable Register. Setting an Interrupt Enable register bit from 0 to 1 does not trigger interrupt recognition
for events that occurred while the bit was zero.
The next datasheet sections describe interrupt features, namely the Interrupt Log Buffer, the Interrupt Count & Log
Address Register and the Hardware Interrupt register triplet.
When an enabled hardware interrupt event occurs, the Interrupt Log Buffer is updated and a bit is set in the “Hardware
Pending Interrupt Register (0x0006)”. This action takes place only if the bit for the interrupt-causing event was already
set in the “Hardware Interrupt Enable Register (0x000F)”. The host can poll the “Hardware Pending Interrupt Register
(0x0006)” to detect occurrence of hardware interrupts, indicated by non-zero value. When the host reads the “Hardware
Pending Interrupt Register (0x0006)”, it automatically clears to 0x0000.
When an enabled hardware interrupt event occurs, if the corresponding bit is also set in the “Hardware Interrupt Output
Enable Register (0x0013)”, the IRQ output is asserted to alert the host. Thus, the “Hardware Interrupt Output Enable
Register (0x0013)” establishes two interrupt priority levels for hardware events: high priority interrupts generate an
IRQ signal output, while low priority interrupts do not. The host detects low priority interrupts by polling the “Hardware
Pending Interrupt Register (0x0006)”.
A single IRQ host interrupt output signal is shared by all enabled interrupt conditions having bits set in the Hardware,
BC, RT or MT Interrupt Output Enable registers. Multiple interrupt-causing events can occur simultaneously, so each
IRQ output assertion can result from one or more interrupt conditions.
When the host receives an IRQ signal from the device, it identifies the event (or events) that triggered the interrupt.
The host has two options: (a) go to the Interrupt Log Buffer (using the method described in “9.6. Interrupt Count & Log
Address Register (0x000A)” and “9.7. Interrupt Log Buffer”), or (b) use a hardware-assisted scheme using the three
low order bits in the “Hardware Pending Interrupt Register (0x0006)” to identify new interrupt(s).
For the second method, the host reads the “Hardware Pending Interrupt Register (0x0006)”. While bits 15-3 in this
register identify hardware interrupt conditions, the three low-order register bits indicate zero vs. non-zero status for
the BC, RT and MT Pending Interrupt Registers. If any of these bits is logic 1, the corresponding Pending Interrupt
Register has one or more interrupt flags set. Any combination of these three bits may be set, or all three bits may be
zero, if only hardware interrupt(s) occurred. When the host reads any of the four Pending Interrupt registers, the read
access self-resets the register to 0x0000. Thus, the host should retain the read value from the “Hardware Pending
Interrupt Register (0x0006)” when 1 or more bits are non-zero in the bit 2-0 range. These bits indicate zero vs. non-
zero status for the BC, RT and MT Pending Interrupt Registers:
• When bits 2-0 in the “Hardware Pending Interrupt Register (0x0006)” read 000, there are no new interrupts in the
BC, RT and MT Pending Interrupt Registers.
• When BCIP (BC Interrupt Pending) bit 0 is set in the “Hardware Pending Interrupt Register (0x0006)”, the “Bus
Controller (BC) Pending Interrupt Register (0x0007)” contains a nonzero value. The host can read the “Bus
Controller (BC) Pending Interrupt Register (0x0007)” Register to identify the specific bus controller interrupt
event(s).
• When MTIP (SMT Interrupt Pending) bit 1 is set in the “Hardware Pending Interrupt Register (0x0006)”, the “SMT
Bus Monitor Pending Interrupt Register (0x0008)” contains a nonzero value. The host can read this register to
identify the specific bus monitor interrupt event(s).
• When RTIP (RT Interrupt Pending) bit 2 is set in the “Hardware Pending Interrupt Register (0x0006)”, the “Remote
Terminal (RT) Pending Interrupt Register (0x0009)” contains a nonzero value. The host can read the “Remote
Terminal (RT) Pending Interrupt Register (0x0009)” to identify specific RT interrupt event(s).
When polling the Pending Interrupt registers to identify low priority interrupts that do not assert the IRQ output, the
same decoding method can be applied. A single read of the “Hardware Pending Interrupt Register (0x0006)” reveals
zero vs. non-zero status of all Pending Interrupt registers.
Alternately, the host can poll the “Interrupt Count & Log Address Register (0x000A)” to identify low priority interrupts
that do not assert the IRQ output. Bits 15:9 in this register contain a 7-bit count value indicating the number of
interrupts logged (0 - 127) since the “Interrupt Count & Log Address Register (0x000A)” was last read. Although the
“Interrupt Log Buffer” only holds data from the last 32 interrupts, register bits 15:9 count beyond 32 for buffer overrun
0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 MR Reset
R Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
This 16-bit register is read-only and is fully maintained by logic. The register contains 0x0180 after error-free MR pin
master reset. It is not affected by assertion of MTRESET, RTRESET bits in the “Master Status and Reset Register
(0x0001)”. Note: Four bits in the “Hardware Interrupt Enable Register (0x000F)” come out of MR master reset fully
enabled (see 9.8.1). If error occurs after reset to trigger one of these 4 interrupts, the post-reset value in the register
will not be 0x0180. The upper bits will reflect 1 to 4 interrupts have occurred (count left-shifted 9 places) and the lower
bits (ranging from 1 to 4 interrupts) will reflect an even pointer address of 0x182, 0x184, 0x186 or 0x188.
The value in Interrupt Log Address Register bits 8:0 is a 9-bit address pointer to the circular 64-word “Interrupt Log
Buffer”, located in RAM. Register bits 8:6 are always 1-1-0 so the 9-bit address pointer ranges from 0x0180 to 0x01BE.
This pointer indicates the storage address for two information words that will be stored for the next-occurring interrupt.
The value is always even since two words are stored for each interrupt.
Upper register bits 15:9 contain a 7-bit count value for the number of interrupts logged (0 − 127) since the Interrupt
Count & Log Address Register was last read. Although the circular “Interrupt Log Buffer” only retains data from the last
32 interrupts, counting continues beyond 32 so the host can detect circular buffer overrun. Bits 15:9 stop incrementing
at full count (127 interrupts) and automatically reset to zero when the host reads this register.
After MR master reset, the HI-6138 initializes this register to 0x0180, an interrupt count of zero and Interrupt Log Buffer
address of 0x180. After reset, the first interrupt stores words at buffer addresses 0x0180 and 0x0181. Subsequent
interrupts store word pairs at sequential addresses. Information words for the 32nd interrupt are stored in last two
buffer addresses 0x01BE and 0x01BF, and the Interrupt Log Address “rolls over” to read 0x0180, where interrupt
information for the 33rd post-reset interrupt will be stored.
Interrupt logic stores two words in the Interrupt Log Buffer for each enabled interrupt that occurs: an Interrupt
Identification Word and an Interrupt Address Word. The Interrupt Identification Word (IIW) identifies the occurring
interrupt type (BC, MT or RT) using the same format as the three low order bits in the “Hardware Pending Interrupt
Register (0x0006)”, and the interrupt itself by matching bits [15:3] to the applicable Pending Interrupt Register. More
than one bit may be asserted in an Interrupt Identification Word. For example, IBR (interrupt broadcast received) and
MERR (interrupt message error) can occur for the same RT message. One assertion of the INT output pin alerts the
host when concurrent message interrupts occur.
Interrupt Type Interrupt Identification Word (IIW) Interrupt Address Word (IAW)
Always 0x0000.
Matches format of “Hardware Pending Interrupt EXCEPTION: When a RAMPF (RAM Parity
Hardware Fail) interrupt occurs, the IAW will contain
Register (0x0006)” on page 41
the address of the location in RAM where the
parity failure occured.
For a given terminal (BC, SMT, or RT) multiple interrupts can be enabled, and two or more interrupts can occur in a
single message. There will be a single 2-word Log Buffer update and the Interrupt Information Word will have one
bit set for each occurring interrupt. Simultaneous interrupts for one terminal (having interrupt output enabled) are
logically-ORed, resulting in a single assertion of the IRQ output to the host.
0x01BE INTERRUPT 32 Interrupt Information Word The Interrupt Log Address Register
points to this address after Interrupt
0x01BD INTERRUPT 31 Interrupt Address Word 31 event occurs. Upon Interrupt 32
completion, device logic reinitializes
0x01BC INTERRUPT 31 Interrupt Information Word the log address pointer to 0x0180
before Interrupt 33 is processed.
0x01BB INTERRUPT 30 Interrupt Address Word
TT d
d
es d
es d
TA d
T O
es O
C T
AM /
R erve
ve
R rve
R rve
R rve
BC TM
R TM
M TM
BC TR
R KE
EE IIN
R TR
R PF
er
FB
e
e
e
TT
SP
TT
es
es
LB
M
H
0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 MR Reset
RW R Host Access * Bits 4 - 0 are read-only and cannot be modified by host.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
TT d
TA d
T O
es O
C T
AM /
R erve
R rve
BC TM
R TM
M TM
BC TR
R KE
EE IIN
R TR
R PF
FB
P
IP
e
P
TT
SP
TT
T
es
TI
TI
BC
LB
M
M
H
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MR Reset
R R* Host Access * Bits 2 - 0 are set for pending interrupts
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit from RT, MT or BC
TT d
d
es d
es d
TA d
T O
es O
C T
AM /
R erve
ve
R rve
R rve
R rve
BC TM
R TM
M TM
BC TR
R KE
EE IIN
R TR
R PF
er
FB
e
e
e
TT
SP
TT
es
es
LB
M
H
0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 MR Reset
RW R Host Access * Bits 4 - 0 are read-only and cannot be set by host.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
These three registers govern hardware interrupt behavior. As explained earlier, bits 2-0 in the Hardware Pending
Interrupt Register are set whenever interrupt bits are set in the other three pending interrupt registers (RT, MT and
BC). The table below first describes the common bits 15-3 in all three registers and then describes register-to-register
differences for bits 2-0.
10 MTTTRO R/W 0 The Bus Monitor time tag counter rolled over from full count to zero.
Depending on options selected in the “Time Tag Counter Configuration
Register (0x0039)”, the MT time count may be either 16 or 48 bits.
9 BCTTRO R/W 0 The Bus Controller time tag counter rolled over from full count to zero.
Depending on options selected in the “Time Tag Counter Configuration
Register (0x0039)”, the BC time count may be either 16 or 32 bits.
3 RTAPF R 1 The Remote Terminal address and parity bits (latched into the RT
Operational Status Register (see page 125) at rising edge of MR) do not
exhibit odd parity (do not have an odd number of bits having logic 1 state).
For the Hardware Interrupt Enable Register and the Hardware Interrupt Output Enable Register only
2−0 Reserved Bits 2-0 cannot be written and read back 000.
RT Interrupt Pending.
2 RTIP R 0 When this bit is high, one or more bits are set in the “Remote Terminal (RT)
Pending Interrupt Register (0x0009)”. The host can read that register to
determine the RT interrupt event(s).
MT Interrupt Pending.
1 MTIP R 0 When this bit is high, one or more bits are set in the “SMT Bus Monitor
Pending Interrupt Register (0x0008)”. The host can read that register to
determine the MT interrupt event(s).
BC Interrupt Pending.
0 BCIP R 0 When this bit is high, one or more bits are set in the BC Pending Interrupt
Register. The host can read that register (0x0007) to determine the BC
interrupt event(s).
FF
IN S
R erve
C rve
D US
IR TO
BC
O
e
es
R
X X X X X X X X X X 0 0 0 0 0 0 MR Reset
R/W Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
This register contains four bits which provide global options for RT operation.
5−4 Reserved Do not use. Setting these bits may cause unpredictable behavior.
Report terminal Busy status for RT message interrupts; set WASBUSY flag bit 9 in log
buffer Interrupt Identification Word. See “Interrupt Log Buffer” on page 37.
Setting INTBUSY = 1 causes the WASBUSY status bit 9 to be set in the RT Interrupt
Identification Word (IIW) when an enabled interrupt event occurs with RT Busy status.
Therefore, RT subaddresses or mode codes with enabled message interrupts can
optionally report when Busy status applied during those events. For example, assume the
RT Rx subaddress 1 Interrupt When Accessed event (IWA) is enabled. If RT subaddress 1
sees a legal, valid receive message but the RT is Busy, the IWA and WASBUSY flags are
both set in the Interrupt Log Buffer’s written Interrupt Identification Word. If RT is not Busy,
2 INTBUSY
only the IWA flag is set in the written IIW.
When INTBUSY is reset, terminal Busy status for interrupts is not reported; the WASBUSY
status bit in the logged RT Interrupt Identification Word is always 0.
Note 1: The Interrupt Log Buffer is updated only when enabled interrupt events occur. By
itself, RT Busy status is not an interrupt-causing event.
Note 2: INTBUSY bit 2 does not affect the “Remote Terminal (RT) Pending Interrupt
Register (0x0009)” on page 135; register bit 9 is reserved. Only WASBUSY bit 9 in the
Interrupt Log Buffer Interrupt Identification Word (IIW) is affected.
Bit 1 DPBTOFF disables ping pong DPB pointer toggle when the received valid command
is illegal, or when a message occurs with Busy status.
When using ping pong buffers, the DPB buffer pointer never toggles for valid, legal
messages ending in error. Setting DPBTOFF = 1 also disables ping pong DPB pointer
toggle when the received valid command is illegal, or when a message occurs with Busy
status.
For RT subaddresses using ping pong data buffers (see “Ping-Pong Data Buffering” on
page 170), the device alternates message data storage between Data Buffer A and Data
Buffer B, on a message-by-message basis. The Descriptor Table Control Word DPB bit
10 indicates the data buffer to be used by the next-occurring message to this subaddress
(see Section “16.4. Descriptor Table” on page 145). When the DPB bit is logic 0, the next
message uses Data Buffer A; when DPB is logic 1, the next message uses Data Buffer B.
Set DPBTOFF = 1 to prevent toggle of the Control Word DPB bit for Illegal or RT Busy
messages, as well as valid, legal messages ending in error. The DPB pointer therefore
remains static until the next successful message is received, which overwrites the
Message Information Word and Time Tag Word in the current ping pong buffer location.
Note that receive and transmit subaddresses may have both legal and illegal word counts,
1 DPBTOFF dictated by the Command Illegalization Table. For such subaddresses, DPB toggle only
occurs when a supported legal word count message is transacted.
When the DPBTOFF option bit is set to modify behavior for ping pong buffers, DPB
toggle is disabled for valid messages that are illegal, or legal messages resulting in RT
Busy or Message Error status. Important note: message data words in the “next-used”
(designated active) buffer are NOT altered for incomplete (illegal, Message Error or RT
Busy) messages. However the buffer Message Information and Time Tag Words are
updated in that message data buffer so the host can detect when such messages
occur. Bits 10:8 in the buffer Message Information Word indicate Message Error, Busy
and/or Illegal status. When any of these 3 bits are set, the accompanying data should
always be disregarded (whether or not the DPBTOFF option is used).
To maintain data integrity, the primary benefit of DPBTOFF = 1 is that the complemented
DPB pointer always indicates the last-transacted “good” data set. For example if DPB is
logic 0, the last successful message used Data Buffer B.
The default condition after power-on reset in register 0x4D contains 0x0000. Thus
configuration bit DPBTOFF is logic-0. For this case, the Control Word DPB bit toggles
after completion of error-free messages (expected), but also illegal commands and
messages resulting in Message Error or Busy status.
Suppress IRQ interrupt pin assertion for enabled RT message interrupts when the
command is illegal or the message results in RT Busy status.
RT Interrupt Registers are described on page 135. Globally enable RT interrupt types
(MERR, IWA, IBR) by setting bits in the “Remote Terminal (RT) Interrupt Enable Register
(0x0012)”. Enable these interrupts for individual receive or transmit subaddresses (or
mode commands) by setting bits in their Descriptor Table Control Words. When an
enabled RT interrupt event occurs, the corresponding “type” bit is set in the “Remote
Terminal (RT) Pending Interrupt Register (0x0009)” and “Interrupt Log Buffer” on
0 IRQOFF
page 37 is updated. In addition, the IRQ output pin is normally asserted (low) if the
corresponding bit is also set in the “Remote Terminal (RT) Interrupt Output Enable
Register (0x0016)”. This IRQOFF option bit modifies interrupt output behavior.
The IRQOFF option bit prevents nuisance IRQ pin assertion when the command is
illegal or when the message occurs with RT Busy status. Note that receive and transmit
subaddresses may have both legal and illegal word counts, dictated by the Command
Illegalization Table. For such subaddresses, an interrupt is only generated when a
supported legal word count message is transacted.
The bus controller (BC) can operate using either a 16- or 32-bit time tag counter, selected using register bit 3, BCTT32,
in the “Time Tag Counter Configuration Register (0x0039)”. The BC time tag counter clock source is selected using
register bits 2-0. This common clock source is shared by the BC, and RT. Bit pair 13-12 is used for clearing BC time tag
counter, loading the counter with a 16- or 32-bit value contained in the “Bus Controller (BC) Time Tag Utility Register
(0x0045)” on page 93, or writing the current 16- or 32-bit BC time tag counter value to the “Bus Controller (BC) Time
Tag Utility Register (0x0045)”.
The free-running BC time tag counter can be reset to zero, loaded with an arbitrary value, or the current count can be
captured. In 32-bit time tag mode, the full count is captured by simultaneously loading two utility registers. Writing bits
13-12 in the Time Tag Counter Configuration Register initiates these operations. Here is a summary of host-initiated
operations involving the BC time tag counter:
a. Clearing a 16- or 32-bit BC time tag count, whichever is enabled.
b. When 16-bit BC time tag count is enabled,
• loading the 16-bit BC time tag counter with the 16-bit value contained in the “Bus Controller (BC) Time
Tag Utility Register (0x0045)”
• capturing the current 16-bit BC time tag counter value to the “Bus Controller (BC) Time Tag Utility Register
(0x0045)”
The bus monitor (MT) can operate using either a 16- or 48-bit time tag counter, selected using MT Configuration
Register bits 1-0. When using 16-bit resolution, one register is adequate for holding time tag values. When using 48-bit
time tag count resolution, three 16-bit registers are needed for each stored time tag count. The MT time tag counter
clock source is selected using bits 7-5 in the “Time Tag Counter Configuration Register (0x0039)”. The MT time tag
clock source is separate from the source shared by the BC and RT.
The free-running MT time tag counter can be reset to zero, loaded with an arbitrary value, or the current count can be
captured. In 48-bit time tag mode, the full count is captured by simultaneously loading three utility registers. Writing bits
15-14 in the “Time Tag Counter Configuration Register (0x0039)” initiates these operations.
Host interrupts can be generated when any of the four time tag counters in the device reach preset values contained
in Time Tag Match registers. Refer to the Section 9.4.
TT 1
T 0
TT 2
TT 3
TT 1
T 0
T 1
R TA0
TT 1
M TA0
R erve
R rve
TT T32
M CK
BC CK
M CK
M CK
M TA
BC TA
BC TA
R TA
TT K1
TT K2
K0
e
TT
TT
C
C
C
es
M
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MR Reset
RW Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
This 16-bit read-write register is cleared after MR pin master reset, but is unaffected by assertion of MTRESET or
RTRESET register bits.
When written, register bits 15-8 work in pairs to initiate a particular action, such as clearing or loading one of these
counters. When written, register bits 15-8 self reset to zero after initiating the assigned action. Thus, bits 15-8 always
read logic 0. Register bits 7-0 are used for configuring the various time tag counters in the device. These bits will
read back the last value written by the host.
00 Do Nothing.
Load the 16- or 48-bit value from SMT Time Tag Utility
10
Register(s) into the SMT Time Tag Count register(s).
If the MT is using 16-bit time tag, the SMT Time Tag Counter uses a
single register address, 0x003A. The SMT Time Tag Utility Register used
for the load and capture operations is register address 0x003D.
15 MTTTA1
R/W 0 If the MT is using 48-bit time tag, the SMT Time Tag Counter uses three
14 MTTTA0 register addresses. The High-Mid-Low words are found at 0x003C,
0x003B and 0x003A respectively. The triplet of SMT Time Tag Utility
Register Triplet used for the load and capture operations is located at
register addresses 0x003F (High), 0x003E (Mid) and 0x003D (Low).
Bits 1-0 in the “SMT Configuration Register (0x0029)” select SMT 16-bit
or 48-bit time tag counting:
SMT Configuration
Time Tag Mode
Register, bits 1-0
When the MT is operating in Simple mode with 48-bit time tag, the
recorded Command Buffer entry for each 1553 message has eight 16-
bit words. When operating with 16-bit time tag, the recorded Command
Buffer entry for each 1553 message has four 16-bit words.
00 Do Nothing.
If BCTT32 register bit 3 equals 0, the BC is using 16-bit time tag. The
BC Time Tag Counter uses a single register address, 0x0043. The “Bus
Controller (BC) Time Tag Utility Register (0x0045)” is used for these
operations.
If BCTT32 register bit 3 equals 1 the BC is using 32-bit time tagging, so
the BC Time Tag Counter requires two 16-bit register addresses. The High
and Low BC time tag counter words are found at 0x0044 and 0x0043
respectively. The pair of BC Time Tag Utility Registers used for timer
operations are located at register addresses 0x0046 (High word) and
0x0045 (Low word).
Load the 16-bit value from the RT Time Tag Utility Register
10
(0x004A) into the RT Time Tag Counter (0x0049).
“Fast access” op codes used for direct addressing contain embedded register addresses, but only work over a limited
address range.
• SPI reads to register addresses 0 through 0x000F (decimal 15) use an 8-bit op code of the form
0x00 + (Reg_Addr << 2) where Reg_Addr = 0 to 0xF before left-shifting two bits.
• SPI writes to register addresses 0 through 0x003F (decimal 63) use an 8-bit op code of the form
0x80 + Reg_Addr where Reg_Addr equals 0 to 0x3F.
The two “fast access” op codes use a dedicated memory address pointer to perform their duties without affecting
values contained in other Memory Address Pointer registers. The “fast access” Memory Address Pointer cannot be
read by the host, but is written each time a “fast access” op code is processed.
The HI-6138 uses a Memory Address Pointer for SPI reads to register addresses over 0x000F, or for SPI writes
to register addresses over 0x003F. For most SPI read and write operations, the starting memory address for the
requested operation is written to the Memory Address Pointer (or MAP) before the op code (using the MAP) is invoked.
In the case of a multiword data transfer involving a range of sequential addresses, the memory address pointer is
initialized with the starting (lowest) address. After the SPI transfers data from the first address, the memory address
pointer automatically increments to the next address. When read access occurs, the device prefetches the data stored
at the next address to support the fastest possible data rates. As long as the chip select stays low (asserted) and the
SPI master continues to provide serial clocks, data read/write transfers for sequential addresses continue until the chip
select is negated. Please refer to section “Host Serial Peripheral Interface (SPI)” on page 212, describing SPI host
access and the SPI op codes used for data transfer.
For flexibility in configuring the device, four independent Memory Address Pointers are available. These can be
assigned in any manner that supports application requirements. For example:
• To simplify data access while supporting concurrent terminal devices (BC, MT and RT), some devices may need
a dedicated Memory Address Pointer (MAP) while other devices may be able to share a MAP.
• Consider using a dedicated Memory Address Pointer for interrupt service routines. Many SPI operations are
multiword transfers that utilize the Memory Address Pointer auto-increment feature. If interrupts are enabled
during multiword transfers, a dedicated Memory Address Pointer for the interrupt service routine avoids corruption
of the MAP used by the interrupted routine.
Residing in the lower register address space, the four Memory Address Pointers can be read or written with a single
8-bit “fast access” op code (plus the desired 16-bit data value, when writing).
Just one of the four MAP registers is enabled at any time. Each of the four Memory Address Pointers has a dedicated
8-bit “MAP Select” op code that enables it by writing the “Master Configuration Register 1 (0x0000)”. Or the host can di-
rectly write the MAPSEL (Memory Address Pointer select) bits 11-10 in the “Master Configuration Register 1 (0x0000)”
to enable the desired MAP register. Full descriptions of SPI data transfer methods are provided later in this document.
These 16-bit registers are read-write (except bit 15 MSB, which is Read-Only) and are fully maintained by the host.
These registers are cleared after MR pin master reset, but are unaffected by assertion of RTRESET or MTRESET bits
in the “Master Status and Reset Register (0x0001)”.
Each of these registers has a unique SPI op code that reads the MAP value in the register, and another op code that
writes a new MAP value into the register. See SPI op code table. The host selects the active MAP register by writing
the MAPSEL (memory address pointer select) bits 11-10 in the “Master Configuration Register 1 (0x0000)”, or by using
the four defined “MAP Select” SPI op codes, described in the section “Host Serial Peripheral Interface (SPI)” on page
212. The active MAP register contains the memory address used for SPI read write access to registers and RAM.
Please refer to Section 22 for a full description of the interface and the SPI instruction op codes.
The Bus Controller provides a flexible means for scheduling major and minor frames, allowing insertion of asynchro-
nous messages during frame execution. Upon error, individual messages can be programmed for one or two auto-
matic retries, and the BC can switch buses before retry occurs. Message data is separated from control and status
data, to serve the needs for double buffering in RAM and bulk data transfers.
Before Bus Controller operation can begin, the BCENA bit 12 in “Master Configuration Register 1 (0x0000)” on page
28 must be logic 1 to allow BC operation. All Bus Controller operational registers (see Section 11) must be properly
configured. The BC Instruction List in RAM must be initialized to define message sequencing and conditional execution,
and finally the host must assert BCSTRT bit 13 in the “Master Configuration Register 1 (0x0000)” to initiate execution
of Instruction List op codes. The following pages provide the necessary details for successful Bus Controller operation.
Figure 4 shows the registers and RAM resources utilized by the Bus Controller. All Bus Controller registers are fully
described in Section 11.
Initial control of BC message sequencing involves the “Bus Controller (BC) Instruction List Pointer (0x0034)”. Before
BC execution begins, the instruction list starting address is copied from the “Start Address Register for Bus Controller
(BC) Instruction List (0x0033)”. Once message sequencing is underway, the “Bus Controller (BC) Instruction List
Pointer (0x0034)” is updated by the BC control logic.
The BC Instruction List in RAM comprises a series of 2-word entries, an instruction op code followed by a parameter
word. While processing messages, the BC control logic fetches and executes the instruction op code referenced by the
“Bus Controller (BC) Instruction List Pointer (0x0034)” from the BC Instruction List. The pointer parameter, referencing
the first word in the Message Control/Status Block, must have the form 0xHHH8 or 0xHHH0, where each H represents
a hex character, 0-9 or A-F. If the individual message is RT-to-RT, the address must have the form 0xHHH0.
Odd
Parity
X X X X X X 0 1 0 1 0 X X X X X
P Op Code Field Validation Field Condition Code
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
Bus Controller execution stops immediately if the BC logic fetches an op code word having one or more of these error
conditions:
• Bit 15 contains even parity
• Bits 14-10 contain an undefined op code
• Validation field bits 9-5 do not equal 01010
If enabled in the “Bus Controller (BC) Interrupt Enable Register (0x0010)”, a BCTRAP interrupt occurs when execution
stops because of an illegal op code.
Eight of the condition codes (1000 through 1111) are set or cleared based on the outcome of the most recent message.
The remaining eight codes are General Purpose Condition Codes, GP0 through GP7. Three processes affect values
of the General Purpose Condition Code bits: (a) they may be toggled, set or cleared when the BC logic executes a FLG
(GP Flags Bits) op code. (b) they may be toggled, set or cleared when the host writes the “Bus Controller (BC) General
Purpose Flag Register (Write 0x0037)”. (c) only GP0 and GP1 may be set or cleared when the BC logic executes a
CMT (Compare Message Timer) op code, or a CFT (Compare Frame Timer) op code. The sixteen BC Condition Codes
are summarized in Table 5.
No Response Flag.
This flag is set when an RT failed to respond to a command,
0x8 NORESP RESP or responded later than the BC No Response Timeout
programmed using bits 15-14 in the “BC (Bus Controller)
Configuration Register (0x0032)”.
Bad Message.
Reflecting status for the last 1553 message, the Bad Message
flag is set for Format Error, No Response error, or Loopback
0xC BADMSG GOODMSG
error.
A Status Set condition has no effect on the Bad Message
condition code.
1 Retry.
If Condition Code bits 3:0 = 0xD and bit 4 = 0, one or two
0xD 1RETRY 1RETRY message retries is indicated.
If Condition Code bits 3:0 = 0xD and bit 4 = 1, zero message
retries is indicated.
2 Retries.
If Condition Code bits 3:0 = 0xE and bit 4 = 0, two message
0xE 2RETRY Undefined
retries is indicated.
Condition Code bits 3:0 = 0xE and bit 4 = 1 is undefined.
Always.
The ALWAYS bit is set (Condition Code bit 4 = 0) to designate
0xF ALWAYS NEVER an instruction op code as unconditional.
The NEVER bit is set (Condition Code bit 4 = 1) to designate
an instruction op code as NOP (no operation).
All other instruction op codes execute conditionally. They execute only if evaluation of the Condition Code tests true,
logic 1. If the Condition Code field tests false, the BC Instruction List Pointer skips to the next instruction op code in
the BC Instruction List.
Many instruction op codes utilize the following parameter word in the BC Instruction List. Depending on the op code,
the parameter may be a RAM address, a time value, an interrupt bit pattern, an argument that sets or clears General
Purpose Flag bits, or an immediate value. For some op codes, the parameter word is not used and is therefore “don’t
care.” For an XEQ (execute message) instruction, the parameter is a RAM address pointer referencing the start of
the message Control/Status Block.
Other instructions perform various duties: set, reset or toggle General Purpose Flag bits; load the Time Tag counter;
load the Frame Time counter; begin a new BC frame; wait for external trigger, then start a new BC frame; evaluate
remaining Frame Time; or evaluate time to next message.
Op
Name Instruction Parameter Function
Code
Op
Name Instruction Parameter Function
Code
Op
Name Instruction Parameter Function
Code
Wait until
If the Condition Code evaluates True, stop BC Instruction
Frame Timer Not Used List execution until the BC Frame Time Counter decrements
WFT Equals 0 0x09
(Don’t Care) to 0. Otherwise (Condition Code Evaluates False), continue
execution at the next op code in the BC Instruction List.
Conditional
Compare to Time Value Compare the parameter-specified Time Value to the “Bus
Frame Timer Controller (BC) Frame Time Remaining Register (0x0035)”.
CFT 0x0A (100 µs / LSB Set and clear LT and EQ bits 1 and 0 in the “Bus Controller
Unconditional resolution) (BC) General Purpose Flag Register (Write 0x0037)”.
Op
Name Instruction Parameter Function
Code
Op
Name Instruction Parameter Function
Code
Op
Name Instruction Parameter Function
Code
Wait for If the Condition Code evaluates True, wait for a rising edge
External Not Used (logic 0 to 1 transition) on the BCTRIG pin before continuing
WTG Trigger 0x14 execution at the next op code in the BC Instruction List
(Don’t Care) Otherwise (Condition Code Evaluates False), continue
Conditional execution at the next op code in the BC Instruction List.
Unconditionally execute the message at the parameter-
specified Message Control/Status Block Address. At
message completion, if the Condition Code evaluates
True, then toggle bit 4 of the Message Control/Status Block
Address, and store the new Message Control/Status Block
Address as the updated value of the parameter following
the XQF instruction op code. As a result, the next time
this address in the BC Instruction List is executed, the
Execute and processed Message Control/ Status Block resides at the
RAM Address for
Flip updated address (old address XOR 0x0010) instead of the
XQF 0x15 Message Control/
Status Block old address. Otherwise (Condition Code Evaluates False)
Unconditional the value of the Message Control/Status Block Address
parameter is not changed.
At the start of XQF message execution, if the fourth word in
the Message Control/Status Block is nonzero, it is copied
to the “Bus Controller (BC) Time To Next Message Register
(0x0036)”, and message timer begins decrementing. The
BC message sequencer does not fetch the next instruction
op code until this message timer reaches zero.
Op
Name Instruction Parameter Function
Code
Write
If the Condition Code evaluates True, write the parameter-
Immediate
specified immediate value to 0x0050 or the memory
Value to
WMI 0x1C Immediate Value address specified by the last WMP instruction performed.
Memory
Otherwise (Condition Code Evaluates False), continue
execution at the next op code in the BC Instruction List.
Conditional
Op
Name Instruction Parameter Function
Code
General The parameter word value is used to set, clear, or toggle the
Word value sets,
Purpose Flag lower byte in the “Bus Controller (BC) General Purpose Flag
clears or toggles
FLG Bits 0x0C Register (Write 0x0037)”. The upper and lower bytes in the
General Purpose
parameter word provide 2-bit arguments that modify each of
Flag Bits
Unconditional the eight GP flag bits, as illustrated below.
GP7 GP0
H7 H6 H5 H4 H3 H2 H1 H0 Hx = 0 0 1 1
L7 L6 L5 L4 L3 L2 L1 L0 Lx = 0 1 0 1
Low Byte: Set GP Bits 7-0 H-L Bit Combinations Modify GP Flag Bits
Parameter
Word Bit 7 6 5 4 3 2 1 0
The “Bus Controller (BC) General Purpose Queue Pointer Register (0x0038)” is initialized with the default starting
address 0x00C0 after reset. The queue is relocatable, so the host may overwrite the default base address. Updated
by the BC logic each time a data word is pushed onto the queue, the pointer in register 0x0038 always points to the
next storage address in the queue to be written. The address pointer rolls over every 64th word written. If the BCGPQ
bit 13 is logic 1 In the “Bus Controller (BC) Interrupt Enable Register (0x0010)”, a BC interrupt is generated when the
General Purpose Queue Pointer rolls over from its ending address to its base address.
The HI-6138 is fully compatible with all MIL-STD-1553B message formats. For most MIL-STD-1553 messages, the
corresponding Message Control/Status Block contains 8 words:
• BC Control Word. This word contains flags that select message format, choose the active bus, enable message
retry and end-of-message interrupt, indicate expected RT status word flags, etc.
• MIL-STD-1553 Command Word. When message is RT-to-RT, this is the Receive Command Word.
• Data Block Pointer. For subaddress commands and mode code commands with data, this word identifies the
start address of the Message Data Block in RAM. For mode commands without data, this word is not used.
• Time-to-Next Message. The time count loaded here begins decrementing at start of message. When value ex-
ceeds message execution time, it paces delivery of the next message.
• Time Tag Word. The current value of the internal time tag count is written to the Time Tag Word at Start-of-Mes-
sage and again at the End-of-Message. When the BC uses a 16-bit time base, this location contains the complete
time count. When the BC uses 32-bit time base, this word contains time bits 15-0 and block word 7 contains time
bits 31-16 (instead of Loopback Word).
• Block Status Word. This word contains various message result flags.
• Loopback Word, containing the last word transmitted by the BC (16-bit time base only) or
Time Tag Bits 31-16 (32-bit time base only)
• RT Status Word received.
This is the Transmit RT Status Word when message is RT-to-RT.
When the message is RT-to-RT, the Message Control/Status Block contains 8 additional words:
• Transmit Command Word.
• Receive RT Status Word.
• Six unused word locations, to maintain 8 or 16 words per Message Control/Status Block.
Figure 6 shows the range of Message Control/Status Block variations. Selected words in the Message Control/Status
Block are described next.
Loopback Word Loopback Word High Time Tag Word High Time Tag Word
Block Status Word Block Status Word Block Status Word Block Status Word
Time Tag Word Time Tag Word Low Time Tag Word Time Tag Word
Time to Next Msg Time to Next Msg Time to Next Msg Time to Next Msg
Data Block Pointer Data Block Pointer Data Block Pointer Data Block Pointer
Bus Controller Configured for 16-Bit Time Base Bus Controller Configured for 32-Bit Time Base
Figure 6. Structure of Bus Controller Message Control / Status Blocks in RAM
R TFM T
YM SK
M CR
K
A
Y SK
M AS
T
LF SA
TF T
EM C1
S M
AS T
Q K
O d
TR S
SE N
M
SV K
es T
M TS
M rve
BS MA
BC DF
R MA
SS A
TF SM
EO KB
U YE
SE BU
M TM
R IN
e
TR
T
C
TX
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MR Reset
RW Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
The BC Control Word is the first word in each Message Control / Status Block. The BC Control Word is not transmitted
on the MIL-STD-1553 bus. This word is initialized and maintained by the host to specify message attributes: message
format, which bus to use, bit masks for the received RT Status Word, enabling interrupt at end-of-message, and
enabling self test:
Retry Enabled.
If this Control Word bit is logic 1 and BCRE (BC Retry Enable) bit 12 is
logic 1 in the “BC (Bus Controller) Configuration Register (0x0032)”, the BC
will retry a message if RT response timeout or Format Error occurs.
8 RTRYENA R/W 0 If this Control Word bit is logic 1 and BCRE (BC Retry Enable) bit 12 is
logic 1 and BCRSB (BC Retry If Status Word Bits Set) bit 8 is also logic 1
in the “BC (Bus Controller) Configuration Register (0x0032)”, the BC will
retry a message when a “Status Set” condition occurs. See “Note” at end of
MEMASK bit 14 description above.
5 MASKBCR R/W 0
If the BCRME bit 0 is logic 0 in the “BC (Bus Controller) Configuration
Register (0x0032)”, then this MASKBCR Control Word bit reflects the
expected state of the Broadcast Command Received bit 4 in the received
RT Status Word:
• If this MASKBCR Control Word bit does not match the logic state
of the Broadcast Command Received bit 4 in the received RT Status
Word, a “Status Set” condition will result.
• If this MASKBCR Control Word bit matches the logic state of the
Broadcast Command Received bit 4 in the received RT Status Word,
then the Broadcast Command Received bit 4 in the received RT Status
Word has no effect on the outcome for a “Status Set” condition.
See Table 7.
When the specified Time to Next Message value is less than the actual time required to transact the current message,
the next message starts immediately upon completion current message, after the minimum inter-message gap time of
4µs. This gap corresponds to a bus “dead time” of 2µs.
For RT-to-BC (transmit) commands or RT-to-RT commands, this pointer contains the RAM location for storing the first
data word transmitted by the RT (and received by the BC).
RT Y1 T
R SE
T
F E T SE
RT AT
G Y0
ST E
AG
M
M
BC
B
ST
R
A
E
D
D
SO
EO
TM
SE
LB
LE
IW
BI
W
M
M
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MR Reset
RW Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
The Block Status Word in the Message Control / Status Block provides information regarding message status (in-
process or completed), the bus it was transmitted on, whether errors occurred during the message, and the type of
occurring errors. This word is written into RAM by the device after message completion. Because it resides in RAM,
the host has read-write access, although this word is usually treated as read-only by the host.
End of Message.
This bit is set upon completion of a BC message, whether or not errors
15 EOM R/W 0 occurred. When EOM is set, the current value of the Time Tag Word(s) is
(are) written to the corresponding Time Tag Word(s) in the BC Message
Control/Status Block.
Start of Message.
This bit is set at the start of a BC message and cleared at the end of the
14 SOM R/W 0 message. When SOM is set (and reset), the current value of the Time Tag
Word(s) is (are) written to the corresponding Time Tag Word(s) in the BC
Message Control/Status Block.
Status Set.
This bit is not affected by the values of mask bits 14-9 in the “BC Control
Word” for the message.
This bit is logic 1 when the received RT Status Word contains an
unexpected bit value in the bit 10-0 range. The expected value is usually
logic 0 for bits 10-0 in the received RT Status Word.
The BCR Mask Enable (BCRME) bit 0 is logic 0 in the “BC (Bus
11 STATSET R/W 0 Controller) Configuration Register (0x0032)”. If opposite logic states
occur for the MASKBCR bit in the message “BC Control Word” and the
Broadcast Command Received (BCR) bit in the received RT Status Word,
then the STATSET bit is set.
The BCR Mask Enable (BCRME) bit 0 is logic 1 in the “BC (Bus
Controller) Configuration Register (0x0032)”. If the Broadcast Command
Received Bit is set in the RT Status Word and the MASKBCR bit 5 in the
“BC Control Word” is logic 0 then the STATSET bit is set.
Format Error.
This bit is logic 1 when a received RT response violates MIL-STD-1553
10 FE R/W 0 message validation criteria. This includes sync, word count, encoding, bit
count or parity errors. Word bits 2-0 provide additional information. This
flag is also set when the received RT Status Word response from the last
message contained an incorrect RT address field.
9 TM R/W 0 This bit is logic 1 when an RT fails to respond, or responds later than the
BC No Response Timeout interval specified by bits 15-14 in the “BC (Bus
Controller) Configuration Register (0x0032)”.
Loopback Error.
The BC evaluates its own 1553 message transmissions. The received
version of each word transmitted by the BC is checked for 1553 validity
(sync, encoding, bit count and/or parity error). In addition, for each
message transacted, the received image for the last word transmitted by
8 LBE R/W 0
the BC is evaluated for data match.
This bit is logic 1 when the received version for one or more words
transmitted by the BC fails 1553 “word validity” criteria, and/or the
received version for the last word transmitted by the BC does not match
the Manchester II word transmitted by the BC.
Sync Error.
1 SE R/W 0 This bit is logic 1 when an RT responds with Data Sync in its Status Word,
or with Command/Status Sync in a Data Word.
0 IWE R/W 0 This bit is logic 1 when an RT response in one or more words having
at least one of the following errors: sync encoding error, Manchester II
encoding error, bit count error, parity error.
T EN
S E
R T
G V
BC SYN
TT DT
BS DV
E
BC CE
BC FM
M SB
BC ND
BC TE
BC O1
C 0
BC RE
BC 1A
BC 2A
ET YN
M
TO
BC E
W
EN
G
R
K
R
R
T
Y
2
H
BC
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MR Reset
RW Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
00 16μs 18μs
01 21μs 23μs
10 80μs 82μs
11 138μs 140μs
For RT-RT commands, time out delay is measured per Figure 8 in the
RT Validation Test Plan, SAE AS4111. That is, from mid-parity of the
15 − 14 BCTO1:0 R/W 0
receive command to mid-sync of the first received data word. This
adds 42µs for the embedded parity half-bit, transmit command word,
transmit-RT status word and data half-sync within this interval:
00 19μs 61μs
01 24μs 66μs
10 80μs 122μs
11 138μs 180μs
BC Retry Enable.
12 BCRE R/W 0 If bit 12 equals logic 0, command retries are disabled for all messages.
If bit 12 equals logic 1, command retries can be enabled on an
individual message basis by setting bit 8 in the “BC Control Word”.
11 BC2RE R/W 0 If retries are enabled (register bit 12 equals 1) this bit selects the
number of retries performed, If bit 11 equals logic 0, a single retry is
performed. If bit 11 equals logic 1, up to two retries are performed.
Commanded
Good Data Block Good Data Block Transfer
number of data
(GDB) bit = 1 (GDBT) bit = 1
words
Status Set
----------
(STATSET) bit = 1.
MENDV
7 R/W 0
(continued) When the MENDV bit equals logic 1:
• When an RT responds Message Error status to a transmit
command, the response is valid with the commanded number of
data words, or ME status with no data words. Here is the message
result:
Condition Block Status Word Condition Code Register
Commanded # of
data words only, Good Data Block Good Data Block Transfer
“Good Data” is not (GDB) bit = 1 (GDBT) bit = 1
shown if no data
Status Set
----------
(STATSET) bit = 1.
The only 3 cases when an RT transmits Message Error status onto the
bus:
1. An RT using “illegal command detection” receives an illegal command
that otherwise meets all other validation requirements. The RT
MENDV responds with Status Word only, with Message Error bit set. No data
7 R/W 0
(continued) words are sent.
2. An RT receives a “transmit status” mode command (MC2). The
previous valid command for the RT had Message Error status. The
RT responds with Status Word only, with Message Error bit set. No
data words are sent.
3. An RT receives a “transmit last command” mode command (MC18
decimal). The previous valid command for the RT set Message Error
status. The RT responds with Status Word (with Message Error bit
set) and one data word, the previous Command Word.
In summary, Message Error status never occurs with more
than one data word, and only occurs with one data word for the
“transmit last command” mode code.
Besides illegal command detection, there is just one situation where
Message Error status occurs, but Status transmission is suppressed:
The RT detects a valid receive command having correct RT address,
but an invalid word is detected in the accompanying data words, or a
gap occurs between words. In this situation, Message Error status
is set but the RT suppresses its Status Word transmission. This
suppressed ME status is only seen by the BC if retrieved by a following
“transmit status’’ or “transmit last command” mode command.
Commanded # of
data words only, Good Data Block Good Data Block Transfer
“Good Data” is not (GDB) bit = 1 (GDBT) bit = 1
shown if no data
Table 7. Effect of “Broadcast Command Received” RT Status Bit on “Status Set” Condition
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 0
1 0 1 1
1 1 X 0
11.2. Start Address Register for Bus Controller (BC) Instruction List (0x0033)
MSB Register Value LSB
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MR Reset
RW Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
This 16-bit register is Read-Write and is fully maintained by the host. This register is cleared after MR pin master reset.
This register is initialized with the base address of the re-locatable BC Instruction List in device RAM.
This 16-bit register is Read-Only and is fully maintained by the device. When the BC is running, the user programming
changes this pointer value indirectly, by executing a JMP op code. When the bus controller is enabled, setting BCSTRT
bit 13 in the “Master Configuration Register 1 (0x0000)” begins bus controller operation. The device copies the
Instruction List base address from register 0x0033 into this register. This pointer references pairs of words in the BC
instruction list. Each word pair is comprised of an op code word followed by a parameter word. Pointer update occurs
just before execution of the next BC instruction list op code, after execution of the prior op code, and evaluation of its
result-dependent outcome.
The IP Core Bus Controller Logic will copy the address of the Message Block of the last executed message to
this register upon completion. Each completed BC Message command (XEQ, XQG, XQF, and XFG) will update this
This 16-bit register is Read-Write. A value is written to this register upon execution of the BC instruction list op code,
“Load Frame Timer” (LFT). Time remaining value begins decrementing upon execution of the Start Frame Timer (SFT)
instruction op code. The parameter word accompanying the op code word is the desired time value, expressed with a
resolution of 100 µs per LSB, with a maximum value of 6.5535 sec.
This 16-bit register is Read-Only. This programmable time-to-next message timer is loaded on a message-by-mes-
sage basis, with values from word 4 in each Message Control / Status Block. The BC time-to-next message is defined
as the time from the start of the current message to the start of the next message, i.e., mid-sync zero crossing to the
next mid-sync zero crossing. This timer provides a 1 µs per LSB resolution, with a maximum value of 65.535 ms.
PF P
O R
D S
P0
/G 1
ET 1
D 0
M MS
R UN
G ES
LT GP
N R
R RY
BA RY
G AT
TE
G 6
G 5
G 4
EQ 2
G 7
G 3
R
R
PF
PF
PF
PF
PF
ET
/
BC
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MR Reset
R Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
Sharing the same register address as the Write-Only “Bus Controller (BC) General Purpose Flag Register (Write
0x0037)”, this 16-bit register is Read-Only. Bit 15 indicates BC run/stop status. With this exception, the upper 8 bits
indicate results from the last message processed by the Bus Controller. The lower 8 bits of this register are general
purpose flag bits, which may be set, cleared, or toggled by the host using the “Bus Controller (BC) General Purpose
Flag Register (Write 0x0037)”, or by the device by means of the General Purpose Flag Bits (FLG) instruction op code.
Further, bits 1-0 can be set or cleared by the device BC logic by execution of two BC instruction op codes: Compare
to Frame Timer (CFT) and Compare to Message Timer (CMT).
BC Run / Stop
This is a status bit, not a condition code. This bit indicates whether the
BC is running or stopped. The bit is set to logic 1 when the BCSTRT bit
13 in the “Master Configuration Register 1 (0x0000)” is asserted and the
BCENA bit 12 in the “Master Configuration Register 1 (0x0000)” is logic
15 BC RUN R 0 1.
Once set, this bit resets to logic 0 if the BCENA register bit is reset to
logic 0 by the host, or if the BC executes the HLT instruction, or if the
BC executes an illegal op code. The “illegal op code” case will generate
a BCTRAP interrupt, if enabled (see Section “11.16.3. Bus Controller
(BC) Interrupt Output Enable Register (0x0014)” on page 95).
Bad Message.
12 BADMSG R 0 This bit is logic 1 to indicate message format error, loopback test failure,
or no response error for the last message.
Format Error.
This bit is logic 1 when the received data from the most recent message
contains one or more violations of the MIL-STD-1553 message
9 FMTERR R 0 validation criteria, including sync, encoding, parity, bit count or word
count errors.
This bit is also set if the received Status Word from the responding RT
contains incorrect RT address bits 15:10.
No Response Error.
This bit is set to logic 1 when an RT fails to respond to a command,
8 NORESP R 0 or responds later than the BC No Response Timeout time. The No
Response Timeout delay is programmed using BC Timeout Select bits
15-14 in the “BC (Bus Controller) Configuration Register (0x0032)”.
11.8. Bus Controller (BC) General Purpose Flag Register (Write 0x0037)
6
5
1
7
3
2
4
T F0
T F6
T F5
T F1
T F7
T F4
T F3
T F2
0
LR F
LR F
LR F
LR F
LR F
LR F
LR F
PF
C GP
C GP
C GP
C GP
C GP
C GP
C GP
SE G P
SE G P
SE G P
SE G P
SE G P
SE G P
SE G P
SE G P
G
LR
C
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MR Reset
W Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
Sharing the same register address as the Read-Only “Bus Controller (BC) Condition Code Register (Read 0x0037)”,
this 16-bit register is Write-Only. This register is written by the host to set, clear or toggle any combination of the 8
general-purpose flags 7-0 in the “Bus Controller (BC) Condition Code Register (Read 0x0037)”. When this register is
written, general-purpose flags are modified. Reading register address 0x0037 returns the value in the BC Condition
Code Register, containing the modified GP flag bits.
Each general-purpose flag in the BC Condition Code Register is mirrored twice in the General Purpose Flag Register,
once in the upper byte and once in the lower byte. Bits asserted in the lower byte set the corresponding GP flag bits
in the BC Condition Code Register to 1. Bits asserted in the upper byte clear the corresponding GP flag bits in the BC
Condition Code Register to 0. Bits asserted in both the lower and upper bytes for a specific GP flag toggles (inverts)
the corresponding GP flag bit in the BC Condition Code Register. When both bits are written to logic 0 state for a spe-
cific GP flag bit, no change occurs for that GP flag bit. The FLG instruction op code operates similarly, as shown in the
diagram in Figure 5. Writes to this register have no effect unless the BC is already running. The BCENA bit 12 in
“Master Configuration Register 1 (0x0000)” must have previously been written high.
SET Bits asserted in the lower byte set the corresponding GP flag bits in the
7−0 W 0 BC Condition Code Register to 1. Bits asserted in both the lower and
GP7 − GP0
upper bytes for GPx toggles that GP flag bit in the BC Condition Code
Register.
11.9. Bus Controller (BC) General Purpose Queue Pointer Register (0x0038)
MSB General Purpose Queue RAM Address LSB
0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 MR Reset
R RW Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
This 16-bit register is a combination of Read-Only and Read-Write bits. This register contains 0x00C0 after MR pin
master reset. The initialized value represents the base address for the 64-word BC General Purpose Queue. The host
can overwrite the default 0x00C0 value, but low order bits 5-0 and bit 15 must equal logic 0 for the initialized value.
The general purpose queue provides a way for the Bus Controller message sequencer to convey various information
to the external host. The BC instruction set includes op codes that push data values onto this queue, including immedi-
ate data values, the Block Status Word from the most recent message, the Time Tag Register count, or the contents
of a specified memory address.
These registers are read-only and are cleared after MR pin Master Reset. The Bus Controller can be configured for
either 16- or 32-bit time base counting in the “Time Tag Counter Configuration Register (0x0039)”. When configured
for 16-bit time base operation, register 0x0043 contains the entire 16-bit count. When configured for 32-bit time base
operation, count bits 31-16 reside in register 0x0044 while register 0x0043 contains bits 15-0.
For programmed bus controller action, instruction op codes are provided for loading a time tag count value, or pushing
the current time tag count onto the BC General Purpose Queue. If configured for 32-bit time base operation, separate
op codes are provided for loading the upper or lower words individually, or pushing the individual words or simultane-
ously pushing both words onto the BC General Purpose Queue:
LTT Load Low Time Tag Count (parameter) into register 0x0043.
LTH Load High Time Tag Count (parameter) into register 0x0044.
32-Bit Time PTT Push Low Time Tag Count from register 0x0043 onto BC GP Queue.
Base PTH Push High Time Tag Count from register 0x0044 onto BC GP Queue.
PTB Push Low and High Time Tag Counts from register 0x0043 and 0x0044 onto BC GP
Queue (simultaneous 32-bit count capture)
The host can bypass BC Instruction List execution to exercise direct control over the BC Time Tag counter. By writing
bits 13-12 in the “Time Tag Counter Configuration Register (0x0039)”, the host can clear time tag count to zero, or
load the current value contained in the BC Time Tag Utility Register(s) into the BC Time Tag counter(s). Finally, the BC
Time Tag Match Register(s) provide capability for host interrupts when the time tag count reaches any predetermined
16- or 32-bit value.
11.13. Bus Controller (BC) Time Tag Utility High Register (0x0046)
MSB Register Value LSB
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MR Reset
RW Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
These registers are read-write and are cleared after MR pin Master Reset. This utility register pair is used for simul-
taneously loading a 16- or 32-bit value into the BC Time Tag Counter. When loading, the value contained in utility
register 0x0045 is copied into “Bus Controller (BC) Time Tag Counter (0x0043)”. If the BC is configured for 16-bit time
base, register 0x0043 contains the entire 16-bit count. If configured for 32-bit time base operation, count bits 31-16 are
simultaneously copied from utility register 0x0046 into “Bus Controller (BC) Time Tag Counter High (0x0044)”. Please
refer to the description for bits 13-12 in the “Time Tag Counter Configuration Register (0x0039)” on page 48.
11.15. Bus Controller (BC) Time Tag Match High Register (0x0048)
MSB Register Value LSB
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MR Reset
RW Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
These registers are read-write and are cleared after MR pin Master Reset. When the BCTTM bit 5 is logic 1 in the
“Hardware Interrupt Enable Register (0x000F)”, an interrupt occurs when the BC time tag count matches the value
stored in this register pair. If the BC is configured for 16-bit time base, match register 0x0047 is compared to time base
count register 0x0043 for match determination. If configured for 32-bit time base operation, count bits 31-16 in match
register 0x0048 is also compared to “Bus Controller (BC) Time Tag Counter High (0x0044)” for match determination.
Please refer to the description for BCTTM bit 5 in the Hardware Interrupt Registers in Section 9.8.
Each individual bit in all three registers is mapped to the same interrupt-causing event when the corresponding
interrupt condition is enabled. Numerous interrupt options are available for the BC. At initialization, bits are set in the
“Bus Controller (BC) Interrupt Enable Register (0x0010)” to identify the interrupt-causing events for the BC which are
heeded by the device. Most Bus Controller applications only use a subset of available BC interrupt options. Interrupt-
causing events are ignored when their corresponding bits are reset in the “Bus Controller (BC) Interrupt Enable
Register (0x0010)”. Setting an Interrupt Enable Register bit from 0 to 1 does not trigger interrupt recognition for events
that occurred while the bit was zero.
Whenever a Bus Controller interrupt event occurs (and the corresponding bit is already set in the “Bus Controller (BC)
Interrupt Enable Register (0x0010)”), these actions occur:
• The Interrupt Log Buffer is updated.
• A bit corresponding to the interrupt type is set in the “Bus Controller (BC) Pending Interrupt Register (0x0007)”.
The type bit is logically-ORed with the preexisting register value, retaining bits for prior, unserviced BC interrupts.
• BC Interrupt Pending (BCIP) bit 0 is set in the “Hardware Pending Interrupt Register (0x0006)”. The BCIP bit is
logically-ORed with the preexisting register value, retaining bits for unserviced hardware interrupts and the pre-
existing status of the MTIP and RTIP (Bus Monitor and RT) interrupt pending bits.
• If the matching bit is already set in the “Bus Controller (BC) Interrupt Output Enable Register (0x0014)”, an IRQ
output occurs.
If the matching bit in the “Bus Controller (BC) Interrupt Output Enable Register (0x0014)” was not already set (i.e., low
priority polled interrupt), the host can poll the “Bus Controller (BC) Pending Interrupt Register (0x0007)” to detect the
occurrence of BC interrupts, indicated by non-zero value. Reading the “Bus Controller (BC) Pending Interrupt Register
(0x0007)” automatically clears it to 0x0000.
A single IRQ host interrupt output signal is shared by all enabled interrupt conditions having bits set in the four Interrupt
Output Enable Registers (hardware, BC, RT and SMT). Multiple interrupt-causing events can occur simultaneously, so
single or simultaneous interrupt events can assert the IRQ host interrupt output.
When the host receives an IRQ signal from the device, it identifies the event(s) that triggered the interrupt. Section
9.5 describes two methods for identifying the interrupt source(s). One scheme uses the three low order bits in the
“Hardware Pending Interrupt Register (0x0006)” to indicate when BC, RT and SMT interrupts occur. When BCIP (BC
Interrupt Pending) bit 0 is set in the “Hardware Pending Interrupt Register (0x0006)”, the “Bus Controller (BC) Pending
Interrupt Register (0x0007)” contains a nonzero value and may be read next to identify the specific BC interrupt
event(s). Or, the host can directly interrogate the Interrupt Count & Log Address Register, followed by the Interrupt Log
Buffer. Data sheet section 9.5 has a detailed description.
Y
TR R R
IR T
EO R
es d
d
es d
G G
ST R
A P
BC T SE
BC Q 3
BC Q 2
BC Q 1
BC Q 0
R rve
ve
R rve
SE D T
R M
BC ER
BC PQ
BC S
C ET
ST A
BC KE
LM
er
IR
IR
IR
e
W
e
M
R
es
BC
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MR Reset
RW R Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
IR T
EO R
es d
d
es d
G G
ST R
A P
BC TSE
BC Q3
BC Q2
BC Q1
BC Q0
R rve
ve
R rve
SE DT
R M
BC ER
BC PQ
BC S
C ET
ST A
BC KE
LM
er
IR
IR
IR
e
W
e
M
R
es
BC
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MR Reset
R Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
IR T
EO R
es d
d
es d
G G
ST R
A P
BC TSE
BC Q3
BC Q2
BC Q1
BC Q0
R rve
ve
R rve
SE DT
R M
BC ER
BC PQ
BC MS
C ET
ST A
BC KE
er
IR
IR
IR
e
W
e
M
R
L
es
BC
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MR Reset
RW R Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
Three registers govern BC interrupt behavior: the “Bus Controller (BC) Interrupt Enable Register (0x0010)”, the “Bus
Controller (BC) Pending Interrupt Register (0x0007)” and the “Bus Controller (BC) Interrupt Output Enable Register
(0x0014)”. When a bit is set in the “Bus Controller (BC) Interrupt Enable Register (0x0010)”, the corresponding BC in-
terrupt is enabled. When a bit is reset in this register, the corresponding interrupt event is unconditionally disregarded.
Setting a register bit from 0 to 1 does not trigger interrupt recognition for events that occurred while the bit was zero.
When an enabled BC interrupt event occurs, the corresponding bit is set in the “Bus Controller (BC) Pending Interrupt
Register (0x0007)” and the Interrupt Log Buffer is updated. To simplify interrupt decoding, BCIP bit 0 in the “Hardware
Pending Interrupt Register (0x0006)” is also set whenever a message sets at least one bit in the “Bus Controller (BC)
Pending Interrupt Register (0x0007)”.
If the corresponding bit is set in the “Bus Controller (BC) Interrupt Output Enable Register (0x0014)”, the IRQ output is
asserted at message completion. The “Bus Controller (BC) Interrupt Output Enable Register (0x0014)” establishes two
priority levels: high priority interrupts generate an IRQ output while low priority interrupts do not. Both priority levels
update the “Bus Controller (BC) Pending Interrupt Register (0x0007)” and Interrupt Log Buffer. The host can detect low
priority (masked) interrupts by polling Pending Interrupt registers.
The table below describes common bits in all three BC interrupt registers.
BC Retry Interrupt.
12 BCRETRY The occurrence of a retried message by the BC. If enabled, the interrupt will occur after
the last enabled message retry (one or two) regardless of the outcome, successful or
unsuccessful.
BC Call Stack Pointer Error Interrupt.
The BC subroutine stack depth was violated due to an overflow or underflow condition.
Call stack level is incremented each time a BC “subroutine call” op code (CAL) is
11 CSTKERR executed. Call stack level is decremented each time a BC “subroutine return” op code
(RTN) is executed. The allowed range for the call stack level is 0-7. An interrupt occurs
when a CAL op code executes when stack level is 7. An interrupt also occurs when a
RTN op code executes when stack level is 0.
BC Trap Interrupt.
The following conditions can assert this interrupt:
1. The BC fetched an illegal op code. The BC operation stops when the current 1553
message is complete. An illegal op code is either undefined, fails parity check, and/
or has the wrong value for bits 9-5. When this occurs, BCRUN bit 15 resets to logic
0 in the “Bus Controller (BC) Condition Code Register (Read 0x0037)” and “Bus
Controller (BC) General Purpose Flag Register (Write 0x0037)”.
2. When the CHKFMT bit 13 is set in the “BC (Bus Controller) Configuration Register
(0x0032)”, the “BC Control Word” message format bits 2-0 (mode command, RT-RT
and broadcast message flags) are compared to the stored value(s) for the message
Command Word(s) following the Control Word in the Message Block. When mismatch
occurs between Control Word format bits and Command Word(s), the BCTRAP
10 BCTRAP interrupt is asserted, if enabled. BC instruction list execution continues, so this
condition can be differentiated from illegal op code because BCRUN bit 15 remains
high in the BC Condition Code and GP Flag register, 0x0037. For mode command or
broadcast mismatch, the stored message block Command Word(s) are transmitted.
For RT-RT format mismatch, RT-RT bit 1 in the Control Word has priority, determining
whether the message block is treated as an 8- or 16-word entity. For RT-RT format
mismatch, message failure is likely for this message or the next message block,
since the message block boundary is misplaced. The CHKFMT option bit detects BC
programming problems in the development phase. The option is normally disabled
in the field.
3. In addition, this bit will also be asserted if any of the following conditions occur:
Broadcast Transmit Mode Code with Data, Broadcast MC0 and MC2, Broadcast
Transmit Data, RTRT 2nd Transmit Mode Code without data, RTRT 2nd Command
Receive , RTRT Word Count mismatch.
8−5 BCIRQ3:0 When this 4-bit field is nonzero, the BC executed an IRQ op code. The value of bits 8:5
will equal the value of the 4 LSBs in the parameter associated with the IRQ op code.
The user may define the 4- bit pattern to suit application requirements.
BC Message Error Interrupt.
Any one of the following five conditions will assert this interrupt if enabled
1. RT response time-out.
4 BCMERR
2. BC loopback failure.
3. Incorrect address in RT status word.
4. Minimum gap time violated (if enabled).
BC End of Message Interrupt.
3 BCEOM
The successful completion of a message, regardless of validity.
2−0 Reserved Bits 2-0 cannot be written, and read back 000.
12.1. Overview
Simple Monitor Terminal (SMT) has its own dedicated Time Tag counter, and can use either a 16- or 48-bit Time Tag
scheme. The SMT monitor utilizes two circular buffers in RAM: a Command Buffer and a Data Buffer. Each recorded
MIL-STD-1553 message appends a fixed length entry into the Command Buffer and a variable length entry into the
Data Buffer.
The SMT message records a fixed length “message block” in the Command Buffer for each MIL-STD-1553 message.
The advantage of fixed length Command Buffer message blocks is that the host can quickly jump to the block start
address for any message.
The number of words added to the Data Buffer for each message depends on the MIL-STD-1553 message type,
ranging from zero (broadcast mode command without data) to 35 words (for a 32 data word RT-RT command).
Both circular buffers are fully utilized for recording message data. The SMT monitor allows selective monitoring of MIL-
STD-1553 messages, based on the address, subaddress and T/R status in each monitored Command Word, or can
monitor all messages, when preferred. The SMT monitor offers flexible interrupt options.
In “Master Configuration Register 1 (0x0000)”, MTENA bit 8 enables the SMT monitor. If “Master Configuration Register
1 (0x0000)” bit 8 equals logic 0, Bus Monitor operation is disabled. When “Master Configuration Register 1 (0x0000)”
MTENA bit 8 is logic 1, the Bus Monitor is enabled. Operation commences when the receiver first decodes MIL-
STD-1553 activity meeting the “start record” criteria selected by bits 6-5 in the “SMT Configuration Register (0x0029)”.
If monitor operation is underway when “Master Configuration Register 1 (0x0000)” MTENA bit 8 becomes logic 0,
monitor operation stops after completion of any message already underway.
The HI-6138 is configured for SMT operation by writing bits 1-0 in the “SMT Configuration Register (0x0029)”.
When “SMT Configuration Register (0x0029)” bits 1-0 equal 01, the SMT operates with 16-bit Time Tag resolution and
each recorded MIL-STD-1553 message adds a four word entry in the Circular Command Buffer. This is summarized
in Table 8.
Table 8. Message Block in Circular Command Buffer for SMT Monitor using 16-bit Time Tag
Message
Word Word Name Word Function when using 16-bit time tag
Block
Data Block
Word 2 Starting address in the Data Buffer for the corresponding message data block.
Pointer
Message
Word Word Name Word Function when using 16-bit time tag
Block
When “SMT Configuration Register (0x0029)” bits 1-0 equal 11, the Simple Message Monitor operates with 48-bit
Time Tag resolution. Each MIL-STD-1553 message adds an 8-word entry in the Circular Command Buffer. This is
summarized in Table 9. The expanded message block accommodates two additional Time Tag words, a Message
Length word and a Response Time word not found when using 16-bit Time tag resolution.
Table 9. Message Block in Circular Command Buffer for SMT Monitor using 48-bit Time Tag
Message
Word Word Name Word Function when using 16-bit time tag
Block
Data Block
Word 6 Starting address in the Data Buffer for the corresponding message data block.
Pointer
The Message Length Word indicates the total number of bytes of the 1553 message
including all command words and status words. The range is 2 to 72 bytes,
Message corresponding to 1 to 36 16-bit words stored.
Word 5 Length Word Note: Since the Message Command Word is stored within the Message Block itself, the
(bytes) number of bytes to read from the Message Data Block should be reduced by 2 bytes.
That is, the number of bytes to read from the Message Data Block = Message Length
Word − 2.
The Response Time Word contains two 8-bit fields:
• Bits 15 ~ 8 contains GAP2
• Bits 7 ~ 0 contains GAP1
All GAP values are measured from mid-parity zero crossing of the preceding word, to
Response the mid-sync zero crossing of the Status Word (the gap “dead time” interval plus 2 µs).
Word 4 Time resolution is 100 ns per LSB, so the maximum indicated gap time for GAP1 or
Time Word
GAP2 is 25.5 µs.
For RT-RT messages, the GAP1 byte indicates transmit RT response time, and the
GAP2 byte indicates received RT response time.
For all other messages, the GAP1 byte indicates the only RT response time, and the
GAP2 byte reads 0x00.
Block Status
Word 3 Message Block Status Word, defined in Section 12.2.
Word
Message
Word Word Name Word Function when using 16-bit time tag
Block
Message
Word 2 Time Stamp Upper 16-bit word of message 48-bit time stamp.
Bits 47 ~ 32
Message
Word 1 Time Stamp Middle 16-bit word of message 48-bit time stamp.
Bits 31 ~ 16
The Circular Command Buffer address range is bounded by the values in Address List Words 0 and 2. The Circular
Data Buffer address range is bounded by the values in Address List Words 4 and 6. The “Next Address” Words 1 and
5 must be initialized by the host for the first data written after reset, usually to match the Word 0 and Word 4 values
respectively. Thereafter, these values are maintained by the device each time a new MIL-STD-1553 message is
recorded.
Two optional Buffer address interrupts are offered. When enabled, a Command or Data Buffer Address Interrupt
occurs whenever the matching RAM address in the Buffer is written. The Address List contains the address values for
these optional “buffer utilization” interrupts.
For SMT, the 8-word Monitor Address List is defined in Table 10.
Address
Word Name Description
List Word
Data Buffer
Word 6 Host initialized, defines SMT Data Buffer upper (rollover) address.
End Address
Must be host initialized, usually to match SMT Data Buffer Start Address.
Data
Word 5 Buffer Next Updated by device each time a new MIL-STD-1553 message is recorded.
Address This value advances through the address range in circular buffer fashion.
Data
Word 4 Buffer Start Host initialized, defines SMT Data Buffer lower address boundary.
Address
Command Host initialized with a RAM address value if this interrupt is enabled.
Buffer
Word 3 If enabled, an interrupt occurs when the matching RAM address is written.
Interrupt
Address Address must occur within the range bounded by Words 0 and 2.
Address
Word Name Description
List Word
Command
Word 2 Buffer End Host initialized, defines SMT Circular Command Buffer upper (rollover) address.
Address
Command
Host initialized, defines SMT Circular Command Buffer lower address boundary. Word 0
Word 0 Buffer Start
occurs at the Address List base address in register 0x002F.
Address
For each monitored MIL-STD-1553 command, the written Command Buffer entry is fixed at 4 or 8 words, depending
on selected Time Tag resolution. Depending on MIL-STD-1553 message type, the written Data Buffer entry varies
in length, ranging from zero words (for broadcast mode code commands without data) to 35 words (for an RT-to-RT
message with 32 data words). Simple Monitor Terminal Data Storage is summarized in Figure 7.
es d
es d
es d
es d
d
es d
BI rve
R rve
R rve
R rve
LE rve
R rve
ve
R rve
er
e
e
e
e
e
es
es
es
E
E
EO
TM
SE
IG
W
R
R
R
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MR Reset
RW Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
The device offers an Extended Status reporting option, enabled when bit 2 in “SMT Configuration Register (0x0029)”
is logic 1. When this option is enabled, addition status information is available in the SMT block Status Word.
C W2
R SA
E
C
M
M
G
C
B
SR
S
E
D
W
E
D
SO
R
EO
EO
TM
R
SE
SF
LE
IG
BI
W
G
D
R
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MR Reset
RW Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
SMT Block Status Word
with Extended Status Bits Enabled
End of Message.
15 EOM R/W 0 Bit 15 is set upon completion of a monitored message, whether or not
errors occurred. When EOM is set, SOM bit 14 is concurrently reset.
Start of Message.
14 SOM R/W 0 Bit 14 is set to logic 1 approximately 6 μs after message completion and
is reset to logic 0 at the end of message processing. If the monitor uses
message filtering, SOM is only set for monitored messages.
13 BID R/W 0 Bit 13 indicates the bus ID for the message. This bit is logic 0 for a
message occurring on Bus A. This bit is logic 1 for a message occurring
on Bus B.
Note: EO bit is not set when Bit 10 Illegal Gap Error is set. This ensures
that otherwise valid messages (e.g. RT responds faster than minimum
gap time, but there are no other errors) are stored in the monitor. The
gap error is flagged by assertion of bit 10 IGE below.
Response Timeout
When logic 1, bit 9 indicates a response timeout occurred. This bit is
9 TM R/W 0 set if an RT Status Word associated with this message failed to arrive
within the response time interval specified by bits 15-14 in the “SMT
Configuration Register (0x0029)”.
7 DSR R/W 0 Bit 7 is logic 1 to indicate that this message overran the monitor Data
Buffer end address, causing the storage pointer to roll over to the base
address.
3 WE R/W 0 Bit 3 is logic 1 indicate on invalid word error occurred. This includes
Manchester decoding errors in the sync pattern or word bits, or the
wrong number of bits in the word, or parity error.
After MR master reset, 100% of MIL-STD-1553 messages are monitored, since the entire table address range 0x0100
through 0x017F inclusive is 0x0000. The result is that every valid Command Word, received on an idle bus, marks the
start of a new MIL-STD-1553 message recorded by the monitor. The Message Filter Table is addressed using three
fields in the received Command Word: the 5-bit RT Address field, the T/R Transmit/Receive bit, and the MSB of the
5-bit Subaddress field. This is illustrated in Figure 8.
Filter Table
0 00 0 0 0 01 0 Address
Figure 8. Deriving the Monitor Filter Table Address from the Received Command Word
TT d
TS d
TX d
d
TC 0
R RIW
TS 1
TT 1
es 0
R rve
G rve
M ve
M rve
M rve
ve
M RR
M RR
48 MF
M O1
R O0
M TB
R TB
R T
R K
er
er
BT
e
e
e
TT
TT
es
es
es
es
C
M
0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 MR Reset
RW W RW R Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
For RT-RT commands, time out delay is measured per Figure 8 in the
RT Validation Test Plan, SAE AS4111. That is, from mid-parity of the
receive command to mid-sync of the first received data word. This adds
40µs for the embedded transmit command word and transmit-RT status
word within this interval.
Gap Check.
When this bit equals 1, the monitor evaluates inter-message gaps and
RT response times for a minimum preceding bus dead time of 2 µs.
This dead time corresponds to an inter-message gap of 4µs, measured
per MIL-STD-1553, from mid-parity zero crossing of the preceding
12 GCHK R/W 0
word, to mid-sync zero crossing of the following word. A minimum gap
time violation results in a Format Error in the Block Status Word for the
message.
When this bit equals 0 (recommended), the monitor does not check for
short inter-message gap times.
For options 00 and 10, the “Last Bit” precedes the word’s parity bit. For
option 01, the “First Bit” occurs 0.5µs after command sync. While “First
Word” generally denotes a command word, message recording can
begin with a data word when register bit 5 equals 1.
0 Reserved R 1 This bit is not used and always reads logic “1”.
13.2. SMT Bus Monitor Address List Start Address Register (0x002F)
MSB Register Value LSB
0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 MR Reset
RW Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
This 16-bit register is Read-Write and is fully maintained by the host. After MR pin master reset, this register is
initialized with 0x00B0, the default base address of the MT Address Table in device RAM. The host can overwrite the
default base address. This register is not affected by MT soft reset, when the MTRESET bit is asserted in the “Master
Status and Reset Register (0x0001)”. The Address List for SMT mode is summarized in Table 10 on page 100.
This 16-bit register is read-only and is updated by the MT upon completion of a monitored MIL-STD-1553 message.
This register is cleared after MR pin master reset or by MT soft reset, when the MTRESET bit is asserted in the “Master
Status and Reset Register (0x0001)”. This register contains the address for the first word to be stored in MT Command
Buffer, for the next MIL-STD-1553 message. After the first post-reset message is logged, this register mirrors the value
contained in SMT Address List word 1 (see Table 10 on page 100).
The MT logic only updates this “next message address” register after message completion. Therefore, after reset or
after the host has changed the “SMT Bus Monitor Address List Start Address Register (0x002F)”, this register does not
This 16-bit register is read-only and is updated by the MT upon completion of a monitored MIL-STD-1553 message.
This register is cleared after MR pin master reset or by MT soft reset, when the MTRESET bit is asserted in the “Master
Status and Reset Register (0x0001)”.
This register contains the RAM address for the first word stored in the Circular Command Buffer for the last completed
MIL-STD-1553 message.
When MT Configuration Register bits 1-0 equal 01, the Simple Message Monitor operates with 16-bit Time Tag
resolution and register 0x003A contains the full 16-bit Time Tag count.
When MT Configuration Register bits 1-0 equal 11, the Simple Message Monitor operates with 48-bit Time Tag
resolution and the full Time Tag Count requires the above register plus two additional registers:
13.6. SMT Bus Monitor Time Tag Count Mid Register (0x003B)
MSB Register Value LSB
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MR Reset
R Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
13.7. SMT Bus Monitor Time Tag Count High Register (0x003C)
MSB Register Value LSB
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MR Reset
R Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
When configured for 48-bit time base operation, count bits 47-17 reside in register 0x003C, count bits 31-16 reside in
register 0x003B while register 0x003A contains bits 15-0.
The host cannot directly write these registers but uses other methods to control or read Time Tag count. By writing bits
15-14 in the “Time Tag Counter Configuration Register (0x0039)”, the host can clear time tag count to zero, copy the
current time count to the SMT Time Tag Utility Register(s), or load the current value contained in the SMT Time Tag
Utility Register(s) into the SMT Time Tag counter(s). Finally, the SMT Time Tag Match Register(s) provide capability for
When “SMT Configuration Register (0x0029)” bits 1-0 equal 01, the Simple Message Monitor operates with 16-bit Time
Tag resolution and register 0x003D is the only Time Tag Utility register needed.
When “SMT Configuration Register (0x0029)” bits 1-0 equal 11, the Simple Message Monitor operates with 48-bit Time
Tag resolution and “utility” operations require the above register plus two additional registers:
13.9. SMT Bus Monitor Time Tag Utility Mid Register (0x003E)
MSB Register Value LSB
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MR Reset
RW Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
13.10. SMT Bus Monitor Time Tag Utility High Register (0x003F)
MSB Register Value LSB
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MR Reset
RW Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
These registers are read-write and are cleared after MR pin Master Reset. This utility register triplet is used for
simultaneously loading or reading a 16- or 48-bit value into or from the SMT Time Tag Counter. Please refer to the
description for bits 15-14 in the “Time Tag Counter Configuration Register (0x0039)”.
Loading a 16-bit or 48-bit value into the SMT Time Tag Count Register(s)
When loading or clearing Time Tag count, the 16-bit value in ”SMT Bus Monitor Time Tag Utility Register (0x003D)” is
copied into ”SMT Bus Monitor Time Tag Count Register (0x003A)”. If configured for 48-bit time stamp operation, count
bits 47-17 and count bits 31-16 are simultaneously copied from Time Tag Utility Registers 0x003F and 0x003E into
SMT Time Tag Count Registers 0x003C and 0x003B respectively.
Capturing a 16-bit or 48-bit value from the SMT Time Tag Count Register(s)
When capturing Time Tag count, the 16-bit value in ”SMT Bus Monitor Time Tag Count Register (0x003A)” is copied
into “SMT Bus Monitor Time Tag Utility Register (0x003D)”. If configured for 48-bit time stamp operation, count bits 47-
17 and count bits 31-16 in SMT Time Tag Count Registers 0x003C and 0x003B are simultaneously copied into Time
Tag Utility Registers 0x003F and 0x003E respectively.
When “SMT Configuration Register (0x0029)” bits 1-0 equal 01, the Simple Message Monitor operates with 16-bit Time
Tag resolution and register 0x0040 is the only Time Tag Match register needed.
When “SMT Configuration Register (0x0029)” bits 1-0 equal 11, the Simple Message Monitor operates with 48-bit Time
Tag resolution and time tag matching operations require the above register plus two additional registers:
13.12. SMT Bus Monitor Time Tag Match Mid Register (0x0041)
MSB Register Value LSB
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MR Reset
RW Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
13.13. SMT Bus Monitor Time Tag Match High Register (0x0042)
MSB Register Value LSB
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MR Reset
RW Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
These registers are read-write and are cleared after MR pin Master Reset. When the MTTTM bit 6 is logic 1 in the
“Hardware Interrupt Enable Register (0x000F)”, an interrupt occurs when the MT time tag count matches the value
stored in this register triplet. If the MT is configured for 16-bit time tag, Time Tag Match Register 0x0040 is compared
to Time Tag Count register 0x003A for match determination.
If configured for 48-bit time tag operation, count bits 47-17 and 31-16 in Time Tag Match Registers 0x0042 and 0x0041
are also compared to MT Time Tag Count Registers 0x003C and 0x003B for 48-bit match determination.
Please refer to the description for MTTTM bit 6 in the “Hardware Interrupt Registers” on page 41.
Each individual bit in all three registers is mapped to the same interrupt-causing event when the corresponding interrupt
condition is enabled. Numerous interrupt options are available for the SMT. At initialization, bits are set in the “SMT Bus
Monitor Interrupt Enable Register (0x0011)” to identify the interrupt-causing events for the SMT which are heeded by
the device. Most SMT applications only use a subset of available SMT interrupt options. Interrupt-causing events are
ignored when their corresponding bits are reset in the “SMT Bus Monitor Interrupt Enable Register (0x0011)” . Setting
an Interrupt Enable Register bit from 0 to 1 does not trigger interrupt recognition for events that occurred while the bit
was zero.
Whenever an SMT interrupt event occurs (and the corresponding bit is already set in the “SMT Bus Monitor Interrupt
Enable Register (0x0011)”), these actions occur:
• The Interrupt Log Buffer is updated.
• A bit corresponding to the interrupt type is set in the “SMT Bus Monitor Pending Interrupt Register (0x0008)”. The
type bit is logically-ORed with the preexisting register value, retaining bits for prior, unserviced SMT interrupts.
• MT Interrupt Pending (MTIP) bit 1 is set in the “Hardware Pending Interrupt Register (0x0006)”. The MTIP bit is
logically-ORed with the preexisting register value, retaining bits for unserviced hardware interrupts and the pre-
existing status of the BCIP and RTIP (Bus Controller and RT) interrupt pending bits.
• If the matching bit is already set in the “SMT Bus Monitor Interrupt Output Enable Register (0x0015)”, an IRQ
output occurs.
If the matching bit in the “SMT Bus Monitor Interrupt Output Enable Register (0x0015)” was not already set (i.e., low
priority polled interrupt), the host can poll the “SMT Bus Monitor Pending Interrupt Register (0x0008)” to detect the
occurrence of SMT interrupts, indicated by non-zero value. Reading the “SMT Bus Monitor Pending Interrupt Register
(0x0008)” automatically clears it to 0x0000.
A single IRQ host interrupt output signal is shared by all enabled interrupt conditions having bits set in the four Interrupt
Output Enable registers (hardware, BC, RT and SMT). Multiple interrupt-causing events can occur simultaneously, so
single or simultaneous interrupt events can assert the IRQ host interrupt output.
When the host receives an IRQ signal from the device, it identifies the event(s) that triggered the interrupt. Section
9.5 describes two methods for identifying the interrupt source(s). One scheme uses the three low order bits in the
“Hardware Pending Interrupt Register (0x0006)” to indicate when BC, RT and SMT interrupts occur. When MT Interrupt
Pending (MTIP) bit 1 is set in the “Hardware Pending Interrupt Register (0x0006)”, the “SMT Bus Monitor Pending
Interrupt Register (0x0008)” contains a nonzero value and may be read next to identify the specific SMT interrupt
event(s). Or, the host can directly interrogate the Interrupt Count & Log Address Register, followed by the Interrupt Log
Buffer. Section “9.5. Hardware Interrupt Behavior” has a detailed description.
T
T
TE R
es d
es ved
es d
d
es d
es d
es d
es d
es d
BU d
BU O
BU O
BU A
TM A
R rve
R rve
ve
R r ve
R r ve
R ve
R rve
R ve
C rve
R OM
M ER
D FM
M FM
D FR
C FR
er
er
er
er
e
e
e
e
e
es
es
R
R
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MR Reset
RW R Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
es d
es ved
es d
d
es d
es d
es d
es d
es d
BU d
TM A
BU O
BU O
BU A
R rve
R rve
ve
R r ve
R r ve
R ve
R rve
R ve
C rve
R OM
M ER
D FM
M FM
D FR
C FR
er
er
er
er
e
e
e
e
e
es
es
R
R
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MR Reset
R Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
es d
es ved
es d
d
es d
es d
es d
es d
es d
BU d
BU A
TM A
BU O
BU O
R rve
R rve
ve
R rve
R rve
R ve
R rve
R ve
C rve
R OM
M ER
D FM
M FM
D FR
C FR
er
er
er
er
e
e
e
e
e
es
es
R
R
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MR Reset
RW R Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
Three registers govern SMT interrupt behavior: the SMT Interrupt Enable Register, the SMT Pending Interrupt Register
and the SMT Interrupt Output Enable Register. When a bit is set in the SMT Interrupt Enable Register, the corresponding
SMT interrupt is enabled. When a bit is reset in this register, the corresponding interrupt event is unconditionally
disregarded. Setting a register bit from 0 to 1 does not trigger interrupt recognition for events that occurred while the
bit was zero.
When an enabled SMT interrupt event occurs, the corresponding bit is set in the SMT Pending Interrupt Register
and the Interrupt Log Buffer is updated. To simplify interrupt decoding, MTIP bit 1 in the “Hardware Pending Interrupt
Register (0x0006)” is also set whenever one or more bits are set in the SMT Pending Interrupt Register.
If the corresponding bit is already set in the SMT Interrupt Output Enable Register, the IRQ output pin is asserted at
Pending Interrupt Register assertion. The SMT Interrupt Output Enable Register establishes two priority levels: high
priority interrupts generate an IRQ output while low priority interrupts do not. Both priority levels update the SMT
Pending Interrupt Register and the Interrupt Log Buffer. The host detects low priority (masked) interrupts by polling
SMT Pending Interrupt Register.
The table below describes the bit descriptions shared by all three SMT interrupt registers.
These bits are not used in SMT monitor mode. They should be initialized logic 0 in the
15 − 9 Reserved “SMT Bus Monitor Interrupt Enable Register (0x0011)”. These bits will always read logic
0 in the “SMT Bus Monitor Pending Interrupt Register (0x0008)”.
2−0 Reserved Bits 2-0 cannot be written, and read back 000.
The following signal pins are provided for the Remote Terminal:
• RT Terminal Address 4 - 0 input pins
• RT Terminal Address Parity input pin
• RT (Address) Lock input pin
• RT Subsystem Fail input pins
• RT Mode Code 8 (Reset Remote Terminal) output pins
By writing the “Master Status and Reset Register (0x0001)” , the Remote Terminal can be independently reset using
“soft reset”. The RT can be configured to automatically assert soft reset when a valid “Reset Remote Terminal” mode
code command is received. In this configuration, the serial auto-initialization EEPROM should already be programmed
with the desired attributes for the terminal.
In this section of the data sheet, the Remote Terminal registers are described first, followed by the details for configuring
and operating the RT.
1 D
8O T
C P0
1 1
BC V
T W
C 2
M A
PT
C S
C P
C P
O V
SM CE
R HA
BC HB
D IN
U EN
M OB
M 6O
M 7O
M 7O
AU IT
AL DB
R O1
R O0
N IN
TR P
ST
TB
TI
N
N
1
X
TT
TT
TI
TI
R
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MR Reset
RW Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
00 15μs 57μs
01 20μs 62μs
15 − 14 RTTO1:0 R/W 0
10 80μs 122μs
11 138μs 180μs
For RT-RT commands, time out delay is measured per Figure 8 in the RT
Validation Test Plan, SAE AS4111. That is, from mid-parity of the receive
command to mid-sync of the first received data word. This interval includes 20µs
each for the embedded transmit command word and transmit-RT status word
within this span.
RT Bus A Inhibit.
If this bit is logic 1, Bus A is inhibited, as defined by the BSDTXO bit in “Master
Configuration Register 1 (0x0000)”. The BSDTXO bit offers two options: inhibit
13 RTINHA R/W 0 transmit and receive, or inhibit only transmit.
Note: If this bit is logic 0, Bus A is not inhibited here but its operation may
otherwise be globally inhibited by logic 1 at the TXINHA pin, or logic 1 at the
TXINHA bit in the “Master Status and Reset Register (0x0001)”.
RT Bus B Inhibit.
If this bit is logic 1, Bus B is inhibited, as defined by the BSDTXO bit in “Master
Configuration Register 1 (0x0000)”. The BSDTXO bit offers two options: inhibit
12 RTINHB R/W 0 transmit and receive, or inhibit only transmit.
Note: If this bit is logic 0, Bus B is not inhibited here but its operation may
otherwise be globally inhibited by logic 1 at the TXINHB pin, or logic 1 at the
TXINHB bit in the “Master Status and Reset Register (0x0001)”.
7 SMCP R/W 0 When this bit is asserted, the remote terminal applies “Simplified Mode
Command Processing” for all valid mode code commands, as described in
Section 18.5 on page 191.
In BIT Word
Register,
Inactive Bus Tx & Rx
Status Word TXSD & RXSD
MC4 (or MC5) Disabled (Enabled).
transmitted, bits updated.
unconditional (only Tx is disabled, if
unless (only TXSD bit
fulfillment the BSDTXO config. bit
broadcast updated, if the
= 1)
BSDTXO config.
bit = 1)
Host reset of “service request” status bit for mode code 16.
If this bit is logic 0, reception of a “transmit vector word” mode command (MC16)
1 MC16OPT R/W 0 causes automatic reset of the Service Request status bit. The Service Request
bit is reset in the Status Word Bits register before status word transmission
begins. If this bit is logic 1, the external host assumes responsibility for resetting
the Service Request bit in the Status Word Bits register.
es d
es d
es d
N d
d
R rve
R rve
R rve
M rve
ve
R PF
M D
M D
TD
R K
er
LO P
RT 4
A3
RT 2
A1
RT 0
e
e
e
e
R
C
A
A
A
A
es
es
C
C
C
RT
RT
RT
RT
At rising edge on the MR Master Reset input pin, register bits 15-9 capture the logic states (0 or 1) of the corresponding
input pins having like names (if applicable). After reset, register bits 15-9 can be overwritten only if LOCK bit 9 is logic
0. If the register LOCK bit is logic 1, these bits are read-only.
Bits 8-0 are read-only; these bits are cleared after MR pin master reset, but are unaffected by assertion of RTRESET
remote terminal software reset in the “Master Status and Reset Register (0x0001)”.
2 RTAPF R 0 This bit is set when RT address parity error occurs for the value
contained in register bits 15-10. It is low when correct odd parity applies
for bits 15-10.
This 16-bit register is read-only and is fully maintained by the device. This register is cleared after MR pin master reset,
but is unaffected by assertion of RTRESET remote terminal software reset in the “Master Status and Reset Register
(0x0001)”.
This register contains the last valid command word received by the Remote Terminal over either MIL-STD-1553 bus.
This register is updated 5µs after the ACTIVE output is asserted.
This 16-bit register is read-only and is fully maintained by the device. This register is cleared after MR pin master reset,
but is unaffected by assertion of RTRESET remote terminal software reset in the “Master Status and Reset Register
(0x0001)”.
This register contains the address for the descriptor table Control Word corresponding to the current command stored
in the Current Command Register, above. This register is updated 5 µs after the ACTIVE output is asserted for
recognition of a valid command for the RT. Also see description for the “Current Message Information Word” register.
0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 MR Reset
R RW R Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
This 16-bit register is Read-Write and contains the starting address for the Remote Terminal’s Descriptor Table. This
register is initialized with default values after MR pin master reset, or by assertion of RTRESET remote terminal
software reset in the “Master Status and Reset Register (0x0001)”. The post-reset register value is 0x0400. After
initialization, this register is fully maintained by the host. Bit 15 and bits 8:0 cannot be set and will always read logic 0.
es d
es ed
R d
es Q
es C
R rve
M rve
R rve
BC rve
R RE
R ND
D F
R erv
R erv
TF A
SS Y
YS
e
e
ST
BC
C
S
A
BU
SV
TX
IN
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MR Reset
RW R RW R RW RW RW Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
This 16-bit register is Read-Write. With the exception of bits 4 and 10, this register is maintained by the host. This reg-
ister is cleared after MR pin master reset, or by assertion of RTRESET remote terminal software reset in the “Master
Status and Reset Register (0x0001)”.
Register bits 14-10 and 7-4 are read-only. Most of these bits read back zero, except for bits 4 and 10, which are
maintained by the device. The remaining bits in the register are Read-Write and are maintained by the host. All bits are
active high. Register bits 10-0 are reflected in the outgoing MIL-STD-1553 RT status word. The RT status word reflects
the state of host-written register bits until overwritten by the host, unless the Transmit and Clear function (bit 15) is
enabled. When set, the Transmit and Clear bit resets itself and bits 9-5 and 3-0 after the next transmitted status word.
14 − 11 Reserved R 0 These bits are not used, cannot be written, always read back 0000.
Message Error status bit.
10 ME R 0
The device maintains this read-only bit, based on prior message results.
Instrumentation status bit.
9 INST R/W 0
The host maintains this read-write bit.
7−5 Reserved R 0 These bits are not used, cannot be written, always read back 000.
2 SSYSF R/W 0 The host maintains this read-write bit. This register bit is logically ORed
with the RTSSF input pin. If either SSYSF register bit or RTSSF pin is
asserted, the SSYSF Subsystem Flag status bit is set.
1 DBCA R/W 0 The host maintains this read-write bit. If the terminal is to acknowledge a
Dynamic Bus Control, Mode Code 0 command, the host should set this
bit to a “1”.
This 16-bit register is Read-Only and is fully maintained by the device. This register is cleared after MR pin master reset,
but is unaffected by assertion of RTRESET remote terminal software reset in the “Master Status and Reset Register
(0x0001)”. This register contains the data buffer address (assigned in the terminal’s Descriptor Table) corresponding
to the last decoded valid command’ for the Remote Terminal.
The value in this register points to the command’s Message Information Word (or MIW) in the Descriptor Table. The
value of the current command word itself is stored in the Current Command Register.
This 16-bit register is Read-Write and is fully maintained by the host. This register is cleared after MR pin master reset,
but is unaffected by assertion of RTRESET remote terminal software reset in the “Master Status and Reset Register
(0x0001)”.
The Bus A Select register is only used when the AUTOBSD bit in the “Remote Terminal Configuration Register (0x0017)”
equals 0. This AUTOBSD setting means the device automatically fulfills mode commands MC20 (decimal) “selected
transmitter shutdown” or MC21 “override selected transmitter shutdown”. “Transmitter shutdown” or “shutdown
override” can only occur for the inactive bus. If either mode command is received on Bus B, the inactive bus is Bus A.
The device compares the received mode data word to the contents of the Bus A Select register to determine whether
inactive Bus A is selected for “transmitter shutdown” or “transmitter shutdown override”. (Bus shutdown or shutdown
override can only occur for the inactive bus.) If the data word matches the value stored in the Bus A Select register
and AUTOBSD equals 0, the device automatically fulfills MC20 “transmitter shutdown” or MC21 “shutdown override”
without host assistance: If the mode command received was MC20 (bus shutdown), the Transmit Shutdown A bit in
the RT’s BIT (built-in test) Word Register is asserted. If mode command MC21 (override bus shutdown) was received,
the Transmit Shutdown A bit in the BIT Word Register is negated.
This 16-bit register is Read-Write and is fully maintained by the host. This register is cleared after MR pin master reset,
but is unaffected by assertion of RTRESET remote terminal software reset in the “Master Status and Reset Register
(0x0001)”.
The Bus B Select register is only used when the AUTOBSD bit in the “Remote Terminal Configuration Register (0x0017)”
equals 0. This AUTOBSD setting means the device automatically fulfills mode commands MC20 (decimal) “selected
transmitter shutdown” or MC21 “override selected transmitter shutdown”. “Transmitter shutdown” or “shutdown
override” can only occur for the inactive bus. If either mode command is received on Bus A, the inactive bus is Bus B.
The device compares the received mode data word to the contents of the Bus B Select register to determine whether
inactive Bus B is selected for “transmitter shutdown” or “transmitter shutdown override”. (Bus shutdown or shutdown
override can only occur for the inactive bus.) If the data word matches the value stored in the Bus B Select register
and AUTOBSD equals 0, the device automatically fulfills MC20 “transmitter shutdown” or MC21 “shutdown override”
without host assistance: If the mode command received was MC20 (bus shutdown), the Transmit Shutdown B bit in
the RT’s BIT (built-in test) Word Register is asserted. If mode command MC21 (override bus shutdown) was received,
the Transmit Shutdown B bit in the BIT Word Register is negated.
H
R SD
SD
TX SD
R D
N
RT F
BS
TF F
FA
FB
BI
T
XA
XB
User Assigned Bits
A
L
BM
EE
TX
LB
LB
P P 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MR Reset
R RW R Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
Bits 11-4 in this 16-bit register is read-write; the remaining bits are read-only. The ten assigned bits are written by the
device when predetermined events occur. The host may overwrite the device-written bits 5 and 4. After MR pin master
reset, bits 13-12, 5-4 and 0 are reset. Bits 15-14 will be set if the corresponding TXINHA or TXINHB input pins are
high. Bits 3-1 will be set if RT address parity error, or post-MR memory test failure or auto-initialization failure occurred.
These registers are not affected by assertion of RTRESET remote terminal software reset in the “Master Status and
Reset Register (0x0001)”.
If the ALTBITW option bit in the “Remote Terminal Configuration Register (0x0017)” is zero when a valid “transmit BIT
word” mode command (MC19) is received, the current value in this register is transmitted as the mode data word in
the terminal response. The value is also copied to the Remote Terminal’s assigned data buffer for MC19, after mode
command fulfillment.
13 RXASD These read-only bits are set when the corresponding bus receiver was
R 0 disabled concurrently with a bus transmitter by a “transmitter shutdown”
12 RXBSD mode command MC4 or MC20. Refer to the description for the BSDTXO
bit in the “Master Configuration Register 1 (0x0000)” and the description
for the AUTOBSD bit in the “Remote Terminal Configuration Register
(0x0017)” for further information.
3 BMTF R 0 This bit is set if error occurs during built-in self-test for device Random
Access Memory (RAM) (see Section “21.2.1. Self-Test Control Register
(0x0028)” on page 205).
This bit is set when the Terminal Flag status bit is disabled while fulfilling
an “inhibit terminal flag bit” mode code command (MC6). This bit is reset
0 TFBINH R 0
if terminal flag status bit disablement is cancelled later by an “override
inhibit terminal flag bit” mode code command (MC7).
15.11. Remote Terminal Alternate Built-In Test (BIT) Word Register (0x001F)
MSB Register Value LSB
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MR Reset
RW Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
This 16-bit register is Read-Write and is fully maintained by the host. This register is cleared after MR pin master reset.
It is not affected by assertion of RTRESET remote terminal software reset in the “Master Status and Reset Register
(0x0001)”. If the ALTBITW option bit in the “Remote Terminal Configuration Register (0x0017)” equals one when a
valid “transmit BIT word” mode command (MC19) is received, the current value in this register is transmitted as the
mode data word in the terminal response. The value is also copied to the assigned data buffer for MC19, after mode
command fulfillment.
This register is read-only and is cleared after MR pin Master Reset or assertion of RTRESET remote terminal software
reset in the “Master Status and Reset Register (0x0001)”. Reads to this register address return the current value of the
free running 16-bit Time Tag counter. Counter resolution is programmed by the TTCK2:0 bits in the “Time Tag Counter
The device automatically resets the Time-Tag Counter when a “synchronize” mode command without data (MC1) is
received. In addition, the host can reset, load or capture the Time Tag count at any time by asserting action bits in the
“Time Tag Counter Configuration Register (0x0039)”. Load and capture operations utilize the “Remote Terminal Time
Tag Utility Register (0x004A)”, described below.
The MC17OP1:0 bits in the “Remote Terminal Configuration Register (0x0017)” allows automatic loading of Time-Tag
count using the data word received with a “synchronize with data” mode command, MC17. If both of these bits equal
one, the data word received with a valid “synchronize” mode command (MC17) is unconditionally loaded into the
Time-Tag counter. For non-broadcast MC17 commands, the counter load occurs before status word transmission. If
both MC17OP1 and MC17OP0 bits equal 0, the external host assumes responsibility for actions needed to perform
“synchronize” duties upon reception of the valid MC17 “synchronize” command, but status transmission occurs
automatically.
The binary 01 and 10 combinations of these bits support certain extended subaddressing schemes. If the MC17OP1:0
bits equal 01, the received data word is automatically loaded into the Time-Tag counter if the low order bit of the
received data word (bit 0) equals 0. If the MC17OP1:0 bits equal 10, the received data word is automatically loaded
into the Time-Tag counter if the low order bit of the received data word (bit 0) equals 1. For non-broadcast MC17
commands, the counter is loaded before status word transmission.
This 16-bit register is Read-Write and is fully maintained by the host. This register is cleared after MR pin master reset,
but is not affected by assertion of RTRESET remote terminal software reset in the “Master Status and Reset Register
(0x0001)”. This register has two functions associated with the two free-running Remote Terminal Time Tag Counters:
Each individual bit in all three registers is mapped to the same interrupt-causing event when the corresponding interrupt
condition is enabled. Numerous interrupt options are available. At initialization, bits are set in the “Remote Terminal
(RT) Interrupt Enable Register (0x0012)” to identify the interrupt-causing events which are heeded by the device.
Most RT applications only use a subset of available interrupt options. Interrupt-causing events are ignored when their
corresponding bits are reset in the “Remote Terminal (RT) Interrupt Enable Register (0x0012)”. Setting an Interrupt
Enable register bit from 0 to 1 does not trigger interrupt recognition for events that occurred while the bit was zero.
Whenever a RT interrupt event occurs (and the corresponding bit is already set in the “Remote Terminal (RT) Interrupt
Enable Register (0x0012)”), these actions occur:
• The Interrupt Log Buffer is updated.
• A bit corresponding to the interrupt type is set in the “Remote Terminal (RT) Pending Interrupt Register (0x0009)”.
The type bit is logically-ORed with the preexisting register value, retaining bits for prior, unserviced RT interrupts.
• RT Interrupt Pending (RTIP) bit 1 is set in the “Hardware Pending Interrupt Register (0x0006)”. The RTIP bit
is logically-ORed with the preexisting register value, retaining bits for unserviced hardware interrupts and the
preexisting status of the BCIP and MTIP (Bus Controller and MT) interrupt pending bits.
• If the matching bit is already set in the “Remote Terminal (RT) Interrupt Output Enable Register (0x0016)”, an
IRQ output occurs.
If the matching bit in the “Remote Terminal (RT) Interrupt Output Enable Register (0x0016)” was not already set (i.e.,
low priority polled interrupt), the host can poll the “Remote Terminal (RT) Pending Interrupt Register (0x0009)” to
detect the occurrence of interrupts, indicated by non-zero value. Reading the “Remote Terminal (RT) Pending Interrupt
Register (0x0009)” automatically clears it to 0x0000.
A single IRQ host interrupt output signal is shared by all enabled interrupt conditions having bits set in the four Interrupt
Output Enable registers (hardware, BC, RT and SMT). Multiple interrupt-causing events can occur simultaneously, so
single or simultaneous interrupt events can assert the IRQ host interrupt output.
When the host receives an IRQ signal from the device, it identifies the event(s) that triggered the interrupt. Section
9.5 describes two methods for identifying the interrupt source(s). One scheme uses the three low order bits in the
“Hardware Pending Interrupt Register (0x0006)” to indicate when BC, RT and SMT interrupts occur. When RT Interrupt
Pending (RTIP) bit 1 is set in the “Hardware Pending Interrupt Register (0x0006)”, the “Remote Terminal (RT) Pending
Interrupt Register (0x0009)” contains a nonzero value and may be read next to identify the specific RT interrupt
event(s). Or, the host can directly interrogate the Interrupt Count & Log Address Register, followed by the Interrupt Log
Buffer. Section 9.5 has a detailed description.
es d
es d
es d
es d
es d
es d
es d
TM d
es d
d
R rve
R rve
R rve
R rve
R rve
R ve
R rve
R rve
R rve
ve
IX C8
IB D
IL Z
IW R
er
er
EQ
M
e
e
e
e
e
e
ER
A
es
es
R
C
M
R
R
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MR Reset
RW R Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
es d
es d
es d
es d
es d
es d
TM d
es d
d
R rve
R rve
R rve
R rve
R rve
R ve
R rve
R rve
R rve
ve
IX C8
IB D
IL Z
IW R
er
er
EQ
M
e
e
e
e
e
e
ER
A
es
es
R
C
M
R
R
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MR Reset
R Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
es d
es d
es d
es d
es d
es d
TM d
es d
d
R rve
R rve
R rve
R rve
R rve
R ve
R rve
R rve
R rve
ve
IX C8
IB D
IL Z
IW R
er
er
EQ
M
e
e
e
e
e
e
ER
A
es
es
R
C
M
R
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MR Reset
RW R Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
Three registers govern RT interrupt behavior: the RT Interrupt Enable Register, the RT Pending Interrupt Register and
the RT Interrupt Output Enable Register. When a bit is set in the RT Interrupt Enable Register, the corresponding RT
interrupt is enabled. When a bit is reset in this register, the corresponding interrupt event is unconditionally disregarded.
Setting a register bit from 0 to 1 does not trigger interrupt recognition for events that occurred while the bit was zero.
When an enabled RT interrupt event occurs, the corresponding bit is set in the RT Pending Interrupt Register and the
Interrupt Log Buffer is updated. To simplify interrupt decoding, RTIP bit 2 in the “Hardware Pending Interrupt Register
(0x0006)” is also set whenever a message sets at least one bit in the RT Pending Interrupt Register.
If the corresponding bit is set in the RT Interrupt Output Enable Register, the IRQ output is asserted at message
completion. The RT Interrupt Output Enable Register establishes two priority levels: high priority interrupts generate
an IRQ output while low priority interrupts do not. Both priority levels update the Pending Interrupt Register and
Interrupt Log Buffer. The host can detect low priority (masked) interrupts by polling Pending Interrupt registers. When
the IRQOFF bit 0 is set in “Extended Configuration Register (0x004D)” on page 44, IRQ pin assertion for enabled
RT interrupt-causing events is suppressed when the command is illegal (Message Error response) or results in RT
busy status.
When one or more bits are set in the RT Interrupt Enable Register, occurrence of an enabled RT interrupt-causing
event triggers an “Interrupt Log Buffer” update. The Interrupt Identification Word (written to the “Interrupt Log Buffer”
on page 37 for RT events) mirrors the RT Pending Interrupt register. NOTE: While bit 9 is reserved (always 0) in
the RT Pending Interrupt register, bit 9 in the written log buffer Interrupt Identification Word (IIW) has a defined function
(when INTBUSY bit 2 in “Extended Configuration Register (0x004D)” on page 44 is set, RT IIW bit 9 serves as
WASBUSY status flag, asserted if the RT was Busy when the RT interrupt event occurred. RT Busy status is not an
interrupt-causing event.).
4 MERR The Remote Terminal set its Message Error status flag while processing a valid MIL-
STD-1553 message. Message errors are caused by Manchester encoding problems or
protocol errors.
3 IWA The Remote Terminal processed a valid MIL-STD-1553 command having the IWA
interrupt enabled in its RT Descriptor Table entry. IWA interrupts are used to notify the
host each time certain command words are encountered.
2−0 Reserved Bits 2-0 cannot be written, and read back 000.
When the command word’s 5-bit SA (subaddress) field is in the range of 1 to 30 (0x01 to 0x1E) the command is con-
sidered a “subaddress command”. The terminal will either receive or transmit data words, and “direction” is specified
by the command’s T/R bit. The number of data words transacted is specified in the 5-bit word count field, ranging from
1 to 32 words. Thirty-two data words is represented when the word count field equals 0x00.
When the command’s 5-bit subaddress field equals 0 or 31 (0x1F) a “mode code” command is indicated; the low order
five bits no longer specify a word count, instead they convey a mode code value. This data sheet refers to mode code
commands by the mode code number. For example, a mode command with 5-bit mode code field of 0x10 is called
MC16, and the full range of mode code values is MC0 through MC31 (decimal).
Mode codes MC16 through MC31 (0x10 through 0x1F) have a single associated data word. When the command T/R
bit equals 0, the data word is contiguous with the command word and received by the RT. When the command’s T/R
bit equals 1, the data word is transmitted by the RT, following the terminal’s transmitted status word.
Mode codes MC0 through MC15 (0x0F) do not have associated data words. For these 16 commands, the command
T/R bit does not specify “direction”. These commands must be transmitted with T/R bit equal to 1. If the T/R bit is 0,
the mode command is “undefined”.
The UMCINV bit in the “Remote Terminal Configuration Register (0x0017)” determines how these undefined mode
If illegal command detection is not used, all Illegalization Table entries should be logic 0, including the 22 entries for
these undefined commands. (The Illegalization Table is fully described in Section 16.2 on page 140. After MR reset,
all entries equal logic 0.) The terminal responds “in form”, transmitting clear status (and a single mode data word if the
command is MC17, MC20 or MC21 with T/R bit = 1). Terminal status is updated.
If illegal command detection applies, the Illegalization Table entries for these 22 undefined commands should be
initialized to logic 1. In this case, the terminal will respond with status word only, with Message Error bit set. No mode
data word is transmitted. Terminal status is updated.
Treatment of these reserved mode commands depends on their respective Illegalization Table entries. As described
above for undefined mode commands, response depends on whether or not illegal command detection applies.
Any mode commands not implemented in the terminal should be treated the same as reserved mode commands.
The important point is that “illegal command detection” should be universally applied (or not applied) when setting up
a Remote Terminal application. Here are the two options:
Not using Illegal command detection. The Illegalization Table is left in its default state (all locations equal to MR
post-reset 0x0000). The terminal responds “in form” to all valid commands, whether legal or illegal.
Using illegal command detection. The Illegalization Table is initialized by the host to implement “illegal command
detection”. The host sets bits for all illegal commands. This generally includes the reserved and unimplemented mode
commands, unimplemented subaddresses (or specific word counts, T/R bit states, and/or broadcast vs. non-broadcast
status within subaddresses). Treatment for the undefined mode commands depends on UMCINV bit.
The host defines terminal response for all individual commands by initializing the Descriptor Table, fully described later.
At this point, a few comments about the Descriptor Table are appropriate.
The command SA (subaddress) field has a range of 0 to 31 (0x1F). When SA is in the range 1 to 30 (0x1E), the com-
mand is a transmit or receive “subaddress command”. The number of data words transmitted or received is expressed
in the low order 5 bits. When SA equals 0 or 31 (0x1F) the command is a mode command and the mode code value
is expressed in the low order 5 bits.
For each subaddress, separate table “descriptor blocks” for transmit and receive commands permit different data buff-
ering to be applied. The host initializes the table so each transmit-subaddress and each receive-subaddress uses one
of four methods for storing message data. During table initialization, memory is allocated in shared RAM for storing
message data according to the application requirements. Each transmit-subaddress and receive-subaddress has one
or more data pointers (depending on buffer method) addressing its reserved data buffer(s).
Each mode command also has its own table “descriptor block”. Mode commands have either one data word or no as-
sociated data words. Descriptor words used as data pointers by “subaddress commands” are instead used for direct
storage of transacted mode data words. Mode commands that transmit or receive mode data words have a dedicated
storage address range in shared RAM, eliminating the need for descriptor table data pointers.
Each mode command with mode data word has its own fixed address for data storage. This includes reserved mode
codes with data word. Thus the device can respond consistently for all mode commands; transmitted data values for
16.1.1. RT to RT Commands.
The MIL-STD-1553 standard allows for data word transmission from a specified transmitting terminal to a different
receiving terminal. When broadcast commands are allowed, data transmission can be addressed to the broadcast
terminal address, RT31. If broadcast is allowed, the host should initialize the BCSTINV (broadcast invalid) bit in the
“Remote Terminal Configuration Register (0x0017)”.
All RT to RT commands are characterized by a pair of contiguous command words: Command Word 1 is a receive
command addressed to the intended receiving terminal, then Command Word 2 is a transmit command addressed to
a single transmitting terminal. Command Word 2 cannot be broadcast address RT31. The device automatically detects
and handles RT to RT commands, except when either command word contains a subaddress field equal to 0x0 or
0x1F. Either subaddress value indicates a mode code command; the device treats RT to RT commands with mode
code as invalid. If either RT-RT command word is addressed to the terminal but contains subaddress 0x0 or 0x1F, the
command is not recognized; there is no RT command response, and no status updating for the benefit of following
“transmit status” or “transmit last command” mode commands.
When either RT-RT command word (with subaddress field not equal to 0x0 or 0x1F) is addressed to the terminal, but
the other command word contains subaddress 0x0 or 0x1F, the RT-RT command is not recognized as valid. There
is no RT command response, and no status updating for the benefit of following “transmit status” or “transmit last
command” mode commands.
An RT-RT command pair where Command Word 1 is addressed to the terminal and Command Word 2 is addressed
to a different terminal is considered an “RT-RT receive” command. When the message is transacted, the device sets
the RTRT bit in the Receive Subaddress Message Information Word in the subaddress data buffer.
An RT-RT command pair where Command Word 2 is solely addressed to the terminal (not RT31) is considered an
“RT-RT transmit” command. The Message Information Word does not distinguish the RT to RT transmit message from
an ordinary RT to BC transmit command.
Illegal command detection is an optional process. When illegal command detection is not used, the terminal “responds
in form” to all valid commands: it sends Clear Status and transacts the number of data words defined in the received
command. When illegal command detection is not used, the bus controller cannot tell whether the command is legal
or illegal, from the terminal’s transmitted response.
If illegal command detection is used, the terminal responds differently when an illegal command is detected. The termi-
nal responds to illegal commands with “message error” status, transmitting only status word. Data word transmission
is suppressed if the command type inherently includes transmitted data words. The terminal responds to each legal
command with clear status and transacts the number of data words defined in the type of command received.
For consistency, apply illegal command detection to all illegal and unimplemented commands, and to all reserved or
undefined mode code commands, or “respond in form” to all of these commands (illegal command detection disabled)
by leaving the Illegalization Table in the all-cleared default state after MR master reset
The device uses a 256-word “Illegalization Table” in shared RAM to distinguish between legal and illegal commands.
After the (MR) master reset input is negated, the device performs internal self test including a shared RAM test which
leaves all memory locations fully reset. Once self test is complete, the READY output goes high to indicate readiness
for host initialization. At this point, all entries in the Illegalization Table read logic 0, so by default, illegal command
To apply illegal command detection, the host (or auto-initialization) writes the Illegalization Table to set bits for all illegal
command combinations. This typically includes any unimplemented subaddresses and/or word counts, undefined
mode commands, reserved mode commands and any mode commands not implemented in the terminal design. Host
initialization of the table can be replaced by auto-initialization.
Once RTSTEX is set in the “Master Configuration Register 1 (0x0000)”, terminal execution begins. Each time a valid
command is received, a 1-bit entry (indexed using command word data bits) is fetched from the Illegalization Table:
If fetched Illegalization Table bit equals logic 0, the command is “legal”; the terminal responds “in form”, transmit-
ting clear status and transacting the number of data words defined for the message type. Terminal status is updated.
If fetched Illegalization Table bit equals logic 1, the command is “illegal”; the terminal responds with status word
only, with Message Error bit set. No data words are transmitted. Terminal status is updated.
When illegal command detection is not applied, all table entries should read logic 0; the terminal responds “in form” to
all valid commands.
The illegalization scheme allows any subset of command T/R bit, broadcast vs. non-broadcast status, subaddress
and word count (or mode code number), for a total of 4,096 legal/illegal command combinations. Commands may be
illegalized down to the word count level. For example, 10-word receive commands to a given subaddress may be legal,
while 9-word receive commands to the same subaddress are illegal.
Broadcast receive commands are illegalized separately from non-broadcast receive commands. Transmit and receive
commands for the same subaddress are illegalized separately. For mode commands, any combination of mode code
number, T/R bit and broadcast/non-broadcast status can be legal or illegal.
The Illegalization Table is located in shared RAM within the fixed address range of 0x0200 to 0x02FF. See Figure 10.
The table is comprised of 256 16-bit words. To cover the full range of 1 to 32 data words, each subaddress uses a
pair of illegalization registers. The lower register (even memory address) covers word counts 0 to 15, using one bit
per word count. As in command encoding, “0” denotes 32 data words. Bit 0 corresponds to 32 data words, bit 1 cor-
responds to 1 data word and bit 15 corresponds to 15 data words. The upper register (odd memory address) similarly
covers word counts 16 to 31, using one bit per word count. Bit 0 corresponds to 16 data words, while bit 15 corre-
sponds to 31 data words.
When a command’s subaddress field equals 0 or 31 (0x1F), the command is a mode command. Table entries for mode
commands use bits to represent mode code numbers, not word counts. The lower register (even memory address)
covers mode codes 0 to 15, using one bit per mode code. Bit 0 corresponds to mode code 0, bit 15 corresponds to
mode code 15. The upper register (odd memory address) similarly covers mode codes 16 to 31, using one bit per
mode code. Bit 0 corresponds to mode code 16, bit 15 corresponds to mode code 31. There is no functional difference
between SA0 mode commands and SA31 mode commands. Since either subaddress indicates a mode command, the
subaddress 0 table words should match the subaddress 31 table words in each quadrant.
Table entries from 0x0242 to 0x027D do not have to be programmed. These correspond to broadcast transmit
subaddress commands (undefined by MIL-STD-1553B) and are always invalid. There is no terminal response.
Addressing for the Illegalization Table is derived from the command word T/R bit, subaddress field, MSB of the Word
Count (Mode Code) field and the command’s broadcast vs. non-broadcast status as shown below in Figure 10.
P
“0” if
TA4:0 = 11111
else “1”
Table
0 0 0 0 0 0 1 0 Address
SA1
SA2
SA4
WC4
SA0
SA3
T/R
Figure 10. Deriving the Illegalization Table Address From the Received Command Word
Figure 12 on page 144 shows individual bit locations in the Illegalization Table for broadcast and non-broadcast vari-
ants of all mode commands defined by MIL-STD-1553B. Locations are also identified for reserved mode codes and
undefined mode code commands.
The following examples illustrate how the Illegalization Table is initialized to distinguish between legal and illegal com-
mands when “illegal command detection” is being used. Remember: If the terminal does not use illegal command
detection, the table is left in its post-MR reset state, with all table locations reset to 0x0000. In this case, all command
responses are “in form”.
For “subaddress commands” (ordinary receive commands or transmit commands) individual table bits correspond
to word counts specified in the received command word. If a bit is 0, the corresponding word count is legal. If a bit is
1, the corresponding word count is illegal.
For example, transmit commands to RT subaddress 1 are controlled by the words at 0x02C2 and 0x02C3. In Figure
11, these words are located in the “RT Address Transmit” block. The word stored at 0x02C3 controls subaddress 1
transmit commands having word counts 16 to 31. The word stored at 0x02C2 controls subaddress 1 transmit com-
mands having word counts 1 to 15 or 32. (Reminder: In MIL-STD-1553B, zero corresponds to 32 words.)
Word at 0x02C3 (Tx Subaddr 1) 31 to 16 words
Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Words 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
If the word stored at 0x02C3 = 0xFFFF and the word stored at 0x02C2 = 0xFF0F, then commands with 4, 5, 6, or 7
data words are the only legal transmit commands for subaddress 1 and all other word counts are illegal. Receive com-
mands and broadcast receive commands for Subaddresses1 through 30 are encoded similarly.
For “mode code commands” (characterized by command word subaddress field equal to 00000 or 11111 binary)
individual table bits correspond to individual mode code values. Here “transmit” and “receive” simply indicate the state
of the command word T/R bit. (For mode codes 0-15, the T/R bit does not indicate data direction since data is not
transacted when fulfilling these commands).
0x027F Command
Tx Subaddress 31 Block (mode codes) Broadcast Tx Mode Codes 31 - 16 0x027F
Sync
Tx Subaddress 30 Block Broadcast Tx Mode Codes 15 - 0 0x027E
Consider an example in which all reserved and all undefined mode commands are illegal. If all RT defined transmit
mode commands are legal except MC0 (”dynamic bus control”) the eight table entries for transmit mode commands
would be:
0x02FF and 0x02C1 = 1111 1111 1111 0010 = 0xFFF2 Tx MC with data
0x02FE and 0x02C0 = 1111 1110 0000 0001 = 0xFE01 Tx MC without data
0x027F and 0x0241 = 1111 1111 1111 1111 = 0xFFFF Br.Tx MC with data (all illegal)
0x027E and 0x0240 = 1111 1110 0000 0101 = 0xFE05 Br.Tx MC without data
The receive mode command words are encoded similarly. Continuing the same example where all reserved and all
undefined mode commands are illegal: If all RT defined receive mode commands are legal, the eight table entries for
receive mode commands would be:
0x02BF and 0x0281 = 1111 1111 1100 1101 = 0xFFCD Rx MC with data
0x02BE and 0x0280 = 1111 1111 1111 1111 = 0xFFFF Rx MC without data (all illegal)
0x023F and 0x0201 = 1111 1111 1100 1101 = 0xFFCD Br.Rx MC with data
0x023E and 0x0200 = 1111 1111 1111 1111 = 0xFFFF Br.Rx MC without data (all illegal)
Bit No. 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0x02FF Transmit MC # 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
and Tx MC31 - MC16 Mode Commands
0x02C1 With Data Status R R R R R R R R R R U U D D U D
0x02FE Transmit MC # 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
and Tx MC15 - MC0 Mode Commands
0x02C0 Without Data Status R R R R R R R D D D D D D D D D
0x02BF Receive MC # 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
and Rx MC31 - MC16 Mode Commands
0x0281 With Data Status R R R R R R R R R R D D U U D U
0x02BE Receive MC # 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
and Rx MC15 - MC0 Mode Commands
0x0280 Without Data Status U U U U U U U U U U U U U U U U
0x027F Broadcast Transmit
and Br.Tx MC31 - MC16 Mode Commands MC # 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
0x0241 With Data Status NB NB NB NB NB NB NB NB NB NB U U NB NB U NB
0x027E Broadcast Transmit
and Br.Tx MC15 - MC0 Mode Commands MC # 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0x0240 Without Data Status R R R R R R R D D D D D D NB D NB
0x023F Broadcast Receive
and Br.Rx MC31 - MC16 Mode Commands MC # 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
0x0201 With Data Status R R R R R R R R R R D D U U D U
0x023E Broadcast Receive
and Br.Rx MC15 - MC0 Mode Commands MC # 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0x0200 Without Data Status U U U U U U U U U U U U U U U U
RAM
Address
LEGEND
D = Defined Mode Command R = Reserved Mode Code
U = Undefined Mode Command NB = Broadcast Not Allowed
Figure 12. Summary of RT Illegalization Table Addresses for Mode Code Commands
When enabled, the terminal stores received data words in the 32-word buffer during message processing. Upon error-
free message completion, all buffered words are written in a burst to the data buffer memory assigned to the specific
subaddress in the RT Descriptor Table.
When the TRXDB bit in the “Remote Terminal Configuration Register (0x0017)” is negated, the temporary receive
data buffer is disabled. At 20us intervals, the terminal writes received data words to assigned subaddress data buffer
memory as each word is received. If message error occurs during data reception, data integrity is lost; valid data from
the prior receive message may be partially overwritten by data from a message ending in error. MIL-STD-1553 states
that all received data from messages ending in error should be disregarded.
In a typical application, the temporary buffer is not directly accessed by the host, although there is no restriction pre-
venting host data access. The host should never write data into the temporary buffer space.
Shown in Figure 13, the table consists of 128 consecutive “descriptor blocks”, each comprised of four 16-bit words.
The table is organized into four quadrants.
The Receive Subaddress and Transmit Subaddress quadrants define response for commands having a subaddress
field ranging from 1 to 30 (0x1E). These are simple N-data word receive or transmit commands, where N can range
from 1 to 32 words. When the command T/R bit equals 0, the receive command quadrant applies. When the T/R bit
equals 1, the transmit command quadrant applies.
Both subaddress quadrants are padded at top and bottom with unused Descriptor Blocks for subaddresses 0 and 31
(0x1F). The word space reserved for SA0 and SA31 aligns the table addressing, but values stored in these eight loca-
tions is not used. Command subaddresses 0 and 31 indicate mode commands. The response for commands contain-
ing either SA value is defined in the two mode command table quadrants. The Receive Mode Command quadrant
applies when the command word T/R bit equals 0, while the Transmit Mode Command quadrants applies when T/R
equals 1.
The term “Transmit Mode Command” is misleading. All defined mode commands with mode code less than 0x0F
haveT/R bit equal to 1, yet none of these mode commands transmits a data word. They transmit only the terminal sta-
tus word, just like receive commands. However, the RT responds to transmit mode commands with mode code 0x10
to 0x1F by transmitting a mode data word. Just three such transmit mode commands are defined.
Within the Receive and Transmit Mode Command quadrants, block addressing is based on the low order 5 bits in the
command word, containing the mode code value. This is fundamentally different from the Subaddress quadrants in
which block addressing is based on the 5-bit subaddress field. Figure 14 shows how to derive Control Word address
from the received Command Word. The Control Word address for the last valid command can also be found in the
“Remote Terminal Current Control Word Address Register (0x0003)”.
All 128 4-word Descriptor Blocks start with a Control Word. There are four Control Word variants based on command
type: receive vs. transmit and mode vs. non-mode commands. All descriptor Control Words are initialized by the host
(or auto-initialization) to define basic command response. Each Control Word specifies the data buffer method and
Each subaddress has both a Receive Subaddress block and a Transmit Subaddress block. Receive and transmit
commands to the same subaddress can be programmed to respond differently.
The function of the three remaining descriptor words (in each 4-word block) depends on which of the 4 data buffer
methods are specified in the Control Word.
Indexed (or Single Buffer) Method where a predetermined number of messages is transacted using a single data
buffer in shared RAM. Several host interrupt options are offered, including an interrupt generated when all N messages
are successfully completed.
Double (or Ping-Pong) Buffer Method where successive messages alternate between two data buffers in shared
RAM. Several host interrupt options are offered.
Circular Buffer Mode 1 where buffer boundaries determine when the bulk transfer is complete and message informa-
tion and time-tag words are stored with message data in a common buffer. Several host interrupt options are offered,
including an interrupt generated when the allocated data buffer is full.
Circular Buffer Mode 2 where the number of messages transacted defines bulk transfer progress, and message data
words are stored contiguously in one buffer while message information and time-tag words are stored in a separate
buffer. Several host interrupt options are offered, including an interrupt generated when all N messages are success-
fully completed.
The 4-word Descriptor Table entry for each command (its descriptor block) begins with a Control Word. There are four
types of descriptor Control Word:
The descriptor Control Word is initialized by the host to select data buffer method and interrupt options. After a
command is processed by the terminal, the device updates the command’s descriptor Control Word. Updates will
differ based on the chosen data buffer method. Reading the descriptor table can differ from other RAM accesses. See
Sections 22.6 and 22.8.
Subaddress 1 Block
NOTE:
Subaddress 1 Block SA0 and SA31 indicate mode codes, so
are not valid Receive or Transmit Subaddresses.
0x0400 Subaddress 0 Block See Note.
Command RT Addr T/R Subaddress Word Count Command RT Addr T/R Subaddress Mode Code
Sync TA4:0 Bit SA4:0 WC4:0 Sync TA4:0 Bit SA4:0 MC4:0
P P
0 0 0 0 0 1 00 0 0 0 0 0 0 0 1 01 0 0
SA1
MC1
MC2
SA2
SA4
SA0
MC4
MC0
SA3
MC3
T/R
T/R
Descriptor Table Address Descriptor Table Address
for Subaddress Commands for Mode Code Commands
SA4:0 equals 00001 to 11110 SA4:0 equals 00000 or 11111
Figure 14. Deriving a Descriptor Table Control Word Address From Command Word
(assumes table base address = 0x0400)
IR 1
IR N3
IR 2
O 0
C EN
N
C ZN
C 2ZN
ST 2ZN
PP PP
PP ST
IW Z
1E
2Z
U
N
D C
C N
EQ
2
KB
O
PB
E
A
IR
IR
IR
R
BC
IB
M
D
C
C
D
H H H H D1 D D D H H H H H H H H
MSB 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 LSB D1 Bit set by device, reset by host read cycle
NOTE: ‘Reset’ refers to bit value following Master Reset (MR). The bit value following software reset is
unchanged unless specifically indicated by an “SR” value.
Make Busy.
The host asserts the MKBUSY bit to respond with Busy status for commands
to this receive subaddress. This bit is an alternative to globally applying Busy
12 MKBUSY R/W 0 status for all valid commands, enabled from the “Remote Terminal MIL-
STD-1553 Status Word Bits Register (0x001A)”. See that register description
for additional information. When Busy is asserted, received data words are not
stored and the DPB bit does not toggle after message completion.
0 Internal device logic asserts the DBAC bit upon completion of message
11 DBAC R SR = 0 processing. The host may poll this bit to detect subaddress activity, instead
of using host interrupts. This bit is reset to logic 0 by MR master reset, SRST
software reset or a read cycle to this memory address.
Data Pointer B.
This status bit is maintained by the device and only applies in ping-pong
buffer mode. This bit indicates the buffer to be used for the next occurring
receive command to this subaddress. When the DPB bit is logic 0, the next
message will use Data Pointer A; when DPB is logic 1, the next message uses
Data Pointer B. In ping-pong buffer mode, the bit is inverted after each error-
0 free message completion. To also ensure the DPB bit is not altered after
10 DPB R SR = 0 illegal commands or messages ending with Busy status, the DPBTOFF
bit should be set in the “Extended Configuration Register (0x004D)”
on page 44. This ensures unsuccessful messages are not stored in the
data buffer and are overwritten by subsequent successful messages. (see
also “Ping-Pong Enable / Disable Handshake” on page 171). The DBP bit is
reset to logic 0 by MR master reset or SRST software reset; therefore the first
message received after either reset will use Buffer A. This bit is “don’t care” for
indexed single-buffer mode or either circular buffer mode.
Broadcast Command.
Device logic sets this bit when a valid broadcast receive command is received
at this subaddress. If IBR bit 13 and “Remote Terminal (RT) Interrupt Enable
9 BCAST R 0 Register (0x0012)” IBR bit are both set, the output pin INT is asserted. This bit
SR = 0 has no function if the BCSTINV bit is asserted in the “Remote Terminal Con-
figuration Register (0x0017)”; in this case commands to RT address 31 are not
recognized as valid by the device. This bit is reset to logic 0 by MR master
reset or SRST software reset.
7-4 CIR2ZN R/W 0 Used only in circular buffer mode 2, this 4-bit field is initialized with the number
of trailing zeros in the initialized MIBA address. This is explained in Section
17.6, which fully describes circular buffer mode 2.
0 0 1 Circular Mode 1
Indexed Single
0 0 0
Buffer
IR 1
IR 3
IR 2
O 0
C EN
N
C ZN
C ZN
C 2ZN
ST 2ZN
PP PP
PP ST
IW Z
1E
U
C N
D C
C N
EQ
2
2
2
KB
O
PB
E
A
IR
IR
IR
BC
M
D
D
H H X H D1 D D D H H H H H H H H
MSB 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 LSB D1 Bit set by device, reset by host read cycle
NOTE: ‘Reset’ refers to bit value following Master Reset (MR). The bit value following software reset is un-
changed unless specifically indicated by an “SR” value.
Make Busy.
The host asserts the MKBUSY bit to respond with Busy status for commands
to this transmit subaddress. This bit is an alternative to globally applying
12 MKBUSY R/W 0 Busy status for all valid commands, enabled from the “Remote Terminal MIL-
STD-1553 Status Word Bits Register (0x001A)”. See that register description
for additional information. When Busy is asserted, data words are not trans-
mitted and the DPB bit does not toggle after message completion.
0 Internal device logic asserts the DBAC bit upon completion of message
11 DBAC R SR = 0 processing. The host may poll this bit to detect subaddress activity, instead of
using host interrupts. This bit is reset to logic zero by MR master reset, SRST
software reset or a read cycle to this memory address.
Data Pointer B.
This status bit is maintained by the device and only applies in ping-pong buf-
fer mode. This bit indicates the buffer to be used for the next occurring trans-
mit command to this subaddress. When the DPB bit is logic 0, the next mes-
sage will use Data Pointer A; when DPB is logic 1, the next message uses
Data Pointer B. In ping-pong buffer mode, the bit is inverted after each error-
0 free message completion. To also ensure the DPB bit is not altered after
10 DPB R SR = 0 illegal commands or messages ending with Busy status, the DPBTOFF
bit should be set in the “Extended Configuration Register (0x004D)”
on page 44. This ensures unsuccessful messages are not stored in the
data buffer and are overwritten by subsequent successful messages. (see
also “Ping-Pong Enable / Disable Handshake” on page 171). The DBP bit is
reset to logic 0 by MR master reset or SRST software reset; therefore the first
message received after either reset will use Buffer A. This bit is “don’t care”
for indexed single-buffer mode or either circular buffer mode.
Broadcast Received.
The device sets this bit when a broadcast-transmit command is received
for this subaddress. Because non-mode broadcast-transmit commands are
always illegal, the assertion of this bit in the Control Word by the device indi-
9 BCAST R 0 cates an illegal command was received. Terminal response varies, depending
SR = 0 on whether or not illegal command detection applies (any bits set in Illegal-
ization Table). This bit has no function if the BCSTINV bit is asserted in the
“Remote Terminal Configuration Register (0x0017)”; in this case commands
to RT address 31 are not recognized as valid by the device. This bit is reset
to logic 0 by MR master reset or SRST software reset.
7-4 CIR2ZN R/W 0 Used only in circular buffer mode 2, this 4-bit field is initialized with the
number of trailing zeros in the initialized MIBA address. This is explained in
Section 17.6, which fully describes circular buffer mode 2.
0 0 1 Circular Mode 1
Indexed Single
0 0 0
Buffer
To use single (indexed) buffer or double (ping-pong) buffer for mode commands, the SMCP bit in the “Remote Terminal
Configuration Register (0x0017)” is logic 0. The Control Word PPEN bit for each mode command determines whether
ping-pong or indexed buffering is used.
To use Simplified Mode Command Processing, the SMCP bit in the “Remote Terminal Configuration Register (0x0017)”
is set to logic 1. The Control Word PPEN bit for mode commands is “don’t care” (no longer specifies index or ping-pong
buffer mode) because Simplified Mode Command Processing stores mode command data and message information
words directly within each mode command’s redefined Descriptor Table block. When SMCP is enabled, mode code
command descriptor blocks (in the Descriptor Table) do not contain data pointers to reserved buffers elsewhere in the
shared RAM. Instead, each 4-word descriptor block itself contains the message information word, the time-tag word
and the data word transacted for each mode command (for mode codes 16-31 decimal).
When Simplified Mode Command Processing is used, the range of active bits is reduced in each receive or transmit
mode command Control Word. Interrupt control and response is not affected by the SMCP option. Simplified Mode
Command Processing is fully presented in the later data sheet section 18.5.
When single-message indexed buffering or ping-pong buffering is used instead of SMCP (Simplified Mode Code
Processing), the receive mode Control Word looks like this:
PP PP
PP ST
IW Z
N
D C
EN
EQ
KB
O
PB
O
A
R
BC
ST
IB
D
H H H H D1 D D D X X X X H H X X
MSB 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 LSB D1 Bit set by device, reset by host read cycle
When SMCP applies, the number of active mode Control Word bits is reduced:
PP ST
IW Z
N
C
EQ
KB
O
BA
A
A
R
BC
IB
M
D
D
H H H H D1 X D D X X X X X X X X
MSB 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 LSB D1 Bit set by device, reset by host read cycle
NOTE: ‘Reset’ refers to bit value following Master Reset (MR). The bit value following software reset is un-
changed unless specifically indicated by an “SR” value.
Make Busy.
The host asserts the MKBUSY bit to respond with Busy status for commands
to this mode code. This bit is an alternative to globally applying Busy status
12 MKBUSY R/W 0 for all valid commands, enabled from the “Remote Terminal MIL-STD-1553
Status Word Bits Register (0x001A)”. See that register description for ad-
ditional information. When Busy is asserted, mode data words received with
MC16-MC31 are not stored and the DPB bit does not toggle after message
completion.
0 Internal device logic asserts the DBAC bit upon completion of message pro-
11 DBAC R SR = 0 cessing. The host may poll this bit to detect mode command activity, instead
of using host interrupts. This bit is reset to logic 0 by MR master reset, SRST
software reset or a read cycle to this memory address.
Data Pointer B.
This status bit is maintained by the device and only applies for mode com-
mands using ping-pong buffer mode. This bit indicates the buffer to be used
for the next occurring mode command. When the DPB bit is logic 0, the
next message will use Data Pointer A; when DPB is logic 1, the next mes-
sage uses Data Pointer B. In ping-pong buffer mode, the bit is inverted after
0 each error-free message completion. To also ensure the DPB bit is not
10 DPB R SR = 0 altered after illegal commands or messages ending with Busy status,
the DPBTOFF bit should be set in the “Extended Configuration Regis-
ter (0x004D)” on page 44. This ensures unsuccessful messages are not
stored in the data buffer and are overwritten by subsequent successful mes-
sages. (see also “Ping-Pong Enable / Disable Handshake” on page 171).
The DBP bit is reset to logic 0 by MR master reset or SRST software reset;
therefore the first message received after either reset will use Buffer A. This
bit is “don’t care” for indexed single-buffer mode.
Broadcast Received.
Device logic sets this bit when a valid broadcast mode command is received
9 BCAST R 0 having T/R bit = 0. This bit has no function if the BCSTINV bit is asserted
SR = 0 in the “Remote Terminal Configuration Register (0x0017)”. In this case, RT
address 31 commands are not recognized as valid by the device. This bit is
reset to logic 0 by MR master reset or SRST software reset.
When single-message indexed buffering or ping-pong buffering is used instead of SMCP (Simplified Mode Code
Processing), the transmit mode Control Word looks like this:
PP PP
PP ST
IW Z
N
D C
EN
EQ
KB
O
PB
O
A
R
BC
ST
IB
D
H H H H D1 D D D X X X X H H X X
MSB 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 LSB D1 Bit set by device, reset by host read cycle
When SMCP applies, the number of active mode Control Word bits is reduced:
PP ST
IW Z
N
C
EQ
KB
O
BA
A
A
R
BC
IB
M
D
D
H H H H D1 X D D X X X X X X X X
MSB 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 LSB D1 Bit set by device, reset by host read cycle
NOTE: ‘Reset’ refers to bit value following Master Reset (MR). The bit value following software reset is un-
changed unless specifically indicated by an “SR” value.
Make Busy.
The host asserts the MKBUSY bit to respond with Busy status for commands
to this mode code. This bit is an alternative to globally applying Busy status
for all valid commands, enabled from the “Remote Terminal MIL-STD-1553
12 MKBUSY R/W 0 Status Word Bits Register (0x001A)”. See that register description for addi-
tional information. When Busy is asserted, mode data words are not transmit-
ted with MC16-MC31, and the DPB bit does not toggle after message com-
pletion. The MKBUSY bit is not heeded if set in the Control Word for mode
code command MC8 “reset remote terminal”. For this command only, Busy is
inhibited for the status response transmitted before the reset process begins.
0 Internal device logic asserts the DBAC bit upon completion of message pro-
11 DBAC R SR = 0 cessing. The host may poll this bit to detect mode command activity, instead
of using host interrupts. This bit is reset to logic 0 by MR master reset, SRST
software reset or a read cycle to this memory address.
Data Pointer B.
This status bit is maintained by the device and only applies for mode
commands using ping-pong buffer mode. This bit indicates the buffer to be
used for the next occurring mode command. When the DPB bit is logic 0,
the next message will use Data Pointer A; when DPB is logic 1, the next
message uses Data Pointer B. In ping-pong buffer mode, the bit is inverted
0 after each error-free message completion. To also ensure the DPB bit
10 DPB R SR = 0 is not altered after illegal commands or messages ending with Busy
status, the DPBTOFF bit should be set in the “Extended Configuration
Register (0x004D)” on page 44. This ensures unsuccessful messages
are not stored in the data buffer and are overwritten by subsequent
successful messages. (see also “Ping-Pong Enable / Disable Handshake”
on page 171). The DBP bit is reset to logic 0 by MR master reset or SRST
software reset; therefore the first message received after either reset will use
Buffer A. This bit is “don’t care” for indexed single-buffer mode.
Broadcast Received.
Device logic sets this bit when a valid broadcast mode command is received
9 BCAST R 0 having T/R bit = 1. This bit has no function if the BCSTINV bit is asserted
SR = 0 in the “Remote Terminal Configuration Register (0x0017)”. In this case, RT
address 31 commands are not recognized as valid by the device. This bit is
reset to logic 0 by MR master reset or SRST software reset.
By initializing the RT Descriptor Table, the host allocates memory space for storing data for each subaddress used in
the Remote Terminal application. Each legal Receive Subaddress and each legal Transmit Subaddress are usually
assigned unique buffer memory spaces. (Exception: To comply with the requirements for MIL-STD-1553 data wrap-
around, it is convenient to assign the data wrap-around subaddress to use the same buffer space for both receive and
transmit commands.)
As an option, data from broadcast receive commands can be stored separately from data resulting from non-broadcast
receive commands. Each subaddress buffer can use any of four data storage methods offered.
Subaddress (non-mode) commands are transacted with one to 32 data words. These are stored in a data buffer in
shared RAM. For receive commands, the device stores data received during message processing in the shared RAM
buffer. Later, the host retrieves these data words from the buffer. In the case of transmit commands, the host has
previously stored transmit data words in the transmit subaddress buffer. The device retrieves these data words for
transmission while processing the transmit command.
For each complete message processed, the message data stored in the buffer is comprised of these elements:
1. Message Information Word.
2. Time-Tag Word.
3. One to 32 Data Words transmitted or received during message transaction ( except no data word for mode code
commands 0 - 15 decimal).
The Message Information word and Time-Tag word are generated by the device and stored in assigned buffer space
to aid the host in further message processing. The Message Information word contains message type, word count and
message error information. The 16-bit Time-Tag word contains the value in the device internal Time-Tag counter when
the command is validated.
The host initializes the Descriptor Table entry for each subaddress or mode command to select one of four data buffer-
ing methods.
When using circular buffers with Notice 2, the user is responsible for separating buffer data stored by broadcast and
non-broadcast messages. To make this possible, an option is offered that provides a BCAST status bit in the data
buffer Message Information Word (MIW), saved in the data buffer each time a message is received. By examining the
MIWs stored in the circular buffer, the host can differentiate broadcast from non-broadcast messages. See description
of option bit 3 in the “Extended Configuration Register (0x004D)”, as well as Section 20.1 below.
One. Host defines Stored in same Yes, only single For transacting N (multiple) messages
Indexed
size for N messages buffer as data message mode with optional host interrupt when done
One. Host defines Stored in same For transacting messages until buffer is
Circular 1 No
size for N words buffer as data full / empty, optional interrupt when done
Here is an example data structure for a 3-word receive command. Notice that the receive subaddress Data Pointer
points to the data structure starting address, not the first data word. The data pointer is located in the receive subad-
dress command’s Descriptor Block, fully described later:
Data Buffer
Word Description Device Writes Word ...
Hex Address
Data pointer equals 0x1500 → 0x1500 Message Information Word After message completion
0x1501 Time-Tag Word “ “ “
0x1502 Data Word 1 After message completion (See Note)
0x1503 Data Word 2 “ “ “ “ “
0x1504 Data Word 3 “ “ “ “ “
R RR
C A
N R
D R
C Y
ER R
AP R
W /BC
IL BS
IW ER
M ER
G ER
RT TE
TX D
W ID
W R
BU T
M
T
AS
4
O
3
2
1
0
S
R
C
C
C
C
C
TM
W
W
W
W
MSB 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 LSB
The following bits comprise the receive subaddress Message Information Word:
Time-Out Error.
15 TMOERR This bit is asserted for RT-RT receive messages when the transmitting terminal fails to
start its status word and data transmission before time-out occurs, per RTTO[1:0] bits in
the “Remote Terminal Configuration Register (0x0017)”.
12 WCTERR This bit is asserted if command is received with less data words than the command word
specifies. For example, a receive command for three data words is received with two
contiguous data words.
Sync Error.
11 SYNERR This bit is asserted when an incorrect (command/status) sync type occurs in received data
words.
Message Error.
10 MERR This bit is asserted when message error status change occurs during command process-
ing. See bits 7 and 11-15 for details.
Was Busy.
This bit is asserted when the terminal responds to the receive command with BUSY
9 WASBSY status, due to global BUSY bit set in “Remote Terminal MIL-STD-1553 Status Word Bits
Register (0x001A)”, or command-specific MKBUSY bit set in the descriptor table Control
Word. Received data words were buffered normally.
8 ILCMD This bit is asserted when the Illegalization Table bit corresponding to the received com-
mand is logic 1. The Illegalization Table should only contain nonzero values when “illegal
command detection” is being applied. See Section 16.2 for further information.
Bus Identification.
5 BUSID If this bit equals zero, message was transacted on Bus A. If bit equals one, it was trans-
acted on Bus B.
Word Count.
4-0 WC4:0 This 5-bit field contains the word count extracted from the command word. Zero indicates
32 words.
Here is an example data structure for a 3-word transmit command. Notice that the Data Pointer points to the data
structure starting address, not the first data word. The data pointer is located in the transmit subaddress command’s
Descriptor Block.
Data Buffer
Word Description Word is Written By ...
Hex Address
Data pointer equals 0x1500 → 0x1500 Message Information Word Device, after message completion
0x1501 Time-Tag Word “ “ “ “
0x1502 Data Word 1 Host, prior to terminal’s data transmit
0x1503 Data Word 2 “ “ “ “ “ “
0x1504 Data Word 3 “ “ “ “ “ “
R T
TE S
C A
R
C Y
W /BC
IL BS
D
W ID
W R
BU T
M
AS
ER
AP
S
R
1
3
2
0
RT
W
W
W
W
M
G
X X X X
MSB 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 LSB
The following bits comprise the transmit subaddress Message Information Word.
Message Error.
10 MERR This bit is asserted when message error status change occurs during command process-
ing. See bits 12 and 13 for details.
8 ILCMD This bit is asserted when the Illegalization Table bit corresponding to the received com-
mand equals one. The Illegalization Table should only contain nonzero values when “il-
legal command detection” is being applied. See Section 16.2 for further information.
Bus Identification.
5 BUSID If this bit equals zero, message was transacted on Bus A. If bit equals one, it was trans-
acted on Bus B.
Word Count.
4-0 WC4:0 This 5-bit field contains the word count extracted from the command word. Zero indicates
32 words.
Here is an example data structure for a receive mode command with data (mode code values 0x10 through 0x1F).
Notice that the Data Pointer points to the data structure starting address, not the mode data word. The data pointer is
located in the receive mode command’s Descriptor Block, fully described later:
Data Buffer
Word Description Word is Written By ...
Hex Address
Data pointer equals 0x1500 → 0x1500 Message Information Word Device, after message completion
0x1501 Time-Tag Word “ “ “ “
0x1502 Mode Data Word “ “ “ “
Three receive mode commands with data are not defined under MIL-STD-1553B. These are MC16, MC18 and MC19
(mode codes 0x10, 0x12 and 0x13 respectively). However the device responds “in form” if illegal command detection
is not used (corresponding bits in Illegalization Table are logic 0) and the UMCINV bit in the “Remote Terminal
Configuration Register (0x0017)” is logic 0.
For mode code commands without data, the data structure contains only the Message Information Word and Time-Tag
Word.
Here is an example data structure for a receive mode command without data (mode code values 0x00 through 0x0F).
Note: None of these receive mode commands are defined under MIL-STD-1553B but the device responds “in form” if
illegal command detection is not used (corresponding bits in Illegalization Table are logic 0) and the UMCINV bit in the
“Remote Terminal Configuration Register (0x0017)” is logic 0. Notice that the data pointer points to the data structure
starting address, the message information word. The data pointer is located in the receive mode command’s Descrip-
tor Block, fully described later:
Data Buffer
Word Description Word is Written By ...
Hex Address
Data pointer equals 0x1500 → 0x1500 Message Information Word Device, after message completion
0x1501 Time-Tag Word “ “ “ “
SY ER ST
R RR
C A
N R
D R
C Y
ER R
AP R
W /BC
IL BS
IW ER
M ER
G ER
RT TE
TX D
W ID
W R
BU T
M
T
AS
4
O
3
2
1
0
S
R
C
C
C
C
C
TM
W
W
W
W
MSB 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 LSB
The following bits comprise the receive mode Message Information Word:
Message Error.
10 MERR This bit is asserted when message error status change occurs during command process-
ing. See bits 11- 14 for details.
8 ILCMD This bit is asserted when the Illegalization Table bit corresponding to the received com-
mand equals one. The Illegalization Table should only contain nonzero values when “il-
legal command detection” is being applied. See Section 16.2 for further information.
Bus Identification.
5 BUSID If this bit equals zero, message was transacted on Bus A. If bit equals one, it was trans-
acted on Bus B.
Mode Code.
4-0 MC4:0
This 5-bit field contains the mode code extracted from the command word.
Here is an example data structure for a transmit mode command with data (mode code values 0x10 through 0x1F).
This applies to MC16 “Transmit Vector Word”. Notice that the data pointer points to the data structure starting address,
not the mode data word. The data pointer is located in the transmit mode command’s Descriptor Block, fully described
later:
Data Buffer
Word Description Word is Written By ...
Hex Address
Data pointer equals 0x1500 → 0x1500 Message Information Word Device, after message completion
0x1501 Time-Tag Word “ “ “ “
0x1502 Mode Data Word Host, prior to terminal’s data transmit
(except MC18, MC19 are written by
the device after completion)
Three transmit mode commands with data are not defined under MIL-STD-1553B. These are MC17, MC20 and
MC21 (mode codes 0x11, 0x14 and 0x15 respectively). However the device responds “in form” if illegal command
detection is not used (corresponding bits in Illegalization Table are logic 0) and the UMCINV bit in the “Remote
Terminal Configuration Register (0x0017)” is logic 0.
For mode code commands without data, the data structure contains only the Message Information Word and Time-Tag
Word. Here is an example data structure for a transmit mode command without data (mode code values 0x00 through
0x0F). Again, the data pointer points to the data structure starting address. The data pointer is located in the transmit
mode command’s Descriptor Block, fully described later:
Data Buffer
Word Description Word is Written By ...
Hex Address
Data pointer equals 0x1500 → 0x1500 Message Information Word Device, after message completion
0x1501 Time-Tag Word “ “ “ “
R T
TE S
C A
R
C Y
W /BC
IL BS
D
M ID
W R
M
AS
ER
AP
1
3
2
0
S
C
C
C
C
C
BU
M
M
M
M
M
G
X X X X X
MSB 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 LSB
The following bits comprise the mode transmit Message Information Word:
Message Error.
10 MERR This bit is asserted when message error status change occurs during command process-
ing. See bits 12-13 for details.
8 ILCMD This bit is asserted when the Illegalization Table bit corresponding to the received com-
mand is logic 1. The Illegalization Table should only contain nonzero values when “illegal
command detection” is being applied. See Section 16.2 for further information.
Bus Identification.
5 BUSID If this bit equals zero, message was transacted on Bus A. If bit equals one, it was trans-
acted on Bus B.
Mode Code.
4-0 MC4:0
This 5-bit field contains the mode code extracted from the command word.
When a subaddress or mode command uses ping-pong data buffer mode, its 4-word descriptor block in the Descriptor
Table is defined as follows:
If Descriptor Word 1 is stored at memory address N, Descriptor Word 2 is stored at address N+1, and the other two
words are stored at addresses N+2 and N+3.
Prior to starting terminal operation, enable ping-pong buffering for any subaddress (or mode code) by asserting the
PPEN bit and negating the STOPP bit in the descriptor Control Word. When the device detects ping-pong is selected
(PPEN = 1) and enabled (STOPP = 0), it asserts the Control Word PPON bit to confirm ping-pong is active.
During ping-pong operation, the RT determines the active data buffer at the beginning of message processing. The
Control Word DPB bit indicates the data pointer to be used by the next command. DPB equals logic 0 means Data
Pointer A is used next; DPB equals logic 1 means Data Pointer B is used next. For ping-pong, Data Pointers A and
B are static values pointing to the first address in each buffer. At the conclusion of error-free message processing,
the Control Word DPB bit is inverted so the next command “ping-pongs” to the other data buffer. Each new message
to the subaddress or mode code overwrites message data and information words written previously. To assure data
integrity, the DPB pointer should only toggle after completion of error-free messages. To cover the full set of conditions,
set DPBTOFF bit 1 in “Extended Configuration Register (0x004D)” on page 44. When option bit DPBTOFF = 1,
DPB pointer toggle is prevented after incomplete messages, illegal commands, and messages resulting in BUSY
or MESSAGE ERROR status. (When option bit DPBTOFF = 0, the illegal and BUSY cases still cause DPB pointer
toggle.)
Please note that a subaddress may contain both legal and illegal word counts. When DPBTOFF = 1, DPB pointer
toggle only occurs for the expected (legal) word count(s).
Figure 15 is a general illustration of ping-pong buffer mode. Figure 16 shows a specific example.
The primary benefit of using the DPBTOFF = 1 option is always knowing where to find the most-recent valid data. When
DPBTOFF = 1, the complemented DPB pointer always indicates the last-transacted “good” data set. For example, if
DPB is logic 0, the last successful message used Data Buffer B.
(Exception: immediately following Master Reset, the entire memory range is cleared to zero, so neither buffer contains
message data. After reset, the host typically initializes outgoing data for the first message occurring on each transmit
subaddress, Buffer A. The Message Information and Time Tag Words will read 0x0000 until the first message is
transacted. After reset, the first-used Buffer A for each receive subaddress will contain 0x0000 for the Message
Information and Time Tag Words and all data locations, until the first message is transacted).
A handshake scheme lets the external host asynchronously service ping-pong data buffers without data collision. To
off-load or load a subaddress (or mode code) buffer, the application software performs the following sequence:
a. Host asserts the Control Word STOPP bit to suspend ping-pong operation for the subaddress. When the device
recognizes STOPP bit assertion, it negates the PPON bit to acknowledge ping-pong is disabled. While PPON
remains low, the last written (or read) data buffer is protected against device updates. During this time, new
messages use the active buffer indicated by the Control Word DPA bit. Recurring messages repeatedly use the
same buffer until ping-pong resumes.
b. Host services the last-used data buffer. If the Control Word DPB bit equals logic 1, the last command used
Buffer A. The host application software off-loads or loads inactive Buffer A while the remote terminal uses
active Buffer B for new message(s). If the DPB bit equals logic 0, the last command used Buffer B. The host
application software off-loads or loads inactive Buffer B while the remote terminal uses active Buffer A for any
new messages. Each new receive message overwrites buffer contents from the last receive message. To avoid
possible data loss, host buffer servicing should be timed for completion before a second message can occur.
c. Host negates the Control Word STOPP bit to resume ping-pong operation for the subaddress. When the RT
recognizes the STOPP bit is reset, it sets the PPON bit to acknowledge ping-pong is again active. As long as
PPON remains set, the device alternates between data buffers A and B for new messages.
Data Word 32
Data Word 1
Broadcast Message Time-Tag Word Data Word 32
(if NOTICE2 is asserted)
Message Info Word Data Words 2-31
Data Word 1
Subaddress
Buffer Space Message #2 Time-Tag Word
for Broadcast Message #4
(optional) Message #6 Message Info Word
etc.
Assigned
Subaddress
Data Buffer B
B’cast Data Pointer
Increasing Data Pointer B
Memory
Address Data Pointer A
Data Word 32
Control Word
Data Words 2-31
Data Word 1
Descriptor Block
Time-Tag Word
for Subaddress
Message #1 Message Info Word
Message #3
Message #5
etc. Assigned
Memory Address for the Applicable Subaddress
Subaddress Block is Derived From Data Buffer A
the Decoded Command Word
Message processing alternates between Data Buffers A and B. Upon sucessful message completion, the DPB
bit in Descriptor Control Word is updated so next message uses other buffer. Buffers are overwritten every
other message.
Separate buffer for broadcast messages is optional. There is no alternate buffer for successive
broadcast messages.
When the NOTICE2 bit in the “Remote Terminal Configuration Register (0x0017)” is 1 and the BCSTINV bit is 0,
ping-pong mode subaddresses (or mode codes) will buffer data words from broadcast and non-broadcast messages
separately. Broadcast message information and data are stored in the broadcast data buffer; non-broadcast message
information and data are stored in ping-pong buffers A and B. Since there is just one broadcast data buffer, the
NOTICE2 option treats broadcast messages as exceptions to normal ping-pong mode. When using the NOTICE2
option, broadcast data buffer servicing should have high priority, because a closely following broadcast message will
overwrite the broadcast buffer.
Every mode command and subaddress (including transmit subaddresses) must have an assigned valid
broadcast data pointer when NOTICE2 is asserted. When the NOTICE2 bit in the “Remote Terminal Configuration
Register (0x0017)” is 1 and the BCSTINV bit is 0, reception of a broadcast-transmit message updates the Message
Information and Time-Tag Words for the assigned broadcast buffer, but no data is transmitted on the bus. Since
broadcast-transmit is not allowed, multiple transmit subaddresses may share a common “bit bucket” broadcast buffer.
A two word buffer is sufficient for storing the MIW and Time-Tag Word.
When using ping-pong mode, there are two ways to handle broadcast messages, when broadcast is enabled:
Option 1 Setup: At initialization, host asserts the NOTICE2 bit in the “Remote Terminal Configuration Register
(0x0017)” and sets the IBR (Interrupt Broadcast Received) bit in descriptor Control Word(s). The IBR bit is asserted in
the “Remote Terminal (RT) Interrupt Enable Register (0x0012)”.
When a broadcast command is received, message information and data is stored in the broadcast data buffer and
an INT interrupt is generated. The host must read the Interrupt Log to determine the originating subaddress (or mode
code), then service the broadcast data buffer for that subaddress (or mode code) before another broadcast message
to the same subaddress (or mode code) arrives.
Option 2 Setup: At initialization, host negates the NOTICE2 bit in the “Remote Terminal Configuration Register
(0x0017)”. If IWA interrupts are used, the host asserts the descriptor Control Word IWA (Interrupt When Accessed) bit
14 and the corresponding bit is asserted in the “Remote Terminal (RT) Interrupt Enable Register (0x0012)”. Using this
option, the IBR interrupt is probably not used.
The host typically services the ping-pong data buffers A and B whenever a message is transacted. Using the setup
above, this occurs whenever the subaddress IWA interrupt generates an INT interrupt output for the host. The host
must read the Interrupt Log to determine the originating subaddress or mode code. The applicable data buffer is
indicated by the DPB bit in the Receive Control Word. The Message Information Word BCAST bit is asserted if the
message was broadcast.
Descriptor Block
for a
Receive Subaddress
Following reset (which resets Control Word DPB bit), the subaddress transacts 4 commands of 32 data words each.
The NOTICE 2 option is enabled so the device segregates data from broadcast and non-broadcast messages.
Message #3 is a broadcast command, while the other three messages are non-broadcast. Notice that the broadcast
message does not affect DPB bit, but the following message resets BCAST bit. The interspersed broadcast command
does not affect alternation between Buffer A and Buffer B.
When a subaddress or mode command uses the indexed data buffer mode, its 4-word descriptor block in the Descrip-
tor Table is defined as follows:
If Descriptor Word 1 is stored at memory address N, Descriptor Word 2 is stored at address N+1, and the other two
words are stored at addresses N+2 and N+3.
As the name implies, all message information and data is stored in a single buffer, indexed by descriptor word Data
Pointer A. The descriptor Control Word DPB bit is “don’t care”. The host initializes the desired message count in de-
scriptor INDX word. During message processing, the device retrieves or stores data words from the address specified
by descriptor Data Pointer A, automatically incrementing the pointer address as words are read or stored. Data Pointer
A is updated during command post-processing with the current buffer address unless the message index count in de-
scriptor INDX (word 3 of descriptor block) decrements to zero upon completion of the message. Figure 17 is a general
illustration of indexed single buffer mode. Figure 18 shows a specific example.
To set up a terminal subaddress to buffer multiple messages, the host writes the desired index count (INDX) to subad-
dress descriptor word 3. The initial INDX value ranges from zero to 3FF hex (1023) messages. The device decrements
the INDX count each time an error-free message is transacted, and the data pointer is updated to the first memory
address to be used for the next message. If INDX decrements from one to zero and Control Word IXEQZ bit 15 is as-
serted, the IXEQZ bit is set in the “Remote Terminal (RT) Pending Interrupt Register (0x0009)”. If the corresponding
bit in the “Remote Terminal (RT) Interrupt Enable Register (0x0012)” is asserted, an INT interrupt is generated when
INDX decrements from one to zero.
INDX counter decrement does not occur if the command was illegalized or if INDX already equals zero. Once INDX
equals zero, further commands will overwrite the last-written data buffer block and the data pointer value is not up-
dated after successful message completion.
When using Index Mode with a non-zero INDX value, the host must remember the initial Data Pointer A address. The
Data Pointer A word is not automatically reinitialized to the buffer start address when INDX decrements from 1 to 0.
There are two ways to deal with broadcast messages in indexed buffer mode:
Option 1 Setup: At initialization, host asserts NOTICE2 bit in the “Remote Terminal Configuration Register (0x0017)”
and sets the Control Word IBR (Interrupt Broadcast Received) bit for each index mode descriptor block. The IBR bit is
also asserted in the “Remote Terminal (RT) Interrupt Enable Register (0x0012)”.
When a broadcast command is received, message information and data are stored in the broadcast data buffer. If
descriptor Control Word IBR bit is set, an INT interrupt is generated. The host must read the Interrupt Log to determine
the originating subaddress (or mode code) then service the broadcast data buffer for that subaddress (or mode code)
before the next broadcast message to the same subaddress (or mode code) arrives.
Option 2 Setup: At initialization, host negates the NOTICE2 bit in the “Remote Terminal Configuration Register
(0x0017)”. If broadcast interrupts are used, the Control Word IBR (Interrupt Broadcast Received) bit is asserted at
each desired index mode descriptor block. The IBR bit is also asserted in the “Remote Terminal (RT) Interrupt Enable
Register (0x0012)”.
Using option 2, the host has several options for servicing data buffer A: (a) when INDX decrements from one to zero
(using the IXEQZ interrupt), (b) when a broadcast message occurs (using the IBR interrupt) or (c) when any message
arrives (using the IWA interrupt).
Data Word N
Data Word(s)
Data Word 1
Increasing
Data Word N Memory Time-Tag Word
Next
Address
Data Word(s) Message Message Info Word
Data Word(s)
Descriptor Block
for Subaddress Data Word 1
Time-Tag Word
Preceding
Message Message Info Word
Assigned
Memory Address for the Applicable Subaddress
Subaddress Block is Derived From Buffer Space
the Decoded Command Word
Upon successful message completion, if non-zero the INDX count in Descriptor Word 3 is decremented.
If decremented result is non-zero, Data Pointer A is adjusted so next message is stored above
just-completed message. If decremented INDX is zero, Data Pointer A remains static
and IXEQZ interrupt occurs if enabled in Control Word.
Figure 18. Indexed Buffer Mode Example for a Receive Subaddress (broadcast disabled)
When a subaddress uses circular buffer mode 1, its four word block in the Descriptor Table is defined as follows:
If Descriptor Word 1 is stored at memory address N, Descriptor Word 2 is stored at address N+1, and the other two
words are stored at addresses N+2 and N+3.
Figure 19 provides a generalized illustration of Circular Buffer Mode 1, while Figure 20 shows a specific example.
Circular Buffer Mode 1 uses a single user-defined buffer that merges all transmit or receive data, along with message
information. Two words (Message Information and Time-Tag) are stored at the beginning of the block for each mes-
sage, followed by the message data word(s). The Mode 1 buffer pointers roll over (are reset to their base addresses)
when the allocated data buffer memory is full.
For each valid receive message, the device enters a Message Information word, Time-Tag word and data word(s)
into the circular receive buffer. For each valid transmit message, the device enters a Message Information word and
a Time-Tag word into reserved memory locations within the circular transmit buffer. The device automatically controls
the wrap around of circular buffers.
Two pointers define circular buffer length: start of buffer (lowest address) and end of buffer (highest address). User
specifies the start of buffer (SA) by writing the lowest address value into the second word of a unique subaddress
descriptor block. The user defines the end of the buffer (EA) by writing the highest address value to the fourth word of
that unique descriptor block. Both SA and EA remain static during message processing. The third word in the descrip-
tor block identifies the current address CA (i.e., last accessed address plus one). The circular buffer wraps to the start
address after completing a message that results in CA being greater than or equal to EA. If CA increments past EA
during message processing, the device will access memory addresses greater than the EA value. Reserve 33 address
locations past the EA address to accommodate a worst-case 32 data word message with a record starting at address
= EA minus 1.
Each receive subaddress and transmit subaddress may have a unique circular buffer assignment. The RT decodes the
command word T/R bit, subaddress field and word count / mode code field to select the unique command descriptor
block containing the Control Word, SA pointer, CA pointer and EA pointer.
For receive messages, the device stores the Message Information word to the address specified by CA, the Time-Tag
word into CA+1 and the data into the next “N” locations starting with CA+2. For transmit messages, the device stores
the Message Information word to the address specified by CA and the Time-Tag word into CA+1. Retrieval of data for
transmission starts at address CA+2. When entering multiple transmit command data packets into the circular buffer,
delimit each data packet with two reserved memory locations. The device stores the Message Information word and
Time-Tag word into the reserved locations when processing the command.
Message processing for all commands begins with the device reading the unique descriptor block for the subaddress
or mode code specified by the T/R bit, subaddress and word count fields in the received command word.
For receive messages, the device stores “N” received data words in the circular data buffer. The first data word re-
ceived is stored at the location specified by the CA pointer +2. After message completion, the device stores the Mes-
sage Information word and Time-Tag words to addresses CA and CA+1 respectively. If no errors were detected, the
Although all messages store Message Information and Time-Tag words, no data is stored if the message ended with
error, or if the Busy status bit was set or if the command was illegal (example: illegalized word count). Such messages
do not update CA, so the next message overwrites the same buffer space.
For transmit commands, the device begins transmission of data retrieving the first data word stored at address CA+2.
(Reminder: addresses CA and CA+1 are reserved for the Message Information and Time-Tag words.) When message
processing is complete, the device writes the Message Information and Time-Tag words into the buffer. If no errors
were detected, the device updates descriptor CA register. If the next address location (last retrieved data word +1) is
less than or equal to EA, CA is updated to (last retrieved address +1). If the next address location (last retrieved data
word +1) is greater than EA, the transmit data buffer is empty; CA is updated to the SA value. If the descriptor Control
Word IXEQZ bit is asserted (and if the “Remote Terminal (RT) Interrupt Enable Register (0x0012)” IXEQZ bit is as-
serted) the device indicates “transmit buffer empty” by asserting the INT interrupt output.
Device hardware does not segregate broadcast and non-broadcast data for this circular buffer mode, even when the
NOTICE2 bit is set in the “Remote Terminal Configuration Register (0x0017)”. Data words from broadcast receive
commands are stored in the same buffer with data from non-broadcast receive commands. However Notice 2 for MIL-
STD-1553 does not state where data segregation should occur. It is acceptable for the host to separate broadcast
and non-broadcast data when offloading the circular buffer. To choose this option, set bit 3 in “Extended Configuration
Register (0x004D)”. This enables the BCAST (broadcast status) bit in the Message Information Word stored for each
message. This flag reflects broadcast or non-broadcast status for each message in the buffer.
For transmit subaddresses using Circular Buffer Mode 1, occurrences of broadcast-transmit commands to RT31 do
not result in bus transmission. However these messages update the Message Information Word addressed by the
Current Address (CA) pointer (and following Time-Tag Word) but afterwards, the CA pointer remains unchanged. The
next transmit command to the same subaddress, whether broadcast or not, overwrites the Message Information and
Time-Tag Word locations written by the previous broadcast transmit command.
End
Data Word N Address
Data Word(s)
Data Word 1
Time-Tag Word
Last Message
in Data Block Message Info Word
More Messages
in Data Block
Data Word N
Data Word(s)
Data Word 1
Data Word 1
Time-Tag Word
Memory Address for the Applicable
FirstMessage Start
Subaddress Block is Derived From Message Info Word Address
in Data Block
the Decoded Command Word
Assigned
Subaddress
Increasing
Circular Buffer
Memory
Address
Descriptor block is initialized so Current Address equals buffer Start Address. After each successful
message transaction, Current Address is adjusted to point past last data word accessed. If adjusted
Current Address points past End Address, the Current Address is reinitialized to match Start Address
and an optional interrupt is generated to notify host that the pre-determined data block
was fully transacted.
Increasing End Address End Address = 0x1545 Buffer end address in RAM
Memory Current Address Current Address = 0x1500 Buffer current address in RAM
Address
Start Address Start Address = 0x1500 Buffer start address in RAM
Circular Buffer Mode 2 is selected when the Control Word PPEN bit is zero and the CIR2EN bit is logic 1. When the
CIR2EN bit is high, the CIR1EN bit is don’t care. The descriptor Control Word DPB bit is not used.
Any receive subaddress using circular buffer mode 2 has two circular buffers: a data storage buffer and a message
information buffer. A separate buffer pair may be used for transmit commands to the same subaddress, if it also uses
circular buffer mode 2. Each transmit and receive subaddress using circular buffer mode 2 may have unique data
buffer and message info buffer assignments. Careful management (involving the bus controller) may allow buffer shar-
ing, as long as multiple message sequences to a given subaddress are not interrupted by messages to other subad-
dresses that use the same buffer space.
When a subaddress uses circular buffer mode 2, its Descriptor Table 4-word block is defined as follows:
If Descriptor Word 1 is stored at memory address N, Descriptor Word 2 is stored at address N+1, and the other two
words are stored at addresses N+2 and N+3. The first word in the descriptor block is the Control Word. The second
and third words in the descriptor are the Start Address (SA) and Current Address (CA) pointers. The Message Informa-
tion Buffer Address (MIBA) points to the storage location for the Message Information Word from the next occurring
message.
Each time a message is completed, the device writes a new Message Information Word and Time-Tag Word in the
MIB (Message Information Buffer) at the MIBA address and following location, respectively. The MIBA pointer is not
updated if message error occurred, if the Busy status bit was set, or if the command was illegalized (for example an
illegal word count expressed in the command word.) For these situations, the Message Information and Time-Tag
words are still written, but MIB updates for the following message will overwrite the just-written Message Information
and Time-Tag word addresses.
For error-free receive messages, received data words are stored in the data buffer after message completion, starting
at the CA address value. The CA value is then updated for next-message readiness.
After writing the two MIB words, the device updates the MIBA value to show the buffer address to be used by the next
message. Until the predetermined number of error-free messages is transacted, the MIBA value is double-increment-
ed at each update. Before updating the MIBA in Descriptor Word 4, the pre-existing MIBA value is incremented once
then checked for ‘full count,” occurring when all N low-order address bits initialized to zero (explained below) become
N “one” bits. Full count means the predetermined number of successful messages was completed. When this occurs,
the CA and MIB pointers are automatically written to their initialized values by the device.
To preserve data integrity, the TRXDB bit should be set in the “Remote Terminal Configuration Register (0x0017)”
to avoid storing incomplete data from messages resulting in error. With TRXDB asserted, the host is not bothered
by message retries caused by errors. The Buffer Empty/Full interrupt (if enabled) is generated only upon successful
transaction of the entire N-message data block.
To initialize Circular Buffer Mode 2, the host must know the number of messages to be transacted, always a power of
two: 1, 2, 4, 8, 16, 32, 64 or 128 messages. The host writes descriptor Control Word bits 7:4 with an encoded 4-bit
value to set the fixed number of messages to be transacted. This is illustrated in Table 13. The host initializes the de-
The initially-loaded MIB base address value is restricted. Some lower bits of the starting address must be zero so the
device can restore the MIBA pointer to the initial MIB base address after the predetermined message count is transact-
ed. As illustrated in Table 13, the required number of logic-0 bits depends on the message count. Initializing the MIBA
base address with more trailing zeros than indicated is acceptable; initializing less trailing zeros will cause malfunction.
Allocated space in the data buffer (see column 3, Table 13) assumes each message has the maximum 32 data words.
If messages contain less than 32 words, the data buffer size can be reduced. Since Circular Buffer Mode 2 counts
messages, values in all remaining Table 13 columns remain valid when message word count is reduced.
The host may read the MIBA value to determine the number of messages that have occurred since initialization. By
reading the initially-zeroed lower bits of the MIB Address, the host may determine the number of the next occurring
message.
From Table 13, a block of 128 messages requires 8 trailing zeros in the initial MIBA address, for example, 0x0F00.
After each message is completed, the MIBA value is updated (0x0F02, 0x0F04, etc.) The device detects message
block completion when all required initially-zero trailing address bits equal 1 after MIBA is incremented once. In our
example, MIBA would increment from 0x0FFE to 0x0FFF. When “full count” occurs, the device updates MIBA to the
original value (e.g., 0x0F00) and copies the SA starting address value to CA current address register, ready for buffer
service by the host. The device optionally generates a “buffer empty-full” interrupt for the host when block transfer is
completed.
During block transfer, the host can read the MIBA value to determine the number of additional messages needed be-
fore the N-message data block is complete.
Message processing for all commands begins with the RT reading the unique descriptor block for the subaddress
specified by the T/R bit, subaddress and word count fields in the received command word.
Table 13. Circular Buffer Mode 2 (Initialization factors based on message block size)
For transmit subaddresses using Circular Buffer Mode 2, the device transmits data from the assigned RAM buffer,
starting at the location specified by the CA pointer. The first data word transmitted is stored at the location specified by
the CA pointer. After all data words are transmitted (as specified in the command word) the device writes Message In-
formation and Time-Tag words in the Message Information Buffer then updates the descriptor CA Current Address and
MIBA Message Information pointers for next-message readiness. If the predetermined total number of messages has
not yet been transacted, MIBA points to the next location in the message information buffer and CA points to the next
location in the data buffer. If the completed message is the last message in the block, the CA current (data) address
and MIBA message Information pointers are reinitialized to their base address values. (Control Word bits 7:4 tell the
device how many MIBA lower bits to reset.) If the descriptor Control Word IXEQZ bit is asserted (and if the “Remote
Terminal (RT) Interrupt Enable Register (0x0012)” IXEQZ bit is asserted) the device generates a Buffer Full / Empty
interrupt, asserting the INT interrupt output.
Device hardware does not segregate broadcast and non-broadcast data for this circular buffer mode, even when the
NOTICE2 bit is set in the “Remote Terminal Configuration Register (0x0017)”. Data words from broadcast receive
commands are stored in the same buffer with data from non-broadcast receive commands. However Notice 2 for MIL-
STD-1553 does not state where data segregation should occur. It is acceptable for the host to separate broadcast
and non-broadcast data when offloading the circular buffer. To choose this option, set bit 3 in “Extended Configuration
Register (0x004D)”. This enables the BCAST (broadcast status) bit in the Message Information Word stored for each
message. This flag reflects broadcast or non-broadcast status for each message in the buffer.
For transmit subaddresses using Circular Buffer Mode 2, occurrences of broadcast-transmit commands to RT31 do
not result in bus transmission. However these messages update the Message Information Word addressed by the
Message Information Block (MIB) pointer (and the following Time-Tag Word) but afterwards, the MIB and CA pointers
remain unchanged. The next transmit command to the same subaddress, whether broadcast or not, overwrites the
Message Information and Time-Tag Word locations written by the previous broadcast transmit command.
Data Word N
Segregated storage for data and message information simplifies host loading / offloading of buffered data.
Descriptor MIB Address tracks number of messages. Full count occurs when N initialized 0-bits become N 1-bits.
When full number of messages in block is transacted, an optional interrupt is generated to notify host.
Increasing Start Address Start Address = 0x1500 Buffer start address in RAM
Memory
Address Control Word Control Word = 0x8042 Circular Mode 2, 4 messages, IXEQZ Interrupt
Descriptor Block
for a
Receive Subaddress
Data Block completion is based on number of messages, not Buffer Full or Buffer Empty.
Example is set to successfully transact four 32 data word receive messages, then generate IXEQZ interrupt for host.
The data buffer requires minimal processing by host because message information words are stored separately in MIB.
In the “Remote Terminal Configuration Register (0x0017)”, the option bit UMCINV (Undefined Mode Codes Invalid)
globally defines whether undefined mode code commands are treated as valid (default) or invalid commands. This bit
applies only to the following 22 mode code commands that are undefined in MIL-STD-1553B:
If the UMCINV bit is low (default after MR reset) undefined mode code commands are considered valid and RT re-
sponse is based on individual mode command settings in the Illegalization Table: If the command’s illegalization table
bit equals 0, the mode command is legal; the RT responds “in form” and updates status. If the command’s illegalization
table bit equals 1 the mode command is illegal, the RT asserts Message Error status and (if non-broadcast) transmits
only its Status Word without associated data word. Table 14 describes explicit terminal response for each mode code
value and command T/R bit state, based on various option settings.
If UMCINV is asserted, the 22 undefined mode code commands are treated as invalid: There is no terminal recognition
of the command. No command response occurs and status remains unchanged for the benefit of following “transmit
status” or “transmit last command” mode commands.
If UMCINV is low, the device determines legal vs. illegal status of commands from the Illegalization Table. If the termi-
nal does not use illegal command detection, the Illegalization Table should be left in its post-reset default state, all val-
ues equal logic 0. In this case, the terminal provides “in form” response to all valid commands. The terminal responds
with clear status and a transmitted mode data word for mode commands 16-31 with T/R bit equals 1. Assigned data
buffer locations can be initialized to provide predictable “in form” responses for all transmit mode codes 16-31. (If UM-
CINV is asserted, the terminal will not respond or update status for received mode codes 17, 20 and 21 with T/R = 1.)
To use illegal command detection, the host modifies the Illegalization Table to make illegal any combination subad-
dress and mode code commands. This may include undefined mode codes, reserved mode codes, and/or mode
codes not implemented in the application.
Before INT interrupt assertion, the device updates the Interrupt Log buffer, writing a new IIW Interrupt Information
Word and a new IAW Interrupt Address Word. The IWA (interrupt when accessed) bit is asserted in the new IIW to
indicate interrupt type. The IAW contains the Descriptor Table address for the mode command’s Control Word, based
on mode code value and command word T/R bit state. The host reads the IAW to determine the command that caused
the interrupt.
Mode commands having mode code values from 16 through 31 (decimal) always have an associated data word. When
the command word T/R bit equals 0, the terminal receives a data word, contiguously following the Command Word.
When valid legal mode commands 16-31 arrive with T/R bit equal to 1, the terminal responds by transmitting its status
word with a single data word.
When the SMCP option bit in the “Remote Terminal Configuration Register (0x0017)” is zero, individual data words for
mode codes 16-31 decimal are stored in an indexed or ping-pong buffer assigned by the mode command’s Descriptor
Table entry. Circular buffer methods are not available for mode code commands.
When the SMCP option bit in the “Remote Terminal Configuration Register (0x0017)” is asserted, individual data words
for mode codes 16-31 decimal are stored within the Descriptor Table itself. This is explained next.
Mode Code
Command Associated Broadcast See
MIL-STD-1553 Defined Function
T/R bit Data Word Allowed Note
Binary Dec.
00000 0
Undefined mode commands 0 - 15 when
0 to to No No (1)
T/R bit = 0
01111 15
01001 9
Reserved Mode Commands 9 - 15 with
1 to to No Yes (2)
T/R bit = 1
01111 15
Mode Code
Command Associated Broadcast See
MIL-STD-1553 Defined Function
T/R bit Data Word Allowed Note
Binary Dec.
01001 22
Reserved Mode Commands 22 - 31 with
0 to to Yes Yes (2)
T/R bit = 0
01111 31
01001 22
Reserved Mode Commands 22 - 31 with
1 to to Yes No (2)
T/R bit = 1
01111 31
NOTES:
1. The 22 undefined mode commands can be rendered invalid by setting the UMCINV (undefined mode codes in-
valid) option bit in “Remote Terminal Configuration Register (0x0017)”. If UMCINV is asserted, there is no recogni-
tion of the undefined command by the terminal. If UMCINV is zero, the commands are considered valid. Terminal
response when UMCINV equals 0 is wholly determined by the Illegalization Table:
a. If a command’s bit in the Illegalization Table equals zero, the terminal responds “in form” with Clear Status.
Mode commands 17, 20 and 21 are undefined when T/R bit equals one, but will transmit a contiguous data
word. Mode commands 16, 18 or 19 are undefined when T/R bit equals 0, but will receive a contiguous data
word.
b. If a command’s bit in the Illegalization Table equals one, the command is considered illegal. The Message
Error (ME) status bit is asserted and the terminal transmits status without data word. Illegal mode commands
16-31 will not transmit or receive a mode data word.
2. Response to the reserved mode commands is fully defined by Illegalization Table settings. As described in (a) and
(b) above, the terminal illegalizes any reserved mode command having Illegalization Table bit equal to 1, and re-
sponds “in form” when the Table bit equals zero. The “in form” response for reserved mode commands 16 through
31 transacts a received or transmitted data word.
Descriptor Word 1 contains the receive or transmit mode command Control Word. When SMCP is used, just two
Control Word bits are used: DBAC (descriptor block accessed) and BCAST (broadcast).
When SMCP is enabled, the host need not initialize the mode code command segments in the Descriptor Table. When
Simplified Mode Command Processing is selected, the host does not write Descriptor Words 2-3 in the Descriptor
Table entries for mode commands. For mode code values 0 to 15 decimal, the Descriptor Word 4 serves no function
because these mode codes do not have an associated data word. For transmit mode code values 16 to 31, the host
may initialize Descriptor Word 4. The default transmit value is 0x0000. Mode command MC16 “transmit vector word”
is one of the three defined mode commands that transmit a data word: MC16, MC18 and MC19. Its Descriptor Word 4
should be initialized if a value other than 0x0000 is needed. MC18 and MC19 are discussed below.
• For mode commands without associated data word (mode codes 0-15 decimal), Simplified Mode Command
Processing updates the Message Information and Time-Tag words in Descriptor Words 2 and 3, and Descriptor
Word 1 (bits 9,11). For these commands, SMCP does not update Descriptor Word 4, which may be non-zero if
written earlier by the host.
• For receive mode commands 16-31 (decimal) that receive a data word, Simplified Mode Command Processing
copies the received mode data word to Descriptor Word 4. The Message Information and Time-Tag words in
Descriptor Words 2 and 3, and Descriptor Word 1 (bits 9, 11) are also updated.
• For most transmit mode codes 16-31 (decimal), the device reads the data word for transmission from each
command’s Descriptor Word 4. Exceptions occur for MC18 “transmit last command” and for MC19 “transmit
built-in test word”. The MC18 data word is automatically provided, based on the last command transacted. The
“Appendix: RT messages responses, options & exceptions” on page 223 shows terminal response to all possible
subaddress and mode code command combinations. The table summarizes terminal response for the full range of
message conditions, including errors, incomplete messages, etc. The table explicitly describes terminal response and
impact on terminal Status Word, Descriptor Control Words and data buffer Message Information Words. The table
includes effects for all pertinent setup options and identifies all interrupt options available. Bold text blocks indicate
error-free messages or “in form” Clear Status responses when the terminal is not using “illegal command detection”.
Compatible SPI serial EEPROMs are 3.3V, operate in SPI modes 0 or 3 and have 128-byte pages. The serial SPI
data is clocked at 8.3 MHz SCK frequency. A 2K x 8 EEPROM can restore the lower 1K x 16 device address space. A
16K x 8 EEPROM retains the entire 8K x 16 register/RAM address space. The external EEPROM must support as a
minimum the instruction set outlined in Table 15 below.
Until EEPROM reprogramming is complete, disconnect the terminal from MIL-STD-1553 buses, or take other
measures to prevent bus activity detection by the device. With the AUTOEN, TXINHA and TXINHB pins in logic
0 state, apply MR master reset and wait for READY output assertion. Verify that the IRQ interrupt output does
not pulse low at READY assertion, indicating likely RT address parity error at the RTA4:0 and RTAP pins. Using
known good parameters, the host initializes device registers, the RAM descriptor table and transmit data buffers
(if necessary).
• If auto-initialization will be used to configure the Bus Controller, the BCENA bit 12 in “Master Configuration
Register 1 (0x0000)” should be logic 1, but BCSTRT register bit 13 must remain in the post-reset logic 0 state.
• If auto-initialization will be used to configure the Bus Monitor, the MTENA bit 8 in “Master Configuration Register
1 (0x0000)” should be logic 0. Until EEPROM programming is complete, the terminal should be disconnected
from MIL-STD-1553 buses (or other measures taken) to prevent bus activity detection by the monitor.
• If auto-initialization will be used to configure the Remote Terminal, the RTENA bit 6 in “Master Configuration
Register 1 (0x0000)” should be logic 1, but RTSTEX register bit 4 must remain in the post-reset logic 0 state.
Skip to step 3.
2. Using the existing EEPROM configuration as the baseline for a new EEPROM configuration
Until EEPROM reprogramming is complete, disconnect the terminal from MIL-STD-1553 buses, or take other
measures to prevent bus activity detection by the device. With the AUTOEN pin in logic 1 state and the TXINHA
and TXINHB pins in logic 0 state, apply and release MR master reset and wait for READY output assertion. Verify
that the IRQ output does not pulse low (or go and remain low) at READY assertion. Confirm that the EECKE and
RAMIF bits are logic 0 in the “Master Status and Reset Register (0x0001)”. If register bit 4 (RTSTEX) in “Master
Configuration Register 1 (0x0000)” was set by auto-initialization, reset it now. Modify register and RAM values to
reflect the new changes.
4. For EEPROM configuration, the host must use the Memory Address Pointer 1 (MAP1) Register. RAM address
0x0051 is first written to the selected MAP1 register, followed by the host writing a 2-part “unlock code”. After
writing the first unlock code the MAP register must be rewritten to address 0x0051 before the second
unlock code is written. The unlock code value selectively enables any combination of terminal devices (BC, MT,
RT) to automatically start execution, after subsequent auto-initialization sequences are performed. Programmed
here, the same combination of terminal devices is simultaneously enabled after every initialization. Unlock words
are encoded as shown in Table 16.
Note 1: Default. No terminal devices (BC, MT, RT) are started. The host must write “Master Configuration Register 1
(0x0000)” to start terminals.
Note 2: The RTENA register bit 6 in register 0x0000 must be set before step 4. During auto-initialization events, the
AUTOEN input pin must be logic 1 before rising edge of MR master reset. After auto-initialization, RTSTEX bit 4 is
automatically set in “Master Configuration Register 1 (0x0000)”, starting Remote Terminal execution.
Note 3: The MTENA register bit 8 in register 0x0000 must be set before step 4. During auto-initialization events, the
AUTOEN input pin must be logic 1 before rising edge of MR master reset. After auto-initialization, the SMT MTENA bit
is automatically set in “Master Configuration Register 1 (0x0000)”, starting Bus Monitor execution.
The three terminals can be automatically started (or not started) in any combination. For example, exclusive-
ORing both default unlock Words 1 and 2 with 0x0FF0 results in unlock Word 1 = 0xAFFA and Word 2 = 0x5005.
This combination automatically and simultaneously enables execution for all three terminal devices: BC, MT and
RT, at every subsequent auto-initialization from EEPROM. Individual soft resets for a single terminal device will
automatically enable that device, if enabled here.
Note 5: There is no maximum time limit (timeout) for programming the EEPROM.
5. The EECOPY input pin is driven high for at least 1 ms, then driven low. In response, the READY output goes
low while EEPROM memory is written. The unlock code at address 0x0051 is cleared. Device register and RAM
contents are written to the serial EEPROM, one byte at a time.
During programming, terminal checksums are tallied for the RT and SMT terminal devices, if used. An overall 8K
checksum is also tallied. These checksums, stored in the EEPROM, are used for error detection later, during auto-
initialization and soft reset events. There is no Bus Controller soft reset.
On the following pages, see the list of registers included in the stored overall and terminal checksums. When the
READY output goes high, EEPROM copy is complete.
6. For terminal devices selected for auto-enable by step 3 unlock word selection, the RTSTEX, MTENA and/or
BCSTRT bits are set in the 2-byte EEPROM image corresponding to “Master Configuration Register 1 (0x0000)”.
During subsequent auto-initialization events, these are the last bits written, just before READY assertion. Terminal
devices having enable bits set to logic 1 in the EEPROM image are automatically and simultaneously enabled
just before READY assertion. Terminal devices not automatically enabled (by step 4 unlock word selection) have
logic 0 enable bits RTSTEX, MTENA and/or BCSTRT in the 2-byte EEPROM image corresponding to “Master
Configuration Register 1 (0x0000)”. After auto-initialization, these terminal devices remain in standby until enabled
by host write to the “Master Configuration Register 1 (0x0000)”.
The overall checksum includes individual terminal checksums for RT and Bus Monitor, which the EECOPY process
stored at EEPROM locations corresponding to RAM addresses 0x01C0 and 0x005C respectively. All checksums
stored by the EECOPY process use two’s complement format. Each checksum is calculated by summing the individual
16-bit data values (ignoring carry) over the full set of included register and RAM addresses. The summation is then
complemented, then incremented (ignoring carry) to yield the stored two’s complement checksum value.
When the device performs checksum-based error checking, a new summation is tallied (ignoring carry) for the indi-
vidual 16-bit data values over the range of included register and RAM addresses. When this summation is added to
the previously stored two’s complement checksum, the result is zero when the new data summation is the same as
that tallied by EECOPY when the checksum was stored.
If EE2K is high when EECOPY is asserted, the lower 2K x 16 address range from 0x0 to 0x07FF is copied from
device registers and RAM to EEPROM. This includes all registers, all configuration tables in RAM and the primary
Descriptor Table in RAM at address 0x0400 to 0x05FF.
If EE2K is low when EECOPY is asserted, the entire 8K x 16 address range from 0x0 to 0x1FFF is copied from
device registers and RAM to EEPROM. This range covers all registers, all configuration tables in RAM and the primary
Descriptor Table in RAM at address 0x0400 to 0x05FF. As long as EE2K remains low when auto-initialization occurs,
the 8K x 16 programming option can initialize secondary Descriptor Tables above address 0x0600, if used.
The 8K x 16 programming option (EE2K equals zero) can also initialize fixed data for any subset of the 32 possible
transmit subaddress buffers, using any of the defined data buffer schemes. To enable EEPROM copy for transmit
subaddress data buffers, the buffer space must be pre-loaded with the desired data. Be sure to reserve space for
Message Information and Time-Tag Word locations, as required for the transmit subaddress buffer method.
Table 18. READY delay times: from MR input pin rising edge to READY output pin rising edge
If memory error occurs, the BMTF bits are set in the “Remote Terminal Built-In Test (BIT) Word Register (0x001E)”.
If the MTSTOFF pin is logic 1, the RAM test is bypassed. This option might be chosen if a faster reset process is
needed. Regardless of the MTSTOFF pin state, all RAM locations above address 0x004F are reset to 0x0000.
3. After internal processes are initialized, the device checks the state of the AUTOEN bit latched into the “Master
Status and Reset Register (0x0001)” at step 1:
If the AUTOEN bit in the “Master Status and Reset Register (0x0001)” is logic 0, auto initialization from EEPROM
is bypassed. After the RAM memory test is complete, the device asserts the READY output pin to indicate that the
device is ready for host initialization of registers and RAM:
• The “Master Configuration Register 1 (0x0000)” is initialized to indicate which terminal devices are enabled
(BCENA and RTENA). If using Bus Monitor, the MTRUN input pin should be logic 1 but the corresponding
MTENA register bit should remain logic 0 until initialization is completed. Likewise, the BCSTART and RTSTEX
bits remain low at this time.
• Other configuration registers are initialized by the host to define interrupt behavior and time tag counter behavior
for enabled terminal devices.
If the AUTOEN bit in the “Master Status and Reset Register (0x0001)” is logic 1, auto initialization from EEPROM
is performed after completion of the RAM memory test. The READY output pin remains at logic 0 during the self-initial-
ization process. Initialization data is read from the previously-written external EEPROM and copied to the entire range
of registers and RAM, from address 0x0000 to address 0x1FFF. This process typically requires 16 ms (see Table 18).
During auto initialization, the written value for each register or RAM location is read back for confirmation. If the value
read fails to match the corresponding value in EEPROM, an initialization error is saved. This error results in action
taken later when the initialization process is finished.
While performing initialization a running checksum is tallied. A properly-configured serial EEPROM contains a 16-
bit checksum value stored at the EEPROM byte pair locations corresponding to RAM address 0x0051. The stored
checksum is tallied as if RAM address 0x0051 equals zero, and twenty-five register locations listed in Table 17 are
also excluded from the stored checksum value. The stored value is actually the twos complement of the 16-bit memory
checksum, (CHECKSUM + 1). As each individual register and RAM location is initialized, its written value is added to a
copy of the stored checksum value from EEPROM. If all locations match at the end, the running checksum tally added
to the twos complemented EEPROM checksum should equal zero.
After initialization, when READY is asserted, the 16-bit twos complement checksum value is copied from EEPROM to
device RAM address 0x0051.
If an initialization error occurred, the following events take place immediately after READY assertion:
• the IRQ interrupt output pin is asserted.
• The “Master Status and Reset Register (0x0001)” is written to indicate type of error. If checksum failure, the
EECKE register bit is asserted. If data mismatch between EEPROM and read back RAM value, the RAMIF
register bit is asserted.
• The EELF bit is asserted in the “Remote Terminal Built-In Test (BIT) Word Register (0x001E)”.
• If RAMIF read back error occurred, the address of the first occurring instance is written to register address
0x0024. See Section “20.3. Memory Test Fail Address Register (0x0024)” on page 201 for further information.
Additional locations beyond the saved address may have mismatch, but only the first instance is logged.
After copying the full range of register and RAM addresses, the RTSTEX and MTENA bits in the “Master Configuration
Register 1 (0x0000)” are still zero. In the same register, the BCSTART bit always reads zero, but the BCACTIVE bit in
the “Master Status and Reset Register (0x0001)” is still zero.
The EEPROM is written using methods described in Section 19.1. Each of the terminal devices can independently
be configured to self-start when error-free auto-initialization is complete, or not self-start, requiring a host write to
the “Master Configuration Register 1 (0x0000)” after READY assertion. In the EEPROM byte pair corresponding to
“Master Configuration Register 1 (0x0000)”:
• If the EEPROM RTSTEX and RTENA bits are both logic 1, and if the RTAPF bit is logic 0 in the “Remote
Terminal Operational Status Register (0x0018)”, the Remote Terminal will automatically start just before READY
Note that automatic-self-start for RT requires the RTAPF status bit to be logic 0 in the “Remote Terminal Operational
Status Register (0x0018)”. This indicates valid odd parity for the terminal address and parity bits latched in the
RT Operational Status Register, not necessarily the state of the RT address and parity pins. Because auto-
initialization follows master reset, the mirrored pin states latched at reset is overwritten by EEPROM values if LOCK
input pin is logic 0.
• When the LOCK input pin is logic 1 at Master Reset rising edge, the “Remote Terminal Operational Status
Register (0x0018)” terminal address and parity bits reflect address input pin states 200ns after reset rising edge.
• When the LOCK input pin is logic 0 at Master Reset rising edge, the latched RT address, parity and LOCK
bit values are overwritten by values from the initialization EEPROM.
If automatic-self-start for RT was blocked due to invalid odd parity for the terminal address and parity bits latched
in the “Remote Terminal Operational Status Register (0x0018)”, the RTSTEX bit cannot be asserted in the “Master
Configuration Register 1 (0x0000)” until the parity error is corrected. The host may overwrite the “Remote Terminal
Operational Status Register (0x0018)” to correct the parity error, then assert RTSTEX in the “Master Configuration
Register 1 (0x0000)”.
If automatic-self-start for terminal devices was blocked due to RAMIF or EECKE auto-initialization errors, the host
can override the error condition after READY assertion by setting the RTSTEX, BCSTART and/or MTENA bits in the
“Master Configuration Register 1 (0x0000)” , providing the other operational conditions (in the 4-bullet list above) are
met.
A method for programming the initialization EEPROM from a fully configured terminal is explained in Section 19. If a
different method is used for writing the serial EEPROM, for successful self-initialization after Master Reset, the twos-
complemented checksum (described earlier) must be saved in EEPROM locations corresponding to device RAM
address 0x0051.
If a different method is used for writing the serial EEPROM, in order to perform soft resets, twos-complement check-
sum must be written for the Remote Terminal at 0x01C0 and the Monitor Terminal at 0x005C.
A compatible serial EEPROM uses a SPI interface for byte-access read and write operations. Sixteen-bit register and
RAM values are stored as upper and lower bytes in the EEPROM, in “big endian” fashion. For example, the upper byte
for register address 0x0000 is stored at EEPROM address 0x0000 while the lower byte is stored at EEPROM address
0x0001. A 16K x 8 EEPROM is required to store the entire 8K x 16 address range.
Serial EEPROM data mapping follows the device memory map shown in Figure 2. The three exceptions:
1. the two EEPROM bytes corresponding to device RAM address 0x0051 must contain the expected overall checksum
value and if software resets are expected
2. the two EEPROM bytes corresponding to device RAM address 0x01C0 must contain the expected terminal
checksum value for Remote Terminal 1
3. the two EEPROM bytes corresponding to device RAM address 0x005C must contain the expected terminal
The serial EEPROM used for auto-initialization should be fully written to cover the upper address limit of 0x1FFF.
Ideally the EEPROM image reflects a post-MR reset followed by fresh initialization by the host, with nothing written to
reset-cleared registers or RAM as a result of command processing.
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MR Reset
RW Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
If the AUTOEN input pin is logic 1, auto-initialization from EEPROM is enabled. When one or more initialized RAM
locations do not match their two corresponding serial EEPROM byte locations, RAMIF bit 13 is set in the “Hardware
Pending Interrupt Register (0x0006)”, as well as RAMIF bit 0 in the “Master Status and Reset Register (0x0001)”. Such
failure may occur during auto initialization, or execution of a partial reset caused by assertion of the RTRESET, or
MTRESET bits in the “Master Status and Reset Register (0x0001)”. The address of the first occurring RAM/EEPROM
mismatch is written to the Memory Test Fail Address Register, 0x0024. Additional locations beyond the saved address
may have mismatch, but just the first instance is logged and the test stops.
RT automatically starts (RTSTEX is set in register 0x0000) after soft reset completion, if these requirements are met:
• The RTENA bit 6 is logic 1 in the “Master Configuration Register 1 (0x0000)” when EECOPY created the EEPROM
image.
• The RTSTEX bit 4 is logic 1 in the EEPROM “Master Configuration Register 1 (0x0000)” image because the
EECOPY unlock codes during programming were Unlock Word 1 = 1010-XXXX-XX11-1010 and Unlock Word 2
= 0101-XXXX-XX00-0101 where X denotes “don’t care”.
To manually start RT after soft reset completion (indicated by READY signal assertion), the host must set RTSTEX bit
4 in register 0x0000, if RT auto-start was disabled or otherwise failed for one or more of these reasons:
• The RTENA bit 6 was logic 0 in the “Master Configuration Register 1 (0x0000)” when EECOPY created the
EEPROM image. A new EEPROM image is needed to allow auto-start after RT soft reset.
• The RTSTEX bit 4 is logic 0 in the EEPROM “Master Configuration Register 1 (0x0000)” image because the
unlock codes used by EECOPY were wrong. A new EEPROM image is needed to allow auto-start after RT soft
reset.
Note: Soft reset for the Bus Monitor re-initializes the buffer address pointers, but does not clear the allocated buffer
space in the buffer(s).
The Bus Monitor automatically starts (MTENA is set in register 0x0000) after soft reset completion, if the following
requirements are met. Message recording commences when a new valid command is received:
• The MTENA bit 8 was logic 1 in the “Master Configuration Register 1 (0x0000)” when EECOPY created the
EEPROM image.
• The MTENA bit 8 is logic 1 in the EEPROM “Master Configuration Register 1 (0x0000)” image because EECOPY
used these unlock codes during EEPROM programming: Unlock Word 1 = 1010-XX11-XXXX-1010 and Unlock
Word 2 = 0101-XX00-XXXX-0101 where X denotes “don’t care”.
To manually start the Bus Monitor after soft reset completion (indicated by READY signal assertion), the host must set
MTENA bit 8 in register 0x0000, if auto-start was disabled or otherwise failed for one or more of these reasons:
• The MTENA bit 8 was logic 0 in the “Master Configuration Register 1 (0x0000)” when EECOPY created the
EEPROM image. A new EEPROM image is needed to allow auto-start after MT soft reset.
• The MTENA bit 8 is logic 0 in the EEPROM “Master Configuration Register 1 (0x0000)” image because the
unlock codes used by EECOPY were wrong. A new EEPROM image is needed to allow auto-start after Bus
Monitor soft reset.
In order to engage 1760 mode, the pin MODE1760 is asserted during a hardware reset. The pin status will be latched
200ns after the rising edge of MR Master Reset (the same time as the RT address). During 1760 mode, the device will
respond to any valid command (with matching RT address) with the BUSY bit set in the status word. No data words
will be transmitted and no interrupts or logging of data will occur. Mode 1760 operation may be confirmed by the host
by reading Mode 1760 Status bit 7 in “Master Configuration Register 2 (0x004E)”.
Within 500ms following power turn-on, the MIL-STD-1760 RT must respond with data as defined by the MIL-STD-1760
standard, with “Busy” status bit reset. The RT host processor must be fully operational at this time. After system
initialization is complete, the host can deactivate 1760 mode by writing “1” to bit 7 in “Master Configuration Register 2
(0x004E)”. Alternatively, bit 4 RTSTEX and bit 6 RTENA in “Master Configuration Register 1 (0x0000)” may be written
“1” either by the host or by EEPROM auto initialization (see “Hardware Master Reset and Optional Auto-Initialization”).
21. SELF-TEST
The HI-6138 provides several host-directed RAM self-tests, as well as an automatic (but optional) RAM self-test
performed after Master Reset. In addition, on-line analog and off-line digital transmit/receive loopback tests are
provided, with different options for BC and RT terminal modes.
The host initiates self-test mode by asserting the TEST input pin to logic 1. When the TEST pin is high, four registers
are active for performing RAM self-test or RT mode loopback self-tests:
AL d
BS IL
BF S
BP T
LB OG
BU C
LB SE
LB AR
LB SS
BS 1
R EL0
BS 2
N se
LB Use
R MA
N AIL
R AS
R TR
IL
R EL
R EL
LB YN
R FA
FA
BS
A
BF
S
ot
FR
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MR Reset
RW R RW R Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
The function of this register is multiplexed by the device TEST input pin. When the TEST pin is logic 0 (normal
operating mode), register address 0x0028 has no function.
When the TEST input pin is logic 1, register address 0x0028 functions as the Self-Test Control Register, a Read-Write
register used for RAM memory testing, or analog or digital loopback tests. Bits 0, 1, 8, 9 are Read-Only. The remaining
bits in this register are Read-Write.
After test completion, the TEST input pin should be reset to logic 0, restoring all register bits to Read-Write.
Descriptions below apply when the TEST input pin is logic 1; the register is operating as the Self-Test Control Register.
This register supports two types of test: Register bits 15 - 8 are used for RAM built-in self test (RAM BIST). Register
bits 5 - 0 are used for transceiver loopback testing (either digital loopback or analog loopback).
Under internal logic control, this device uses one RAM self test (Inc / Dec Test described below) to check internal
RAM memory after every MR pin master reset, unless the MTSTOFF input pin is logic 1. This option may be used to
speed up reset completion. Self-Test Control Register bits 15 - 8 provide a means for the host to perform RAM self-
test at other times. Register bits 13:11 select RAM test type. Then bit 10 assertion starts the selected RAM test, and
bits 9-8 report a pass/fail result after test completion. All tests are destructive, overwriting data present before test
NOTE: ‘Reset’ refers to bit value following either Master Reset (MR) or software reset.
Test
RBSEL2:0 Selected RAM Test
Time
000 Idle -
111 Idle -
7,6 ----- R 0 Not Used. These bits cannot be set. A READ will return 0-0.
4 LBSYNC R/W 0 When the LBSYNC bit is high, the loopback test word is transmitted with
command sync. When the LBSYNC bit is low, the loopback test word is
transmitted with data sync.
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MR Reset
RW Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
This register is cleared after MR pin master reset, but is not affected by SRST software reset. The function
of this register is multiplexed by the device TEST input pin. When TEST is logic 0 (normal operating mode), register
address 0x001F is the “Remote Terminal Alternate Built-In Test (BIT) Word Register (0x001F)”.
When the TEST input pin is logic 1, register address 0x001F becomes the Loopback Test Transmit Data Register, a
Read-Write register used for analog or digital loopback tests. When a loopback test is performed, the value in this
register is transmitted, and should appear in the Loopback Test Receive Data Register 0x0002. See Section “21.2.1.
Self-Test Control Register (0x0028)” on page 205 (bits 0-5) for additional information.
After test completion, the TEST input pin should be reset to logic 0. The host should restore the desired alternate BIT
Word value for the RT at register address 0x001F.
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MR Reset
R Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
This register is cleared after MR pin master reset, but is not affected by SRST software reset. The function of
this register is multiplexed by the device TEST input pin. When the TEST input pin is logic 0 (normal operating mode),
register address 0x0002 is the “Remote Terminal Current Command Register (0x0002)”.
When the TEST input pin is logic 1, register address 0x0002 becomes the Loopback Test Receive Data Register, a
read-only register used for analog or digital loopback tests. When loop back is performed, the value in the Loopback
Test Transmit Data Register 0x001F is transmitted and should appear in this register. See Section “21.2.1. Self-Test
Control Register (0x0028)” on page 205 (bits 0-5) for additional information.
After test completion, the TEST input pin should be reset to logic 0, reverting this register address 0x0002 to the read-
only “Remote Terminal Current Command Register (0x0002)”. The contained register value will not have meaning until
the RT receives its next valid command.
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MR Reset
RW Host Access
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit
The function of this register is multiplexed by the device TEST input pin. When the TEST input pin is logic 0 (normal
operating mode), this register address is the “Remote Terminal Current Message Information Word Register (0x001B)”.
When the TEST input pin is logic 1, register address 0x001B becomes the RAM Self-Test Fail Address Register.
Upon test completion, Self-Test Control Register bit 9 (see Section “21.2.1. Self-Test Control Register (0x0028)” on
page 205) is set if the test passed, otherwise bit 8 is set if the test failed. If failure occurs, the first failed RAM address
is written to the RAM Self-Test Fail Address Register. (This is actually an offset value within a memory quadrant; see
the Self-Test Control Register bit 8 description.) Memory test fail also asserts the BTMF (BIST Memory Test Fail) bit 3
At test completion, the host should clear the Self-Test Control Register 0x0028, and then reset the TEST input pin to
logic 0.
After asserting the TEST input pin, RAM self-test is configured and started by writing bits 15:10 in the Self-Test Control
Register, described on page 205. Register bits 13:11 select one of the five test protocols. Register bit 15 is usually set
to provide unrestricted RAM read/write access. Register bit 10 is then asserted to start the RAM test selected by bits
13:11. All of these bits may be written simultaneously, and bits 7:0 should be written as zeros. Test time varies based
on complexity; test times are shown in the Self-Test Control Register description.
Upon RAM test completion, “Self-Test Control Register (0x0028)” bit 9 is set if the RAM test was successful, otherwise
bit 8 is set if the test failed. If failure occurs, the first failed RAM address is written to the “RAM Self-Test Fail Address
Register (0x001B)”. The written value is actually an offset value within a memory quadrant; see “Self-Test Control
Register (0x0028)”, bit 8. Memory test fail also asserts the BTMF (BIST Memory Test Fail) bit 3 in “Remote Terminal
Built-In Test (BIT) Word Register (0x001E)”.
At RAM test completion, the host should clear the Self-Test Control Register 0x0028, reset the TEST input pin to logic
0, then re-initialize registers and RAM, and finally restart terminal execution.
RT mode loopback testing requires the RT to be enabled. If the RT is not already running, set the RTENA bit in “9.1.
Master Configuration Register 1 (0x0000)”. Then set the RTSTEX bit in “Master Configuration Register 1 (0x0000)”.
Then initiate test mode by asserting the TEST input pin to logic 1. Note, prior to off-line Digital RT-Mode Loopback
testing, bit 0, BCLBK, in “Master Configuration Register 2 (0x004E)” must be asserted.
Write a 16-bit transmit value to the “Loopback Test Transmit Data Register (0x001F)”. With the TEST input set to logic
1, the host can write bits 5:3 in the Self-Test Control Register 0x0028 to select analog or digital loopback, command
sync or data sync, and select test Bus A or Bus B. Then, without modifying bits 5:3, write the Self-Test Control Register
again to set bit 2, starting loopback test. Note: Self-Test Control Register bits 5:2 can be written simultaneously; the
remaining register bits 15:6 and 1:0 should all be written as zeros.
After 50μs or so, RT loopback transmission is complete. Self-Test Control Register bit 1 is set for successful loopback
test, otherwise bit 0 is set if loopback failed. The received word has been written into the “Loopback Test Receive Data
Register (0x0002)”. It should match the value in the “Loopback Test Transmit Data Register (0x001F)”. Test failure
also asserts either the LBFA (Loopback Fail A) bit 5 or LBFB (Loopback Fail B) bit 4 in the “Remote Terminal Built-In
Test (BIT) Word Register (0x001E)”.
At RT loopback test completion, the host should clear Self-Test Control Register 0x0028, and then reset the TEST
input pin to logic 0.
The BC Instruction List in RAM comprises a series of 2-word entries, an instruction Op Code Word followed by a
Parameter Word. While sequencing through the Instruction List, the BC control logic fetches and executes conditional
and unconditional instruction op codes referenced by the “Bus Controller (BC) Instruction List Pointer (0x0034)”. For
executable messages, the Parameter Word following the Op Code Word contains the starting address of a Message
Control/Status Block.
As described in Section “10.4. Bus Controller Message Control / Status Blocks” on page 67, each Message Control/
Status Block begins with a BC Control Word. When Control Word SELFTST bit 6 is set, off-line self-test is enabled,
inhibiting transmission onto the 1553 bus. Instead the output of the bus Manchester II serial encoder is routed directly
to the decoder input for the bus selected by Control Word bit 7 (USEBUSA). A validity check is performed on the
received replica of each transmitted word (sync, encoding, bit count and parity). As received, each word replica is
stored in the Loopback Word location in the Message Control/Status Block. The data value for the final word received
is also checked with the transmitted final word. If any word fails validity check (or if the final word has data mismatch)
test logic sets the LBE (loopback error) bit 8 in the Block Status Word.
After message processing, off-line self-test success or failure can be determined by reading the received Loopback
Word (stored in the Message Control/Status Block if BC is using 16-bit time base) or by reading the LBE (loopback
error) bit 8 in the Block Status Word. (Note: If the BC is using 32-bit time base, the final received loopback word in the
Loopback Word location is overwritten at the end of message post-processing when time tag bits 31:16 are written
there.)
The “BADMSG” BC condition code 0xC is updated based on the outcome of the off-line SELFTST loopback message.
BADMSG is set to logic 1 for Loopback Test error. This permits conditional execution, including jumps or subroutine
calls, based on the outcome of the message having SELFTST asserted in its Control Word.
The BADMSG condition code is also set for Format Error or No Response error, but is not affected by a Status
Set condition. For non-broadcast commands using off-line SELFTST loopback, No Response error always occurs
since the BC message processor expects an RT response. Since BC bus transmission is inhibited, off-line SELFTST
loopback should use broadcast commands. This avoids BADMSG condition codes caused by No Response error.
The “BADMSG” BC condition code 0xC is updated based on the outcome of continuous BC-mode analog loopback
checking. The BADMSG condition code is set for Loopback Error, Format Error or No Response error, but is not
affected by a Status Set condition. BC analog loopback failure also sets LBE loopback error bit 8 in the Block Status
Word.
The SPI (Serial Peripheral Interface) protocol specifies master and slave operation; the HI-6138 operates as an SPI
slave.
The SPI protocol defines two parameters, CPOL (clock polarity) and CPHA (clock phase). The possible CPOL-CPHA
combinations define four possible “SPI Modes.” Without describing details of the SPI modes, the device operates in
the two modes where input data for each device (master and slave) is clocked on the rising edge of SCK, and output
data for each device changes on the falling edge. These are known as SPI Mode 0 (CPHA = 0, CPOL = 0) and SPI
Mode 3 (CPHA = 1, CPOL = 1). Be sure to set the host SPI logic for one of these modes.
The difference between SPI Modes 0 and 3 is the idle state for the SCK signal, which is logic 0 for Mode 0 state and
logic 1 for Mode 3 state (see Figure 23). There is no configuration setting to select SPI Mode 0 or Mode 3 because
compatibility is automatic. Beyond this point, the data sheet only shows the SPI Mode 0 SCK signal in timing diagrams.
The SPI protocol transfers serial data as 8-bit bytes. Once CE chip enable is asserted, the next 8 rising edges on
SCK latch input data into the master and slave devices, starting with each byte’s most-significant bit. The SPI can be
clocked at 40 MHz.
SI MSB LSB
High Z High Z
SO MSB LSB
CE
Figure 23. Generalized Single-Byte Transfer Using SPI Protocol. SCK is Shown for SPI Modes 0
and 3
Multiple bytes may be transferred when the host holds CE low after the first byte transferred, and continues to clock
SCK in multiples of 8 clocks. A rising edge on CE chip enable terminates the serial transfer and reinitializes the SPI
for the next transfer. If CE goes high before a full byte is clocked by SCK, the incomplete byte clocked into the device
SI pin is discarded.
In the general case, both master and slave simultaneously send and receive serial data (full duplex) per Figure 23.
However the device operates half duplex, maintaining high impedance on the SO output, except when actually trans-
mitting serial data. When sending data on SO during read operations, activity on its SI input is ignored. Figure 24 and
Figure 25 show actual behavior for the SO output.
The SPI command set uses the most significant command bit to specify whether the command is Read or Write. The
command byte MSB is zero for read commands, and one for write commands.
0-0-R-R-R-R-0-0
where RRRR is the 4-bit register address. These fast-access read commands appear in Table 21.
1-0-R-R-R-R-R-R
where RRRRRR is the 6-bit register address. The fast-access write commands appear in Table 21.
Figure 24 and Figure 25 show read and write timing as it appears for fast-access register operations. The command
byte is immediately followed by two data bytes comprising the 16-bit data word read or written. For a register read or
write, CE is negated after the 2-byte data word is transferred.
The active Memory Address Pointer is selected by writing the MAPSEL bits 11-10 in the “Master Configuration Register
1 (0x0000)”. Or use the SPI instruction op codes 0xD8, 0xD9, 0xDA or 0xDB which enable MAP registers 0x000B,
0x000C, 0x000D or 0x000E respectively, by automatically writing MAPSEL bits 11-10 in the “Master Configuration
Register 1 (0x0000)”.
To write the active MAP register, use a fast-access write op code, followed by the desired 16-bit memory address:
• Writing MAP register 0x000B uses SPI op code 0x8B followed by 16-bit address.
• Writing MAP register 0x000C uses SPI op code 0x8C followed by 16-bit address
• Writing MAP register 0x000D uses SPI op code 0x8D followed by 16-bit address.
• Writing MAP register 0x000E uses SPI op code 0x8E followed by 16-bit address.
To read the active MAP register, use a fast-access write op code. The current MAP 16-bit value is clocked out in the
next 16 sequential SCK clock cycles:
• Reading MAP register 0x000B uses SPI op code 0x2C
• Reading MAP register 0x000C uses SPI op code 0x30
• Reading MAP register 0x000D uses SPI op code 0x34
• Reading MAP register 0x000E uses SPI op code 0x38
While SPI command op codes are always 8 bits, transacted addresses and register or memory data are always 16-
bit words, transferred by the SPI as two sequential bytes. After a 2-byte read/write completion, the active Memory
Address Pointer automatically increments to the following register address. The host can extend the read or write
operation to the next register address by continuing to hold CE low while clocking SCK 16 additional times. This auto-
increment feature can be used to access one or more sequential register addresses above the command address.
Auto-increment applies (ranging to the top of the address space) as long as SCK continues to be clocked under
continuous CE assertion. Caution: When the primary address pointer is used for auto-incrementing multi-word read/
write and reaches the top of the address range (0x1FFF) the next increment rolls over the MAP value to 0x0000. The
host should avoid this situation.
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
SCK
SPI Mode 0
MSB LSB
SI
CE
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
SCK
SPI Mode 0
SI
Command Byte Data Byte 0 Data Byte 1
High Z
SO
CE
The “Add 4” command may be useful when sequentially accessing the same word (for example, the Control Word) in
a series of 4-word Descriptor Table entries. The “Add 2” command might be useful for reading the Interrupt Log Buf-
fer, comprised of 2-word log entries. In both cases, the Add command would be probably followed by Read command
0x40 to read the location addressed by the current pointer value. Similarly, Write command 0xC0 writes the location
addressed by the current pointer value. Two command bytes cannot be “chained”; the host SPI Slave Select CE must
be negated after the Add command, then reasserted for the following Read or Write command.
The active Memory Address Pointer is not affected by fast-access read/writes to the low register addresses because
fast-access SPI commands use a separate, internal pointer not directly accessible to the host.
Two single-byte SPI commands use the current value of the enabled Memory Address Pointer without first loading or
otherwise modifying it:
Either of these commands can be used to read or write a single location, or may be used to start a multi-word read or
write that uses the MAP pointer’s auto-increment feature.
There is an exception: read cycle prefetch is blocked when the next RAM address is a Control Word in the RT
Descriptor Table. If allowed, pre-fetch (like any other read) resets the Control Word DBAC status bit. To preserve
DBAC status bit function, prefetch is disabled when reading Control Words within Descriptor Table address range.
The table base address (set by the value in “Remote Terminal Descriptor Table Base Address Register (0x0019)”) and
every fourth word thereafter is a Control Word. This consists of table addresses having these offsets from the table
start address: 0, 4, 8, 0xC through and including 0x1F8 and 0x1FC. See further information in Section 22.8.
These two commands can be used to read or write a single location, or may be used to start a multi-word read or write
that uses the pointer’s auto-increment feature.
Using a single-byte SPI command, the active Memory Address Pointer can be directly loaded with the memory ad-
dress for the RT descriptor table Control Word corresponding to the last completed MIL-STD-1553 command. The
Control Word is then read.
This command can be used to read just the current RT Control Word, or may be used to start a multi-word read be-
cause memory pointer auto-increment occurs after the Control Word is read.
Primary use occurs when the RT Descriptor Table Control Word was just read. For example, the last op code performed
was 0x48, reading the RT Control Word for the last command. After reading the Control Word, the enabled Memory
Address Pointer automatically incremented. The host can examine flag bits contained in the just-read Control Word
to determine the applicable data buffer (e.g., Data Buffer A, Data Buffer B or the Broadcast Data Buffer) then directly
service that buffer using these op codes; the three data buffer pointers occur in the three words following the initially
read Control Word.
These six commands can be used to read or write a single location, or may be used to start a multi-word read or write
that uses the pointer’s auto-increment feature.
When some or all subaddress or mode commands are not programmed to trigger host interrupts, a different single-
byte SPI command may be useful if polling the RT Descriptor Table for message activity. In this situation, the host may
poll a series of Descriptor Table Control Words looking for instances where the DBAC activity bit is set. The DBAC
(Descriptor Block Accessed) flag is set in the Control Word each time the corresponding command is completed. The
process of reading the Control Word automatically resets the register’s DBAC bit so the host can detect activity the
next time the DBAC flag is set by the device.
Primary use occurs when the address pointer initially points to the first Descriptor Table Control Word in a series of
Control Words to be polled (every fourth word).
After 8 SCK clocks for the SPI command, each instance of this command reads a single location using 16 SCK clocks.
If CS remains low after 24 clocks and SCK continues, a multi-word read begins, using the address pointer’s auto-
increment feature. The second word read is at (Control Word address + 4), the next Control Word in the table.
Another single-byte SPI command is useful when servicing interrupts. When enabled interrupts occur, two words are
written to the circular 64-word Interrupt Log Buffer, and the Interrupt Log Address register 0x000A is updated to show
the storage address where interrupt information words will be stored for the next occurring interrupt. Buffer starting
address is 0x0180 and ending address is 0x01BF. Because two words are written to the buffer for each interrupt, the
Interrupt Log Address register always contains an even value in the range of 0x0180 to 0x01BE.
When servicing an interrupt that just occurred, the host wants timely information on that interrupt. An SPI command is
provided to simplify interrupt handling:
Note: Bits 15:9 in the Interrupt Log Address register contain the interrupt count since the Log Address register was last
read. These bits are not written to the Memory Address Pointer.
This command can be used to read a single location (the last-written Interrupt Address Word), or may be used to
start a multi-word read in which the Memory Address Pointer automatically decrements after each word is read, read-
ing words stored in the Interrupt Log Buffer, in Last In First Out order. This is the only SPI op code that decrements
the Memory Address Pointer for multi-word operations. Repeated memory pointer decrements will wrap around the
0x0180 to 0x01BF Interrupt Log Buffer boundary.
Using SPI command op codes, the host must consider prefetch and pointer behavior when reading data from the
Descriptor Table. Applied outside the RT Descriptor Table, the following SPI sequence would read data from six
successive memory addresses. But below, applied within the table, the sequence gets stuck at the fourth word read.
Below we assume the RT Descriptor Table starts at default base address, 0x0400. The host first uses SPI op codes
0xD8 and 0x8B to enable Memory Address Pointer 0x000B then write the table start address 0x0400 into it. The
sequence then uses op code 0x40 (and MAP auto-increment) to read the first MAP-addressed location and successive
locations.
Notice: There is no MAP auto-increment or data prefetch when MAP equals 0x0403, so the final two read cycles
repeat the previous read value and address.
FROM FROM
HOST HI-6138 COMMENT
===== ======= ==========================================
0xD8 ---- SPI op enables memory address pointer (MAP) 0x000B.
0x8B ---- SPI op code writes memory address pointer (MAP).
0x0400 ---- RT Descriptor Table start address written to MAP.
0x40 ---- SPI op code to “read location addressed by MAP”
---- <data> data from 0x0400 (SCK continues afterward)
---- <data> data from 0x0401 (SCK continues afterward)
---- <data> data from 0x0402 (SCK continues afterward)
---- <data> data from 0x0403 (SCK continues afterward, Control Word next)
---- <data> data from 0x0403 (SCK continues afterward, Control Word next)
---- <data> data from 0x0403 (SCK stops and /CS is then negated)
Using a different SPI op code sequence, the host can read the entire RT Descriptor Table without getting stuck at the
first Control Word read by the multi-word transfer using op code 0x40:
FROM FROM
HOST HI-6138 COMMENT
===== ======= ==========================================
0xD8 ---- SPI op enables memory address pointer (MAP) 0x000B.
0x8B ---- op code writes memory address pointer (MAP)
0x03FF ---- decremented table start addr 0x0400 - 1 written to MAP
The host may repeat this sequence until the entire RT Descriptor Table is read. The repeating read process is not
shown, but the sequence could end like this, stopping at the upper table boundary…
In most situations, the repeating op code block (0xD0 with 8 SCK clocks and op code 0x40 with 72 SCK clocks) would
be implemented as a loop, rather than straight-line code. A total of 128 loop repetitions would be required to read the
RT Descriptor Table from start to finish.
and so on, .
to 63 decimal .
decimal 63
is end of write
address range
Hex Read or
Read
Byte Write
0xD0 ------- Add 1 to the current value of the enabled Memory Address Pointer
0xD2 ------- Add 2 to the current value of the enabled Memory Address Pointer
0xD4 ------- Add 4 to the current value of the enabled Memory Address Pointer
Read / Write RAM or Register Location Using Current Address Pointer Value
0x40 R Read location addressed by the current value of the enabled Memory Address Pointer
0xC0 W Write location addressed by the current value of the enabled Memory Address Pointer
0xC8 W Write addressed location after incrementing the enabled Memory Address Pointer
0x68 R Add 0 to the current value of the enabled Memory Address Pointer. Then . . .
0x70 R Add 1 to the current value of the enabled Memory Address Pointer. Then . . .
Add 2 to the current value of the enabled Memory Address Pointer. Then copy value from
0x78 R newly addressed location to the enabled Memory Address Pointer then read newly addressed
location.
0xE8 W Add 0 to the current value of the enabled Memory Address Pointer. Then . . .
0xF0 W Add 1 to the current value of the enabled Memory Address Pointer. Then . . .
Add 2 to the current value of the enabled Memory Address Pointer. Then copy value from
0xF8 W newly addressed location to the enabled Memory Address Pointer then write newly addressed
location.
0x60 R Read then add 4 to the current value of the enabled Memory Address Pointer.
Write storage address of last-written Interrupt Address Word to the enabled Memory Address
0x58 R Pointer, then read the Interrupt Address Word from the Interrupt Log buffer.
Decrement Memory Address Pointer after read operation
Bits Updated
Circumstances for Terminal Response to Bits Updated in Data Interrupt
in Descriptor
Received Message Received Command Buffer Msg Info Word Options
Control Word
Bits Updated
Circumstances for Terminal Response to Bits Updated in Data Interrupt
in Descriptor
Received Message Received Command Buffer Msg Info Word Options
Control Word
Bits Updated
Circumstances for Terminal Response to Bits Updated in Data Interrupt
in Descriptor
Received Message Received Command Buffer Msg Info Word Options
Control Word
RT-RT receive
command (CW1 is
valid). The transmitting
RT response has one
MERR bit set.
of these errors:
BUISID bit reset.
invalid word No terminal response.
RTRT bit set.
(Manchester, Set Message Error (ME) status. DBAC bit set. MERR
IWDERR bit set,
(sync, bit count, If RT-RT Command Word 1 is BCAST bit reset. IWA
or WCTERR bit set
parity or word count broadcast (RT31) also set DPB bit toggles. IBR
for Tx RT Busy case.
error). Also includes the BCR status bit.
ILCMD bit reset.
transmitting RT
(Other error bits reset).
response with Message
Error or Busy status
followed by no data
words.
RT-RT command
Normal Status Word
where CW2 is a
response. Clear status
valid non-mode Normal CS update:
is transmitted with the
(subaddress 1-30) BUSID bit updated.
commanded number of DBAC bit set.
transmit command. MERR bit reset. IWA
data words. Data words for BCAST bit reset.
CW1 is a non-mode ILCMD bit reset. (IXEQZ)
transmit are read from the DPB bit toggles.
receive command RTRT bit set.
RAM data buffer assigned
for RT31. (Normal (All error bits reset).
in the Descriptor Table entry
broadcast RT-RT
for the transmit subaddress.
transmit)
No terminal response,
the message is ignored.
Valid undefined
No Status Word change.
mode code
NOTE:
command. The No Message Info Word
This only applies for the No change None
UMCINV bit in the RT is written
undefined mode codes:
Configuration
MC0 to MC15 with T/R = 0
Register equals 1.
MC16,18 & 19 with T/R = 0
MC17,20 & 21 with T/R = 1
Bits Updated
Circumstances for Terminal Response to Bits Updated in Data Interrupt
in Descriptor
Received Message Received Command Buffer Msg Info Word Options
Control Word
Bits Updated
Circumstances for Terminal Response to Bits Updated in Data Interrupt
in Descriptor
Received Message Received Command Buffer Msg Info Word Options
Control Word
If bit in Illegalization Table that DBAC bit set. ILCMD bit set. ILCMD
corresponds to the undefined BCAST bit BUSID bit updated. IWA
mode code command equals updated. MERR bit reset. IBR
1 ** DPB bit toggles. RTRT bit reset.
Set Message Error (ME) status, (Other error bits reset.)
If not broadcast (RT31),
transmit
Status Word without a
following mode data word.
If broadcast (RT31), also
assert the BCR status bit.
OR
If bit in Illegalization Table that DBAC bit set. Normal CS update: IWA
corresponds to the undefined BCAST bit BUSID bit updated. IBR
mode code command equals updated. MERR bit reset. (IXEQZ)
Valid undefined mode
0* DPB bit toggles. ILCMD bit reset.
code command.
Normal Status Word (Clear RTRT bit reset.
The UMCINV bit
Status) response. If command (All error bits reset.)
in the RT Configuration
was broadcast (RT31),
Register equals 0.
assert the BCR status bit.
AND
For mode codes 16-31
with T/R bit = 1 which
transmit a data word,
the word for transmit
is read from the Mode
Command Data Table.
AND
For all mode commands
with mode data word
(mode codes 16-31),
the transmitted or
received data word is
written to command’s
Descriptor Word 4.
* Terminal is using “illegal command detection” and command is legal
OR terminal is not using “illegal command detection” and command may be legal or illegal (in form response).
** Terminal is using “illegal command detection” and command is illegal.
Bits Updated
Circumstances for Terminal Response to Bits Updated in Data Interrupt
in Descriptor
Received Message Received Command Buffer Msg Info Word Options
Control Word
Superseded Message:
No change No Msg Info None for
Terminal receives an
to superseded Word written for super-
incomplete message Terminal aborts processing
command’s the superseded seded
interrupted by a gap for first message and
Control Word. command. command
of at least 3.5 us, responds in full to the
followed by a new second (superseding)
For superseding For superseding IWA
valid command on message. The Status
command’s command’s IBR
the same bus or Word BCR bit reflects
Control Word: data buffer, a (IXEQZ)
on the other bus broadcast status for:
DBAC bit set. normal CS update:
OR the second command,
BCAST bit BUSID bit updated.
Terminal is transacting unless second command
updated MERR bit reset.
a transmit message on is MC2 (transmit status)
DPB bit toggles. ILCMD bit reset.
one bus and receives or MC18 (transmit last
RTRT bit updated.
the start of a valid command).
(All error bits reset.)
command on the other
bus.
Bits Updated
Circumstances for Terminal Response to Bits Updated in Data Interrupt
in Descriptor
Received Message Received Command Buffer Msg Info Word Options
Control Word
DYNAMIC BUS
See Dynamic Bus Control
CONTROL (MC0):
Enable, DBCENA bit 10 in
Mode code command
“Remote Terminal Configuration
with mode code
Register (0x0017)” on page
00000 and T/R bit
119.
equals 1
* Command is illegal but terminal is not using “illegal command detection” (in form response).
** Command is illegal and terminal is using “illegal command detection”
*** Undefined mode command rendered invalid by UMCINV option bit. Command’s bit in Illegalization Table is “don’t care”.
Bits Updated
Circumstances for Terminal Response to Bits Updated in Data Interrupt
in Descriptor
Received Message Received Command Buffer Msg Info Word Options
Control Word
* Command is illegal but terminal is not using “illegal command detection” (in form response).
** Command is illegal and terminal is using “illegal command detection”
Bits Updated
Circumstances for Terminal Response to Bits Updated in Data Interrupt
in Descriptor
Received Message Received Command Buffer Msg Info Word Options
Control Word
MC1 EXCEPTIONS:
Bits Updated
Circumstances for Terminal Response to Bits Updated in Data Interrupt
in Descriptor
Received Message Received Command Buffer Msg Info Word Options
Control Word
MC2 EXCEPTIONS:
Bits Updated
Circumstances for Terminal Response to Bits Updated in Data Interrupt
in Descriptor
Received Message Received Command Buffer Msg Info Word Options
Control Word
MC3 EXCEPTIONS:
Bits Updated
Circumstances for Terminal Response to Bits Updated in Data Interrupt
in Descriptor
Received Message Received Command Buffer Msg Info Word Options
Control Word
The device automatically shuts down either transmit and receive or transmit only for the inactive bus,
depending on the state of the BSDTXO bit in the Master Configuration Register. Refer to the description of the
AUTOBSD bit in the “Remote Terminal Configuration Register (0x0017)” for further information. When MC4 results
in transmitter shutdown, the condition is reflected by assertion of a TXASD or TXBSD bit in the corresponding
“Remote Terminal Built-In Test (BIT) Word Register (0x001E)”. If BSDTXO equals logic 0, an RXASD or RXBSD
bit will also be asserted, indicating full bus shutdown (transmit and receive). Once shutdown, the inactive bus
transmitter (or transmitter and receiver) can be reactivated by an “Override Transmitter Shutdown” MC5 or MC21
or “Reset Remote Terminal” MC8 mode code command, or by software reset (initiated by setting the RTRESET
bit in the “Master Status and Reset Register (0x0001)”) or by hardware reset initiated by asserting the MR Master
Reset input pin.
MC4 EXCEPTIONS:
Bits Updated
Circumstances for Terminal Response to Bits Updated in Data Interrupt
in Descriptor
Received Message Received Command Buffer Msg Info Word Options
Control Word
The device automatically re-enables transmit and receive for the inactive bus, without considering BSDTXO bit
status in the Master Configuration Register. The device affirms re-enabled bus status by resetting all four TXASD,
TXBSD, RXASD and RXBSD “shutdown status” bits in the “Remote Terminal Built-In Test (BIT) Word Register
(0x001E)”. Note: If the TXINHA or TXINHB input pins are asserted, the device cannot override the resulting
hardware transmit inhibit for the affected bus. In this case, the corresponding TXASD and/or TXBSD bits remain
high. See Built-In Test Register description for further information.
MC5 EXCEPTIONS:
Bits Updated
Circumstances for Terminal Response to Bits Updated in Data Interrupt
in Descriptor
Received Message Received Command Buffer Msg Info Word Options
Control Word
The device automatically sets the TF Inhibit bit in the “Remote Terminal Built-In Test (BIT) Word Register
(0x001E)”. While the TF inhibit bit is set, the device disregards assertion of the Terminal Flag (TF) bit in the
“Remote Terminal MIL-STD-1553 Status Word Bits Register (0x001A)” and only transmits status with the Terminal
Flag status bit reset.
Once the Terminal Flag has been inhibited, it can be reactivated by an “Override Inhibit Terminal Flag” MC7
or “Reset Remote Terminal” MC8 mode command, by software reset (asserting the SRST bit in the “Remote
Terminal Configuration Register (0x0017)”) or by asserting the MR master reset input pin.
MC6 EXCEPTIONS:
Bits Updated
Circumstances for Terminal Response to Bits Updated in Data Interrupt
in Descriptor
Received Message Received Command Buffer Msg Info Word Options
Control Word
The device automatically resets the TF Inhibit bit in the “Remote Terminal Built-In Test (BIT) Word Register
(0x001E)”. While the TF inhibit bit is reset, the device transmits status with the Terminal Flag status bit set if the
Terminal Flag (TF) bit is asserted in the “Remote Terminal MIL-STD-1553 Status Word Bits Register (0x001A)”.
MC7 EXCEPTIONS:
Bits Updated
Circumstances for Terminal Response to Bits Updated in Data Interrupt
in Descriptor
Received Message Received Command Buffer Msg Info Word Options
Control Word
After Status transmission, the device automatically resets the status Message Error (ME) Busy and Broadcast
Command received (BCR) bits in its internal status register. The BIT Word at shared RAM address is reset to
0x0000. If either transmitter was shutdown, the shutdown condition is overridden. If the Terminal Flag (TF) status
bit was inhibited, the inhibit is reset.
This command does not reset any of the host-programmed registers that configure the terminal for operation. To
complete the terminal reset process, the host must assert either MR hardware master reset (with or without auto-
initialization) or assert the SRST bit in the “Remote Terminal Configuration Register (0x0017)” to execute software
reset. See following section entitled Reset and Initialization for additional details. Because MC8 requires host
interaction, most applications will probably utilize the IWA interrupt to alert the host when received.
MC8 EXCEPTIONS:
Bits Updated
Circumstances for Terminal Response to Bits Updated in Data Interrupt
in Descriptor
Received Message Received Command Buffer Msg Info Word Options
Control Word
Bits Updated
Circumstances for Terminal Response to Bits Updated in Data Interrupt
in Descriptor
Received Message Received Command Buffer Msg Info Word Options
Control Word
Default CS response:
Reset Message Error (ME)
TRANSMIT VECTOR and BCR status bits. then Normal CS update:
WORD (MC16): transmit Status Word BUSID bit updated.
DBAC bit reset.
Mode code command followed by the data word MERR bit reset.
BCAST bit reset. IWA
with mode code stored in the assigned index or ILCMD bit reset.
DPB bit toggles.
10000 ping-pong data buffer (or in RTRT bit reset.
and T/R bit equals 1 Descriptor Word 4 for SMCP (All error bits reset.)
Simplified Mode Command
Processing).
MC16 EXCEPTIONS:
Bits Updated
Circumstances for Terminal Response to Bits Updated in Data Interrupt
in Descriptor
Received Message Received Command Buffer Msg Info Word Options
Control Word
Device stores received data word in the assigned ping-pong or index data buffer (or in Descriptor Word 4 for
SMCP Simplified Mode Command Processing). “Remote Terminal Configuration Register (0x0017)” MCOPT2
and MCOPT3 bits allow automatic Time-Tag count loading using the data word received. If MCOPT2 equals
1, the received data word is automatically loaded to the Time-Tag counter if the low order bit of the received
data word (bit 0) equals 0. If MCOPT3 equals 1, the received data word is automatically loaded to the Time-Tag
counter if the low order bit of the received data word (bit 0) equals 1. If both bits are set, the received data word
is unconditionally loaded into the Time-Tag counter. For non-broadcast commands, counter load occurs before
status word transmission.
MC17 EXCEPTIONS:
Bits Updated
Circumstances for Terminal Response to Bits Updated in Data Interrupt
in Descriptor
Received Message Received Command Buffer Msg Info Word Options
Control Word
Bits Updated
Circumstances for Terminal Response to Bits Updated in Data Interrupt
in Descriptor
Received Message Received Command Buffer Msg Info Word Options
Control Word
Transmitted data word is automatically provided from an internal register, and is copied to assigned index or ping-
pong buffer (or to Descriptor Word 4 for SMCP Simplified Mode Command Processing)
MC18 EXCEPTIONS:
Bits Updated
Circumstances for Terminal Response to Bits Updated in Data Interrupt
in Descriptor
Received Message Received Command Buffer Msg Info Word Options
Control Word
Transmitted data word is automatically copied to the assigned index or ping-pong buffer (or to Descriptor Word 4
for SMCP Simplified Mode Command Processing)
MC19 EXCEPTIONS:
Bits Updated
Circumstances for Terminal Response to Bits Updated in Data Interrupt
in Descriptor
Received Message Received Command Buffer Msg Info Word Options
Control Word
After Status Word transmission, the device stores received data word in the assigned index or ping-pong buffer
(or in Descriptor Word 4 if SMCP Simplified Mode Command Processing applies).
If the AUTOBSD bit in the “Remote Terminal Configuration Register (0x0017)” equals 0, the received data word is
compared to the value in the Bus Select Register corresponding to the inactive bus. For example, if the command
is received on Bus A, the comparison uses the Bus B Select Register value. If the compared values match, the
device automatically shuts down either transmit and receive or transmit only for the inactive bus, depending on
the state of the BSDTXO bit in the “Master Configuration Register 1 (0x0000)”. See descriptions for the BSDTXO
bit in Master Configuration Register and the AUTOBSD bit in the RT Configuration Register for further information.
When a bus transmitter (or transmitter and receiver) is shut down by this mode command, bus status is reflected
by assertion of a TXASD or TXBSD bit in the “Remote Terminal Built-In Test (BIT) Word Register (0x001E)”. If
BSDTXO equals logic 0, an RXASD or RXBSD bit will also be asserted.
If the AUTOBSD bit in the “Remote Terminal Configuration Register (0x0017)” equals 0, the IWA interrupt is
typically used to alert the host when an MC20 command is received. The host must evaluate whether the
received mode data word matches the bus selection criteria. If bus selection match occurs, the host fulfills bus
shutdown command using one of two options:
1. set the bus shutdown bit RTINHA or RTINHB for the inactive bus in the “Remote Terminal Configuration Regis-
ter (0x0017)” to inhibit both transmit and receive,
OR
2. assert the transmit shutdown input pin TXINHA or TXINHB for the inactive bus to inhibit only transmit. The
inactive bus receiver remains active; all valid commands are heeded without transmit. This option is rarely
applied.
Once shutdown, the inactive bus transmitter (or transmitter and receiver) can be reactivated five ways: an
“Override Transmitter Shutdown” MC5, a MC21 command with data word that matches “bus select” criteria, a
“Reset Remote Terminal” MC8 mode code command, a software reset initiated by setting the RTRESET bit in the
“Master Status and Reset Register (0x0001)”, or by hardware reset initiated by asserting the MR Master Reset
input pin.
MC20 EXCEPTIONS:
Bits Updated
Circumstances for Terminal Response to Bits Updated in Data Interrupt
in Descriptor
Received Message Received Command Buffer Msg Info Word Options
Control Word
Bits Updated
Circumstances for Terminal Response to Bits Updated in Data Interrupt
in Descriptor
Received Message Received Command Buffer Msg Info Word Options
Control Word
OVERRIDE
SELECTED Default response: Reset Normal CS update:
TRANSMITTER Message Error (ME) BUSID bit updated.
DBAC bit reset.
SHUTDOWN (MC21): status. and transmit MERR bit reset.
BCAST bit reset. IWA
Mode code command Status Word. If broadcast, ILCMD bit reset.
DPB bit toggles.
with mode code set the BCR status bit and RTRT bit reset.
10101 suppress Status response. (All error bits reset.)
and T/R bit equals 0
After Status Word transmission, the device stores the received data word in the assigned index or ping-pong
buffer (or in Descriptor Word 4 if SMCP Simplified Mode Command Processing applies).
If the AUTOBSD bit in the “Remote Terminal Configuration Register (0x0017)” equals 0, the received data word is
compared to the value in the Bus Select Register corresponding to the inactive bus. For example, if the command
is received on Bus A, the comparison uses the Bus B Select Register value. If the compared values match, the
device automatically re-enables transmit and receive for the inactive bus, regardless of the state of the BSDTXO
bit in the Master Configuration Register. The device affirms fully re-enabled bus status by resetting all four
TXASD, TXBSD, RXASD and/or RXBSD bits in the “Remote Terminal Built-In Test (BIT) Word Register (0x001E)”.
Note: If the TXINHA or TXINHB input pins are asserted, the device cannot override the resulting hardware
transmit inhibit for the affected bus. In this case, the corresponding TXASD and/or TXBSD bits remain high. See
RT Built-In Test Register description for further information.
If the AUTOBSD bit in the “Remote Terminal Configuration Register (0x0017)” equals 0, the IWA interrupt is
typically used to alert the host when an MC21 command is received. The host must evaluate whether the
received mode data word matches the bus selection criteria. If bus selection match occurs, the host fulfills the
“override shutdown” command using one of two options:
1. reset the RTINHA or RTINHB bus shutdown bit corresponding to the inactive bus in the “Remote Terminal
Configuration Register (0x0017)” to re-enable both transmit and receive, if the host used this bit to shut down
transmit and receive for an earlier MC4 or MC20 command. Note: Resetting the RTINHA or RTINHB shutdown
bit cannot restore bus transmit capability if the TXINHA or TXINHB input pin is asserted,
OR
2. reset the transmit shutdown input pin TXINHA or TXINHB for the inactive bus to re-enable transmit if the host
used this pin to shut down transmit only for an earlier MC4 or MC20 command.
MC21 EXCEPTIONS:
Bits Updated
Circumstances for Terminal Response to Bits Updated in Data Interrupt
in Descriptor
Received Message Received Command Buffer Msg Info Word Options
Control Word
Bits Updated
Circumstances for Terminal Response to Bits Updated in Data Interrupt
in Descriptor
Received Message Received Command Buffer Msg Info Word Options
Control Word
OR OR
The mode code’s bit If T/R bit equals 1, DBAC bit set. Normal CS update: IWA
in Illegalization Table Reset Message Error (ME) BCAST bit reset. BUSID bit updated.
equals 0 * status. Transmit Status Word DPB bit toggles. MERR bit reset.
(RT not using “illegal with contiguous data word read ILCMD bit reset.
command detection,” from assigned index or ping- RTRT bit reset.
respond “in form”) pong buffer (or from Descriptor (All error bits reset.)
Word 4 if the SMCP option
applies.)
Bits Updated
Circumstances for Terminal Response to Bits Updated in Data Interrupt
in Descriptor
Received Message Received Command Buffer Msg Info Word Options
Control Word
NOTE: Stresses above absolute maximum ratings or outside recommended operating conditions may cause permanent damage to the device.
These are stress ratings only. Operation at the limits is not recommended.
Limits
Parameters Symbol Test Conditions Unit
Min Typ Max
Operating Voltage VDD 3.15 3.3 3.45 V
Limits
Parameters Symbol Test Conditions Unit
Min Typ Max
Input Current (High): Digital Inputs (each digital
IIH +1 - - μA
Inputs with pull-up. input pulled high)
Output Voltage (High) VOH IOUT = -1.0mA, Digital outputs 90% - - VDD
Output Voltage (Low) VOL IOUT = 1.0mA, Digital outputs - - 10% VDD
Note 1: In actual use, the highest practical transmit duty cycle is 96%, occurring when a Remote Terminal responds to a series
of 32 data word transmit commands (RT to BC) repeating with minimum intermessage gap of 4μs (2μs dead time) and typical RT
response delay of 5μs.
Note 2: While one bus continuously transmits, the power delivered by the 3.3V power supply is 3.3V × 670mA typical = 2.2W. Of
this, 492mW is dissipated in the device, the remainder in the load.
VDD = 3.3V, GND = 0V, TA = Operating Temperature Range (unless otherwise stated)
Limits
Parameters Symbol Units
Min Typ Max
SCLK
t DS t DH
SI MSB LSB
CE
SCLK
t DV t CHZ
SO
MSB LSB
Hi Impedance Hi Impedance
VDD = 3.3V, GND = 0V, TA = Operating Temperature Range (unless otherwise stated)
Limits
Parameters Symbol Units
Min Typ Max
MASTER RESET MR
Reset complete
PWMR
MR
CLK
Isolation
Transformer 55Ω BUSA
Transceiver A
55Ω BUSA
1:2.5 MIL-STD-1553
BUS B
MIL-STD-1553 (Transformer Coupled)
Stub Coupler
Isolation
Transformer BUSB 52.5Ω
Transceiver B
BUSB 52.5Ω
1:2.5 1:1.4
HI-6138 Transceivers
Each Bus
Isolation
BUSA/B Transformer 55Ω
MIL-STD-1553
Transceiver 35Ω
Interface
BUSA/B 55Ω
Point
“AD”
Each Bus
Isolation
BUSA/B Transformer
MIL-STD-1553
Transceiver 70Ω
Interface
BUSA/B
Point
“AT”
39 - MTSTOFF
48 - BCTRIG
37 - RTMC8
47 - BENDI
41 - VCCP
44 - VCCP
40 - BUSB
42 - BUSB
43 - BUSA
45 - BUSA
38 - EE2K
46 - TEST
MODE - 1 36 - TTCLK
IRQ - 2 35 - ESCLK
ACKIRQ - 3 34 - EECOPY
MODE1760 - 4 33 - ECS
READY - 5 HI-6138PQIF 32 - MOSI
VCC - 6 31 - VCC
GND - 7 HI-6138PQTF 30 - GND
ACTIVE - 8 HI-6138PQMF 29 - MISO
RTSSF - 9 28 - MTTCLK
AUTOEN - 10 27 - LOCK
TXINHA - 11 26 - RTA4
TXINHB - 12 25 - RTA3
RTAP - 13
RTA0 - 14
CE - 15
VCC - 16
SCK - 17
SO - 18
SI - 19
GND - 20
MCLK - 21
RTA1 - 22
MR - 23
RTA2 - 24
HI - 6138 PQ x x
I -40 C to +85 C
o o
I No
T -55oC to +125oC T No
M -55 C to +125 C
o o
M Yes
HI - 6138 PC x x
Blank NiPdAu
I -40 C to +85 C
o o
I No
T -55oC to +125oC T No
M -55 C to +125 C
o o
M Yes
Correct Interrupt Address Word description in “9.7. Interrupt Log Buffer” on page
Rev. E 11/03/16
37. Correct Descriptor Table Control Word address derivation in Figure 14.
Rev. F 05/23/17 Update Power Dissipation and Power Supply Current parameters.
Remove note in “Figure 2. Address Mapping for Registers and RAM” regarding
unused memory space.
Clarify RW status of bits in “11.9. Bus Controller (BC) General Purpose Queue
Pointer Register (0x0038)”.
Update “Remote Terminal MIL-STD-1553 Status Word Bits Register (0x001A)”
Rev. L 03/24/2020 to reflect correct function of MC16OPT bit (refers to resetting SVCREQ status bit
and not SSYSF bit).
Correct typo in Read-Write descriptions of “Remote Terminal Bus A Select
Register (0x001C)” and “Remote Terminal Bus B Select Register (0x001D)”.
Correct typographical errors in “Figure 15. Illustration of Ping-Pong Buffer Mode”.
Update QFN lead finish to NiPdAu.
In “SMT Block Status Word (BSW) Description”, add condition when EO bit 12 is
set.
Rev. N 03/08/2021
In “SMT Bus Monitor Pending Interrupt Register (0x0008)”, clarify when MTMERR
bit is set.
Clarify typos in “Appendix: RT messages responses, options & exceptions” for
Rev. P 06/01/2021
descriptions of MC17, MC20 and MC21.
Clarify use of MAP1 register for EEPROM programming in “19.1. Writing the
Rev. Q 08/23/2021
Auto-Initialization EEPROM”.
0.155 ± 0.065
(0.006 ± 0.003)
0.50
BSC
(0.0197)
9.00 7.00 0.220 ± 0.05
BSC sq. BSC sq.
(0.354) (0.276) (0.009 ± 0.002)
0.60 ± 0.150
(0.024 ± 0.006)
0° ≤ Θ ≤ 7°
0.40 BSC
(0.016)
6.000
BSC Top View 4.000 ± 0.100 Bottom
(0.236) (0.157 ± 0.004) View 0.200
typ
(0.008)
0.400 ± 0.100
1.00
max 0.200 (0.016 ± 0.004)
(0.039) typ
(0.008)