Skip to content
TUWLAB.com
모든 게시물에 대하여 '링크'
방식의 퍼가기만 허용합니다.
한양대학교 전자통신컴퓨터공학부
바라미
  • 399
  • 2587289
DNS Powered by DNSEver.com
AVR

[온도조절 인두기] 3. 하드웨어 디버깅

Posted 2014. 01. 21 Updated 2017. 06. 02 Views 13609 Replies 0
Atachment
첨부

하드웨어를 완성하고, 전원을 연결하기 전에 각 핀이 올바르게 동작하는지 수동으로 테스트를 해 보았다. 결과는 문제 없음. 물론 하드웨어를 제작하는 과정에서 중간중간 올바르게 연결이 되었는지는 수시로 확인하였다.

이번 프로젝트처럼 고밀도 집적회로를 손으로 만드는 경우 중간중간 확인을 철저히 하지 않으면 나중에 디버깅이 도저히 불가능해서 다 버리고 새로 만들어야 하는 사태가 발생할 수도 있기 때문이다.


그렇게 수동으로 한 테스트는 정상이었다. 부저와 버튼, LED, 숫자판의 모든 Segment들이 올바르게 연결되어 있었다. 그러나, 정작 문제는 전원을 연결했을 때 발생하였다.



▲ 타버린 ATmega8 칩


전원을 연결하고 ISP로 PC와 연결을 시도하면 아무 응답이 없었다. ATmega8 칩 위에 손을 대 보니 상당한 고온이 방출되고 있었다. 전형적인 프로세서가 탔을 때 증상이다.

칩을 납땜하기 전에 수 차례 회로가 정상인지 확인했기 때문에 자신있게 칩을 소켓 없이 기판에 바로 실장했는데, 그 칩을 떼어내야 하는 상황에 직면한 것이다.

하기 싫었지만 어떡하겠는가.. 어쩔 수 없이 해야지..;;


저렇게 다리가 많은 DIP타입 부품을 디솔더링 장비 없이 떼어낼 때는 온전하게 떼어낼 방법이 없다. 온전하게 떼어내려다가는 기판에 손상을 입히기 십상이다.

이런 상황에서는 칩의 다리를 모두 잘라내고 롱노우즈로 하나씩 잡은 다음 땜 부분을 인두로 가열하여 뽑아 내면 기판 손상 없이 깨끗하게 제거할 수 있다.



▲ ATmega8 디솔더링 작업


다리를 모두 떼어낸 다음에는 뒷면의 동판 패드에 있는 납을 최대한 제거하고, 구멍에 끼워져 있는 래핑와이어들을 한쪽으로 정리하여 홀에 새로운 부품을 실장할 수 있도록 준비하면 된다.



▲ 디솔더링 작업을 완료한 후. 새 ATmega8 칩을 준비했다.


칩이 타서 기판에서 제거하기는 했지만, 아직 그 원인이 무엇인지는 알아내지 못한 상태였다. 24V가 잘못된 곳으로 연결되지는 않았는지 여러 차례 확인해 봤지만 그렇 곳은 없었다.

새로 실장할 ATmega8 칩이 또 타지 않으리라는 보장이 없었으므로 직접실장 대신 IC소켓을 이용하기로 했다.



▲ 직접실장 대신 28Pin IC 소켓을


소켓에 칩을 꽃고 전원을 켰는데, 동시에 ATmega8 칩이 다시 타버렸다. [...]
이상했다. 분명 회로에는 아무 문제가 없었는데...

여분으로 갖고 있던 ATmega8 칩이 없었으므로 ATmega16 테스트 보드를 활용하여 회로에 문제가 없는지 검증하기로 했다.



▲ ATmega16 테스트보드를 활용한 회로 검증


위 사진에서 보는것과 같이 ATmega16은 아무 문제가 없었고, 프로그램 다운로드도 아주 잘 됬다. 사진은 히터 ON/OFF 펌웨어를 제작하여 테스트중인 모습.

아무래도 ATmega16 칩이 더 크니깐 최대 허용 전류 크기가 더 클거라는것을 고려하더라도, 정말 이상했다. 이미 회로 설계과정에서 그러한 전류제한들을 모두 고려하여 최대한 안정적으로 구성하였기 때문이다.

FET 스위치의 Gate도 TR로 구성된 Gate Driver를 활용하도록 되어 있었고, LED 하나 켜는 것도 포트 직접 제어가 아닌 TR로 버퍼링을 하도록 구성했기 때문이다.


다음날 부품가게에 가서 ATmega8을 공수해왔고, 다시 장착 후 테스트하였다. 그 결과는...



▲ 모두 운명하셨습니다.. -,.ㅡ


답답하기 짝이 없는 노릇.. 분명 ATmega16 칩에 연결하면 아무 문제 없이 잘 된다. 회로 설계상 전류 제한을 초과한곳은 없었다. 계속 챗바퀴 도는 디버깅만 이어질 뿐이었다.



▲ 그 즈음의 멘탈 상태를 보여주는 한 장의 사진.jpg


고민을 거듭하다가 그래도 해결책이 나오질 않자, 그냥 동작이 되는 ATmega16 칩을 사용하기로 마음먹었다. 16으로 넘어가면 ADC 연산을 할 때, 8에서 지원하지 않는 차동증폭(Difference Amplifying)을 사용할 수 있고, 포트 및 프로그램 메모리에 여유가 생기므로 여러모로 나쁠 것은 없었기 때문.

단, ATmega16을 쓰려면 DIP타입이 아닌 TQFP 패키지를 써야 하기 때문에 약간의 삽질을 더 해야만 했다.
- 이름하여 공중납땜!



▲ 사망한 ATmega8 칩의 다리들을 분리했다.



▲ 다리의 사각형 패드 가운데에 구멍을 뚫은 모습



▲ 구멍에 래핑와이어를 끼우고 땜한다음 열수축튜브로 마감한다.


한땀한땀...;;;



▲ 공중부양(?) 래핑와이어


이것을 길이를 맞춰서 자른 다음 TQFP 패키지의 ATmega16에 하나하나 납땜한다.
- 계속되는 멘탈소모.. 헥켘


▲ 능지처참중인 ATmega16(?)



▲ 래핑와이어를 구부려서 28핀 DIP 소켓에 장착한다.



▲ 완성 (이게 끝일까?)


온도조절 인두기의 완성품 사진을 보고 오신 분을 알고 계시겠지만, 거기에는 ATmega16이 아닌 예초 설계였던 DIP타입의 ATmega8이 장착되어 있습니다.

이렇게 연결을 하고 ISP 연결을 시도했으나 연결되지 않았습니다. 대신 칩이 타서 위에서 고온이 방출될 뿐이었죠. 이렇게 3번 정도 시도해 보다가 ATmega16도 다 떨어져서 그만두게 됩니다.


- 프로세서 칩 없이 테스트한 회로는 정상이다.
- ATmega8 - DIP : 탄다.
- ATmega8 - TQFP :  탄다.
- ATmega16 - DIP : 정상 동작한다.
- ATmega15 - TQFP : 탄다.


회로를 직접 만들어 본 분들은 정말 잘 알겠지만, 아예 동작하지 않는 회로보다 어떤 때는 되고 어떤 때는 안 되는 회로가 정말 사람 미치게 합니다. 거기에서 파생되는 스트레스란.. 으으.. 말로 표현할 수 없을 정도죠.


그렇게 수 많은 칩들을 태워먹고(ㅠ) 인터넷 카페와 지식인, SNS 등을 총동원하여 회로도를 올려놓고 HELP 요청을 해 놓은 뒤, 약 2주간은 손을 놓고 있었습니다.


- 다음 글에 계속 -


서비스 선택
이용중인 SNS 버튼을 클릭하여 로그인 해주세요.
SNS 계정을 통해 로그인하면 회원가입 없이 댓글을 남길 수 있습니다.
댓글
?
Powered by SocialXE

List of Articles
번호 분류 제목 글쓴이 최근 수정일 조회 수
161 PSpice PSpice에서 기존 부품 Parameter 수정하여 시뮬레이션하기 file TUW 2021.12.28 28001
160 Python pyenv를 이용하여 여러 버전의 Python 동시에 사용하기 3 TUW 2016.07.12 14281
159 Apache robots.txt를 활용하여 검색엔진 로봇 인덱싱 제한하기 TUW 2014.04.23 9463
158 Linux Root권한 없이 Wireshark 사용하기 file TUW 2017.06.02 109059
157 일반 Scan Robot - 전자동 북스캐너 file TUW 2017.06.02 9809
156 Linux SCP명령어 - 초간단 파일/디렉토리 전송 TUW 2014.04.23 41252
155 XE Social XE 댓글 위젯에 SNS 전송 옵션 추가하기 6 file TUW 2017.06.02 23632
154 XE Social XE 트위터 프로필사진 표시 문제 해결하기 3 file TUW 2017.06.02 205147
153 Linux SSHFS를 활용한 원격 디렉토리 마운트 TUW 2014.04.24 10072
152 Security SSL Handshake 과정 TUW 2016.06.21 7331
151 일반 TCP/IP의 원리를 쉽게 설명한 동영상 TUW 2021.12.28 9424
150 Linux TCPDump를 활용하여 패킷 모니터링하기 TUW 2020.04.13 7196
149 Linux Ubuntu 에서 VirtualBox로 Windows 7 설치 및 사용하기 1 file TUW 2017.06.02 23346
148 Linux Ubuntu에 GITLAB 설치하기 A to Z, Apache 연동 file TUW 2017.06.02 22469
147 Linux Ubuntu에서 GIT Client 설치 및 사용하기 TUW 2014.04.24 13706
146 Linux Ubuntu에서 Global Menu Bar 해제하기 TUW 2014.04.24 11875
목록
Board Pagination Prev 1 2 3 4 5 6 7 ... 13 Next
/ 13

Powered by Xpress Engine / Designed by Sketchbook

sketchbook5, 스케치북5

sketchbook5, 스케치북5