1.4 외부 메모리 인터페이스

특징

u 외부 메모리는 PORT A PORT C를 이용하여 연결합니다.

u PORT A외부 데이터 메모리를 액세스하기 위한 데이터 버스 및 하위 어드레스 버스로 사용됩니다.

u PORT C는 외부 데이터 메모리를 액세스하기 위한 16비트 어드레스 중에서 상위 8비트 어드레스 버스로 사용 됩니다.

u PORT A ALE 신호에 의해 데이터 버스와 하위 어드레스 버스로 분리됩니다.

u 외부 메모리를 사용 하기 위해서는 별도의 Register를 초기에 선언해야 합니다.

u 외부 메모리 번지는 0x1100 ~ 0xFFFF까지로 약 60Kbyte 입니다.

u 메모리 외에 외부 확장 I/O로 사용 하기도 합니다 

 

 

1) 외부에 연결된 디바이스중는 지원할 수 있는 I/O 속도가 전부 다릅니다. 예를 들어 보면 SRAM도 일반적으로 마지막에 -55,-70,-100 등으로 적혀 있는데 55의 의미는 55ns 까지 동작이 가능하다는 것이다. 만약 100ns에서 동작이 가능한 소자를 55ns로 동작을 하려고 하면 분명히 문제가 발생합니다.

ATmega128은 기본적인 속도에서 1~3개까지의 대기 사이클을 줄 수 있어서 디바이스 간의 속도문제를 해결할 수 있도록 도와 줍니다.

 

 

- 아래 그림은 기본 사이클 입니다. (SRWn1 = 0, SRWn0 = 0)

 

 

- 아래 그림은 대기 1사이클 입니다. (SRWn1 = 0, SRWn0 = 1)

 

 

- 아래 그림은 대기 2사이클 입니다. (SRWn1 = 1, SRWn0 = 0)

 

 

- 아래 그림은 대기 3사이클 입니다. (SRWn1 = 1, SRWn0 = 1)

 

2) 레지스터

- MCUCR (MCU Control Register): CPU의 전체적인 기능을 설정한다.

 

 

 

Bit 7, SRE(External SRAM/XMEM Enable) : 외부 데이터 어섹스 신호를 사용할지를 설정 한다.

이 기능이 설정되면 일반 I/O 가 어드레스 버스 모드로 변경된다.

Bit 6, SRW10(Wait-state Select Bit) : SRW11과 함께 대기시간을 조절한다.

 

 

- XMCRA (External Memory Control Register A)

 

 

Bit 6..4, SRL2, SRL1, SRL0 (Wait-state Sector Limit) : 외부 데이터 영역을 2개로 나누어서 각각의 대기시간을 조절 할 수 있는데 이 레지스터는 영역을 어떻게 나눌지를 선택 한다.

 

 

Bit 3..2, SRW01, SRW00 (Wait-state Select Bits for Lower Sector):

SRW11, SRW10 Upper sector 의 대기 시간을 조절 하며 SRW01,SRW00 Lower sector의 대기시간을 조절한다.

 

 

 

 

Bit 7, XMBK (External Memory Bus-keeper Enable) : AD 버스에 3-state 상태일 조건에서 이전 값을 유지하도록 한다.

Bit 2..0, XMM2, XMM1, XMM0 (External Memory High Mask) : 어드레스 상위 바이트 어디 까지 쓸 것인지 결정 한다. 사용하지 않는 포트는 일반적인 I/O 로 사용이 가능하다. XMM2,1,0“001”로 설정하면 PORT C 7번은 일반 I/O로 사용 가능하다.

 

+ Recent posts