8051 공부를 시작했습니다;;

zilitwo의 이미지

발단은 회로실험 수업시간에 발광다이오드를 가지고 놀 기회가 있었는데
불이 켜지니 얼마나 잼있고 신기하던지..
컴퓨터에 좀 질리고 있던 상태에서 정말 잼있는걸 만났구나 싶어서 발광다이오드를 가지고 놀아야 겠다는 생각이 강하게 들었습니다.
이리저리 알아보고 마이크로 컨트롤러란놈이 있다는걸 알고 책도 여러권 빌려보고 어제는 종로3가 에 가서 AT89S52 몇개와 그외 필요한 부품들을 사왔습니다.
오늘 보니 덜산것도 있고 잘못산겄도 있고 -_-;; 해서 오늘 다시 가서 보충해왔습니다. ( 또 잘못산게 있네요;; 분명 아저씨한테 22㎌ 짜리 커패시터를 달랬는데 집에와서 보니 2.2㎌ 짜리가 와있네요;;; )

암튼, AT89S52 는 ISP(In system programming) 이란게 있어서 롬라이터가 없어도 롬에 프로그램을 써 넣을수 있어서 좋아서 샀습니다.

오늘은 롬에 써 넣을수 있는 케이블을 만들려고 프린터 케이블을 짤라서 선을 하나하나 찍어가면서 선에 핀번호를 매칭시켰고 내일은 롬에 프로그램을 써 넣어 봐야겠습니다.

일단 만들고 싶은건 전광판입니다.

여러글자를 표현할수 있는 전광판도 좋고, 글자모양대로 발광다이오드를 배열해서 반짝이게 하는것도 좋구요. ㅋ

오랜만에 정말 잼있고 맘에 드는걸 찾아서 열심히 하고 있습니다. 학교공부랑 직접연관된거라 공부도 많이 되구요 ㅋ

일단 잘 몰라서 빵판에다가 회로구성해서 이것저것 실험해볼려고 합니다.
기대대는군요 ㅋㅋ 오랜만에 설렙니다 -_-;;;

혹시 이거랑 관련된 좋은 싸이트 아시는거 있으면 좀 알려주시면 감사하겠네요.

그리고 여기 이런질문 해도 될런지 모르겠습니다만 GAL16V8 을 대신해서 89S52 를 사용해서 메모리를 매핑 시켜 볼려고 하는데 혹시 이렇게 해보신 분이 계신지요;;; 물론 제가 실험해보겠지만.. 혹시 해보신분이 있다면 좀더 확신을 갖고 실험해볼수 있을꺼 같아서요 ㅋ
GAL16v8 을 사용하기위해선롬라이터가필요하기에;;;;

그리고 이건 농담반 진담반 입니다만.
64KByte ROM 과 64KByte RAM , 24MHz 에서 리눅스를 돌릴수 있을까요 -_-;;;

bus710의 이미지

리눅스는 무리구... 컴파일러가 따라 준다면 uc/os2 정도가 돌아갈듯 합니다.
램도....그 정도면?? 추가할 필요 없을 듯 하구요^^

제 생각이지만 51 계열 보다는 AVR 계열이 낫지 않으실까 합니다^^
89s52가 어떻게 돌아가는지는 모르지만 51계열은 대략 12분주 하기 때문에
실제로는 2밉스 정도 밖에 안나올듯....
그런데 AVR은 1분주 하기 때문에 24밉스가 나오죠^^
게다가 gcc 컴파일러도 있구요....리눅스에서도 컴파일은 되겠지만 ISP로 다운로드가 될지는 잘 모르겠네요^^

life is only one time

hb_kim의 이미지

8 비트 마이컴으로 실험실 실습은 할수 있겠지만, 더 이상 개인적인 시간을 투자하는것은 권장하지 않습니다.

8 비트 마이컴 쓰는것으로 firmware 관련업무를 시작했는데, 십몇년전부터는 16 비트로 한 3-4년 전부터는 거의 32 비트로 옮겨가더군요. 그도 무리가 아닌것이 요새 ARM 콘트롤러 3불짜리도 나오고, SoC 에 내장하는 ARM core 는 말만 잘하면 공짜로 끼워주는 수준입니다. 옛날에 유용하게 쓰던 ICE 라는 것도 요새는 역사속의 퇴물로 사라져가고, 전부 JTAG 기반 에뮬레이터로 바뀌었죠.

저는 특히 학생들이 embedded 나 firmware 나 RTOS 등을 직접 해보려고 하는것을 말리고 싶은데 그 이유는,

- 회사 가면 굉장히 많은 시간을 가지고 차근차근 배울수 있습니다. 학생은 안그래도 바쁜데 시간 쪼개서 하거나 다른것을 희생하고 해야되죠. 학점이건, 영어건, 아니면 놀 시간이건...

- 회사 가면 업무를 위한 지원이 풍부합니다. JTAG ICE 같은것도 많이 싸졌다고는 하나 아직도 한 천만원 하죠? 개발툴도 수백만원 짜리 소프트웨어들도 많고. 또 회사가서 업무 관련해서 익숙하지 않거나, 새로운 것 있으면 비싼 돈을 주고 업계 전문가들한테 강습받습니다.

- 회사 가면 막히거나 모르면 주위에 물어볼 선배나 동료가 많습니다. 또 자신이 서투른 납땜이나 배선같은 잡일을 시킬수있는 사람도 많습니다.

- 임베디드건 RTOS 건 하드웨어건간에 회사가서 관심을 가지고 하면, 학생이 맨땅에 헤딩하면서 하는것보다 무척 빨리, 또 쉽게 배웁니다. 또 열심히 관심을 갖고 일하면 회사에서도 더 반가울테고.

- 반면 학생때 이런것에 관심가지고 다른것에 조금 소홀하게 하면 졸업하고 나서 이런 실수를 만회할 기회는 거의 없습니다.

따라서 학생때 미리 이런 분야를 관심있게 공부를 한다고 해도, 회사가서 조금만 지나면 안하고 온 다른 사람이나 마찬가지가 됩니다.

제가 이런것을 알고 잘해왔기 때문에 이런 권고를 하는것이 아니고, 저도 똑같은 실수를 했기 때문에 지금 와서 뒤돌아보면서 그게 나쁘다는것을 아는것입니다.

klenui의 이미지

글 적고 보니 옛날 글이었네요..
내용 삭제합니다.

hook의 이미지

8051은 취미정도로도 공부정도로도 좋습니다

기본적인 컴퓨터 구조니 이런걸 머리속에 있는걸

손으로 만지다 보면 도움이 많이되죠

그렇게 돈이 많이 드는 것도 아니고

문제는 스코프인데 학교에 실습실이나 자원을 잘찾아보시길

그이상도 가능은 한데 돈이 많이듭니다

시간도 많이들고

아직도 8051 쓰는데는 많습니다

vajna의 이미지

GAL/PAL없이도 무조건 가능합니다.
ISP 지원하는 2051등으로 CS로직 구현하는것도 가능하죠(싸니까..)
근데 PIO로 구현하려면 일단 와이어를 많이 날려야 할것 같아서 비추입니다.
NAND GATE조합만으로도 어떤 메모리맵도 구현가능합니다.
비사용영역을 사용한 트릭들도 많고, 심지어 7404칩하나의 GATE하나만으로도 메모리 반절로 설정하여 CS설정 가능하죠.
안되는건 없습니다.
최근 임베디드 SOC에서는 CS가 기본적으로 여러개 나오고, GPIO도 기본적으로 제공하고, 내부 메모리 맵 테이블로 CS제어하므로 위와같은 고전적인 CS설정은 하지 않죠. 그래도 해보면 재미있습니다. 저역시 마우스용 명함사이즈보드로 80C196KC시스템 래핑와이어 날려가며 만들던 시절이 있었습니다. 하지만 후회하지는 않습니다. 그당시의 열정을 불사를곳이 그쪽밖에 없었기에..

머나먼 땅으로 우리 동무가 이제 떠나간다네.
고향의 바람이 불어와 동무 뒤를 따르고
사랑스러운 도시가 푸른 이내 속에서 사라지네.
정든 집, 푸른 동산, 부드러운 눈길도...

mooore의 이미지

8051 관련 싸이트라면 http://www.8051.co.kr 을 빼놓을 순 없을 겁니다.

그외에도 기본적인 전자공학 지식을 위한 괜찮은 싸이트들이 있습니다.
http://www.ehtec.com 도 괜찮더군요.

그리고 한빛미디어에서 판매하는 "임베디드 하드웨어 이해와 설계"란 책도 괜찮게 봤습니다. 실제 하드웨어 설계시 주의해야 할 점등을 실무적인 차원에서 설명하고 있습니다.

별은 바라보는 자에게 빛을 준다.

whitelazy의 이미지

http://link-tech.co.kr/ 에서 커뮤니티 보면 간단한 강좌가 있습니다
여기있는 CPLD도 추천합니다
ISP지원되고 다른공부하기도 좋거든요 GAL보단 ;;
GAL은 일일히 다 짜야해서 저에겐 넘 어려워요 ;;
요즘 아마.. IC114에서 CPLD팔더라구요

whitelazy의 이미지

음... 아무리 16비트 32비트 가 뜬다곤 하지만 그래도 아직 시장의 대세는 8비트가.. 아직 50%정도는 점유하고있지요 ;;;

코퍼스의 이미지

저는 개인적으로 hb_kim 님의 의견에 전적으로 동의합니다.
공부를 하시려면 차라리 OS나 컴파일러, 알고리즘 등을 더 깊이잇게 공부하시길 바랍니다.

물론, 이런 8비트 마이컴 실습이 의미없는 것은 아닙니다.
회사에 가서 이런 일을 잘 배울수 있다해도, 해본 사람이 확실히 빠릅니다.
또, 회사에 따라서는 OJT나 사수제도가 제대로 안되 있는 회사가 많으니까요.

뭐니뭐니 해도 공부에는 어떤 균형이 필요한것 같아요.
문제는 이런걸 학교에 다닐때는 알 수 없다는 것이지요

hb_kim wrote:
8 비트 마이컴으로 실험실 실습은 할수 있겠지만, 더 이상 개인적인 시간을 투자하는것은 권장하지 않습니다.

8 비트 마이컴 쓰는것으로 firmware 관련업무를 시작했는데, 십몇년전부터는 16 비트로 한 3-4년 전부터는 거의 32 비트로 옮겨가더군요. 그도 무리가 아닌것이 요새 ARM 콘트롤러 3불짜리도 나오고, SoC 에 내장하는 ARM core 는 말만 잘하면 공짜로 끼워주는 수준입니다. 옛날에 유용하게 쓰던 ICE 라는 것도 요새는 역사속의 퇴물로 사라져가고, 전부 JTAG 기반 에뮬레이터로 바뀌었죠.

저는 특히 학생들이 embedded 나 firmware 나 RTOS 등을 직접 해보려고 하는것을 말리고 싶은데 그 이유는,

- 회사 가면 굉장히 많은 시간을 가지고 차근차근 배울수 있습니다. 학생은 안그래도 바쁜데 시간 쪼개서 하거나 다른것을 희생하고 해야되죠. 학점이건, 영어건, 아니면 놀 시간이건...

- 회사 가면 업무를 위한 지원이 풍부합니다. JTAG ICE 같은것도 많이 싸졌다고는 하나 아직도 한 천만원 하죠? 개발툴도 수백만원 짜리 소프트웨어들도 많고. 또 회사가서 업무 관련해서 익숙하지 않거나, 새로운 것 있으면 비싼 돈을 주고 업계 전문가들한테 강습받습니다.

- 회사 가면 막히거나 모르면 주위에 물어볼 선배나 동료가 많습니다. 또 자신이 서투른 납땜이나 배선같은 잡일을 시킬수있는 사람도 많습니다.

- 임베디드건 RTOS 건 하드웨어건간에 회사가서 관심을 가지고 하면, 학생이 맨땅에 헤딩하면서 하는것보다 무척 빨리, 또 쉽게 배웁니다. 또 열심히 관심을 갖고 일하면 회사에서도 더 반가울테고.

- 반면 학생때 이런것에 관심가지고 다른것에 조금 소홀하게 하면 졸업하고 나서 이런 실수를 만회할 기회는 거의 없습니다.

따라서 학생때 미리 이런 분야를 관심있게 공부를 한다고 해도, 회사가서 조금만 지나면 안하고 온 다른 사람이나 마찬가지가 됩니다.

제가 이런것을 알고 잘해왔기 때문에 이런 권고를 하는것이 아니고, 저도 똑같은 실수를 했기 때문에 지금 와서 뒤돌아보면서 그게 나쁘다는것을 아는것입니다.

A few Good Man

버그소년의 이미지

흠... 전 전산쟁이로 밥먹고 살지만..

종종 89C2051로 취미생활(?)을 합니다.

마이컴이나 펌웨어를 업으로 하실거라면 8051은 확실히 한물 간듯합니다만..

취미생활로 이것저것 하기엔 딱 좋던데요...

RF모듈 사다가 양방향 무선 RS-232만들고, 차에 달고다닐 전광판(16x8)만들고,

지금은 DC모터에 적외선 센서 5개 달고, 먼지제거 끈끈이 롤러(?)끌고다니는거 만들고있습니다. (청소로봇 ????)

(완성되면 RF모듈이랑 합체시켜서 PC로 조종을.. ^^)

특별히 쓸모없는 장난감정도에 불과하지만 관심있고, 저같은 초보들에겐

적당한 마이컴인듯 합니다.

가끔은 밥을 굶어도 살 수 있다.

bus710의 이미지

hb_kim wrote:

8 비트 마이컴 쓰는것으로 firmware 관련업무를 시작했는데, 십몇년전부터는 16 비트로 한 3-4년 전부터는 거의 32 비트로 옮겨가더군요.

태클은 아닙니다만....^^

1 미터 자가 나왔다고 30센치 자를 안쓰진 않지요^^

물론 잘 아시는 분께서 작성하셨겠지요.

또 마이크로 콘트롤러가 익히는데 적지 않은 시간이 필요하기에
다른 가치 있는 것에 시간을 투자하라는 좋은 충고이시겠지만...

공부해 보겠다는 분을 뜯어 말리는 건..... :?

하긴 저도 영어와 수학....기타 등등의 압박이 점점 가까워 지고 있습니다.

복학하기 전부터 시작해야할 것인데~~^^

life is only one time

ydongyol의 이미지

좀 오래된 글이지만..

Quote:
1 미터 자가 나왔다고 30센치 자를 안쓰진 않지요^^

--> 1미터 자가 30센치 자보다 싸고, 가볍고, 심지어 접을수도 있고(?) 정밀하기 까지 한다면....

--
Linux강국 KOREA
http://ydongyol.tistory.com/

--
Linux강국 KOREA
http://ydongyol.tistory.com/

bus710의 이미지

그럼 저도 1미터 자를 쓰겠습니다.
요즘 cortex M3나 AT90*로 만드는 회사가 많이 늘은 것 같습니다.

그래도 굳이 또 비유를 대자면,
버스 타는데 5만원권 지폐를 내면 안 되잖아요.

버스 기사 아저씨도 자존심이 있는데 10만원권 수표로 드리는게 예의잖아요.
아니 왜들 그러세요? 자가용 버스 한대쯤 없는 사람처럼?
자가용 버스 없으면 쪼끔 불행한 거에요~~~~ (;;)

akudoku.net 나는 이것만은 확신하니, 믿고 나아간다.

life is only one time

불량도ㅐㅈㅣ의 이미지

hb_kim wrote:
8 비트 마이컴으로 실험실 실습은 할수 있겠지만, 더 이상 개인적인 시간을 투자하는것은 권장하지 않습니다.

8 비트 마이컴 쓰는것으로 firmware 관련업무를 시徘杉쨉? 십몇년전부터는 16 비트로 한 3-4년 전부터는 거의 32 비트로 옮겨가더군요. 그도 무리가 아닌것이 요새 ARM 콘트롤러 3불짜리도 나오고, SoC 에 내장하는 ARM core 는 말만 잘하면 공짜로 끼워주는 수준입니다. 옛날에 유용하게 쓰던 ICE 라는 것도 요새는 역사속의 퇴물로 사라져가고, 전부 JTAG 기반 에뮬레이터로 바뀌었죠.

저는 특히 학생들이 embedded 나 firmware 나 RTOS 등을 직접 해보려고 하는것을 말리고 싶은데 그 이유는,

- 회사 가면 굉장히 많은 시간을 가지고 차근차근 배울수 있습니다. 학생은 안그래도 바쁜데 시간 쪼개서 하거나 다른것을 희생하고 해야되죠. 학점이건, 영어건, 아니면 놀 시간이건...

- 회사 가면 업무를 위한 지원이 풍부합니다. JTAG ICE 같은것도 많이 싸졌다고는 하나 아직도 한 천만원 하죠? 개발툴도 수백만원 짜리 소프트웨어들도 많고. 또 회사가서 업무 관련해서 익숙하지 않거나, 새로운 것 있으면 비싼 돈을 주고 업계 전문가들한테 강습받습니다.

- 회사 가면 막히거나 모르면 주위에 물어볼 선배나 동료가 많습니다. 또 자신이 서투른 납땜이나 배선같은 잡일을 시킬수있는 사람도 많습니다.

- 임베디드건 RTOS 건 하드웨어건간에 회사가서 관심을 가지고 하면, 학생이 맨땅에 헤딩하면서 하는것보다 무척 빨리, 또 쉽게 배웁니다. 또 열심히 관심을 갖고 일하면 회사에서도 더 반가울테고.

- 반면 학생때 이런것에 관심가지고 다른것에 조금 소홀하게 하면 졸업하고 나서 이런 실수를 만회할 기회는 거의 없습니다.

따라서 학생때 미리 이런 분야를 관심있게 공부를 한다고 해도, 회사가서 조금만 지나면 안하고 온 다른 사람이나 마찬가지가 됩니다.

제가 이런것을 알고 잘해왔기 때문에 이런 권고를 하는것이 아니고, 저도 똑같은 실수를 했기 때문에 지금 와서 뒤돌아보면서 그게 나쁘다는것을 아는것입니다.

저는 원래 환경공학이 전공이지만 컴퓨터 과학을 전공할려고 합니다.(복수전공제도)

저도 임베디드에 관심있는 터라 어떤 과목을 이수해야 하는지 많이 궁금해 했습니다.

저는 하드웨어는 꽝이거든요.

그러면 컴퓨터과학(OS,DB,compiler,자료구조 등등)만 잘 들어도 저런 것은 회사 들어가면 할 수 있는가 보죠?

왠지 임베디드 할려면 회로이론,전자장 등등 이런 걸 배워야 될 것 같다는 생각이 드는데요. 꼭 그렇게 안 들어도 되는 겁니까?

내년 학기부터 집중적으로 전공 이수할껀데 머리가 아프네요.

임베디드쪽으로 갈 수 있으려면 최소한으로 이수해야 할 필수과목 좀 가르쳐 주십시요.^^;

하드웨어는 영 깡통이라... :shock:

땜질도 할 줄 모르고, 회로도는 무슨 지도 같이 보이는데...저한테도 희망이 있을까나....???

문근영 너무 귀여워~~

jj의 이미지

어려운 문제입니다.

좋은 현상이라고는 생각하지 않습니다만, 국내 회사들의 대학 졸업생들에게 구체적인 기술을 요구하는 사례가 적지 않은것 같습니다.

학생때 준비해야 해야 할것들(예를 들면 학점, 영어, 등등...)을 소흘히 하지 않는다면, 한쪽에 너무 치우치지만 않는다면 경험을 해보는 것도 좋다고 생각합니다.

--
Life is short. damn short...

Darkcircle의 이미지

8051보단 AVR을 쓰실 것을 권합니다.
뭐 거의 빌딩용 수준이면 ARM에다가 RAM에서 메모리칩 뺀거 몇개 박아가지고
(물론 전원은 고려를 하셔야겠죠... 심한경우는 전류가 후달릴수도 있습니다...네..)
8051은 8255도 같이 써줘야 하고 이런저런 불필요한 고려사항이 많습니다.
물론 8051이 쓸모가 없다는것도 아니고, 뭔가 뒤떨어진다는 얘기도 아니지만
뭔가 목적이 있다면 목적에 맞는걸 적용해야겠죠 ... -_-*

정말 해보는 경험을 위해서가 아니면 권장하지 않습니다.
윗분들 말씀대로 당장 중요한게 코앞에 있는데 이것들을 내팽개쳐두고
내가 하고 싶은것"만" 한다면 ... 자칫 이것이 인생에 아무 도움도 안될수도 있기 때문이죠 ;;
"해봤다"는 사실은 있는데 정작 이 해본걸 가지고 내 진로를 위해 앞으로 써먹을 수 있는 데가 어딨는가?
라는 물음에 답을 할 수 없다면 그게 문제가 되는 것입니다. -ㅅ-;;;;;;

진로고민이 끝나셨다면 이건 정말 심각하게 고민해봐야 할 사항이죠...
방향을 잡고 가느냐 그냥 계속 아무 생각없이 잡다하게 파느냐...

---------------------------------------------------------------
폐인이 되자 (/ㅂ/)

---------------------------------------------------------------
폐인이 되자 (/ㅂ/)

minonnet의 이미지

현재 펌웨어 엔지니어로 일하고 있는데요...
결론부터 말씀드리면 마이크로 컨트롤러 사용방법은 다 똑같습니다.
단지 레지스터의 길이와 이름, 추가된 모듈들의 차이일뿐 원리는 다 같습니다.
현재는 TMS320F28335와 TMS320C6713 두 개의 칩을 주로 다루고 있는데요...
8비트에서 32비트로 넘어가는 것 어렵지 않습니다.
저도 학부시절 8051과 PIC(8비트)를 주로 했는데요...
제가 생각하건데 F28335로 구현할 수 있는 것들은 8051로도 90%이상은 가능하다고 봅니다.
단지 처리 속도의 차이와, 간단하게 구현할 수 있는 모듈들이 탑재되어 있다는 것 뿐입니다.
8051에서는 포트를 이용해서 직접 프로그램으로 구현하면 됩니다.
예를 들어 PWM모듈이 있다면 쉽게 PWM을 만들어 제어가 가능하겠지만,
없다면 프로그램으로 포트 ON/OFF해서 오실로스코프 연결해서 타이밍차트 보면서 만들면 됩니다.
EEPROM도 똑같이 포트 ON/OFF해서 타이밍만 맞쳐주면 데이터 READ/WRITE 다 합니다.
물론 구현하는데 시간이 더 걸린다는 단점이 있지만, 학습차원에서 한다면 대단히 많은 공부가 될 겁니다.
또한 8051은 예제도 무척많고 KEIL 이라는 좋은 툴도 있습니다.
8051을 한다면 keil툴을 사용하시기 바랍니다. 시뮬레이션 기능은 정말 대단합니다.
저는 마이크로 컨트롤러의 학습에 있어서 8051을 추천합니다.
그러나 선택은 본인이... ^^;;