atmega128 외부메모리 예제
SPI 메모리는 모든 SPI 장치 간에 공유되는 3개의 I/O 핀과 장치당 1개의 I/O «칩 선택» 핀이 필요한 «SPI 버스»를 사용합니다. I2C보다 한두 배 더 빨리 크기가 될 수 있습니다. SPI 메모리 칩의 선택은 I2C보다 제한적이지만 메모리 칩은 일반적으로 더 큽니다(예: JeeLink에 사용되는 2M바이트 칩). I2C에 대한 SPI의 장점은 속도이지만 여전히 직렬로 연결된 솔루션이므로 ATmega의 내장 메모리보다 훨씬 느린 순서입니다. 종종 외부 메모리는 여러 가지 목적으로 사용되며 응용 프로그램에서 모놀리식 «청크»로 볼 수 없습니다. 오프 칩 메모리 블록을 구성하여 메모리 액세스를 단순화하는 방법은 응용 프로그램 코딩을 단순화하는 데 유용합니다. 이러한 기술의 한 예는 실리콘 연구소 C8051F70x/71x MCU 제품군에서 사용됩니다. 이 MCU외장성 메모리는 특별한 MOVX 명령을 사용하여 액세스됩니다. 온칩 및 오프칩 메모리에 대한 액세스를 쉽게 결합할 수 있도록 온칩 메모리의 일부를 외부 메모리 공간에 매핑할 수 있습니다.
그림 2는 내부 및 외부 메모리를 외부 메모리 주소 공간에 매핑하는 데 사용할 수 있는 네 가지 구성 모드를 보여 주며 있습니다. 그림 2의 맨 왼쪽에 표시된 모드 1에서는 내장 XRAM이 전체 외부 메모리 공간에 매핑되며 온칩 XRAM 메모리 주소가 온칩 메모리 양을 초과할 때 주소가 «래핑»됩니다. 초기화되지 않은 외장 메모리의 시동 문제를 피하기 위해 칩을 재설정하지 않을 때 유용한 모드가 될 수 있습니다. 메모리 인터페이스가 성공적으로 구성되고 테스트되면 외부 메모리 공간을 사용할 수 있습니다. 외부 메모리를 사용하지 않는 경우에도 이 모드를 사용할 수 있습니다. 그것은 섹션 7.5에서 섹터 모드에서 외부 메모리에 대해 뭔가를 말한다. 그것을 보시나요? 그림 7-4에 표시된 것처럼 외부 메모리가 내부 메모리 후에 매핑되므로 처음 4,352바이트의 데이터 공간을 해결할 때 외부 메모리가 해결되지 않습니다. 외부 메모리의 처음 4,352바이트에 액세스할 수 없는 것처럼 보일 수 있습니다(외장 메모리 주소 0x00000 ~ 0x10FF). 그러나 64Kbytes보다 작은 외장 메모리(예: 32KBY)를 연결할 때 이러한 위치는 주소 0x8000에서 0x90FF로 간단하게 액세스하기만 하면 됩니다. 외부 메모리 주소 비트 A15가 외부 메모리에 연결되지 않았기 때문에 0x8000 ~ 0x90FF 주소는 외장 메모리의 경우 0x0000 ~ 0x10FF 주소로 나타납니다. ATMEGA1280의 포트 A, 포트 C 및 포트 G의 핀은 XRAM에 대해 자동으로 활성화되며 XRAM이 활성화된 경우 기본적으로 다른 작업에 사용할 수 없습니다. 외부 메모리 주소 공간은 대기 상태 비트가 다른 두 섹터(상위 및 하위 섹터)로 나눌 수 있습니다.
다른 작업(XMCRB 레지스터)에 대한 일부 포트 C 핀을 해제할 수도 있습니다. 자세한 내용은 atmega 1280 데이터시트를 참조하십시오. 예, 죄송합니다 : Atmel Studio는 외부 메모리를 볼 수 없으므로 컴파일 할 때 메모리 오버플로 오류가 발생합니다.이 문서는 최신 MCUs에서 사용할 수있는 일부 외부 메모리 인터페이스를 신속하게 검토합니다. 이를 통해 설계자는 NVM 플래시 또는 휘발성 SRAM/DRAM과 같은 추가 외부 스토리지가 필요한 MCU 기반 시스템을 보다 효율적으로 구현할 수 있습니다. NXP 메모리 컨트롤러는 RAM, ROM 및 플래시용 정적 메모리 인터페이스도 지원합니다. 대부분의 하드웨어는 두 응용 프로그램 간에 공통적이며 응용 프로그램에서 두 가지 유형의 메모리를 동시에 필요로 하지 않기 때문에 대부분의 최신 MCU 메모리 컨트롤러 주변 기기에서 사용되는 일반적인 방법입니다. 아마도 스토리지 기능을 확장하는 데 필요한 가장 명백한 외부 메모리 인터페이스는 대규모 작업 SRAM용일 것입니다. 일반적으로 MCUs는 비교적 적은 양의 온칩 SRAM을 가지며 종종 응용 프로그램에는 사용 가능한 온칩보다 더 많은 작업 메모리가 필요합니다. 예를 들어 고급 사용자 인터페이스는 그래픽 사용자 인터페이스(GUI)를 처리하고 비디오 또는 오디오 프롬프트를 만들기 위해 상당한 양의 버퍼 메모리가 필요할 수 있습니다.