메모리 사용법에 대해 질문하겠습니다..
글쓴이: 익명 사용자 / 작성시간: 수, 2018/11/07 - 9:11오전
안녕하세요..
atmega에서 내부 메모리 외부메모리에 대해 공부하고 사용하는 중인데 정말 이해가 안가서 질문합니다..
1. 외부 메모리의 주소가 0x2200에서 0xFFFF까지인데 하나의 atmega에 외부 메모리를 두개를 연결하였습니다.
그러면 메모리 1에서 사용되는 주소가 있다면 그 외의 주소를 입력하면 외부 메모리 2로 연결이 되는건가요?..
2.그렇다면 외부 메모리의 주소설정은..어떻게하는건가요...?
3. 외부 메모리 접근 때에는
MCUCR = 0x80;
XMCRA = 0xC1;
XMCRB = 0x80;
위의 레지스터를 설정하였었는데, 내부 메모리 때에도 레지스터를 설정해줘야 하는 건가요?
읽어주셔서 감사합니다.
Forums:
이건 외부 링크를 통해서 답변할 수 밖에 없네요.
일단 아래 링크의 PDF 자료를 읽어보시면, 아실 수 있으실 겁니다. (13쪽에 답이..)
http://artoa.hanbat.ac.kr/lecture_data/microprocessor/2014/%EC%A0%9C10%EC%9E%A5%20%EC%99%B8%EB%B6%80%EB%A9%94%EB%AA%A8%EB%A6%AC%20%EC%9D%B8%ED%84%B0%ED%8E%98%EC%9D%B4%EC%8A%A4%20(HBE-MCU-Multi%20AVR).pdf
1, 2번 답은 자료에서 보시면 아실 수 있으실테고, 3번은 1, 2번 과정에서 설정한 내용일겁니다. 내부 메모리에는 레지스터 설정을 할 필요는 없습니다. 외부 메모리의 경우는 Memory Mapped I/O 구조이기 때문에 인터럽트와 외부 메모리 레지스터 설정이 필요한 겁니다. 다음 자료의 15쪽을 참조하시기 바랍니다.
https://www.gme.cz/data/attachments/dsh.958-112.1.pdf
답변해주셔서 감사합니다.
1,2 번 답변에 있어 pdf파일을 읽어봤습니다.
이 레지스터 쓰임에 대해 알게되었는데!! 아래 사진처럼 메모리 상위, 하위를 어떻게 또 지정해줘야 하나요??
더 읽어보시면...
15쪽에 A, B, 레지스터를 통해 C 포트 핀을 어떻게 메모리와 연결하는지 결정할 수 있도록 보여주고 있습니다. 따라서 C 포트핀에 메모리가 어떻게 붙어있는지 확인하시면 됩니다. 이미 만들어져 있는 보드이면 회로도를 참조하시고, 만드실 예정이시라면, 포트 C 에 몇 핀을 연결하고, 어떻게 제어할지 결정하시면 됩니다.
감사합니다.. 또.. 이렇게 질문해서 죄송합니다..
메모리 1과 2의 PortC를 어디까지 사용하냐에 따라 달라진다 하셨는데
1번처럼 portC의 사용이 다른 경우 레지스터를 각각 설정하여 메모리 사용에 따라 레지스터 설정과 주소 접근을 해야하고,
2번처럼 portC의 사용이 같은 경우 하나의 레지스터로 주소 접근을 하면 되는건가요?
1) 메모리 1과 2의 PortC의 사용이 다를 경우
void Memory1(void)
{
XCUCR = (1< XMCRA = (1< XMCRB = (1< } //0x1100~0x7FFF
void Memory2(void)
{
XCUCR = (1< XMCRA = (1< XMCRB = (1< } //0x8000~0xFFFF
2) 메모리 1과 2의 PortC의 사용이 같은 경우
void Memory1(void)
{
XCUCR = (1< XMCRA = (1< XMCRB = (1< } //0x1100~0x7FFF, 0x8000~0xFFFF, 주소에 접근하면 알아서 메모리로 들어감..?..
무언가 착각하신 것 같습니다.
MCUCR, XMCRA, XMCRB 레지스터는 메모리 주소 설정과 관련이 있지, 주소를 레지스터에 주는 것이 아닙니다.
두 번째 링크에 ATMega 16 레퍼런스 메뉴얼에서 메모리 맵에 대한 이야기가 나옵니다. 주소범위에 따라 내부 EEPROM, SRAM, 외부 메모리 주소 영역 으로 주어져 있습니다. 외부 메모리 주소 영역으로 접근하려고 하면, XCUCR, XMCRA, XMCRB 에 설정한 대로 Port C 핀에 주소 신호와 데이터 신호, 메모리 제어 신호가 나가는 겁니다.
메뉴얼을 잘 읽어보세요.
감사합니다.
이상하게 질문해도 답변해주셔서 감사합니다.
좀더 공부하고 생각하도록하겠습니다!!!ㅎㅎ
댓글 달기