Atmel FPSLIC AT94KAL Series Manual
Atmel FPSLIC AT94KAL Series Manual

Atmel FPSLIC AT94KAL Series Manual

Field programmable system level integrated circuit

Advertisement

Quick Links

Features
Monolithic Field Programmable System Level Integrated Circuit (FPSLIC
– AT40K SRAM-based FPGA with Embedded High-performance RISC AVR
Extensive Data and Instruction SRAM and JTAG ICE
5,000 to 40,000 Gates of Patented SRAM-based AT40K FPGA with FreeRAM
– 2 - 18.4 Kbits of Distributed Single/Dual Port FPGA User SRAM
– High-performance DSP Optimized FPGA Core Cell
– Dynamically Reconfigurable In-System – FPGA Configuration Access Available
On-chip from AVR Microcontroller Core to Support Cache Logic
– Very Low Static and Dynamic Power Consumption – Ideal for Portable and
Handheld Applications
Patented AVR Enhanced RISC Architecture
– 120+ Powerful Instructions – Most Single Clock Cycle Execution
– High-performance Hardware Multiplier for DSP-based Systems
– Approaching 1 MIPS per MHz Performance
– C Code Optimized Architecture with 32 x 8 General-purpose Internal Registers
– Low-power Idle, Power-save and Power-down Modes
– 100 µA Standby and Typical 2-3 mA per MHz Active
Up to 36 Kbytes of Dynamically Allocated Instruction and Data SRAM
– Up to 16 Kbytes x 16 Internal 15 ns Instructions SRAM
– Up to 16 Kbytes x 8 Internal 15 ns Data SRAM
JTAG (IEEE std. 1149.1 Compliant) Interface
– Extensive On-chip Debug Support
– Limited Boundary-scan Capabilities According to the JTAG Standard (AVR Ports)
AVR Fixed Peripherals
– Industry-standard 2-wire Serial Interface
– Two Programmable Serial UARTs
– Two 8-bit Timer/Counters with Separate Prescaler and PWM
– One 16-bit Timer/Counter with Separate Prescaler, Compare, Capture
Modes and Dual 8-, 9- or 10-bit PWM
Support for FPGA Custom Peripherals
– AVR Peripheral Control – 16 Decoded AVR Address Lines Directly Accessible
to FPGA
– FPGA Macro Library of Custom Peripherals
16 FPGA Supplied Internal Interrupts to AVR
Up to Four External Interrupts to AVR
8 Global FPGA Clocks
– Two FPGA Clocks Driven from AVR Logic
– FPGA Global Clock Access Available from FPGA Core
Multiple Oscillator Circuits
– Programmable Watchdog Timer with On-chip Oscillator
– Oscillator to AVR Internal Clock Circuit
– Software-selectable Clock Frequency
– Oscillator to Timer/Counter for Real-time Clock
V
: 3.0V - 3.6V
CC
3.3V 33 MHz PCI-compliant FPGA I/O
– 20 mA Sink/Source High-performance I/O Structures
– All FPGA I/O Individually Programmable
High-performance, Low-power 0.35µ CMOS Five-layer Metal Process
State-of-the-art Integrated PC-based Software Suite including Co-verification
5V I/O Tolerant
)
®
Core,
®
Designs
5K - 40K Gates
of AT40K FPGA
with 8-bit
Microcontroller,
up to 36K Bytes
of SRAM and
On-chip
JTAG ICE
AT94KAL Series
Field
Programmable
System Level
Integrated
Circuit
Rev. 1138G–FPSLI–11/03
1

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the FPSLIC AT94KAL Series and is the answer not in the manual?

Questions and answers

Subscribe to Our Youtube Channel

Summary of Contents for Atmel FPSLIC AT94KAL Series

  • Page 1 Features ™ • Monolithic Field Programmable System Level Integrated Circuit (FPSLIC ® – AT40K SRAM-based FPGA with Embedded High-performance RISC AVR Core, Extensive Data and Instruction SRAM and JTAG ICE ™ • 5,000 to 40,000 Gates of Patented SRAM-based AT40K FPGA with FreeRAM –...
  • Page 2 Description The AT94KAL Series FPSLIC family shown in Table 1 is a combination of the popular Atmel AT40K Series SRAM FPGAs and the high-performance Atmel AVR 8-bit RISC microcontroller with standard peripherals. Extensive data and instruction SRAM as well as device control and management logic are included on this monolithic device, fabricated on Atmel’s 0.35µ...
  • Page 3 AT94KAL Series FPSLIC Figure 1. FPSLIC Device Date Code with JTAG ICE Support ® AT94K40AL-25DQC 0H1230 4201J Date Code "J" indicates JTAG ICE support The AT94K series architecture is shown in Figure 2. Figure 2. AT94K Series Architecture PROGRAMMABLE I/O 5 - 40K Gates FPGA Up to 16 Addr Decoder...
  • Page 4 CISC microcontrollers at the same clock frequency. The AVR executes out of on- chip SRAM. Both the FPGA configuration SRAM and the AVR instruction code SRAM can be automatically loaded at system power-up using Atmel’s In-System Programmable (ISP) AT17 Series EEPROM Configuration Memories or ATFS FPSLIC Support Devices.
  • Page 5 A simple, high-speed busing network provides fast, efficient communication over medium and long distances. The Symmetrical At the heart of the Atmel FPSLIC architecture is a symmetrical array of identical cells. The Array array is continuous from one edge to the other, except for bus repeaters spaced every four cells, see Figure 3.
  • Page 6 The Busing Figure 3. Busing Network Network = RAM Block = I/O Pad = Repeater Row = AT40K Cell = Repeater Interface to AVR Figure 4 depicts one of five identical FPGA busing planes. Each plane has three bus resources: a local-bus resource (the middle bus) and two express-bus resources. Bus resources are connected via repeaters.
  • Page 7 AT94KAL Series FPSLIC Figure 4. Busing Plane (One of Five) = AT40K Core Cell = Local/local or Express/express Turn Point = Row Repeater = Column Rev. 1138G–FPSLI–11/03...
  • Page 8: Cell Connections

    Cell Connections Figure 5(a) depicts direct connections between an FPGA cell and its eight nearest neighbors. Figure 5(b) shows the connections between a cell five horizontal local buses (one per busing plane) and five vertical local buses (one per busing plane). Figure 5.
  • Page 9 AT94KAL Series FPSLIC Figure 6. The Cell "1" NW NE SE SW "1" N E "1" 8 X 1 LUT 8 X 1 LUT "1" "0" "1" "1" OE CLOCK RESET/SET NW NE SE SW X = Diagonal Direct Connect or Bus Y = Orthogonal Direct Connect or Bus W = Bus Connection Z = Bus Connection...
  • Page 10 Figure 7. Some Single Cell Modes Q (Registered) Synthesis Mode and/or SUM (Registered) Arithmetic Mode and/or CARRY PRODUCT (Registered) PRODUCT DSP/Multiplier Mode and/or CARRY CARRY IN Counter Mode and/or CARRY Tri-State/Mux Mode There are two types of RAM in the FPSLIC device: the FreeRAM distributed through the FPGA Core and the SRAM shared by the AVR and FPGA.
  • Page 11 AT94KAL Series FPSLIC most RAM blocks, RAddr is on the left and WAddr is on the right. For the right-most RAM blocks, WAddr is on the left and RAddr is tied off. For single-ported RAM, WAddr is the READ/WRITE address port and Din is the (bi-directional) data port. The right-most RAM blocks can be used only for single-ported memories.
  • Page 12 Figure 9. FreeRAM Logic CLOCK "1" "1" Load Read READ ADDR Load WRITE ADDR Write 32 x 4 Latch Dual-port "1" Load Write Latch Load DATA IN Data Data DATA Latch Clear RAM-Clear Note: 1. For dual port, the switches on READ ADDR and DATA OUT would be on. The other two would be off. The reverse is true for single port.
  • Page 13 AT94KAL Series FPSLIC Figure 10. FreeRAM Example: 128 x 8 Dual-ported RAM (Asynchronous) Note: 1. These layouts can be generated automatically using the Macro Generators. Rev. 1138G–FPSLI–11/03...
  • Page 14 Clocking and Six of the eight dedicated Global Clock buses (1, 2, 3, 4, 7 and 8) are connected to a dual-use Global Clock pin. In addition, two Global Clock buses (5 and 6) are driven from clock signals Set/Reset generated within the AVR microcontroller core, see Figure 11.
  • Page 15 AT94KAL Series FPSLIC The FPGA clocks from the AVR are effected differently in the various sleep modes of the AVR, see Table 3. The source clock into the FPGA GCK5 and GCK6 will determine what happens during the var- ious power-down modes of the AVR. If the XTAL clock input is used as an FPGA clock (GCK5 or GCK6) in Idle mode, it will still be running.
  • Page 16 Figure 12. Clocking (for One Column of Cells) GCK1 − GCK8 "1" Global Clock Line (Buried) Express Bus (Plane 4; Half Length at Edge) "1" Repeater "1" "1" Note: 1. Two on left edge column of the embedded FPGA array only. AT94KAL Series FPSLIC Rev.
  • Page 17 AT94KAL Series FPSLIC Figure 13. Set/Reset (for One Column of Cells) Each Cell has a Programmable Set or Reset Repeater "1" Global Set/Reset Line (Buried) "1" Express Bus (Plane 5; Half Length at Edge) "1" "1" Any User I/O can Drive Global Set/Reset Line Some of the bus resources on the embedded FPGA core are used as dual-function resources.
  • Page 18 Table 4. Dual-function Buses Function Type Plane(s) Direction Comments Cell Output Enable Local Horizontal Vertical FreeRAM Output Express Vertical Bus full length at array edge bus in first Enable column to left of RAM block FreeRAM Write Express Vertical Bus full length at array edge bus in first Enable column to left of RAM block FreeRAM Address...
  • Page 19 AT94KAL Series FPSLIC Figure 15. Secondary I/O "0" "1" CELL PULL-UP "0" "1" PULL-DOWN CELL Figure 16. Primary and Secondary I/Os cell cell cell cell cell cell cell cell cell s = secondary I/O cell cell cell cell cell p = primary I/O Rev.
  • Page 20 Figure 17. Corner I/Os TTL/CMOS TTL/CMOS DRIVE DRIVE SCHMITT SCHMITT TRI-ST ATE TRI-ST ATE DELAY DELAY "0" "1" PULL-UP "0" "1" CELL CELL CELL PULL-DOWN CELL AT94KAL Series FPSLIC Rev. 1138G–FPSLI–11/03...
  • Page 21 AT94KAL Series FPSLIC FPGA/AVR Interface and System Control The FPGA and AVR share a flexible interface which allows for many methods of system integration. • Both FPGA and AVR share access to the 15 ns dual-port SRAM. • The AVR data bus interfaces directly into the FPGA busing resources, effectively treating the FPGA as a large I/O device.
  • Page 22 Program and Up to 36 Kbytes of 15 ns dual-port SRAM reside between the FPGA and the AVR. This SRAM is used by the AVR for program instruction and general-purpose data storage. The AVR is Data SRAM connected to one side of this SRAM; the FPGA is connected to the other side. The port con- nected to the FPGA is used to store data without using up bandwidth on the AVR system data bus.
  • Page 23 AT94KAL Series FPSLIC (1)(2) Figure 19. FPSLIC Configurable Allocation SRAM Memory Program SRAM Memory $0000 Memory Partition SOFT “BOOT BLOCK” $07FF is User Defined during Development FIXED 10K x 16 4 Kbytes x 16 (94K05) Data SRAM Memory $27FF $3FFF $2800 OPTIONAL OPTIONAL...
  • Page 24: Sram Access

    Data SRAM The FPGA user logic has access to the data SRAM directly through the FPGA side of the dual-port memory, see Figure 20. A single bit in the configuration control register (SCR63 – Access by FPGA – see “System Control Register – FPGA/AVR” on page 30) enables this interface. The interface FPGAFrame Mode is disabled during configuration downloads.
  • Page 25 AT94KAL Series FPSLIC A Side The A side is partitioned into Program memory and Data memory: • Program memory is 16-bit words. • Program memory address $0000 always starts in the highest two SRAMs (n - 1, n) [SRAMn - 1 (low byte) and SRAMn (high byte)] (SRAM labels are for layout, the addressing scheme is transparent to the AVR PC).
  • Page 26 Table 6. AVR Data Decode for SRAM 0:17 (16K8) Address Range SRAM Comments $07FF – $0000 AVR Data Read/Write $0FFF – $0800 AVR Data Read/Write $17FF – $1000 CR41:40 = 11,10,01 $1FFF – $1800 $27FF – $2000 CR41:40 = 11,10 $2FFF –...
  • Page 27 AT94KAL Series FPSLIC Table 7. Summary Table for AVR and FPGA SRAM Addressing (Continued) FPGA and AVR DBG AVR Data SRAM Address Range Address Range AVR PC Address Range $2800 - $2FFF $2800 - $2FFF $3000 - $37FF (MS Byte) $3000 - $37FF $3000 - $37FF $2800 - $2FFF (LS Byte)
  • Page 28 Figure 21. AVR SRAM Data Memory Write Using “ST” Instruction CLOCK RAMWE RAMADR VALID DBUS VALID DBUSOUT VALID (REGISTERED) ST cycle 1 ST cycle 2 next instruction Figure 22. AVR SRAM Data Memory Read Using “LD” Instruction CLOCK RAMRE RAMADR VALID DBUS VALID...
  • Page 29 FPGA, thereby affecting a download, or allow- ing reconfigurable systems where the FPGA is updated algorithmically by the AVR. For more information, refer to the “AT94K Series Configuration” application note available on the Atmel web site, at: http://www.atmel.com/atmel/acrobat/doc2313.pdf.
  • Page 30: System Control

    System Control Configuration Modes The AT94K family has four configuration modes controlled by mode pins M0 and M2, see Table 10. Table 10. Configuration Modes Name Mode 0 - Master Serial Mode 1 - Slave Serial Cascade Mode 2 - Reserved Mode 3 - Reserved Modes 2 and 3 are reserved and are used for factory test.
  • Page 31 AT94KAL Series FPSLIC Table 11. FPSLIC System Control Register Description SCR6 0 = OTS Disabled 1 = OTS Enabled Setting SCR6 makes the OTS (output tri-state) pin an input which controls the global tri-state control for all user I/O. This junction allows the user at any time to tristate all user I/O and isolate the chip.
  • Page 32 Table 11. FPSLIC System Control Register Description SCR32 - SCR34 Reserved SCR35 0 = AVR Reset Pin Disabled 1 = AVR Reset Pin Enabled (active Low Reset) SCR35 allows the AVR Reset pin to reset the AVR only. SCR36 0 = Protect AVR Program SRAM 1 = Allow Writes to AVR Program SRAM (Excluding Boot Block) SCR36 protects AVR program code from writes by the FPGA.
  • Page 33 AT94KAL Series FPSLIC Table 11. FPSLIC System Control Register Description SCR56 0 = Disable XTAL Pin (R feedback 1 = Enable XTAL Pin (R feedback SCR57 0 = Disable TOSC2 Pin (R feedback 1 = Enable TOSC2 Pin (R feedback SCR58 - SCR59 Reserved SCR60 - SCR61...
  • Page 34 AVR Core and Peripherals • AVR Core • Watchdog Timer/On-chip Oscillator • Oscillator-to-Internal Clock Circuit • Oscillator-to-Timer/Counter for Real-time Clock • 16-bit Timer/Counter and Two 8-bit Timer/Counters • Interrupt Unit • Multiplier • UART (0) • UART (1) • I/O Port D (full 8 bits available on 144-pin or higher devices) •...
  • Page 35 AT94KAL Series FPSLIC Instruction Set The complete “AVR Instruction Set” document is available on the Atmel web site, at http://www.atmel.com/atmel/acrobat/doc0856.pdf. Nomenclature (Summary) Status Register SREG: Status register (SREG) Carry flag in status register Zero flag in status register Negative flag in status register Two’s complement overflow indicator...
  • Page 36 Conditional Branch Summary Test Boolean Mnemonic Complementary Boolean Mnemonic Comment Z•(N ⊕ V) = 0 Rd ≤ Rr Z+(N ⊕ V) = 1 Rd > Rr BRLT BRGE Signed Rd ≥ Rr (N ⊕ V) = 0 (N ⊕ V) = 1 BRGE Rd <...
  • Page 37 AT94KAL Series FPSLIC Instruction Set Summary (Continued) Mnemonics Operands Description Operation Flags #Clock Rd ← Rd • ($FFh - K) Rd, K Clear Bit(s) in Register Z,N,V,S Rd ← Rd + 1 Increment Z,N,V,S Rd ← Rd - 1 Decrement Z,N,V,S Rd ←...
  • Page 38 Instruction Set Summary (Continued) Mnemonics Operands Description Operation Flags #Clock if (C = 0) then PC ← PC + k + 1 BRSH Branch if Same or Higher None 1 / 2 if (C = 1) then PC ← PC + k + 1 BRLO Branch if Lower None...
  • Page 39 AT94KAL Series FPSLIC Instruction Set Summary (Continued) Mnemonics Operands Description Operation Flags #Clock Y ← Y - 1, (Y) ← Rr -Y, Rr Store Indirect and Pre-Decrement None (Y + q) ← Rr Y+q, Rr Store Indirect with Displacement None (Z) ←...
  • Page 40: Pin Descriptions

    Instruction Set Summary (Continued) Mnemonics Operands Description Operation Flags #Clock S ← 0 Clear Signed Test Flag V ← 1 Set Two’s Complement Overflow V ← 0 Clear Two’s Complement Overflow T ← 1 Set T in SREG T ← 0 Clear T in SREG H ←...
  • Page 41: Clock Options

    AT94KAL Series FPSLIC XTAL2 Output from the inverting oscillator amplifier TOSC1 Input to the inverting timer/counter oscillator amplifier TOSC2 Output from the inverting timer/counter oscillator amplifier 2-wire serial input/output clock 2-wire serial input/output data Clock Options Crystal Oscillator XTAL1 and XTAL2 are input and output, respectively, of an inverting amplifier, which can be configured for use as an on-chip oscillator, as shown in Figure 24.
  • Page 42: Architectural Overview

    No Clock/Oscillator When not in use, for low static IDD, add a pull-down resistor to XTAL1. Source Figure 26. No Clock/Oscillator Connections = 4.7 KΩ XTAL2 XTAL1 Timer Oscillator For the timer oscillator pins, TOSC1 and TOSC2, the crystal is connected directly between the pins.
  • Page 43: General-Purpose Register File

    AT94KAL Series FPSLIC General-purpose Figure 28 shows the structure of the 32 x 8 general-purpose working registers in the CPU. Register File Figure 28. AVR CPU General-purpose Working Registers Addr..General-purpose Working Registers . . . AVR X-register Low Byte AVR X-register High Byte AVR Y-register Low Byte AVR Y-register High Byte...
  • Page 44: Alu - Arithmetic Logic Unit

    X-register, Registers R26..R31 have some added functions to their general-purpose usage. These regis- ters are address pointers for indirect addressing of the SRAM. The three indirect address Y-register and registers X, Y and Z have functions as fixed displacement, automatic increment and decre- Z-register ment (see the descriptions for the different instructions).
  • Page 45 AT94KAL Series FPSLIC Data Indirect Operand address is the contents of the X-, Y- or the Z-register. Data Indirect with Pre-decrement The X-, Y- or the Z-register is decremented before the operation. Operand address is the dec- remented contents of the X, Y or the Z-register. Data Indirect with Post-increment The X-, Y- or the Z-register is incremented after the operation.
  • Page 46 Figure 29. The Parallel Instruction Fetches and Instruction Executions AVR CLK 1st Instruction Fetch 1st Instruction Execute 2nd Instruction Fetch 2nd Instruction Execute 3rd Instruction Fetch 3rd Instruction Execute 4th Instruction Fetch Figure 30 shows the internal timing concept for the register file. In a single clock cycle an ALU operation using two register operands is executed, and the result is stored back to the destina- tion register.
  • Page 47 AT94KAL Series FPSLIC Memory-mapped I/O The I/O space definition of the embedded AVR core is shown in the following table: AT94K Register Summary Reference Address Name Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Page $3F ($5F)
  • Page 48 UART1 Baud-rate Register Note: 1. The On-chip Debug Register (OCDR) is detailed on the “FPSLIC On-chip Debug System” distributed within Atmel and select third-party vendors only under Non-Disclosure Agreement (NDA). Contact fpslic@atmel.com for a copy of this document. The embedded AVR core I/Os and peripherals, and all the virtual FPGA peripherals are placed in the I/O space. The differ- ent I/O locations are directly accessed by the IN and OUT instructions transferring data between the 32 x 8 general- purpose working registers and the I/O space.
  • Page 49 AT94KAL Series FPSLIC Figure 32. Memory-mapped I/O SRAM Space I/O Space Memory-mapped Registers r0 - r31 Used for In/Out Used for all Instructions Other Instructions For single-cycle access (In/Out Commands) to I/O, the instruction has to be less than 16 bits: opcode register address...
  • Page 50 Status Register – SREG The AVR status register – SREG – at I/O space location $3F ($5F) is defined as: $3F ($5F) SREG Read/Write Initial Value Note: 1. Note that the status register is not automatically stored when entering an interrupt routine and restored when returning from an interrupt routine.
  • Page 51 AT94KAL Series FPSLIC The Stack Pointer points to the data SRAM stack area where the Subroutine and Interrupt Stacks are located. This Stack space in the data SRAM must be defined by the program before any subroutine calls are executed or interrupts are enabled. The stack pointer must be set to point above $60.
  • Page 52 MCU Control Status/Register – MCUR The MCU Register contains control bits for general MCU functions and status bits to indicate the source of an MCU reset. $35 ($55) JTRF PORF WDRF EXTRF MCUR Read/Write Initial Value • Bit 7 - JTRF: JTAG Reset Flag This flag is set (one) upon issuing the AVR_RESET ($C) JTAG instruction.
  • Page 53 AT94KAL Series FPSLIC FPGA Cache Logic FPGA Cache Data Register – FPGAD $1B ($3B) FPGAD Read/Write Initial Value The FPGAD I/O Register address is not supported by a physical register; it is simply the I/O address that, if written to, generates the FPGA Cache I/O write strobe. The CACHEIOWE sig- nal is a qualified version of the AVR IOWE signal.
  • Page 54 ← (FPGAIOWE IOWE). FPGA macros utilizing one or more FPGA I/O select lines must use the FPGA I/O read/write enables, FPGAIORE or FPGAIOWE, to qualify each select line. The FIADR bit will be cleared (zero) during AVR reset. • Bits 6..2 - Res: Reserved Bits These bits are reserved and always read as zero.
  • Page 55 AT94KAL Series FPSLIC General AVR/FPGA I/O I/O select depends on the FISCR register setup and the FISUA..D register written to or read Select Procedure from. The following FISCR setups and writing data to the FISUA..D registers will result in the shown I/O select lines and data presented on the 8-bit AVR–FPGA data bus.
  • Page 56 Figure 33. Out Instruction – AVR Writing to the FPGA AVR INST OUT INSTRUCTION AVR CLOCK AVR IOWE AVR IOADR (FISUA, B, C or D) AVR DBUS WRITE DATA VALID (FPGA DATA IN) FPGA IOWE FPGA I/O SELECT "n" FPGA CLOCK (SET TO AVR SYSTEM CLOCK) Note:...
  • Page 57 AT94KAL Series FPSLIC FPGA I/O Interrupt This is an alternate memory space for the FPGA I/O Select addresses. If the FIADR bit in the Control by AVR FISCR register is set to logic 1, the four I/O addresses, FISUA - FISUD, are mapped to physi- cal registers and provide memory space for FPGA interrupt masking and interrupt flag status.
  • Page 58: Reset And Interrupt Handling

    Reset and The embedded AVR and FPGA core provide 35 different interrupt sources. These interrupts and the separate reset vector each have a separate program vector in the program memory Interrupt Handling space. All interrupts are assigned individual enable bits (masks) which must be set (one) together with the I-bit in the status register in order to enable the interrupt.
  • Page 59 AT94KAL Series FPSLIC Table 15. Reset and Interrupt Vectors (Continued) Vector No. Program (hex) Address Source Interrupt Definition $002C UART0_DRE UART0 Data Register Empty Interrupt Handle $002E UART0_TXC UART0 Transmit Complete Interrupt Handle $0030 FPGA_INT8 FPGA Interrupt8 Handle (not available on AT94K05) $0032 FPGA_INT9 FPGA Interrupt9 Handle...
  • Page 60 The most typical program setup for the Reset and Interrupt Vector Addresses are: Address Labels Code Comments $0000 RESET Reset Handle: Program Execution Starts Here $0002 FPGA_INT0 ; FPGA Interrupt0 Handle $0004 EXT_INT0 ; External Interrupt0 Handle $0006 FPGA_INT1 ; FPGA Interrupt1 Handle $0008 EXT_INT1 ;...
  • Page 61 AT94KAL Series FPSLIC Reset Sources The embedded AVR core has five sources of reset: • External Reset. The MCU is reset immediately when a low-level is present on the RESET or AVR RESET pin. • Power-on Reset. The MCU is reset upon chip power-up and remains in reset until the FPGA configuration has entered Idle mode.
  • Page 62 Table 16. Reset Characteristics (V = 3.3V) Symbol Parameter Minimum Typical Maximum Units Power-on Reset Threshold (Rising) POT(1) Power-on Reset Threshold (Falling) RESET Pin Threshold Voltage cycles Reset Delay Time-out Period TOUT 12.8 16.0 19.2 Note: 1. The Power-on Reset will not work unless the supply voltage has been below V (falling).
  • Page 63 AT94KAL Series FPSLIC The MCU after five CPU clock-cycles, and can be used when an external clock signal is applied to the XTAL1 pin. This setting does not use the WDT oscillator, and enables very fast start-up from the Sleep, Power-down or Power-save modes if the clock signal is present dur- ing sleep.
  • Page 64 External Interrupt Mask/Flag Register – EIMF $3B ($5B) INTF3 INTF2 INTF1 INTF0 INT3 INT2 INT1 INT0 EIMF Read/Write Initial Value • Bits 3..0 - INT3, 2, 1, 0: External Interrupt Request 3, 2, 1, 0 Enable When an INT3 - INT0 bit is set (one) and the I-bit in the Status Register (SREG) is set (one), the corresponding external pin interrupt is enabled.
  • Page 65 AT94KAL Series FPSLIC • Bit 2 - OCIE2: Timer/Counter2 Output Compare Interrupt Enable When the OCIE2 bit is set (one) and the I-bit in the Status Register is set (one), the Timer/Counter2 Compare Match interrupt is enabled. The corresponding interrupt is executed if a Compare match in Timer/Counter2 occurs, i.e., when the OCF2 bit is set in the Timer/Counter interrupt flag register –...
  • Page 66: Sleep Modes

    • Bit 3 - ICF1: Input Capture Flag 1 The ICF1 bit is set (one) to flag an input capture event, indicating that the Timer/Counter1 value has been transferred to the input capture register – ICR1. ICF1 is cleared by the hard- ware when executing the corresponding interrupt handling vector.
  • Page 67 AT94KAL Series FPSLIC Idle Mode When the SM1/SM0 bits are set to 00, the SLEEP instruction makes the MCU enter the Idle mode, stopping the CPU but allowing UARTs, Timer/Counters, Watchdog 2-wire Serial and the Interrupt System to continue operating. This enables the MCU to wake-up from external triggered interrupts as well as internal ones like the Timer Overflow and UART Receive Com- plete interrupts.
  • Page 68 The AVR IEEE std. 1149.1 compliant JTAG interface is used for on-chip debugging. The On-Chip Debug support is considered being private JTAG instructions, and distributed within ATMEL and to selected third-party vendors only. Figure 39 shows a block diagram of the JTAG interface and the On-Chip Debug system. The TAP Controller is a state machine controlled by the TCK and TMS signals.
  • Page 69 AT94KAL Series FPSLIC Figure 39. Block Diagram PORT E DEVICE BOUNDARY AVR BOUNDARY-SCAN CHAIN FPGA-AVR SCAN CHAIN FPGA-SRAM SCAN CHAIN CONTROLLER AVR CPU INTERNAL PROGRAM/DATA SCAN SRAM JTAG INSTRUCTION CHAIN Instruction REGISTER DEVICE ID REGISTER BREAKPOINT UNIT FLOW CONTROL BYPASS UNIT REGISTER DIGITAL...
  • Page 70 Figure 40. TAP Controller State Diagram Test-Logic-Reset Run-Test/Idle Select-DR Scan Select-IR Scan Capture-DR Capture-IR Shift-DR Shift-IR Exit1-DR Exit1-IR Pause-DR Pause-IR Exit2-DR Exit2-IR Update-DR Update-IR TAP Controller The TAP controller is a 16-state finite state machine that controls the operation of the Bound- ary-Scan circuitry and On-Chip Debug system.
  • Page 71 AT94KAL Series FPSLIC Assuming Run-Test/Idle is the present state, a typical scenario for using the JTAG interface is • At the TMS input, apply the sequence 1, 1, 0, 0 at the rising edges of TCK to enter the Shift Instruction Register - Shift-IR state. While TMS is Low, shift the 4 bit JTAG instructions into the JTAG instruction register from the TDI input at the rising edge of TCK, while the captured IR-state 0x01 is shifts out on the TDO pin.
  • Page 72 A list of the On-Chip Debug specific JTAG instructions is given in “On-chip Debug Specific JTAG Instructions”. Atmel supports the On-Chip Debug system with the AVR Studio front-end software for PCs. The details on hardware implementation and JTAG instructions are there- fore irrelevant for the user of the On-Chip Debug system.
  • Page 73 AT94KAL Series FPSLIC On-chip Debug The On-Chip debug support is considered being private JTAG instructions, and distributed Specific JTAG within ATMEL and to selected third-party vendors only. Table 17 lists the instruction opcode. Instructions Table 17. JTAG Instruction and Code JTAG Instruction...
  • Page 74: Bypass Register

    undetermined state when exiting the test mode. If needed, the BYPASS instruction can be issued to make the shortest possible scan chain through the device. The AVR can be set in the reset state either by pulling the external AVR RESET pin Low, or issuing the AVR_RESET instruction with appropriate setting of the Reset Data Register.
  • Page 75 AT94K40 0xdd76 Manufacturer ID The manufacturer ID for ATMEL is 0x01F (11 bits). AVR Reset The AVR Reset Register is a Test Data Register used to reset the AVR. A high value in the Reset Register corresponds to pulling the external AVRResetn Low. The AVR is reset as long Register as there is a high value present in the AVR Reset Register.
  • Page 76 EXTEST; $0 Mandatory JTAG instruction for selecting the Boundary-Scan Chain as Data Register for test- ing circuitry external to the AVR package. For port-pins, Pull-up Disable, Output Control, Output Data, and Input Data are all accessible in the scan chain. For Analog circuits having off-chip connections, the interface between the analog and the digital logic is in the scan chain.
  • Page 77 AT94KAL Series FPSLIC Figure 43. Boundary-scan Cell For Bi-directional Port Pin with Pull-up Function ShiftDR To Next Cell EXTEST Pullup Disable (PLD) Output Control (OC) Output Data (OD) Input Data (ID) From Last Cell ClockDR UpdateDR Rev. 1138G–FPSLI–11/03...
  • Page 78 Figure 44 shows a simple digital Port Pin as described in the section “I/O Ports” on page 147. The Boundary-Scan details from Figure 43 replaces the dashed box in Figure 44. Figure 44. General Port Pin Schematic Diagram PULL-UP RESET DDXn RESET PORTXn...
  • Page 79 AT94KAL Series FPSLIC When no alternate port function is present, the Input Data - ID corresponds to the PINn regis- ter value, Output Data corresponds to the PORTn register, Output Control corresponds to the Data Direction (DDn) register, and the PuLL-up Disable (PLD) corresponds to logic expression (DDn OR NOT(PORTBn)).
  • Page 80 Scanning 2-wire Serial The SCL and SDA pins are open drain, bi-directional and enabled separately. The “Enable Output” bits (active High) in the scan chain are supported by general boundary-scan cells. Enabling the output will drive the pin Low from a tri-state. External pull-ups on the 2-wire bus are required to pull the pins High if the output is disabled.
  • Page 81 AT94KAL Series FPSLIC Scanning an oscillator output gives unpredictable results as there is a frequency drift between the internal oscillator and the JTAG TCK clock. The clock configuration is programmed in the SCR. As an SCR bit is not changed run-time, the clock configuration is considered fixed for a given application.
  • Page 82 Table 20. AVR I/O Boundary Scan – JTAG Instructions $0/$2 I/O Ports Description Data Out/In - PD7 Enable Output - PD7 Pull-up - PD7 Data Out/In - PD6 Enable Output - PD6 Pull-up - PD6 Data Out/In - PD5 Enable Output - PD5 Pull-up - PD5 Data Out/In - PD4 Enable Output - PD4...
  • Page 83 AT94KAL Series FPSLIC Table 20. AVR I/O Boundary Scan – JTAG Instructions $0/$2 I/O Ports Description Clock In - XTAL1 XTAL Enable Clock - XTAL 1 Clock In - TOSC 1 TOSC Enable Clock - TOSC 1 Data Out/In - SDA Enable Output - SDA 2-wire Serial Clock Out/In - SCL...
  • Page 84 Table 21. Bit EXTEST and SAMPLE_PRELOAD Bit Type EXTEST SAMPLE_PRELOAD Clock In - TOSC 1 Observe only. Capture-DR grabs Capture-DR grabs signal from signal from pad. pad if clock is enabled, “1” if disabled. Enable Clock - TOSC 1 1 = clock disabled. Capture-DR Capture-DR grabs enable from grabs clock enable from the AVR.
  • Page 85 AT94KAL Series FPSLIC Timer/Counters The FPSLIC provides three general-purpose Timer/Counters: two 8-bit T/Cs and one 16-bit T/C. Timer/Counter2 can optionally be asynchronously clocked from an external oscillator. This oscillator is optimized for use with a 32.768 kHz watch crystal, enabling use of Timer/Counter2 as a Real-time Clock (RTC).
  • Page 86 Figure 49. Timer/Counter2 Prescaler PCK2 10-BIT T/C PRESCALER Clear TOSC1 PSR2 CS20 CS21 CS22 TIMER/COUNTER2 CLOCK SOURCE TCK2 Special Function I/O Register – SFIOR $30 ($50) PSR2 PSR10 SFIOR Read/Write Initial Value • Bits 7..2 - Res: Reserved Bits These bits are reserved bits in the FPSLIC and are always read as zero. •...
  • Page 87 AT94KAL Series FPSLIC Figure 50. Timer/Counter0 Block Diagram T/C0 OVER- T/C0 COMPARE FLOW IRQ MATCH IRQ TIMER INT. MASK TIMER INT. FLAG T/C0 CONTROL SPECIAL FUNCTIONS REGISTER (TIMSK) REGISTER (TIFR) REGISTER (TCCR0) IO REGISTER (SFIOR) T/C CLEAR TIMER/COUNTER0 T/C CLK SOURCE CONTROL (TCNT0) UP/DOWN...
  • Page 88 The 8-bit Timer/Counter0 can select the clock source from CK, prescaled CK, or an external pin. The 8-bit Timer/Counter2 can select the clock source from CK, prescaled CK or external TOSC1. Both Timers/Counters can be stopped as described in section “Timer/Counter0 Control Regis- ter –...
  • Page 89 AT94KAL Series FPSLIC • Bits 5,4 - COM01, COM00/COM21, COM20: Compare Output Mode, Bits 1 and 0 The COMn1 and COMn0 control bits determine any output pin action following a compare match in Timer/Counter0 or Timer/Counter2. Output pin actions affect pins PE1(OC0) or PE3(OC2).
  • Page 90 Table 24. Clock 2 Prescale Select CS22 CS21 CS20 Description Stop, the Timer/Counter2 is stopped PCK2 PCK2/8 PCK2/32 PCK2/64 PCK2/128 PCK2/256 PCK2/1024 The Stop condition provides a Timer Enable/Disable function. The prescaled modes are scaled directly from the CK oscillator clock for Timer/Counter0 and PCK2 for Timer/Counter2. If the external pin modes are used for Timer/Counter0, transitions on PE0/(T0) will clock the counter even if the pin is configured as an output.
  • Page 91 AT94KAL Series FPSLIC The output compare registers are 8-bit read/write registers. The Timer/Counter Output Com- pare Registers contains the data to be continuously compared with the Timer/Counter. Actions on compare matches are specified in TCCR0 and TCCR2. A compare match does only occur if the Timer/Counter counts to the OCR value.
  • Page 92 Figure 52. Effects of Unsynchronized OCR Latching in Up/Down Mode Compare Value Changes Counter Value Compare Value PWM Output OCn Synchronized OCn Latch Compare Value Changes Counter Value Compare Value PWM Output OCn Unsynchronized OCn Latch Glitch Note: 1. n = 0 or 2 Figure 53.
  • Page 93 AT94KAL Series FPSLIC Table 26. PWM Outputs OCRn = $00 or $FF COMn1 COMn0 OCRn Output PWMn Notes: 1. n overflow PWM mode, this table is only valid for OCRn = $FF 2. n = 0 or 2 In up/down PWM mode, the Timer Overflow Flag, TOV0 or TOV2, is set when the counter advances from $00.
  • Page 94 The mechanisms for reading TCNT2, OCR2 and TCCR2 are different. When reading TCNT2, the actual timer value is read. When reading OCR2 or TCCR2, the value in the temporary stor- age register is read. Asynchronous When Timer/Counter2 operates asynchronously, some considerations must be taken: Operation of •...
  • Page 95 AT94KAL Series FPSLIC of the timer clock, that is, the timer is always advanced by at least one before the processor can read the counter value. The interrupt flags are updated three processor cycles after the processor clock has started. During these cycles, the processor executes instructions, but the interrupt condition is not readable, and the interrupt routine has not started yet.
  • Page 96 The 16-bit Timer/Counter1 can select the clock source from CK, prescaled CK, or an external pin. In addition it can be stopped as described in section “Timer/Counter1 Control Register B – TCCR1B” on page 98. The different status flags (overflow, compare match and capture event) are found in the Timer/Counter Interrupt Flag Register –...
  • Page 97 AT94KAL Series FPSLIC Timer/Counter1 Control Register A – TCCR1A $2F ($4F) COM1A1 COM1A0 COM1B1 COM1B0 FOC1A FOC1B PWM11 PWM10 TCCR1A Read/Write Initial Value • Bits 7,6 - COM1A1, COM1A0: Compare Output Mode1A, Bits 1 and 0 The COM1A1 and COM1A0 control bits determine any output pin action following a compare match in Timer/Counter1.
  • Page 98 • Bits 1..0 - PWM11, PWM10: Pulse Width Modulator Select Bits These bits select PWM operation of Timer/Counter1 as specified in Table 28. This mode is described on page 101. Table 28. PWM Mode Select PWM11 PWM10 Description PWM operation of Timer/Counter1 is disabled Timer/Counter1 is an 8-bit PWM Timer/Counter1 is a 9-bit PWM Timer/Counter1 is a 10-bit PWM...
  • Page 99 AT94KAL Series FPSLIC • Bits 2,1,0 - CS12, CS11, CS10: Clock Select1, Bits 2, 1 and 0 The Clock Select1 bits 2,1 and 0 define the prescaling source of Timer/Counter1. Table 29. Clock 1 Prescale Select CS12 CS11 CS10 Description Stop, the Timer/Counter1 is stopped CK/8 CK/64...
  • Page 100 TCNT1 When the CPU reads the low byte TCNT1L, the data of the low byte TCNT1L is sent to the Timer/Counter1 Read CPU and the data of the high byte TCNT1H is placed in the TEMP register. When the CPU reads the data in the high byte TCNT1H, the CPU receives the data in the TEMP register.
  • Page 101 AT94KAL Series FPSLIC Timer/Counter1 Input Capture Register – ICR1H AND ICR1L $25 ($45) ICR1H $24 ($44) ICR1L Read/Write Initial Value The input capture register is a 16-bit read-only register. When the rising or falling edge (according to the input capture edge setting – ICES1) of the signal a t the input capture pin –...
  • Page 102 Table 30. Timer TOP Values and PWM Frequency CTC1 PWM11 PWM10 PWM Resolution Timer TOP Value Frequency 8-bit $00FF (255) /510 TCK1 9-bit $01FF (511) /1022 TCK1 10-bit $03FF(1023) /2046 TCK1 8-bit $00FF (255) /256 TCK1 9-bit $01FF (511) /512 TCK1 10-bit $03FF(1023)
  • Page 103 AT94KAL Series FPSLIC Figure 56. Effects on Unsynchronized OCR1 Latching Compare Value Changes Counter Value Compare Value PWM OutputOC1X Synchronized OCR1X Latch Compare Value Changes Counter Value Compare Value PWM OutputOC1X Glitch Unsynchronized OCR1X Latch Note: 1. X = A or B Figure 57.
  • Page 104: Watchdog Timer

    Table 32. PWM Outputs OCR1X = $0000 or TOP COM1X1 COM1X0 OCR1X Output OC1X $0000 $0000 Notes: 1. In overflow PWM mode, this table is only valid for OCR1X = TOP. 2. X = A or B In up/down PWM mode, the Timer Overflow Flag1, TOV1, is set when the counter advances from $0 000 .
  • Page 105 AT94KAL Series FPSLIC Watchdog Timer Control Register – WDTCR $21 ($41) WDTOE WDP2 WDP1 WDP0 WDTCR Read/Write Initial Value • Bits 7..5 - Res: Reserved Bits These bits are reserved bits in the FPSLIC and will always read as zero. •...
  • Page 106 Multiplier The multiplier is capable of multiplying two 8-bit numbers, giving a 16-bit result using only two clock cycles. The multiplier can handle both signed and unsigned integer and fractional num- bers without speed or code size penalty. Below are some examples of using the multiplier for 8-bit arithmetic.
  • Page 107 AT94KAL Series FPSLIC 8-bit Multiplication Doing an 8-bit multiply using the hardware multiplier is simple: just load the operands into two registers (or only one for square multiply) and execute one of the multiply instructions. The result will be placed in register pair R1:R0. However, note that only the MUL instruction does not have register usage restrictions.
  • Page 108 Example 3 – Multiply- The final example of 8-bit multiplication shows a multiply-accumulate operation. The general accumulate Operation formula can be written as: c n ( ) a n ( ) b × c n 1 – ; r17:r16 = r18 * r19 + r17:r16 r18,PINB ;...
  • Page 109 AT94KAL Series FPSLIC 16-bit x 16-bit = 16-bit This operation is valid for both unsigned and signed numbers, even though only the unsigned Operation multiply instruction (MUL) is needed, see Figure 61. A mathematical explanation is given: When A and B are positive numbers, or at least one of them is zero, the algorithm is clearly correct, provided that the product C = A •...
  • Page 110 16-bit x 16-bit = 32-bit Operation Example 4 – Below is an example of how to call the 16 x 16 = 32 multiply subroutine. This is also illustrated Basic Usage in Figure 62. 16-bit x 16-bit = 32-bit ldi R23,HIGH(672) Integer Multiply ldi R22,LOW(672) ;...
  • Page 111 AT94KAL Series FPSLIC 16-bit Multiply- Figure 63. 16-bit Multiplication, 32-bit Accumulated Result accumulate Operation AH AL BH BL AL * BL (sign ext) (sign AL * BH ext) (sign AH * BL ext) AH * BH ( Old ) ( New ) Using Fractional Unsigned 8-bit fractional numbers use a format where numbers in the range [0, 2>...
  • Page 112 Table 35. Comparison of Integer and Fractional Formats Unsigned Integer Unsigned Fractional Number Bit Number Bit Significance Bit Significance = 128 = 64 = 0.5 = 32 = 0.25 = 16 = 0.125 = 0.0625 = 0.3125 = 0.015625 = 0.0078125 Using the FMUL, FMULS and FMULSU instructions should not be more complex than the MUL, MULS and MULSU instructions.
  • Page 113 AT94KAL Series FPSLIC To convert a negative fractional number, first add 2 to the number and then use the same algorithm as already shown. 16-bit fractional numbers use a format similar to that of 8-bit fractional numbers; the high 8 bits have the same format as the 8-bit format.
  • Page 114 Implementations mul16x16_16 Description Multiply of two 16-bit numbers with a 16-bit result. Usage R17:R16 = R23:R22 • R21:R20 Statistics Cycles: 9 + ret Words: 6 + ret Register usage: R0, R1 and R16 to R23 (8 registers) Note: 1. Full orthogonality, i.e., any register pair can be used as long as the result and the two oper- ands do not share register pairs.
  • Page 115 AT94KAL Series FPSLIC muls16x16_32 Description Signed multiply of two 16-bit numbers with a 32-bit result. Usage R19:R18:R17:R16 = R23:R22 • R21:R20 Statistics Cycles: 19 + ret Words: 15 + ret Register usage: R0 to R2 and R16 to R23 (11 registers) Note: 1.
  • Page 116 mulsu r23, r20 ; (signed)ah * bl r19, r2 r17, r0 r18, r1 r19, r2 mulsu r21, r22 ; (signed)bh * al r19, r2 ; Sign extend r17, r0 r18, r1 r19, r2 mac16x16_32_method_B: ; uses two temporary registers (r4,r5), Speed / Size Optimized ;...
  • Page 117 AT94KAL Series FPSLIC fmuls16x16_32 Description Signed fractional multiply of two 16-bit numbers with a 32-bit result. Usage R19:R18:R17:R16 = (R23:R22 • R21:R20) << 1 Statistics Cycles: 20 + ret Words: 16 + ret Register usage: R0 to R2 and R16 to R23 (11 registers) Note: 1.
  • Page 118 r17, r1 r18, r2 r19, r2 fmulsu r23, r20 ; ( (signed)ah * bl ) << 1 r19, r2 r17, r0 r18, r1 r19, r2 fmulsu r21, r22 ; ( (signed)bh * al ) << 1 r19, r2 r17, r0 r18, r1 r19, r2 fmac16x16_32_method_B...
  • Page 119 AT94KAL Series FPSLIC UARTs The FPSLIC features two full duplex (separate receive and transmit registers) Universal Asyn- chronous Receiver and Transmitter (UART). The main features are: • Baud-rate Generator Generates any Baud-rate • High Baud-rates at Low XTAL Frequencies • 8 or 9 Bits Data •...
  • Page 120 Data transmission is initiated by writing the data to be transmitted to the UART I/O Data Reg- ister, UDRn. Data is transferred from UDRn to the Transmit shift register when: • A new character has been written to UDRn after the stop bit from the previous character has been shifted out.
  • Page 121 AT94KAL Series FPSLIC Data Reception Figure 65 shows a block diagram of the UART Receiver. Figure 65. UART Receiver DATA BUS UART I/O DATA REGISTER (UDRn) BAUD x 16 BAUD RATE BAUD XTAL GENERATOR STORE UDRn PIN CONTROL LOGIC 10(11)-BIT RX PE1/ RXDn DATA RECOVERY...
  • Page 122 If however, a valid start bit is detected, sampling of the data bits following the start bit is per- formed. These bits are also sampled at samples 8, 9 and 10. The logical value found in at least two of the three samples is taken as the bit value. All bits are shifted into the transmitter shift register as they are sampled.
  • Page 123 AT94KAL Series FPSLIC Multi-processor The Multi-processor Communication Mode enables several Slave MCUs to receive data from Communication Mode a Master MCU. This is done by first decoding an address byte to find out which MCU has been addressed. If a particular Slave MCU has been addressed, it will receive the following data bytes as normal, while the other Slave MCUs will ignore the data bytes until another address byte is received.
  • Page 124 UART0 Control and Status Registers – UCSR0A $0B ($2B) RXC0 TXC0 UDRE0 U2X0 MPCM0 UCSR0A Read/Write Initial Value UART1 Control and Status Registers – UCSR1A $02 ($22) RXC1 TXC1 UDRE1 U2X1 MPCM1 UCSR1A Read/Write Initial Value • Bit 7 - RXC0/RXC1: UART Receive Complete This bit is set (one) when a received character is transferred from the Receiver Shift register to UDRn.
  • Page 125 AT94KAL Series FPSLIC • Bit 3 - OR0/OR1: OverRun This bit is set if an Overrun condition is detected, i.e., when a character already present in the UDRn register is not read before the next character has been shifted into the Receiver Shift register.
  • Page 126 • Bit 3 - TXEN0/TXEN1: Transmitter Enable This bit enables the UART transmitter when set (one). When disabling the transmitter while transmitting a character, the transmitter is not disabled before the character in the shift register plus any following character in UDRn has been completely transmitted. •...
  • Page 127 AT94KAL Series FPSLIC Table 36. UBR Settings at Various Crystal Frequencies Clock UBRRHI Actual Desired Clock UBRRHI Actual Desired 7:4 or 3:0 UBRRn Freq Freq. Error 7:4 or 3:0 UBRRn Freq Freq. Error 1 0000 00011001 2404 2400 1.8432 0000 00101111 2400 2400...
  • Page 128 UART0 Baud-rate Register Low Byte – UBRR0 $09 ($29) UBRR0 Read/Write Initial Value UART1 Baud-rate Register Low Byte – UBRR1 $00 ($20) UBRR1 Read/Write Initial Value UBRRn stores the 8 least significant bits of the UART baud-rate register. Double Speed The FPSLIC provides a separate UART mode that allows the user to double the communica- Transmission tion speed.
  • Page 129 AT94KAL Series FPSLIC Table 37. UBR Settings at Various Crystal Frequencies in Double UART Speed Mode Clock UBRRHI Actual Desired Clock UBRRHI Actual Desired 7:4 or 3:0 UBRRn HEX UBR Freq Freq. Error 7:4 or 3:0 UBRRn Freq Freq. Error 0000 00110011 033 2404...
  • Page 130 2-wire Serial The 2-wire Serial Bus is a bi-directional two-wire serial communication standard. It is designed primarily for simple but efficient integrated circuit (IC) control. The system is comprised of two Interface lines, SCL (Serial Clock) and SDA (Serial Data) that carry information between the ICs con- (Byte Oriented) nected to them.
  • Page 131 AT94KAL Series FPSLIC Figure 70. Block diagram of the 2-wire Serial Bus Interface ADDRESS REGISTER COMPARATOR TWAR INPUT DATA SHIFT REGISTER OUTPUT TWDR START/STOP TIMING INPUT AND SYNC OUTPUT ARBITRATION CONTROL SERIAL CLOCK CONTROL GENERATOR REGISTER TWCR STATUS STATE MACHINE STATUS REGISTER STATUS DECODER...
  • Page 132 • Bits 7..0 - 2-wire Serial Bit-rate Register TWBR selects the division factor for the bit-rate generator. The bit-rate generator is a fre- quency divider which generates the SCL clock frequency in the Master modes according to the following equation: Bit-rate ------------------------------------- - 16 + 2(TWBR)
  • Page 133 AT94KAL Series FPSLIC • Bit 4 - TWSTO: 2-wire Serial Bus STOP Condition Flag TWSTO is a stop condition flag. In Master mode, setting the TWSTO bit in the control register will generate a STOP condition on the 2-wire Serial Bus. When the STOP condition is exe- cuted on the bus, the TWSTO bit is cleared automatically.
  • Page 134 The 2-wire Serial Data Register – TWDR $1F ($3F) TWDR Read/Write Initial Value • Bits 7..0 - TWD: 2-wire Serial Data Register These eight bits constitute the next data byte to be transmitted, or the latest data byte received on the 2-wire Serial Bus. In transmit mode, TWDR contains the next byte to be transmitted.
  • Page 135 AT94KAL Series FPSLIC 2-wire Serial Modes The 2-wire Serial Interface can operate in four different modes: • Master Transmitter • Master Receiver • Slave Receiver • Slave Transmitter Data transfer in each mode of operation is shown in Figure 71 to Figure 74. These figures con- tain the following abbreviations: S: START condition R: Read bit (High level at SDA)
  • Page 136 detailed in Table 41. The data must be loaded when TWINT is High only. If not, the access will be discarded, and the Write Collision bit, TWWC, will be set in the TWCR register. This scheme is repeated until a STOP condition is transmitted by writing a logic 1 to the TWSTO bit in the TWCR register.
  • Page 137 AT94KAL Series FPSLIC If the TWEA bit is reset during a transfer, the 2-wire Serial Interface will return a “Not Acknowl- edged” (1) to SDA after the next received data byte. While TWEA is reset, the 2-wire Serial Interface does not respond to its own Slave address. However, the 2-wire Serial Bus is still monitored and address recognition may resume at any time by setting TWEA.
  • Page 138 Table 41. Status Codes for Master Transmitter Mode Application Software Response Status Status of the 2-wire To TWCR Code Serial Bus and 2-wire Next Action Taken by 2-wire (TWSR) Serial Hardware To/From TWDR TWINT TWEA Serial Hardware A START condition Load SLA+W SLA+W will be transmitted;...
  • Page 139 AT94KAL Series FPSLIC Figure 71. Formats and States in the Master Transmitter Mode Successfull DATA transmission to a slave receiver Next transfer started with a repeated start condition Not acknowledge received after the slave address Not acknowledge received after a data byte Arbitration lost in slave Other master...
  • Page 140 Table 42. Status Codes for Master Receiver Mode Application Software Response Status Status of the 2-wire To TWCR Code Serial Bus and 2-wire Next Action Taken by 2-wire Serial (TWSR) Serial Hardware To/From TWDR TWINT TWEA Hardware A START condition has Load SLA+R SLA+R will be transmitted been transmitted...
  • Page 141 AT94KAL Series FPSLIC Figure 72. Formats and States in the Master Receiver Mode Successfull DATA DATA reception from a slave receiver Next transfer started with a repeated start condition Not acknowledge received after the slave address Arbitration lost in slave Other master Other master A or A...
  • Page 142 Table 43. Status Codes for Slave Receiver Mode Application Software Response Status Status of the 2-wire To TWCR Code Serial Bus and 2-wire Next Action Taken by 2-wire (TWSR) Serial Hardware To/From TWDR TWINT TWEA Serial Hardware Own SLA+W has been No TWDR action or Data byte will be received and NOT ACK received;...
  • Page 143 AT94KAL Series FPSLIC Table 43. Status Codes for Slave Receiver Mode (Continued) Application Software Response Status Status of the 2-wire To TWCR Code Serial Bus and 2-wire Next Action Taken by 2-wire (TWSR) Serial Hardware To/From TWDR TWINT TWEA Serial Hardware Previously addressed Read data byte or Data byte will be received and NOT ACK...
  • Page 144 Figure 73. Formats and States in the Slave Receiver Mode Reception of the own DATA DATA P or S slave address and one or more data bytes. All are acknowledged Last data byte received P or S is not acknowledged Arbitration lost as master and addressed as slave Reception of the general call...
  • Page 145 AT94KAL Series FPSLIC Table 44. Status Codes for Slave Transmitter Mode Application Software Response Status Status of the 2-wire To TWCR Code Serial Bus and 2-wire Next Action Taken by 2-wire (TWSR) Serial Hardware To/From TWDR TWINT TWEA Serial Hardware Own SLA+R has been Load data byte or Last data byte will be transmitted and NOT...
  • Page 146 Figure 74. Formats and States in the Slave Transmitter Mode Reception of the own DATA DATA P or S slave address and one or more data bytes Arbitration lost as master and addressed as slave Last data byte transmitted. All 1's P or S Any number of data bytes DATA...
  • Page 147 AT94KAL Series FPSLIC I/O Ports All AVR ports have true read-modify-write functionality when used as general I/O ports. This means that the direction of one port pin can be changed without unintentionally changing the direction of any other pin with the SBI and CBI instructions. The same applies for changing drive value (if configured as output) or enabling/disabling of pull-up resistors (if configured as input).
  • Page 148 Table 46. DDDn Bits on PortD Pins DDDn PORTDn Pull-up Comment Input Tri-state (High-Z) PDn will source current if Input external pulled low (default) Output Push-pull zero output Output Push-pull one output Note: 1. n: 7,6...0, pin number Figure 75. PortD Schematic Diagram PULLUP RESET RESET...
  • Page 149 AT94KAL Series FPSLIC Table 47. PortE Pins Alternate Functions Controlled by SCR and AVR I/O Registers Port Pin Alternate Function Input Output External Timer0 clock (UART0 transmit pin) Output compare (UART0 receive pin) Timer0/PWM0 (UART1 transmit pin) Output compare (UART1 receive pin) Timer2/PWM2 INT0 External Timer1 clock...
  • Page 150 LowPortE as General PEn, General I/O pin: The DDEn bit in the DDRE register selects the direction of this pin. If Digital I/O DDEn is set (one), PEn is configured as an output pin. If DDEn is cleared (zero), PEn is config- ured as an input pin.
  • Page 151 AT94KAL Series FPSLIC Alternate I/O PortE may also be used for various Timer/Counter functions, such as External Input Clocks Functions of PortE (TC0 and TC1), Input Capture (TC1), Pulse Width Modulation (TC0, TC1 and TC2), and tog- gling upon an Output Compare (TC0, TC1 and TC2). For a detailed pinout description, consult Table 47 on page 149.
  • Page 152 Figure 77. PortE Schematic Diagram (Pin PE1) PULL-UP RESET RESET DDE1 SCR(52) RESET OC0/PMW0 PORTE1 COM00 COM01 GTS: Global Tri-State DL: Configuration Download SCR(52) WL: Write PORTE WD: Write DDRE RL: Read PORTE Latch PULL-UP RD: Read DDRE RP: Read PORTE Pin RX0D RX0D: UART 0 Receive Data SCR: System Control Register...
  • Page 153 AT94KAL Series FPSLIC Figure 78. PortE Schematic Diagram (Pin PE2) PULL-UP RESET RESET DDE2 TX1ENABLE SCR(53) TX1D RESET PORTE2 TX1ENABLE SCR(53) PULL-UP GTS: Global Tri-State DL: Configuration Download RESET WL: Write PORTE WD: Write DDRE RL: Read PORTE Latch RD: Read DDRE TX1D RP: Read PORTE Pin TX1D: UART 1 Transmit Data...
  • Page 154 PortE Schematic Diagram (Pin PE3) PULL-UP RESET RESET DDE3 SCR(53) RESET OC2/PMW2 PORTE3 COM20 COM21 SCR(53) GTS: Global Tri-State DL: Configuration Download PULL-UP WL: Write PORTE RX1D WD: Write DDRE RL: Read PORTE Latch RD: Read DDRE RP: Read PORTE Pin RX1D: UART 1 Receive Data SCR: System Control Register OC2/PMW2: Timer/Counter 2 Output Compare...
  • Page 155 AT94KAL Series FPSLIC Figure 79. PortE Schematic Diagram (Pin PE4) PULL-UP RESET RESET DDE4 SCR(48) RESET PORTE4 SCR(48) GTS: Global Tri-State PULL-UP DL: Configuration Download WL: Write PORTE extintp0 WD: Write DDRE RL: Read PORTE Latch RD: Read DDRE RP: Read PORTE Pin INTP0 extintp0: External Interrupt 0 SCR: System Control Register...
  • Page 156 Figure 80. PortE Schematic Diagram (Pin PE5) PULL-UP RESET RESET DDE5 SCR(49) RESET OC1B PORTE5 COM1B0 COM1B1 GTS: Global Tri-State DL: Configuration Download WL: Write PORTE WD: Write DDRE SCR(49) RL: Read PORTE Latch RD: Read DDRE PULL-UP RP: Read PORTE Pin extintp1: External Interrupt 1 SCR: System Control Register extintp1...
  • Page 157 AT94KAL Series FPSLIC Figure 81. PortE Schematic Diagram (Pin PE6) PULL-UP RESET RESET DDE6 SCR(50) RESET OC1A PORTE6 COM1A0 COM1A1 GTS: Global Tri-State DL: Configuration Download WL: Write PORTE SCR(50) WD: Write DDRE RL: Read PORTE Latch PULL-UP RD: Read DDRE RP: Read PORTE Pin extintp2 extintp2: External Interrupt 2...
  • Page 158 Figure 82. PortE Schematic Diagram (Pin PE7) PULL-UP RESET RESET DDE7 SCR(51) RESET PORTE7 SCR(51) GTS: Global Tri-State PULL-UP DL: Configuration Download WL: Write PORTE extintp3 WD: Write DDRE RL: Read PORTE Latch RD: Read DDRE RP: Read PORTE Pin INTP3 extintp3: External Interrupt 3 SCR: System Control Register...
  • Page 159: Absolute Maximum Ratings

    AT94KAL Series FPSLIC AC & DC Timing Characteristics Absolute Maximum Ratings* Operating Temperature........-55°C to +125 °C *NOTICE: Stresses beyond those listed under Absolute Maximum Ratings may cause permanent dam- Storage Temperature ........-65 °C to +150°C age to the device. This is a stress rating only and functional operation of the device at these or any Voltage on Any Pin...
  • Page 160 DC Characteristics – 3.3V Operation – Commercial/Industrial (Preliminary) = -40°C to 85°C, V = 2.7V to 3.6V (unless otherwise noted Symbol Parameter Conditions Minimum Typical Maximum Units High-level Input Voltage CMOS 0.7 V – Input High-voltage XTAL 0.7 V – + 0.5 Input High-voltage RESET...
  • Page 161 AT94KAL Series FPSLIC Power-On Atmel FPGAs require a minimum rated power supply current capacity to insure proper initial- ization, and the power supply ramp-up time does affect the current required. A fast ramp-up Power Supply time requires more current than a slow ramp-up time.
  • Page 162 FPSLIC Dual-port The Dual-port SRAM operates in single-edge clock controlled mode during read operations, and a double-edge controlled mode during write operations. Addresses are clocked internally SRAM on the rising edge of the clock signal (ME). Any change of address without a rising edge of ME Characteristics is not considered.
  • Page 163 AT94KAL Series FPSLIC Table 50. SRAM Read Cycle Timing Numbers Commercial 3.3V ± 10%/Industrial 3.3V ± 10% Commercial Industrial Symbol Parameter Minimum Typical Maximum Minimum Typical Maximum Units Address Setup Address Hold Read Cycle Setup Read Cycle Hold Access Time from Posedge ME Minimum ME High Minimum ME Low Table 51.
  • Page 164 Table 52. FPSLIC Interface Timing Information 3.3V Commercial ± 10% 3.3V Industrial ± 10% Symbol Parameter Minimum Typical Maximum Minimum Typical Maximum Units Clock Delay From XTAL2 Pad IXG4 to GCK_5 Access to FPGA Core Clock Delay From XTAL2 Pad IXG5 to GCK_6 Access to FPGA Core Clock Delay From XTAL2 Pad...
  • Page 165 AT94KAL Series FPSLIC External Clock Figure 85. External Clock Drive Waveforms Drive Waveforms VIH1 VIL1 Table 53. External Clock Drive, V = 3.0V to 3.6V Symbol Parameter Minimum Maximum Units Oscillator Frequency CLCL Clock Period – CLCL High Time – CHCX Low Time –...
  • Page 166 AC Timing Characteristics – 3.3V Operation Delays are based on fixed loads and are described in the notes. Maximum times based on worst case: V = 3.00V, temperature = 70°C Minimum times based on best case: V = 3.60V, temperature = 0°C Maximum delays are the average of t and t PDLH...
  • Page 167 AT94KAL Series FPSLIC AC Timing Characteristics – 3.3V Operation Delays are based on fixed loads and are described in the notes. Maximum times based on worst case: V = 3.0V, temperature = 70°C Minimum times based on best case: V = 3.6V, temperature = 0°C Maximum delays are the average of t and t...
  • Page 168 AC Timing Characteristics – 3.3V Operation Delays are based on fixed loads and are described in the notes. Maximum times based on worst case: V = 3.0V, temperature = 70°C Minimum times based on best case: V = 3.6V, temperature = 0°C Maximum delays are the average of t and t PDLH...
  • Page 169 Buffer delay is to a pad voltage of 1.5V with one output switching. Parameter based on characterization and simulation; not tested in production. An FPGA power calculation is available in Atmel’s System Designer software (see also page 160). Rev. 1138G–FPSLI–11/03...
  • Page 170 FPSLIC devices should be laid out to support a split power supply for both AL and AX families. Please refer to the “Designing in Split Power Supply Support for AT94KAL and AT94SAL Devices” application note, available on the Atmel web site. Table 54. Part and Package Combinations Available...
  • Page 171 AT94KAL Series FPSLIC Table 56. AT94K Pin List (Continued) Packages AT94K05 AT94K10 AT94K40 96 FPGA I/O 192 FPGA I/O 384 FPGA I/O PC84 TQ100 PQ144 PQ208 I/O10 I/O11 I/O12 I/O13 I/O14 I/O7 I/O7 I/O15 I/O8 I/O8 I/O16 I/O9 I/O17 I/O10 I/O18 I/O19 I/O20...
  • Page 172 Table 56. AT94K Pin List (Continued) Packages AT94K05 AT94K10 AT94K40 96 FPGA I/O 192 FPGA I/O 384 FPGA I/O PC84 TQ100 PQ144 PQ208 I/O37 I/O38 I/O39 I/O40 I/O19 I/O41 I/O20 I/O42 I/O13 I/O21 I/O43 I/O14 I/O22 I/O44 I/O45 I/O46 I/O15 (A22) I/O23 (A22) I/O47 (A22) I/O16 (A23)
  • Page 173 AT94KAL Series FPSLIC Table 56. AT94K Pin List (Continued) Packages AT94K05 AT94K10 AT94K40 96 FPGA I/O 192 FPGA I/O 384 FPGA I/O PC84 TQ100 PQ144 PQ208 I/O64 I/O65 I/O66 I/O31 I/O67 I/O32 I/O68 I/O21 (A26) I/O33 (A26) I/O69 (A26) I/O22 (A27) I/O34 (A27) I/O70 (A27) I/O23...
  • Page 174 Table 56. AT94K Pin List (Continued) Packages AT94K05 AT94K10 AT94K40 96 FPGA I/O 192 FPGA I/O 384 FPGA I/O PC84 TQ100 PQ144 PQ208 I/O91 I/O92 I/O29 I/O45 I/O93 I/O30 I/O46 I/O94 I/O31 (OTS) I/O47 (OTS) I/O95 (OTS) I/O32, GCK2 I/O48, GCK2 I/O96, GCK2 (A29) (A29)
  • Page 175 AT94KAL Series FPSLIC Table 56. AT94K Pin List (Continued) Packages AT94K05 AT94K10 AT94K40 96 FPGA I/O 192 FPGA I/O 384 FPGA I/O PC84 TQ100 PQ144 PQ208 I/O113 I/O114 I/O115 I/O116 I/O59 I/O117 I/O60 I/O118 I/O119 I/O120 I/O41 I/O61 I/O121 I/O42 I/O62 I/O122 I/O43/TMS...
  • Page 176 Table 56. AT94K Pin List (Continued) Packages AT94K05 AT94K10 AT94K40 96 FPGA I/O 192 FPGA I/O 384 FPGA I/O PC84 TQ100 PQ144 PQ208 I/O140 I/O141 I/O142 I/O47 (TD7) I/O71 (TD7) I/O143 (TD7) I/O48 (InitErr) I/O72 (InitErr) I/O144 (InitErr) I/O49 (TD6) I/O73 (TD6) I/O145 (TD6) I/O50 (TD5)
  • Page 177 AT94KAL Series FPSLIC Table 56. AT94K Pin List (Continued) Packages AT94K05 AT94K10 AT94K40 96 FPGA I/O 192 FPGA I/O 384 FPGA I/O PC84 TQ100 PQ144 PQ208 I/O55 I/O83 I/O167 I/O56 I/O84 I/O168 I/O169 I/O170 I/O85 I/O171 I/O86 I/O172 I/O173 I/O174 I/O175 I/O176 I/O87...
  • Page 178 Table 56. AT94K Pin List (Continued) Packages AT94K05 AT94K10 AT94K40 96 FPGA I/O 192 FPGA I/O 384 FPGA I/O PC84 TQ100 PQ144 PQ208 RESET RESET RESET No Connect No Connect No Connect CS0, Cs0n CS0, Cs0n CS0, Cs0n PE7 (CHECK) PE7 (CHECK) (CHECK) Notes:...
  • Page 179 AT94KAL Series FPSLIC Table 56. AT94K Pin List (Continued) Packages AT94K05 AT94K10 AT94K40 96 FPGA I/O 192 FPGA I/O 384 FPGA I/O PC84 TQ100 PQ144 PQ208 INTP0 INTP0 INTP0 XTAL1 XTAL1 XTAL1 XTAL2 XTAL2 XTAL2 INTP1 INTP1 INTP1 INTP2 INTP2 INTP2 TOSC1 TOSC1...
  • Page 180 Table 56. AT94K Pin List (Continued) Packages AT94K05 AT94K10 AT94K40 96 FPGA I/O 192 FPGA I/O 384 FPGA I/O PC84 TQ100 PQ144 PQ208 I/O100 I/O148 I/O292 I/O293 I/O294 I/O295 I/O296 I/O101 (CS1, I/O149 (CS1, I/O297 (CS1, I/O102 (A3) I/O150 (A3) I/O298 (A3) I/O299 I/O300...
  • Page 181 AT94KAL Series FPSLIC Table 56. AT94K Pin List (Continued) Packages AT94K05 AT94K10 AT94K40 96 FPGA I/O 192 FPGA I/O 384 FPGA I/O PC84 TQ100 PQ144 PQ208 I/O319 I/O320 I/O321 I/O322 I/O323 I/O324 I/O107 (A4) I/O161 (A4) I/O325 (A4) I/O108 (A5) I/O162 (A5) I/O326 (A5) I/O163...
  • Page 182 Table 56. AT94K Pin List (Continued) Packages AT94K05 AT94K10 AT94K40 96 FPGA I/O 192 FPGA I/O 384 FPGA I/O PC84 TQ100 PQ144 PQ208 I/O173 I/O345 I/O174 I/O346 I/O117 (A10) I/O175 (A10) I/O347 (A10) I/O118 (A11) I/O176 (A11) I/O348 (A11) I/O349 I/O350 I/O351 I/O352...
  • Page 183 AT94KAL Series FPSLIC Table 56. AT94K Pin List (Continued) Packages AT94K05 AT94K10 AT94K40 96 FPGA I/O 192 FPGA I/O 384 FPGA I/O PC84 TQ100 PQ144 PQ208 I/O373 I/O374 I/O375 I/O376 I/O377 I/O378 I/O187 I/O379 I/O188 I/O380 I/O125 I/O189 I/O381 I/O126 I/O190 I/O382 I/O127 (A14)
  • Page 184: Ordering Information

    Ordering Information Usable Gates Speed Grade Ordering Code Package Operation Range 5,000 -25 MHz AT94K05AL-25AJC Commercial AT94K05AL-25AQC 100A (0°C - 70°C) AT94K05AL-25BQC 144L1 AT94K05AL-25DQC 208Q1 AT94K05AL-25AJI Industrial AT94K05AL-25AQI 100A (-40°C - 85°C) AT94K05AL-25BQI 144L1 AT94K05AL-25DQI 208Q1 10,000 -25 MHz AT94K10AL-25AJC Commercial AT94K10AL-25AQC 100A...
  • Page 185: Packaging Information

    AT94KAL Series FPSLIC Packaging Information 84J – PLCC 1.14(0.045) X 45˚ PIN NO. 1 1.14(0.045) X 45˚ 0.318(0.0125) IDENTIFIER 0.191(0.0075) D2/E2 0.51(0.020)MAX 45˚ MAX (3X) COMMON DIMENSIONS (Unit of Measure = mm) SYMBOL NOTE 4.191 – 4.572 2.286 – 3.048 0.508 –...
  • Page 186 100A – TQFP PIN 1 PIN 1 IDENTIFIER 0˚~7˚ COMMON DIMENSIONS (Unit of Measure = mm) SYMBOL NOTE – – 1.20 0.05 – 0.15 0.95 1.00 1.05 15.75 16.00 16.25 13.90 14.00 14.10 Note 2 15.75 16.00 16.25 Notes: 1. This package conforms to JEDEC reference MS-026, Variation AED. 13.90 14.00 14.10...
  • Page 187 AT94KAL Series FPSLIC 144L1 – LQFP Bottom View Top View COMMON DIMENSIONS (Unit of Measure = mm) NOTE SYMBOL 0.05 0.15 1.35 1.40 1.45 22.00 BSC 20.00 BSC 2, 3 22.00 BSC Side View 20.00 BSC 2, 3 0.50 BSC 0.17 0.22 0.27...
  • Page 188 208Q1 – PQFP Side View Top View COMMON DIMENSIONS (Unit of Measure = mm) SYMBOL NOTE 0.25 – 0.50 3.20 3.40 3.60 30.60 BSC 28.00 BSC 2, 3 30.60 BSC 28.00 BSC 2, 3 0.50 BSC 0.17 – 0.27 1.30 REF Bottom View Notes: 1.
  • Page 189 AT94KAL Series FPSLIC Thermal Coefficient Table Theta J-A Theta J-A Theta J-A Package Style Lead Count 0 LFPM 225 LFPM 500 LPFM Theta J-C PLCC TQFP LQFP PQFP Rev. 1138G–FPSLI–11/03...
  • Page 190 AT94K Series FPSLIC Table of Contents Features....................1 Description .................... 2 FPGA Core..................... 5 Fast, Flexible and Efficient SRAM ................ 5 Fast, Efficient Array and Vector Multipliers ............5 Cache Logic Design....................5 Automatic Component Generators ............... 5 The Symmetrical Array ..................5 The Busing Network .....................
  • Page 191 JTAG Interface and On-chip Debug System ............68 IEEE 1149.1 (JTAG) Boundary-scan..............73 Bypass Register....................74 Device Identification Register ................74 AVR Reset Register.................... 75 Timer/Counters ....................85 Timer/Counter Prescalers ................... 85 8-bit Timers/Counters T/C0 and T/C2..............86 Timer/Counter1....................95 Watchdog Timer ....................
  • Page 192 No licenses to patents or other intellectual property of Atmel are granted by the Company in connection with the sale of Atmel products, expressly or by implication. Atmel’s products are not authorized for use as critical components in life support devices or systems.

Table of Contents