디시인사이드 갤러리

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

갤러리 본문 영역

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

유리한갤로그로 이동합니다. 2007.11.12 10:00:53
조회 6851 추천 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
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 우리나라를 대표해서 UN 연설자로 내보내고 싶은 스타는? 운영자 25/09/29 - -
AD 프로게이머가 될테야!! 운영자 25/10/01 - -
공지 프로그래밍 갤러리 이용 안내 [96] 운영자 20.09.28 47614 65
2893741 노인개씹버러지새끼들 요즘 100세인생이라고 안해서 좋다 ㅋㅋㅋ [1] 타이밍뒷.통수한방(1.213) 15:32 14 0
2893739 추석 연휴 업소 가는 형들 꿀팁 반값 꿀팁 풀게ㅅㅅㅅ [1] ㅇㅇ(39.7) 15:26 15 0
2893738 좆븅신이 지가 잘난줄 아는 이유 프갤러(210.217) 15:15 25 2
2893737 진짜 개발자가 설명 못하는이유 [1] 프갤러(210.217) 15:11 24 1
2893736 이제 개인용으로 램 64기가정도는 충분히 [7] ㅇㄷ(211.234) 15:00 32 0
2893735 가짜개발자 진짜개발자 구분법 [2] 발명도둑잡기(118.235) 14:58 32 0
2893734 결혼식 갔다왔다 [1] 발명도둑잡기(118.235) 14:57 15 0
2893733 시원하당 ♥냥덩이♥갤로그로 이동합니다. 14:43 14 0
2893731 동생 동영상편집 하고 싶다는데 중고나라에서 30짜리 컴으로 될까?? ㅇㅇ(223.39) 14:17 15 0
2893730 대한민국에 쓰레기들 생각하니까 짱개가 땡기네 프갤러(210.217) 13:41 20 0
2893729 정치가 ㄹㅇ 역겨움 프갤러(210.217) 13:22 25 0
2893728 카카오같은거 보면 개발자들 ㄹㅇ 띨방한 애들밖에 없는듯 [4] 프갤러(210.217) 13:11 66 1
2893727 나는내향적이야 나는조현병이야 손발이시립디다갤로그로 이동합니다. 12:36 26 0
2893725 창업 조언 발명도둑잡기(118.235) 12:23 21 0
2893724 프로그래밍 이야기가 1도 없노 ㅇㅇ(218.157) 12:23 28 0
2893723 신은 왜 쓰레기 같은 새끼한테 시간을 줬을까? 프갤러(210.217) 12:14 32 1
2893722 앱 오버레이 컴포넌트들 다 만들었다 [1] 노력갤로그로 이동합니다. 11:44 34 0
2893721 인공지능, ai 국비하면 취업 가능? [4] cvs.갤로그로 이동합니다. 11:24 64 0
2893720 [이스트소프트] AI 교육받고 제주 자연 속 워케이션 즐기자! [1] [ESTsoft]oreumi-camp(125.183) 10:39 43 1
2893719 뭔지랄을해야 이딴나라에서 태어날수있는거지 [1] 타이밍뒷.통수한방(1.213) 10:35 29 0
2893718 ❤✨☀⭐⚡☘⛩나님 시작합니당⛩☘⚡⭐☀✨❤ ♥냥덩이♥갤로그로 이동합니다. 10:09 29 0
2893717 ❤✨☀⭐⚡☘⛩나님 시작합니당⛩☘⚡⭐☀✨❤ ♥냥덩이♥갤로그로 이동합니다. 09:33 26 0
2893716 수..숨막혀..ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 09:31 20 0
2893714 태연 ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 09:26 24 0
2893713 하루 한 번 헤르미온느 찬양 헤르 미온느갤로그로 이동합니다. 09:25 30 0
2893712 의정부역 PC방 ㅇㅇ(223.38) 08:40 18 0
2893711 앱공장 해볼만함? 프갤러(180.231) 08:12 25 0
2893692 넥도리아 양념 헌돈 돼지 갈비 추석을 향해 전진. [1] 넥도리아2025(220.74) 06:22 26 0
2893675 음기 충전 발명도둑잡기(118.216) 05:13 50 0
2893673 조심해라 프갤러(211.118) 04:44 45 0
2893671 스포티파이 개인정보 국방부로 팔려나가는 건 시간문제 발명도둑잡기(118.216) 04:16 24 0
2893666 이 패션 진짜 올 가을 유행인가요? 발명도둑잡기(118.235) 04:01 27 0
2893665 스포티파이 인공지능 규제 발표 [1] 발명도둑잡기(118.235) 03:56 32 0
2893663 “엡스타인, 정보기관과 연관됐나” 의혹 여전… 美 정부는 침묵 발명도둑잡기(118.235) 03:36 21 0
2893655 흐름 상징 발명도둑잡기(118.235) 02:54 30 0
2893649 한국 국회, 정부, 법원은 여전히 미군위안부같은 정치를 하고 있다 발명도둑잡기(118.216) 02:42 20 0
2893644 사실 세대론으로 비판하면 안되고 생산수단 가진자를 비판해야 발명도둑잡기(118.235) 01:57 25 0
2893642 오늘의 소설, 영화 실마리: 성매매자 데이터베이스가 외국 정보기관에 발명도둑잡기(118.235) 01:52 17 0
2893641 엠스타인 명단 공개 예정인 의원 발명도둑잡기(118.235) 01:38 21 0
2893639 형님들 스타트업은 원래 조용한가요? [4] ㅇㅇ(106.101) 01:16 83 0
2893638 이직 하고 싶은데 물경력이라 방법이 없다.. [1] ㅇㅇ(175.197) 01:16 39 0
2893637 BTS (방탄소년단) 'Dynamite' 발명도둑잡기(118.216) 01:07 20 0
2893636 먹고 살려고 안해본 일이 없는데, IT 프리랜서 장점은 [1] ㅆㅇㅆ(124.216) 01:06 62 0
2893635 내가 느끼는게 랜딩 페이지 하나 작성에 15만 ㅆㅇㅆ찡갤로그로 이동합니다. 00:59 38 0
2893634 프리로 협업 몇번해봤는데 항상 느끼지만 ㅆㅇㅆ찡갤로그로 이동합니다. 00:56 42 0
2893632 어차피 개발하다보면 서로 지식의 빈곳이 있을수밖에 없어서 [3] ㅆㅇㅆ찡갤로그로 이동합니다. 00:48 67 0
2893631 신해철, 싸이-Dear America [1] 발명도둑잡기(118.216) 00:38 32 0
2893629 우리나라가 소프트웨어 강국이 되려면 ㅇㅇ(121.168) 00:30 29 0
2893628 한국 10년뒤엔 러스트충들 국비찍어될듯 타이밍뒷.통수한방(1.213) 00:29 55 0
뉴스 10주년 맞은 ‘시흥시청소년동아리축제’ 전국 최대 규모로 18일 개최 디시트렌드 10.02
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2