전자회로 실무 / MCU·프로그램 기록

탈착식 소켓(removable socket)으로 표면실장 마이크로컨트롤러(Microcontroller Unit)를 납땜 전에 기록·시험합니다

표면실장형 마이크로컨트롤러(Microcontroller Unit, MCU)를 여러 개 준비할 때마다 시험용 기판에 납땜하면, 프로그램을 고치거나 소자를 바꿀 때 보드까지 다시 작업해야 합니다. TQFP-32처럼 핀이 사방에 달린 소자는 탈착식 소켓에 넣으면 납땜 전에 소자 식별과 프로그램 기록을 확인할 수 있습니다. 지그에 시험용 헤더가 있다면 기본 입출력도 시험할 수 있습니다. 이 글은 소켓 지그를 만들거나 사용할 때 무엇을 연결하고, 무엇을 먼저 확인해야 하는지 설명합니다. 완성품 기판에서 정상 동작하는지는 실장 후 별도로 시험해야 합니다.

먼저 알아둘 용어

TQFP(Thin Quad Flat Package)는 네 면으로 핀이 나온 얇은 표면실장 패키지입니다. 뒤의 32는 핀 수입니다. 핀 수가 같아도 소자별 핀 기능이나 핀 1 위치가 같다는 뜻은 아닙니다.

클램셸 소켓(clamshell socket)은 뚜껑을 열고 소자를 넣은 다음 닫아 핀에 접촉시키는 탈착식 소켓입니다. 누르는 방향과 소자 두께는 선택한 소켓 사양에 맞아야 합니다. 납땜 없이 접촉한다는 장점이 있지만, 핀이 휘거나 소자가 비뚤어지면 일부 신호가 끊길 수 있습니다.

ISP(In-System Programming)는 MCU의 직렬 기록 신호를 이용해 프로그램을 넣는 방식입니다. AVR은 이런 기록 방식을 지원하는 MCU 계열 가운데 하나입니다. AVR의 SPI(Serial Peripheral Interface) 방식 ISP에서는 MOSI(Master Out Slave In)가 프로그래머에서 MCU로 보내는 데이터, MISO(Master In Slave Out)가 MCU에서 돌아오는 데이터, SCK(Serial Clock)가 전송 시점을 정하는 클록, RESET(reset)이 기록 모드 진입에 쓰이는 신호입니다. USBasp는 이 신호를 제공하는 USB 프로그래머의 한 종류입니다.

탈착식 TQFP 소켓에서 AVR을 기록할 때 전원·클록·ISP 신호와 시험용 헤더를 구분한 개념도
탈착식 TQFP 소켓에서 AVR을 기록할 때 전원·클록·ISP 신호와 시험용 헤더를 구분한 개념도 · 클릭하면 확대됩니다.

소켓에 넣기 전에 패키지와 전원을 맞춥니다

먼저 소자의 정확한 주문 번호와 패키지 도면을 확인합니다. TQFP-32라는 표기만 보고 소켓이나 회로를 고르지 말고 핀 피치, 본체 치수, 핀 1 표식과 지그의 핀 배치를 대조합니다. 전원을 끈 상태에서 소켓 뚜껑을 열고 소자를 표시 방향에 맞춰 놓은 뒤, 모든 다리가 접점 위에 놓였는지 확대해서 봅니다. 뚜껑을 닫을 때 한쪽만 먼저 걸리거나 핀이 눌려 휘면 다시 열어 확인합니다.

지그에는 별도 전원 회로가 있을 수도 있고 프로그래머가 목표 회로에 전원을 공급할 수도 있습니다. 목표 전압(target voltage)과 소자 허용 전압을 확인한 뒤 전원 공급 경로를 하나로 정합니다. 프로그래머의 전원 출력과 지그의 전원 출력을 설정 확인 없이 서로 묶지 않습니다. 예를 들어 지그에 5 V 전원부가 있더라도 모든 TQFP-32 MCU가 5 V에서 동작하는 것은 아닙니다. 전원을 켠 후에는 소켓의 전원 단자 VCC와 접지 단자 GND(ground) 사이에서 실제 전압을 측정합니다.

헤더 모양보다 여섯 신호의 연결을 확인합니다

소켓 기판의 ISP 헤더가 2×3 또는 2×5 모양이라고 해도, 커넥터 외형만으로 케이블의 1번 핀이나 전원 위치를 정하지 않습니다. 지그 회로도와 프로그래머 설명서에서 MOSI, MISO, SCK, RESET, VCC, GND가 각각 어느 핀에 가는지 대조합니다. ATmega328P의 SPI ISP를 예로 들면 MOSI는 PB3, MISO는 PB4, SCK는 PB5, RESET은 PC6에 연결됩니다. 기록 모드에 들어갈 때는 프로그래머가 RESET을 낮게 유지해야 합니다. 다른 MCU나 패키지에는 이 번호를 그대로 적용하지 않습니다.

또 하나 필요한 것은 MCU의 동작 클록(clock)입니다. 클록 퓨즈 비트(fuse bits)는 전원을 꺼도 남아 있는 소자의 설정값이며, 어떤 클록원을 사용할지 결정합니다. 외부 클록원을 요구하는 설정이라면 지그에도 그 조건에 맞는 클록이 있어야 기록 통신이 됩니다. 16 MHz 부품을 8 MHz 부품으로 바꿀 수 있는 지그라도 부품의 종류, 실제 발진 방식과 퓨즈 설정을 함께 맞춰야 합니다. 부품 이름만 보고 수정 공진자(quartz crystal resonator), 세라믹 공진기(ceramic resonator), 능동 발진기(oscillator)를 서로 바꿔 꽂지 않습니다.

기록하고 시험할 때는 다음 순서로 확인합니다

기존 기판을 다시 만들거나 역설계한 기판을 조립할 때에는 기판 제조 파일과 MCU가 실행할 프로그램 이미지를 별개의 준비물로 확인합니다. 먼저 대상 부품에 프로그램이 필요한지 살피고, 필요하다면 맞는 이미지와 기록 방법을 준비한 뒤 아래 순서로 소자를 확인·기록합니다. 기록이 끝나도 완성 기판의 동작을 보증하는 것은 아니므로, 실장한 시제품에서 필요한 기능을 시험한 결과를 확인하고 후속 제작을 결정합니다.

  1. 전원을 끄고 소자를 소켓에 올바르게 놓습니다. 핀 1 표시와 네 면의 접촉 상태를 확인한 뒤 뚜껑을 닫습니다.
  2. 지그의 전원 경로와 ISP 케이블의 핀 대응을 확인합니다. 전원을 넣은 다음 소켓에서 전압을 측정하고, 필요한 클록원이 동작하는지 확인합니다.
  3. 기록 도구에서 정확한 MCU 모델과 프로그래머를 선택하고 소자 식별값(device signature)을 먼저 읽습니다. 기대값과 다르면 곧바로 기록을 강행하지 않습니다.
  4. 식별값이 맞으면 대상에 맞게 만든 프로그램 파일을 기록하고 읽어 다시 비교하는 검증(verify) 결과를 확인합니다. 이 결과는 소켓에서의 기록 성공을 뜻하며, 완성품 전체의 기능 합격을 뜻하지 않습니다.
  5. 지그가 MCU 핀을 시험용 헤더(header)로 복제해 둔 구조라면, 필요한 입력·출력만 저부하 시험 회로에 연결해 기본 동작을 확인합니다. 헤더 위치가 MCU 핀 번호와 일치하는지 회로도에서 확인하고, 각 핀의 허용 전류와 전압을 지킵니다.
  6. 시험을 마친 뒤 전원을 끄고 소자를 빼서 실제 기판에 실장합니다. 실장 후에는 실제 전원, 클록, 주변 회로가 달라지므로 기록한 코드가 다시 동작하는지 확인합니다.

식별값을 읽지 못하면 프로그래머 설정을 바꾸기 전에 전원, 소켓 접촉, 케이블 방향, RESET, 클록을 차례로 확인합니다. 새 소자를 넣었을 때만 실패한다면 핀 휨과 소자 방향을 먼저 살펴봅니다. 클록 퓨즈를 외부 클록 방식으로 바꾼 직후부터 응답이 없어졌다면 지그에 그 클록이 제공되는지 확인합니다. 복제 헤더에서 신호가 보이지 않을 때는 프로그램과 핀 기능 설정뿐 아니라 소켓 접점과 헤더까지의 배선도 확인합니다.

탈착식 지그의 장점은 소자를 납땜하기 전에 기록과 기본 시험을 반복할 수 있다는 데 있습니다. 다만 소켓에서 통과한 결과는 최종 기판의 납땜, 전원 안정성, 실제 부하와 통신까지 검증하지 않습니다. 지그 시험 결과와 실장 후 기능시험 결과를 각각 기록해야 원인을 구분할 수 있습니다.