이글의 전부 또는 일부, 사진, 소스프로그램 등은 저작자의 동의 없이는 상업적인 사용을 금지합니다. 또한, 비상업적인 목적이라하더라도 출처를 밝히지 않고 게시하는 것은 금지합니다.

 


(본 글은 2009.01.07.에 daum의 블로그(http://blog.daum.net/microcontroller/13651106)에 적었던 것을 옮겨왔습니다.)

 

 

 

그 동안 만물상 닷컴의 Noritake GU280X16G 프로그램을 하느라 이 것을 만질 시간이 없었다.

만물상닷컴의 김원규 사장님께서 보내 오신 광전자 도트매트릭스를 두 개 보내 오셨다.

이 것을 움직여 볼라니 브레드보드가 필요한데 이미 Futaba의 GP1152A01이 차지하고 있어서, 교통 정리겸 마무리 작업을 위해서 어제 하루종일 남땜했다.

 

만능 기판에 부품 설치를 구상하고 필요한 부품들을 챙기는데 반나절이 갔고,

부품을 붙이는 작업에 거의 24시간 경과... 완전히 날밤 샜다.

12V를 5V로 낮추어 주는 부분은 전에 자작으로 만들었던 전원 장치에서 일부를 뜯었다.

2003년도에 정말 어렵게 비용 엄청 들여서 만든 것이었는데...

당시에는 지금처럼 DC2DC를 판매하는 곳이 많지 않았고,

ebay는 이용할 줄 몰라서 엄청 노력들이고 비용들여서 200W급이라고 허접하게 만들었었다.

무식하게 LM2576을 좍 병렬로 연결해서 만들었으니...

하여간 1년반 정도 잘 사용했는데 어느날 꺼내서 보니 일부분의 LM2576이 망가져 있었고,

차가 흔들려도 쇼트날까봐 본드로 고정했었는데 열로 인하여 이 본드들이 다 새카맣게 탔다.

그래서 지금 사용하는 DC2DC를 ebay에서 구입하고 탈착해 놓았던 것이다.

이제품의 일부를 썼다.

아직도 많이 남아 있다.

 

다음 VFD를 급한대로 flat 케이블로 연결했는데 이것을 다시 제대로 연결하기 위해서

20cm FFC 케이블(4,000원)

FFC 케이블 연결 단자(1,800원)

FFC -> 만능기판 48핀짜리 (4,800원) 1개 구해서 반으로 자름.

이렇게 고가의 부품들을 구매해서(택배비 2,500원)

FFC 20핀 연결 케이블을 만들었다.

 

새벽 5시경에 부품 부착 완성....

떨리는 마음으로 역전압 걸리는 곳 없는지 확인 - 이상 무.

쇼트된 곳 없는지 확인 - 이상 무.

단선된 곳은 없는지 - 이상 무.

전원 연결하고 전압이 제대로 나오는지 확인 - 이상무.

 

-----1차 완성된 기판 앞면-----

 

 

-----1차 완성된 기판 앞면 약간 옆에서 본 모습-----

 

 

-----1차 완성 기판 뒷면----- 

 

 

 

다 되었는 줄 알았다.

그러나 여기서부터 삽질이 시작되기 시작했는지 정말로 몰랐다. ㅠㅠ

 

1. 1차 삽질

ATmega32를 삽입하고 ISP가 정상 동작하는지 확인하려고 ISP 케이블을 연결했다.

AVR Studio 기동.

ISP 연결... 까지 성공.

그러나 Fuse bit를 읽으려니가 에러 발생. ㅠㅠ

뭐가 잘못 되었을까????

 

회로도와 비교 시작....

잘못 연결한 것이 없다.....

재점검...

그래도 잘못 연결한 곳이 없다.

브레드보드에 연결했던 것을 제거하지 않은 상태라서 브레드 보드로 옮겨서 실험해 보니까 잘된다.

기기가 이상해진것은 아니다. 틀림없이 회로 이상이다.

3 - 4 차례 회로도와 비교해도 잘못된 것이 없다.

혹시나... 회로도가 잘못된 것은 아닐까?

 

ISP선 연결도를 검색해서 회로도와 비교하는 순간..

아뿔싸!!!!

회로도를 잘못 그렸다. MISO와 MOSI를 바꾸어 연결한 것이다.

이로 인하여 스트레스 받아 가면서 2시간 허비...

 

ISP 회로를 수정했다.

----- 수정한 앞면-----

 

 

-----수정후 뒷면-----

 

 

 

뭐가 달라졌을까?

앞면의 경우 애초의 사진과 비교하면 ISP 케이블 연결을 위한 헤더 박스 아래로 대각선 방향의 점퍼가 하나 생겼다. 뒷면의 경우도 마찬가지다. ISP 1번 핀으로 가던 선을 중간에서 끊고 9번 핀에 연결했으며, ISP 9번 핀으로 가던 선을 끊고 점퍼로 1번 핀에 연결했다.

 

ISP 케이블 연결하고 동작시키니, ISP 정상 동작. 프로그램을 새로 써 넣었다.

이로써 1시간 반 정도에 걸친 1차 삽질이 끝났다.

 

 

2. 2차 삽질

 

VFD를 연결했다.

항상 그렇지만 가장 가슴이 두근 거리는 순간이 아닐 수 없다.

짠~~~하고 VFD가 들어 오기를 기대하고 전원 투입...

그러나 기대와 달리 VFD는 감감 무소식.

뚜 뭐가 잘못되었을까???

브레드 보드에 옮기면 잘된다.

 

브레드보드를 자세히 보니 아까 납땜한 회로와 다르다. 어????

그렇지! 브레드 보드를 만들 때에는 GP1151A01의 INT 신호를 사용할 필요가 없으므로 이 선은 연결하지 않았다. 그러나 회로도를 그릴 때에는 혹시 나중에 이 신호를 사용할지도 모르니까 연결을 해 두는 것으로 결정했다. 그로 인하여 GP1152A의 제어신호들이 한 칸씩 앞으로 연결된 것이다.

즉  브레드 보드에서는

INT : 연결 안함.
WR : PORTA 7번 핀
RD : PORTA 6번 핀
CS : PORTA 7번 핀
CD : PORTA 4번 핀


이던 것이 회로도에서는

INT :  PORTA 7번 핀
WR : PORTA 6번 핀
RD : PORTA 5번 핀
CS : PORTA 4번 핀
CD : PORTA 3번 핀
으로 된 것이다.

 

문제를 발견한 즉시 답은 나온다. 프로그램만 수정하면 된다.

이럴 경우를 대비해서 .EQU로 정의한 후에 사용했으므로 몇 글자만 수정하여 재 컴파일했다.

2차 삽질은 비교적 간단히 처리가 되었다.

 

 

3. 3차 삽질

 

이제든 되겠지하고 크게 기대하면서 연결.

그러나 역시 실망....

vfd가 나오기는 하는데, 엉망으로 나온다.

가만히 보면 atMEGA32는 정보를 제대로 주는데 화면이 엉망인 것 같다.

화면이 반으로 쪼개져서 위 아래가 바뀌어 나온다.

위 반을 잘라서 아래에 연결하면 제대로 된 글자 모양이다.

그리고 제자리에 가만히 있어야 할 글자들이 조금씩 왼쪽으로 움직인다.

배선 데이터 라인 쇼트가 의심되었다.

역시 D0와 D1사이에 납 땜을 제거하면서 날리던 티끌만한 납 찌꺼기가 들어가서 쇼트를 시키고 있었다.

송곳으로 간단히 긁어내서 해결.

 

4. 4차삽질

 

이제든 진짜 되겠지하고 크게 기대하면서 연결.

역시 나온다.

좌우 시그널 넣으니 화살표도 잘나오고,

주행 시간 표시도 잘된다.

전압 측정은 약간의 문제가 있으나 잘 된다.

가변 저항 값이 220K 옴이라 너무 큰 것을 달아서 인지 값이 약간 불안정하다.

어떨 때에는 11.5V이던 것이 어떨 때에는 11.9V로 잡힌다.

아니면 전원 자체가 불안정해서 그런 것일 수도 있다.

다 되었는 줄 알았다.

그런데 속도 펄스를 주었는데도 속도가 안나온다.

헐~~~~

안정화 회로를 넣어서 손으로 잡으면 안나오는 것은 당연하다.

그러나 12v의 신호를 넣어주면 속도가 나와야 되는데 안나온다.

 

브레드 보드에 넣어 줘도 속도는 안나온다.

헐~~~~~~헐~~~~~

 

속도를 측정하는 ICP1 핀만 나갔나???

아무리 찾아봐도 답이 안나온다.

 

이 때 아차!!! 프로그램만 써 넣고 eeprom데이터는 않넣었지!!!

 

EEPROM 데이터를 기록했다.

 

속도는 나온다 그러나 엉터리다.

무조건 수백 KM/H가 나온다.

 

뭐야 이것????

 

가끔 리셋되는 화면이 나온다.

어????? 왜 리셋이되지? atMEGA32가 맛이 완전히 갔나?

이 때에 PC로부터 EEPROM을 쓸 때에 기록이 끝나면 리셋으로 돌아가게 프로그램을 작성했던 기억이 났다.

아하.. EEPROM에 기록하라는 명령이 없어도 EEPROM에 기록을 하고 있구나!

왜 그럴까?

회로를 보니 간단히 답이 나왔다. 19번 핀을 EEPROM 기록 방지로 사용하는데 여기에 달린 점퍼를 연결해서 이 핀이 LOW면 기록이 허용되고, HIGH면 기록하지 않도록 프로그램했다.

그런데 회로도를 보니까 당연히 PULL UP을 했어야 하는데 이를 빼먹은 것이다.

 

회로도를 수정하고 10K저항 하나를 추가 했다.

 

-----수정된 회로도-----

 

 

 

이제 정상 동작한다.

완성된 작품 사진이다.

셀로판지를 붙이니까 밤에는 눈이 부시지 않고, 낮에도 햇살이 직접 들어 오는 것을 약가 감해 주어서 잘보이는 것 같은데, 좋은데 잘 붙어 있지 않아서 셀로판지는 나중에 떼었다.

 

 

 

 

정상 동작하는 사진이다.

 

-----내부에서 찍은 사진(앞의 것은 카메라 플래시 사용, 두번째 것은 카메라 플래시 사용 안함)

 

 

 

 

-----외부에서 찍은 사진(앞의 것은 카메라 플래시 사용, 두번째 것은 카메라 플래시 사용 안함)

 

 

 

좌우바꾸기, 펄수폭에 따른 속도 계산 상수 등은 PC로부터 받아서 EEPROM에 기록하도록 했다.

PC와 연결은 USB를 상정해서 회로도에는 USB 모듈을 그려 넣었는데 삭제했고,

실제로는 암헤더 4핀만 장착해 놓았다.

필요할 때에만 만물상닷컴에서 얻은 CP2102 모듈을 꼽고 USB 케이블을 연결하면된다.

통신 속도는 38400으로 고정...

 

-----만물상 CP2102보드 사진-----

 

 

 

-----PC용 프로그램 화면-----

 

 

블로그 이미지

엠쿠스

Microprocessor(STM32, AVR)로 무엇인가를 만들어 보고자 학습 중입니다.

,