This website requires JavaScript.
쿠폰 앱 다운로드
배송지
블로그

DirtyJTAG & JLCPCB로 만드는 Pico JTAG 프로그래머

최초 게시일 Mar 24, 2026, 업데이트 되였습니다. Mar 24, 2026

2 분

표목(TOC)
  • 프로젝트 개요
  • OpenFPGALoader + DirtyJTAG가 뛰어난 이유
  • 동작 원리: DirtyJTAG 어댑터로서의 Pico
  • Windows 단계별 설정 가이드 (프로젝트 명령어 기준)
  • 맞춤형 FPGA 보드 + JLCPCB PCBA
  • 실제 테스트: Lattice ECP5 데모 두 가지
  • 실제 테스트: Lattice ECP5 데모 두 가지
  • 나만의 Pico JTAG 프로그래머 + 맞춤형 FPGA 보드 만드는 방법
  • 마무리
  • 자주 묻는 질문

FPGA 개발의 세계에서 신뢰할 수 있는 저비용 JTAG 프로그래머를 구한다는 것은 고가의 벤더 케이블을 구매하거나 모든 보드에 비싼 FTDI 칩을 추가하는 것을 의미했습니다. 메이커 Khaled Magdy는 $4짜리 Raspberry Pi Pico를 DirtyJTAG 펌웨어와 OpenFPGALoader를 사용하여 완전히 기능하는 JTAG 어댑터로 전환함으로써 이 문제를 해결했으며, 이후 자신의 맞춤형 FPGA 보드를 JLCPCB에서 전문적으로 어셈블리했습니다.


전체 솔루션은 100% 오픈소스입니다. 펌웨어를 다운로드하고, Windows 설치 단계를 따라 JLCPCB PCBA에서 몇 분 만에 나만의 맞춤형 FPGA PCB를 주문할 수 있습니다.


프로젝트 개요


이 설정을 통해 단 하나의 $4짜리 Pi Pico를 JTAG 케이블로 사용하여 거의 모든 FPGA(Lattice ECP5, iCE40, Artix-7, Gowin, Efinix 등)를 프로그래밍할 수 있습니다. 더 이상 여러 벤더 프로그래머를 가지고 다닐 필요가 없습니다. 동일한 USB 포트로 UART 디버깅도 가능합니다.


저자 Khaled Magdy는 이렇게 설명합니다: "저는 수년간 FTDI 솔루션을 사용해 왔습니다. 최근 오픈소스를 시도해 보기로 했는데, 비용 절감과 범용 지원 덕분에 앞으로의 모든 맞춤형 FPGA 설계에 쉽게 선택할 수 있었습니다."


OpenFPGALoader + DirtyJTAG가 뛰어난 이유


· 비용 최적화: $9짜리 FTDI 칩을 $1짜리 MCU로 교체. 동일한 USB-JTAG + USB-UART 기능 제공.

· 범용 지원: Xilinx, Altera, Lattice, Gowin, Efinix 등과 호환.

· 오픈소스 툴체인 친화적: Yosys/nextpnr에 완벽하며, 벤더 툴이 필요 없음.


동작 원리: DirtyJTAG 어댑터로서의 Pico


Pico-DirtyJTAG 펌웨어는 RP2040의 PIO를 사용하여 완전한 JTAG 인터페이스를 에뮬레이션합니다. 기본 핀아웃은 단순합니다:

신호GPIOPico 핀
TDI1621
TDO1722
TCK1824
TMS1925
RST2026
TRST2127

UF2 파일을 한 번 플래시하고 Zadig으로 WinUSB 드라이버를 설치하면 준비가 완료됩니다.



Windows 단계별 설정 가이드 (프로젝트 명령어 기준)


1. VS Code에서 Pico-DirtyJTAG를 다운로드 및 빌드 → UF2를 Pico에 플래시.

2. MSYS2 설치.

3. 실행: pacman -S mingw-w64-ucrt-x86_64-openFPGALoader

4. MSYS2 UCRT64 터미널을 열고 확인: openFPGALoader -V

5. Zadig을 사용하여 Pico를 WinUSB 드라이버로 전환.

6. JTAG 핀을 FPGA에 연결.

7. 감지: openFPGALoader -c dirtyJtag --detect


SRAM에 비트스트림 로드:
openFPGALoader -c dirtyjtag --bitstream MyDesign.bit외부 SPI FLASH에 플래시:
openFPGALoader -c dirtyjtag -f MyDesign.bit --write-flash


맞춤형 FPGA 보드 + JLCPCB PCBA


Khaled는 완전한 맞춤형 Lattice ECP5 보드를 설계하고 JLCPCB에 제작 및 어셈블리를 의뢰했습니다. 진행 과정은 일반적인 JLCPCB 프로젝트와 완전히 동일했습니다:


1. 거버 파일을 업로드하고 2층 옵션을 선택합니다.

2. BOM + CPL 파일을 업로드하면 JLCPCB가 라이브러리에서 부품을 자동으로 매칭합니다.

3. 3D 미리보기를 확인하고 주문합니다(쿠폰으로 추가 할인 가능).

4. 며칠 안에 보드가 완전히 어셈블리되어 테스트 준비된 상태로 도착했습니다.


"JLCPCB 덕분에 전문가 수준의 FPGA 하드웨어를 누구나 접근할 수 있고 저렴하게 만들 수 있게 되었습니다"라고 Khaled는 말했습니다. "품질이 기대를 뛰어넘었으며, 새로운 DirtyJTAG 솔루션과 완벽하게 통합되었습니다."


실제 테스트: Lattice ECP5 데모 두 가지


GPIO 데모: 버튼으로 LED 하나를 제어하고, 전원 재시작 후 나머지는 꺼진 상태 유지 — OpenFPGALoader를 통해 비트스트림을 SPI FLASH에 영구 저장.
UART 데모: FPGA와 Pico(USB CDC) 간 루프백 테스트 — JTAG 프로그래밍과 시리얼 디버깅이 동일한 USB 포트에서 모두 동작함을 입증. 두 데모 모두 JLCPCB 어셈블리 후 완벽하게 작동했습니다.


"JLCPCB 덕분에 전문가 수준의 FPGA 하드웨어를 누구나 접근할 수 있고 저렴하게 만들 수 있게 되었습니다"라고 Khaled는 말했습니다. "품질이 기대를 뛰어넘었으며, 새로운 DirtyJTAG 솔루션과 완벽하게 통합되었습니다."


실제 테스트: Lattice ECP5 데모 두 가지


GPIO 데모: 버튼으로 LED 하나를 제어하고, 전원 재시작 후 나머지는 꺼진 상태 유지 — OpenFPGALoader를 통해 비트스트림을 SPI FLASH에 영구 저장.


UART 데모: FPGA와 Pico(USB CDC) 간 루프백 테스트 — JTAG 프로그래밍과 시리얼 디버깅이 동일한 USB 포트에서 모두 동작함을 입증. 두 데모 모두 JLCPCB 어셈블리 후 완벽하게 작동했습니다.



나만의 Pico JTAG 프로그래머 + 맞춤형 FPGA 보드 만드는 방법


GitHub에서 Pico-DirtyJTAG와 OpenFPGALoader를 다운로드합니다.  

아무 Pi Pico에 펌웨어를 플래시합니다.  

위의 Windows 단계를 따릅니다(5분 소요).  

KiCad 또는 Lattice Diamond에서 FPGA PCB를 설계합니다.  

거버/BOM/CPL을 jlcpcb.com에 업로드 → PCBA 활성화.  

공장 어셈블리된 보드를 수령하고 즉시 프로그래밍을 시작하세요!


프로젝트 사양


·  프로그래머: Raspberry Pi Pico (RP2040) + DirtyJTAG 펌웨어

·  : OpenFPGALoader (20개 이상의 FPGA 패밀리 지원)

·  비용: JTAG 케이블 총 약 $4

·  기능: SRAM + SPI FLASH 프로그래밍, USB-UART 브리지

·  호환 FPGA: Lattice ECP5, iCE40, Artix-7, Gowin 등

·  라이선스: 완전 오픈소스


마무리


이 프로젝트는 전문적인 FPGA 개발에 더 이상 값비싼 도구가 필요하지 않다는 것을 증명합니다. $4짜리 Pico, 오픈소스 소프트웨어, JLCPCB의 신뢰할 수 있는 PCBA 서비스를 통해 누구나 취미 가격으로 맞춤형 FPGA 하드웨어를 제작하고 프로그래밍할 수 있습니다.


첫 번째 FPGA 보드를 만들든, 양산을 목표로 하든 이 조합은 완벽한 출발점입니다.


다음 FPGA 프로젝트를 시작할 준비가 되셨나요?
지금 바로
JLCPCB에서 PCB + PCBA 즉시 견적을 받아보세요!


모든 파일은 무료로 다운로드하고 사용할 수 있습니다. 무언가 놀라운 것을 만들어 보세요. 여러분도 할 수 있습니다!


자주 묻는 질문


Q1: FTDI 대신 DirtyJTAG를 사용하는 이유는?


보드당 약 $8를 절약하면서 하나의 USB 포트로 동일한 JTAG + UART 기능을 제공합니다.


Q2: 어떤 FPGA를 지원하나요?


Lattice ECP5, iCE40, Xilinx Artix-7/Spartan, Gowin, Efinix 등 — 전체 목록은 OpenFPGALoader 위키를 참고하세요.


Q3: 외부 SPI FLASH에 비트스트림을 플래시할 수 있나요?


네! openFPGALoader -c dirtyjtag -f file.bit --write-flash 명령을 사용하세요.


Q4: 펌웨어는 오픈소스이고 무료인가요?


100% 그렇습니다. Pico-DirtyJTAG와 OpenFPGALoader 모두 완전한 GitHub 저장소를 갖춘 오픈소스입니다.


지속적인 성장