디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

AVR에 외부메모리 달기. (입출력확장 / 어드레스맵핑)

유리한갤로그로 이동합니다. 2007.11.12 10:00:53
조회 6858 추천 0 댓글 86
														

예전에 공부할때 퍼왔던 건데..

출처는
http://control.new21.org/ez2000/ezboard.cgi?db=avr&action=read&dbf=8&page=0&depth=1


외부 메모리를 다는것과

입출력 포트 확장 (어드레스 맵핑)

은 일맥 상통한다.




-------------------------------------------------------------------------



## AVR 에다가 외부 메모리 달기 ##

별 신기한 내용도 아닌데다가, 엄청나게 쉽기까지 하니깐..
막바로 시작합니다.

일단 이하의 내용은 전부 데이터쉬트에 다 있습니다.
거의 한글 번역, 요약 정도의 수준이라고 보심됩니다.

ATmega128 로 진행했습니다만, 다른 AVR도 마찬가지일껍니다.
(128은 단종되었는데...;;)

AVR 의 어드레스라인은 16비트입니다.
따라서 0xffff 까지 어드레싱이 가능하다는 얘기가 되고,
이는 최대 메모리가 64Kbyte 까지 된다는 말이되죠.

데이터쉬트에서,
Atmega128 의 핀배열을 보면,

. AD7:0: Multiplexed low-order address bus and data bus.
. A15:8: High-order address bus (configurable number of bits).
. ALE: Address latch enable.
. RD: Read strobe.
. WR: Write strobe.

이런 핀들이 있습니다.
바로 외부메모리에 입출력하기위한 핀들입니다.

좀 이상한 점을 발견하실수 있을껍니다.

A15-A8 과
AD7-AD0 번 이렇게 두그룹으로 나눠져있습니다.

이것만 보고 "아하..이런방식으로 동작하는구나..." 라는 느낌이 떠오른다면,
당신은 Master of AVR 칭호를 받을 자격이 있다는 것이 되죠!

.......

아까 말했듯이, 어드레스는 16bit 입니다.
A15-A8,AD7-AD0 이렇게 총 16개의 다리가 전부 ADDRESS 에 연결되죠.

그다음 데이터는?

AD 의 D 가 바로 Data 라는 뜻이겠죠.

AD7-AD0 이렇게 8개가 Data 전송에 사용됩니다.

........

이상합니다... 당연히 이상하죠...
다른사람이 심사숙고해서 만든 "꼼수"를 첨 대하는 사람은 당연히
심리적인 거부감이 들게 마련입니다.

어드레스의 하위 8비트와 데이터 8비트가 공유되고 있습니다.


////////////////////////////////////////////////////////////////////
여기서, 일반적인 SRAM 에다가 입출력할때의 방식에 대한 설명

hynix.gif
<사진1 : SRAM 입출력 방법>

이게 머냐! 라고 하시겠지만... 이게 전붑니다.

어드레스 들어오고, 데이터 들어올때 Write 신호뜨면 써집니다.

어드레스 들어오고, Read 신호뜨면 값 내보내줍니다....;;;

그니깐... 마이컴 쪽에서 해야할일은 그냥 타이밍만 잘 맞춰주면 끝.
///////////////////////////////////////////////////////////////////


다시 AVR 로 돌아와서,

하위어드레스 8비트와 데이터 8비트가 겹치는 문제를 해결해주는것이 바로
"LATCH" 입니다.

LATCH 가 무엇이냐... 74573 입니다.
주로 마이컴에서 IO 포트 확장하기 위해 사용됩니다.
클럭이 들어올때 INPUT을 캡쳐해가지고 Output 에 유지시켜주는 칩이죠.

(74573 에 대해 자세한건 주위 고수분들께 여쭙거나, 독학하세요.)


요기서 블럭다이어그램!

avr_mem.gif
<사진2 : ATmega128 과 외부 SRAM 의 연결>

위에서 제가 설명한 글이랑 이 그림이랑을 비교해보시면 금방이해가 될껍니다.

어드레스 16비트가 먼저 나오고,
LATCH 신호가 뜨면 74573 은 하위어드레스 8비트를 유지하게 됩니다.
그다음 AVR 은 AD7-AD0 을 입력(데이터읽을때), 출력(데이터쓸때) 로 변환시키고,
해당 읽기/쓰기 작업을 수행합니다.

////////////////////////////////////////////

아.. 괜히 복잡하게 설명한게 아닌가 모르겠군요...;;;

이상의 작업들은 AVR 이 하드웨어적으로 자동처리해주는 부분들입니다.

즉, 프로그램상에서 어드레스 지정해주고, 읽기 작업을 수행하면,
AVR 이 내부메모리인지 외부메모리인지 비교하고 알아서 위의 작업들을
수행한다음에, 결과값을 알려주게 됩니다.



///////////////////////////////////////////////////////////
///////// codevision 에서 외부 메모리 사용하기 ////////////
///////////////////////////////////////////////////////////

------------------------------------------------
컴파일러 : codevision 1.24.1e

연결된 하드웨어들 :

. ATmega128
. TextLCD 를 PortD 에다가 연결
. HY62CT081ED70C (Hynix, 32KByte SRAM)
. 74HC573
------------------------------------------------

회로도는 굳이 그리지 않겠습니다.
LCD 연결하는건 Codevision 처음 세팅하는곳에서 알려주고있고,
외부메모리와 AVR 을 연결하는건 AVR 데이터쉬트에서 알려줍니다.
(그리기 귀찮아~)

Codevision 에서 세팅

1. 외부메모리를 쓰겠다.
(32K 가 달려있고... wait 은 사용안하고... page 는.. 뭔지 잘모름..)

extern_set.jpg
<사진3 : 외부메모리 세팅>

2. TEXT LCD 가 연결되어있다.
(배선을 어떻게 연결해야하는지가 나옵니다.)

lcd_set.jpg
<사진4 : TextLCD 세팅>

그다음...

외부메모리상에 데이터를 쓰고 읽기위해 변수 선언.

/////////////////////////////////////////////////////////////////////////
    char * pExmem; // 외부메모리 사용을 위한 포인터
    pExmem = 0x5000;//포인터를 초기화... 외부메모리상의 적당한곳에다가 지정
/////////////////////////////////////////////////////////////////////////


그다음에 데이터 쓰고 읽은뒤, 읽은값을 TextLCD 에 출력~

/////////////////////////////////////////////////////////////////////////
    *(pExmem+i) = i;
       
    delay_ms(100);
       
    temp = *(pExmem+i);
     
lcd_gotoxy(0,0);
lcd_putchar(temp+48);

    i++;
                       
    if(i>10) i=0;
/////////////////////////////////////////////////////////////////////////

무쟈게 쉽습니다....

위와 같이 프로그램을 짰으니,
0x5000 번부터 0x5009 번까지 0 에서 9까지 숫자가 들어가게 되겠군요.


돌려보니 일단 글자들은 자~알 나옵니다.
자~알 나오니깐 외부메모리 입출력이 잘 되고 있는것이겠죠.

관련 소스 전체는 자료실에 올렸습니다.


//////////////// 외부메모리 입출력 강좌 끝~ /////////////////////////

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 내 돈 관리 맡기고 싶은 재태크 고수 같은 스타는? 운영자 26/01/12 - -
AD 집에서 즐기는 Fresh 미식회 운영자 25/12/22 - -
공지 프로그래밍 갤러리 이용 안내 [103] 운영자 20.09.28 49265 65
2910425 빨리 북센징들하고 짱깨들하고 통일했으면 좋겠다 타이밍뒷.통수한방(1.213) 17:19 7 0
2910424 입사 첫날 그냥 프로그래밍언어 공부하라고 하고 자유시간 주면 뭐함 [2] 프갤러(220.89) 16:52 23 0
2910422 아버지가 19년동안 4000만원을 웹사이트에... [9] 프갤러(219.250) 15:20 76 1
2910420 노트북으로 개발 어케하는거노? [1] 프갤러(14.37) 14:49 46 0
2910419 [참고물] AI 가 가능한 원리와 미래의 직업세계.. [1] +abcd3421갤로그로 이동합니다. 14:19 26 1
2910418 ㅈ소 전산직 << 여기 취업잘됨? [1] 프갤러(118.235) 13:32 35 0
2910417 [텔레칩스 차량용 반도체 임베디드 스쿨 4기] 텔레칩스 차량용 반도체 임 프갤러(14.32) 13:20 25 0
2910416 코딩이나 프로젝트 개발 이런거는 지피티보다 copilot이 더 잘해줌? [14] 프갤러(112.157) 12:59 62 0
2910415 파이썬 공부 하는데 질문. [1] 프갤러(175.209) 12:47 22 0
2910414 프갤이 다시한번 죽었군 ㅇㅅㅇ... [2] 초코냥갤로그로 이동합니다. 12:43 60 0
2910413 ML Kit때문에 고통받는중 [4] 초코냥갤로그로 이동합니다. 12:34 49 0
2910412 정처기 따야되는데 교재 추천좀 부탁드립니다 행님들 ㅇㅇ(223.38) 12:30 15 0
2910411 임베디드 개발자 전망좋다 [1] 초코냥갤로그로 이동합니다. 12:30 79 0
2910410 개인이 쓰기에 적당한 코딩 ai 추천좀 [2] ㅇㅇ(182.228) 12:26 31 0
2910409 지귀연 존나 웃기네 ㅋㅋ [1] 프갤러(183.101) 12:19 59 1
2910408 학교 숙제 그날 끝내는 성격 아니면 개발자 하지마라 프갤러(220.124) 12:11 25 0
2910407 이명박근혜 치세를 무너뜨린 ㅇㅇ(49.165) 11:45 29 0
2910406 [대한민국] 윤 대통령 구형과 정보, 전쟁 가능성 ㅇㅇ(121.172) 10:55 27 0
2910405 환율 뒤지겠네. ㅇㅇ(49.165) 10:43 34 0
2910404 너무 뻔해 RyuDOG갤로그로 이동합니다. 10:26 40 1
2910403 카카오톡 웹버전 만들어봄 [2] 프갤러(116.47) 09:01 81 0
2910402 이 지경와도 진성 좌빨들은 [1] RyuDOG갤로그로 이동합니다. 08:44 55 3
2910400 환률 1400원 아래로 내리는 방법은 ㅇㅇ(49.165) 07:30 38 0
2910399 1470원 다시 뚫었다. ㅇㅇ(49.165) 07:22 32 0
2910398 태연 / 어제 눈 ㅇㅅㅇ [2] 헤르 미온느갤로그로 이동합니다. 07:19 49 0
2910397 하루 한 번 헤르미온느 찬양 헤르 미온느갤로그로 이동합니다. 07:15 52 0
2910392 24살 이 정도 스펙 ㅁㅌㅊ? 재현갤로그로 이동합니다. 00:53 58 0
2910391 윤석열 前 대통령 ㅇㅇ(112.223) 00:32 83 0
2910390 <만약에 우리> 2은호, 1정원? 발명도둑잡기(118.216) 01.13 36 0
2910389 와인 마시고 싶다 [2] chironpractor갤로그로 이동합니다. 01.13 35 0
2910388 재수학원 와이파이 방화벽 어케 뚫음 제발 [6] ㅇㅇ(118.33) 01.13 66 0
2910386 현실공감 연애, 환상의 판타지 눌렀다…‘만약에 우리’ 박스오피스 ‘깜짝’ 발명도둑잡기(118.216) 01.13 19 0
2910385 it서비스 회사인데 여자가 원래 이리 많아? ㅇㅇ(61.82) 01.13 53 0
2910384 근데 코딩 입문때부터 바이브 코딩으로 하는게 맞아요?? [6] 프갤러(119.192) 01.13 122 1
2910383 심층기획-서부지법 점거 난동 1년 추적기 발명도둑잡기(118.216) 01.13 27 0
2910382 윤석열의 심리 분석, 권위주의적 성격자 MBC 발명도둑잡기(118.216) 01.13 23 0
2910380 계엄 포고령으로 본 윤석열의 정적들 - 뉴스타파 발명도둑잡기(118.216) 01.13 27 0
2910377 [속보] 특검, 내란우두머리 윤석열에 사형 구형 [2] 발명도둑잡기(118.216) 01.13 46 0
2910376 음파무기 살상범위가 5km나 됨 ㄷㄷ 프갤러(211.236) 01.13 51 0
2910375 북한 무인기 침투, 제3국 소행 가능성은? 발명도둑잡기(118.216) 01.13 23 0
2910374 AI가 좋긴 좋네 ㅅㅂ ㅋㅋㅋ [9] ㅇㅇ(118.38) 01.13 130 0
2910371 임베디드 어떠냐 ? [4] 프갤러(121.153) 01.13 90 0
2910364 사내 라이브러리의 현실 프갤러(115.21) 01.13 110 2
2910363 근데 ai때메 망했다는데 보안은 왜 여전히 바닥이지 [4] ㅇㅇ갤로그로 이동합니다. 01.13 147 0
2910362 국비학원 친목질개병신같다 [7] 프갤러(211.235) 01.13 125 0
2910361 오산공군기지(공작사) 공고뜨면 절대 가지마라 프갤러(117.110) 01.13 74 0
2910360 나는 사내 라이브러리화 극혐인게 [5] 프갤러(115.21) 01.13 114 0
2910359 개죽이 시발련 사진 왜 띄우는거지? [2] 뉴프로갤로그로 이동합니다. 01.13 98 0
2910357 노홍철이 잘 나가는 이유가 극좌라서 그렇누 ㅋㅋㅋㅋㅋㅋ [4] 프갤러(1.213) 01.13 75 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2