해보기는 했어?

오늘 안됐다고 포기하지 말고 용기내서 내일 다시 해 보자.

임베디드

마이크로프로세서 제대로 공부하기

롬돌이 2022. 11. 5. 15:45
반응형

 

제목이 너무 거창한가???

 

1999년 지도교수님께서 "실험실에 자리 만들어 뒀으니 들어와라."는 말씀에

그동안 공부해 오던 자격증 시험을 뒤로 하고 실험실로 들어갔다.

처음 접한 것은 8051이였다. 요즘에야 51시리즈가 내부 롬을 많이 가지고 있고

플래시 타입으로 사용이 되고, ICSP 기능이 있어 좋아졌다. 그러나 그때는

EPROM을 사용하고 있었고, 간혹가다가 EEPROM을 구하게 되면 그걸 사용했다.

물론 프로그래밍하고 테스트 하는데에는 시간이 좀 많이 걸렸었다. 모니터 프로그램이란 것을

그때 사용했었고, 그것을 이해하고자 시간을 많이 투자 했었다.

 

지금 돌이켜 보건데 순서가 있는듯 싶다.

1. 용어 익히기

ROM, RAM, PORT, Open-Drain, Pull-Up, Pull-Down, Address, Decoding, serial, Parallel 등등..

기본적인 용어를 익혀야 한다. 기본 적인 용어를 익힌다 함은 각각의 항목에 대해 간단하게 설명할 수

있어야 한다는 것이고, 각각에 대해 이론적인 배경을 쌓아야 하는것이다. 이 부분이 가장 중요하다고

생각이 된다. 왜냐하면 사람들하고 대화를 할때 서로 알고 있는 내용이 같아야 대화가 통하기 때문이다.

 

2. 개발 환경 구축

처음 배울때에는 펜티엄 75를 가지고 시작했다. 다들 계산기라고 놀렸었고, 스타도 안돌아 갔다.

실험실 선배들이 "넌 스타 하지마"라고 구박을 많이 했었다. 그러나 공부하는데에는 크게 지장이

없었다. 울트라 에디트도 돌아갔고, 도스 컴파일러도 돌아갔고, 다운로드 프로그램도 돌아갔다.

문서 작업에도 문제가 없었고, 새롬 통신 프로그램도 이상없이 동작했다.

컴퓨터, 컴파일러, 다운로드케이블, 프로그래머, 타겟보드 등이 필요하다. 예전에는 프로그래머가

필요했으나 요즘은 ISP, JTAG기능을 사용하면 편리하다.

 

3. 해당 칩 스펙

데이터 시트가 필요하다. 영어로 되어 있는 것이 대부분이다. 삼성에서도 영어로 데이터 시트를 만든다.

한글판이 있다면 쉽지만...대부분 쉽게 구할 수 있는 데이터 시트가 영문이다.

한 서너번 읽어 보면 비슷비슷한 내용과 구성이다. 간단한 영어단어이고, 해당 지식을 가지고 있다면

컴퓨터에 깔려있는 영한 사전에서 단어의 내용을 쉽게 찾을 수 있어 이해하는데 큰 무리가 없다.

단, 사용상의 주의 사항은 제대로 확인하고 넘어 가야 한다.

책을 읽을때 항상 목차 부터 본다. 내용이 어떤 순서로 되어 있는가? 무슨 내용들이 있는가? 그런것을

대략적으로 알기 위해서는 목차 부터 본다. 그 뒤에는 대충 훑어 보기를 서너번, 제대로 읽어 보기를

서너번 한다. 뭐..이렇게 집중해서 보는 것은 한 두 번이면 된다고 생각한다. PIC, 8051, AVR 등 많이

사용하는 칩들은 대부분 기본에서 특이한 기능 몇가지 씩이다. 하나를 익히면 다른 하나는 덤으로

얻을 수 있다.

 

4. 스펙의 목차에 따른 테스트

대부분 처음에는 개략적인 설명, 가지고 있는 특수 기능들에 대해 요약형식으로 나온다. 거기에서

어떤 기능을 이 칩이 가지고 있구나 하는 것을 확인한다.

그 뒤에 대부분 포트에 대해 먼저 나온다. (메모리 부분은 일단 패스) 그러면 포트를 먼저 테스트 해

본다. 출력이 쉽게 테스트 할 수 있는 기능이다. 전체 출력 설정하고, H/L를 반복적으로 확인해 본다.

포트 전체를 했다면 그 다음은 니블 단위로, 그 다음은 비트 단위로 각각 제어해 본다. 이때 중요한 것은 인터넷을 검색해서 테스트 하는 방법을 찾는 것도 중요하고, 스스로 어떤 방식으로 해 봐야겠다는 생각으로 테스트 해 보는 것이 좋다. 그렇게 해서 포트에 대해 충분히 테스트를 하고 다음으로 넘어간다.

그리고, 입력 테스트를 한다. 스위치를 1개, 2개, 4개, 그리고 매트릭스 방법까지....

 

5. 타이머

타이머 기능을 테스트 한다. 타이머는 타이머, 카운터, PWM 제너레이터 등등의 기능이 있다. 특수 기능과 이해하기 어려운 것은 그냥 일단 넘어 간다. 앞서 언급한 세가지 기능을 중점적으로 사용해 보면

나머지는 이해를 쉽게 할 수 있고, 해당 기능을 사용해야할때 공부해도 늦지 않게 된다.

타이머로 포트 출력을 제어한다. 키입력을 카운트해서 포트 출력, PWM 제어 등을 해 본다.

 

6. ADC(Analog To Digital Converter)

타이머까지 공부하면 그걸로 많은 어플리케이션을 테스트 해 볼 수 있다.

그리고 ADC까지 한다면 더 많은 것을 알 수 있다. ADC는 대부분의 MPU에 채용되어 있다.

간단하게는 가변저항으로 0~5V 까지 측정해서 디스플레이 하는 것을 시작으로 하면 된다.

 

7. 인터럽트

처음 접할때 개념이해를 못하는 것이 인터럽트다.

핀 입력에 따른 인터럽트, 타이머 인터럽트, ADC등등 여러가지 인터럽트가 있다.

이들을 적절하게 활용하여 프로그램하면 복잡한 것이 쉽게 이해될때가 많다.

 

8. 시리얼 통신

PC랑 통신할 수 있는 길이며, 단방향을 우선 테스트 하고, 양방향을 테스트한다. 시리얼 통신은

시리얼 인터럽트를 사용하는 방향으로 한다. 폴링일 경우에는 제약사항이 많다.

 

 

처음 공부할때는 이와 같은 내용들을 숙지해야 하고 이 과정에서 데이터 시트를 거의 달달

외울수 있을 정도까지 공부해 두어야 한다.

 

그리고, 테스트 해 볼 수 있는 어플리케이션으로는

LED, FND, LCD(그래픽, 캐릭터), 모터(DC, STEP), 도트매트릭스, ADC(전압계) 등을 만들어 본다.

 

그리고, 이를 위해서 회로도를 볼 줄 알아야 한다. 기본적인 거긴 한데....회로도 공부도 해야한다.

필히.

남들이 짜 놓은 회로도를 보고도 활용할 수 있어야 하고, 심지어는 프로그램을 보고 회로도를 추적해서 그릴 줄 알아야 한다.

 

추가적으로 요구되는 것은 PC프로그램이다. PC프로그램도 공부해 두어야 한다. 데이터 취득을 위해

많은 부분 필요하며, 타겟 보드의 동작을 실시간으로 PC모니터에서 확인할 수 있어야 하고, PC에서

타겟 보드를 동작시킬 수 있어야 한다. 시리얼이든 패러렐이든, USB이든 가능한 통신 수단을 활용해서....

 

 

나??

나도 열심히 하고 있다. 그러나 아직은 부족한 면이 많다. 8비트를 공부할 때에는 8051, AVR, PIC 모두 위와 같은 순서로 공부했었다.

요즘은 ST IC를 못구해서 작년에 MEGAWIN 사의 M0를 이용해서 제품 개발 중이다.

M3 코어도 나왔다고 해서 내년에는 그걸 적용해 볼 생각이고.

MEGAWIN 사의 8비트 마이컴도 재미 있다. 몇년간은 그 IC들을 이용했었는데... M0코어를 쓰다보니 그게 더 편하다.

 

요즘은 요청에 의해서 8비트 마이컴예제 분석을 시작했다. 정리되는 대로 여기에 올려둬야지.

반응형

'임베디드' 카테고리의 다른 글

FreeRTOS - 1  (0) 2022.12.30
마이크로프로세서로 KEY 입력 받는법  (0) 2022.11.05
[myMP3P uCOS-II]일주일간의 삽질 결과....  (0) 2022.11.05
MPU6050  (0) 2021.11.03
비접촉식 온도센서  (0) 2021.10.31