외부 32K 메모리를 추가하는 Arduino Mega 2560
##개요
Arduino용 ATMEGA CPU에는 하드웨어 사양에 한 가지 단점이 있습니다. 즉, 데이터 메모리(RAM)가 부족하다. CPU 아키텍처로 인해 직접 액세스를 원하는 경우 일정한 데이터 배열이 RAM 메모리를 소비합니다.
ATMEGA 2560의 경우 최대 64K(중첩 내부 메모리)까지 SRAM(데이터)을 추가할 수 있는 외부 메모리 버스가 있습니다. 이 프로젝트에서는 주소 0x8000에서 0xFFFF까지 32K 메모리만 추가합니다. 내부 8K RAM을 사용하면 총 40K RAM을 갖게 됩니다.
이 외부 메모리에서는 확실히 프로그램 RAM(스택 및 힙)을 구성할 수 있습니다. 하지만 내부 8k 메모리는 제외할 수도 있습니다. 이 프로젝트에서는 내부 8K 메모리가 이전과 같이 사용되도록 외부 메모리를 힙으로 구성합니다. 사용하기 전에 외부 메모리를 할당해야 합니다. 샘플 프로그램은 사용법을 시연합니다.
platformboards.txt 파일의 내용을 [ARDUINO INSTALL FOLDER]hardwarearduinoavrboards.txt 파일에 추가합니다. xmem32k 프로젝트를 컴파일하기 전에 Tools->board->Mega with heap 32K external RAM 보드를 선택하세요.
ATMEGA 2560 데이터시트에는 외부 메모리를 추가하는 방법에 대한 정보가 있습니다. Arduino UNO 하드웨어에는 외부 메모리 버스가 없습니다.
신호 | 포트 | Arduino 정의 핀 번호 |
---|---|---|
WR | (PG0) | 41 |
RD | (PG1) | 40 |
에일 | (PG2) | 39 |
AD0-AD7 | (PA0-PA7) | 22, 23, ..., 29 |
A8-A15 | (PC0-PC7) | 37, 36, ..., 30 |