AT91 Memory Interface This training module describes the External Bus Interface (EBI), which generatesthe signals that control the access to the external.

Slides:



Advertisements
Similar presentations
6-April 06 by Nathan Chien. PCI System Block Diagram.
Advertisements

8086 [2] Ahad. Internal! External? 8086 vs _bit Data Bus 20_bit Address 8_bit Data Bus 20_bit Address Only external bus of 8088 is.
Chapter 5 Internal Memory
Dr. Rabie A. Ramadan Al-Azhar University Lecture 3
TK2633 Introduction to Parallel Data Interfacing DR MASRI AYOB.
The 8085 Microprocessor Architecture
I/O Unit.
68000 Interface Timing Diagrams Outline –68000 Read Cycle –68000 Write Cycle Goal –Understand bus cycles –Learn how to attach memory, peripherals.
NS Training Hardware. Memory Interface Support for SDRAM, asynchronous SRAM, ROM, asynchronous flash and Micron synchronous flash Support for 8,
Microcomputer & Interfacing Lecture 2
3-1 System peripherals & Bus Structure Memory map of the LPC2300 device is one contiguous 32-bit address range. However, the device itself is made up of.
ECE 353 Introduction to Microprocessor Systems Discussion 8.
MICROPROCESSOR INPUT/OUTPUT
Memory Devices on DE2-115 數位電路實驗 TA: 吳柏辰 Author: Trumen.
AT91 Memory Interface. 2 Features –Up to 8 programmable chip select lines –Remap Command allows dynamic exception vectors –Glue-less for both 8-bit and.
Computer Architecture Lecture 24 Fasih ur Rehman.
8254 Timer.
Introduction to Microprocessors - chapter3 1 Chapter 3 The 8085 Microprocessor Architecture.
COMP541 Memories II: DRAMs
بسم الله الرحمن الرحيم MEMORY AND I/O.
07/11/2005 Register File Design and Memory Design Presentation E CSE : Introduction to Computer Architecture Slides by Gojko Babić.
Contemporary DRAM memories and optimization of their usage Nebojša Milenković and Vladimir Stanković, Faculty of Electronic Engineering, Niš.
ADC 1 Analog to Digital Converter. ADC 2 ADC Features n General Features -Supports 8 or 10-bit resolution Modes, -Track period fully programmable up to.
Memory Interface EEE 365 [FALL 2014] LECTURER 12 ATANU K SAHA BRAC UNIVERSITY.
Physical Memory and Physical Addressing ( Chapter 10 ) by Polina Zapreyeva.
Seminar On 8085 microprocessor
COMP541 Memories II: DRAMs
Architectures of Digital Information Systems Part 1: Interrupts and DMA dr.ir. A.C. Verschueren Eindhoven University of Technology Section of Digital.
The 8085 Microprocessor Architecture
Timer and Interrupts.
ECE 353 Introduction to Microprocessor Systems
9S12C Multiplexed Bus Expansion
Chapter 11: Inter-Integrated Circuit (I2C) Interface
UNIT – Microcontroller.
Direct Memory address and 8237 dma controller LECTURE 6
Introduction to the processor and its pin configuration
Each I/O pin may be configured as either input or output.
I/O Memory Interface Topics:
The 8085 Microprocessor Architecture
COMP541 Memories II: DRAMs
1 Input-Output Organization Computer Organization Computer Architectures Lab Peripheral Devices Input-Output Interface Asynchronous Data Transfer Modes.
Introduction of microprocessor
Dr. Michael Nasief Lecture 2
DMA CONTROLLER 8257 Features: It is a 4-channel DMA.
8085 Microprocessor Architecture
An Introduction to Microprocessor Architecture using intel 8085 as a classic processor
Avalon Switch Fabric.
Interfacing Memory Interfacing.
AT91RM9200 Boot strategies This training module describes the boot strategies on the AT91RM9200 including the internal Boot ROM and the U-Boot program.
Timing Analysis 11/21/2018.
Lecture 18 Interrupt 동국대학교 홍유표.
Architecture & Support Components
Programmable Interval timer 8253 / 8254
May 2006 Saeid Nooshabadi ELEC2041 Microprocessors and Interfacing Lectures 30: Memory and Bus Organisation - I
8085 Microprocessor Architecture
8259 Programmable Interrupt Controller
Programmable Interval timer 8253 / 8254
Md. Mojahidul Islam Lecturer Dept. of Computer Science & Engineering
Md. Mojahidul Islam Lecturer Dept. of Computer Science & Engineering
The 8085 Microprocessor Architecture
8051 Micro Controller.
8253 – PROGRAMMABLE INTERVAL TIMER (PIT). What is a Timer? Timer is a specialized type of device that is used to measure timing intervals. Timers can.
Modified from notes by Saeid Nooshabadi
8085 Microprocessor Architecture
Bob Reese Micro II ECE, MSU
ADSP 21065L.
Register sets The register section/array consists completely of circuitry used to temporarily store data or program codes until they are sent to the.
The Programmable Peripheral Interface (8255A)
Computer Operation 6/22/2019.
CPU Sequencing 7/20/2019.
Presentation transcript:

AT91 Memory Interface This training module describes the External Bus Interface (EBI), which generatesthe signals that control the access to the external memory or peripheral devices.

External Bus Interface (1/2) Features Up to 8 programmable chip select lines Remap Command allows dynamic exception vectors Glue-less for both 8-bit and 16-bit standard memories 16-bit memories emulated with 2 8-bit memories Up to 8 Wait States can be programmed External wait request supported Early Read protocol allows faster clock with slower RAM Data Float Time programming (up to 7) allows connections of high tDF devices The External Bus Interface has 8 chip selects and a 24-bit address bus, the upper four bits of which are multiplexed with chip select lines at the exception of the M55. The remap command enables switching between the boot memory and the internal RAM bank addresses allowing the exception vectors mapped from address 0x0 to 0x20 to be redefined dynamically by the software programs. The 16-bit data bus can be configured to interface with 8-or 16-bit external devices. Separate read and write control signals allow for direct memory and peripheral interfacing and 2 8-bit data-path memories can be emulated like a 16-bit data-path memory. Up to 8 standard Wait States can be software programmed to access slow peripherals. To insert more Wait States, an external Wait States request may be presented with the assertion of the NWAIT signal. An Early Read protocol has been defined to allow the use of faster clock with slower RAM. A Data Float Time may be programmed to allow connection of devices that free too slowly the data-bus after a read access.

External Bus Interface (2/2) Block Diagram

Byte Access Type Select the most cost effective 16-bit memory implementation Byte Select Access Type : one actual 16-bit memory Byte Write Access Type : 2 8-bit memories Let’s present now the different possible connections with external devices, depending on data-bus path and their control signals. Each chip select with a 16-bit data-path bus can operate with one of two different types of write access. Byte Select Access selects upper and/or lower byte with two byte select lines (NLB and NUB), and separate read and write signals (NRD and NWE). So, it is used to connect 16-bit devices in a memory page and if the device supports byte accesses, NLB enables the lower byte, NUB enables the upper byte. Byte Write Access supports two byte write signals (NWR0 and NWR1) and a single read signal (NRD). So, it is used to connect 2 8-bit devices as a 16-bit memory page. NWR1 enables upper byte writes and NWR0 enables lower byte writes.

Standard RAM connections So, as an example, these are standard RAM connections with: - an 8-bit data-path bus Static RAM: NWR0 drives the Write Enable input, the lower part of the AT91 data-bus is connected to the memory, A0 and A1 to A18 are connected to the memory address signals. - 2 8-bit data-path bus Static RAM used as a single 16-bit data-path device: example of a Byte Write Access Type connection (AT91 evaluation boards situation). - 1 16-bit data-path bus Static RAM with byte access capability: example of a Byte Select Access Type connection.

Standard Flash connections Another example: these are standard Flash connections with: - an 8-bit data-path bus Flash: NWR0 drives the Write Enable input, the lower part of the AT91 data-bus is connected to the memory, A0 and A1 to A18 are connected to the memory address signals. - 2 8-bit data-path bus Flash used as a single 16-bit data-path device: example of a Byte Write Access Type connection. - 1 16-bit data-path bus Flash without byte access capability (this is generally the case), so the Write Enable Flash input is connected to the AT91 NWE signal: in that situation, either Byte Select or Byte Write Access Type software program will work (evaluation boards situation).

The Early Read Protocol Read accesses may be handled with 2 different protocols to take into account peripherals particularities: - Standard read protocol implements a read cycle in which NRD and NWE are similar. Both are active during the second half of the clock cycle. - Early read protocol provides more time for a read access from the memory by asserting NRD at the beginning of the clock cycle. In the case of successive read cycles in the same memory, NRD remains active continuously. So, Early Read protocol can allow a faster clock frequency to be used or work faster by eliminating a Wait State.

Early Read Wait State In Early Read Protocol, the EBI adds automatically one wait state after an external write access to remove any Data Bus contention risks In early read protocol, an early read wait state is automatically inserted when an external write cycle is followed by a read cycle to allow time for the write cycle to end before the subsequent read cycle begins. This wait state is generated in addition to any other programmed wait states (i.e. data float wait). No wait state is added when a read cycle is followed by a write cycle, between consecutive accesses of the same type or between external and internal memory accesses. Early read wait states affect the external bus only. They do not affect internal bus timing.

Standard Programmable Wait States Read Cycle Waveform Write Cycle Waveform About Wait States to access slow peripherals: Each chip select can be programmed to insert one or more (up to 8) wait states during an access on the corresponding device. Note that if NRD is always de-asserted on the MCKI rising edge of the last access cycle, it is not the case for NWR: if standard Wait States are added, NWR is de-asserted one half cycle before the end of the access. Note also the Chip Select Change Wait State: a chip select wait state is added when consecutive accesses are made to 2 different external memories. It is not added if the first access is done with standard wait states.

Calculating required standard wait states with AC Characteristics (1/2) Parameters to be considered tCE = 90ns max tOE = 40ns max So, the requirements are (std read) ntCP - EBI4 - EBI25  tCE ntCP - tCP/2 - EBI22 - EBI25  tOE AT91M55800A EBI Timings @ 32MHz AT49BV1604-90 Read Timings

Calculating required standard wait states with AC Characteristics (2/2) Parameters to be considered: tWP = 100ns min tDS = 100ns min So, the requirements are: (n-1)tCP - EBI8 + EBI10  tWP (n-1)tCP - EBI11 + EBI10  tDS AT91M55800A EBI Timings @ 32MHz AT49BV1604-90 Write Timings

External Wait States To access slow peripherals with more than 8 Wait States NWAIT assertion stops the internal Wait States counter Setup and Hold times to respect, regarding the MCK rising edge So it may be necessary to program one standard Wait State to take into account the decode logic latency

Data Float Time Data Float helps to support devices very slow in releasing the Data Bus Read Device a 2 tdf cycle Read Device b 3 tdf cycle Data Float Time cycles includes internal access cycle Read Device a 2 tdf cycle Internal Access Read Device b 3 tdf cycle Some memory devices are slow to release the external bus. For such devices it is necessary to add wait states (data float waits) after a read access before starting a write access or a read access to a different external memory. It represents the time allowed for the data output to go high impedance after the memory is disabled.

Boot Mode and Remap Command Default Memory 0 configuration : CSR0 = 0x0000203D or 0x0000203E 8 wait states 0 data float time 8/16 bits data bus width selected by BMS if 16 bits data bus width is selected, byte access type is not significant, because continuous read is made in memory 0 Speed up of the boot sequence before remap can be performed by writing EBI_CSR0 Base addresses are defined in EBI registers In EBI_CSR0 for Memory 0 generally corresponds to the link address The ARM vectors are mapped from address 0x0 to address 0x20. The remap command allows these vectors to be redefined dynamically by the software. The remap consists in switching between the boot memory and the internal RAM bank addresses. Before the remap command, the only peripherals accessible are the internal memories and registers and the boot memory, selected by the Chip Select 0, the user can modify the chip select 0 configuration, programming the EBI_CSR0 with the exact boot memory characteristics. The base address becomes effective after the remap command, but the new number of wait states can be changed immediately. This is useful if a boot sequence needs to be faster. The base addresses are defined in the EBI registers, In EBI_CSR0 register for the memory connected to CS0. This base address generally corresponds to the link address.

External Bus Interface Benefits Allows to reach the maximum of performance in Thumb Mode That’s ARM highest performance allowed with a 16-bit bus ! Emulates 2 8-bit memories as a 16-bit one Supports any kind of 8-bit or 16-bit static memory Select the most cost effective memory solution Remap Command maps exception vectors in internal SRAM Fast Interrupt Handling Dynamic Exception Vectors