ZIF 소켓 14핀

복합 프로그래밍 가능 논리 장치(CPLD)는 여러분의 소프트웨어 개발에 필수적인 하드웨어입니다. 이름에서 알 수 있듯이, 이 칩을 프로그래밍하여 필요한 논리 기능을 구현할 수 있습니다. 이는 구형 칩을 교체하거나, 다양한 기술을 배우고 시도해 보는 데 유용할 수 있습니다. CPLD를 직접 사용해 보고 배우는 것보다 더 좋은 학습 방법이 있을까요?
무납땜 브레드보드를 ​​포함한 여러 곳에 꽂을 수 있도록 CPLD 모듈을 만들었는데, 실수를 저질렀습니다. 무납땜 브레드보드의 꽂을 수 있는 공간이 1.1인치밖에 안 되는 것 같습니다. 저는 모듈의 너비를 1인치로 만들어서 양쪽에 전선을 연결할 공간이 전혀 남지 않네요. 맙소사.
하지만 제가 무엇을 하고 있는지 좀 더 자세히 설명드리겠습니다. 키트 형태로 제작할 수 있고, 집에서 쉽게 납땜할 수 있으며, 회로에 프로그래밍할 수 있고, 3.3V 또는 5V에서 작동하는 프로그래밍 가능한 로직 회로를 만들고 싶습니다.
납땜이 간편한 키트를 만들기 위해, 3.3V 및 5V 버전으로도 출시되어 전원 공급 방식에 관계없이 프로그래밍 상태를 유지하는 구형 CPLD 부품을 사용했습니다. 로직 자체는 Altera Max 시리즈의 CPLD IC를 사용했으며, 32개 또는 64개의 매크로셀을 사용하는 회로 기판에 적합한 두 가지 버전이 있습니다. 매크로셀은 논리 "텀"을 사용하여 프로그래밍되고 프로그래밍 가능한 인터커넥트를 통해 다른 매크로셀과 연결되는 기본 논리 구성 요소입니다.
회로도를 보면 내용이 많지 않다는 것을 알 수 있습니다. 기본적으로 CPLD, 회로 내 프로그래밍 회로, 그리고 CPLD 로직을 구동하는 발진기만 있습니다.
이 부품은 EPM7032 및 EPM7064라고 하며, 44핀 플라스틱 리드 칩 캐리어(PLCC)를 사용합니다. 리드의 모양이 J자형이어서 J 리드라고도 합니다. 이 패키지는 스루홀 소켓에 삽입하거나 PCB에 직접 납땜할 수 있습니다.
이 CPLD는 온보드 발진기를 내장하고 있어 외부 클럭 없이도 상태 유지 연산을 수행하고 고속 카운터를 생성할 수 있습니다. 외부 클럭을 사용할 수 있는 경우, 모듈의 고속 클럭을 이용하여 외부 클럭의 상승 또는 하강 에지에서 클럭 이벤트를 생성할 수 있으며, 이는 CPLD/FPGA 가이드라인을 준수하는 것입니다. 즉, 클럭 입력에 "비동기" 구동 방식 대신 내부 글로벌 클럭 네트워크를 사용하는 것이 좋습니다. 이 발진기의 정격 전원 공급 전압은 1.8V에서 5.5V 사이입니다.
영상을 보시면 제가 발진기의 "INH" 핀을 어떻게 처리하는지에 대한 개인적인 선호도를 설명하는 것을 보실 수 있습니다. 간단히 말해서, 사양서에 명시된 내용이 맞는지 확인한 후에는 그냥 플로팅 상태로 두는 편입니다.
이러한 기능을 다룰 때, 제가 떠올린 이유 중 하나는 입력 핀을 전원 레일에 직접 연결하는 것을 꺼린다는 점이었습니다(가능하다면). 즉, 필요하지 않더라도 과도 전류를 제한하기 위해 직렬 저항을 사용하는 것을 선호합니다.
수년간 대량 생산 과정에서 몇 가지 문제를 목격했는데, 예를 들어 전원을 껐다 켜는 과정에서 전원 레일에 직접 연결된 핀의 전압이 칩 자체보다 높아지는 경우가 있었습니다. 이는 매우 위험합니다. 따라서 핀을 전원 레일에 연결할 때는 저항(전원 또는 접지)을 사용하면 나중에 사용자가 마음을 바꿔 해당 핀을 사용할 수도 있습니다. 특히 사용하지 않는 게이트 핀의 경우, 이러한 게이트 핀을 연결하지 않고 방치해서는 안 된다는 것을 잘 알고 계실 것입니다. 풀업 저항을 사용하면 구리 트레이스를 자르지 않고도 신호를 연결하고 게이트를 사용할 수 있습니다.
10핀 커넥터와 몇 개의 저항으로 프로그래밍 회로가 구성됩니다. 모든 저항이 풀업 저항이라면 저항 네트워크를 사용하겠지만, 아쉽게도 하나는 접지되어 있습니다.
이러한 독립형 CPLD를 프로그래밍하려면 전용 프로그래머가 필요합니다. 저는 보통 이런 프로그래머를 몇 개 가지고 있어서 쉽게 말할 수 있지만, 만약 여러분에게 프로그래머가 없다면, 시작하는 데 그리 어렵지 않을 겁니다. 공식 인증 제품인 "Altera USB Blaster"는 50달러에 판매되며 Digikey 등에서 구입할 수 있습니다. 저는 eBay에서 여러 개의 클론을 구입했는데, 그중 하나는 Altera, Xilinx, Lattice를 동시에 지원하는 클론입니다. 인터넷에는 직접 클론을 만들 수 있는 프로젝트와 코드가 있으며, 프로그래머 클론 제작 프로젝트 관련 영상 목록에 해당 링크를 추가할 예정입니다. 또한 메인보드, 아두이노, PIC 등을 프로그래밍할 수 있는 쉴드 디자인도 소개하겠습니다.
CPLD를 컴파일하고 프로그래밍하는 데 필요한 소프트웨어는 Altera에서 무료로 제공되지만, 이 구형 부품에는 구버전 9.1이 필요합니다. 다행히도 9.1 버전은 제가 가장 좋아하는 구버전이었습니다. 직관적인 타이밍 분석기가 있었는데, 이후 버전에서는 제거되었습니다.
PCB는 회로 기판이 맞기만 하면 되는 간단한 양면 디자인입니다. 저는 접지나 전원 공급에는 구리를 사용하는 편입니다. 간혹 구리 주조가 제대로 되지 않아 문제가 생기거나 결과물이 깔끔하지 못할 수도 있으므로, 구리 주조는 하나의 도구이지만 제대로 관리해야 합니다.
오늘날 대부분의 CAD 소프트웨어 패키지에는 최종 제품의 3D 뷰가 포함되어 있지만, 이미지의 정확도는 부품을 표현하는 데 사용된 3D 모델의 정확도에 따라 달라집니다. 여기에서 저는 44핀 소켓, 프로그래밍 커넥터 및 발진기에 사용할 3D 모델을 선택했습니다. 제가 즐겨 사용하는 3D 패키지는 다음과 같습니다.
많은 회사들이 자사 부품의 3D 모델을 보유하고 있습니다. 몰렉스는 이 분야에서 뛰어난 성과를 거둔 회사의 한 예입니다.
제가 저지른 실수는 미관상의 문제일 뿐 기능에는 영향을 미치지 않으며, 주요 문제는 아닙니다. 즉, 단일 무납땜 브레드보드에 적합하지 않다는 것입니다.
설계도를 다른 사람과 공유해야겠다고 생각하자마자 CPLD의 회로도 기호와 40핀 커넥터의 핀 배열, 즉 전체적인 크기가 마음에 들지 않았습니다. 40핀 이중 행 커넥터 기호를 가져와 1인치 크기로 조정했는데, 핀 번호가 1, 2, 3, 4... 와 같이 순차적으로 표시되는 것이 아니라 DIP 패키지처럼 측면에 1, 3, 5, 7... 과 같이 리본 케이블 커넥터처럼 표시되어 있었습니다. 따라서 모듈에 어떻게 연결해야 하는지, 문제를 어떻게 해결해야 하는지 직관적으로 파악하기 어려웠습니다.
마찬가지로 CPLD 핀 할당도 다소 혼란스러워서 BSDL(Boundary Scan Description Language)을 사용하는 유틸리티를 이용해 심볼을 생성했습니다. 대부분의 주요 벤더는 주력 부품에 대한 BSDL 파일을 제공하므로 이를 통해 심볼과 패키지를 (반)자동으로 생성할 수 있습니다. 모든 자동화 도구와 마찬가지로, 최상의 결과를 얻으려면 추가적인 조정이 필요할 수 있습니다. 이 경우, 저는 핀을 알파벳 순으로 나열하도록 설정했는데, 보드에서 핀을 추적할 때는 거의 무작위적인 순서로 나열되는 것과 같습니다. 그날 정말 초조했습니다.
이런 편법을 쓰다 보면 언젠가는 대가를 치르게 됩니다. 이 모듈을 수정할 때는 부품 자체와 일치하는 핀 배치를 결정하고 적용할 것입니다. 그러면 회로도 기호만 봐도 오실로스코프 프로브를 어디에 꽂아야 할지 쉽게 알 수 있을 겁니다.
회로 기판을 사용할 때, 주로 미적인 측면이나 실용적인 측면에서 개선할 수 있는 사항들이 있습니다. 핀 1 표시기는 여러 패키지에서 더 흔하게 볼 수 있어야 하고, 저는 오실로스코프 접지나 VOM 리드를 연결할 수 있는 간단한 접지점을 항상 선호합니다. 전원과 접지를 하단 핀에 연결하는 대신 기판에 직접 연결할 수 있도록 2핀 커넥터를 추가하는 방안을 고려해 볼 수 있습니다.
회로기판을 수정하기 전에 물리적 및 외관적인 문제 없이 제대로 작동하는지 확인하고 싶었습니다. 전원을 켜서 발진기가 제대로 작동하는 것을 확인한 후 프로그래머를 연결했습니다. 3.3V 버전이 프로그래밍 소프트웨어보다 최신 버전임에도 불구하고 CPLD를 감지하고 "알 수 없는" 장치로 표시했습니다.
다음으로, Quartus에서 카운터를 생성하고 핀 번호를 할당했습니다. 빠른 컴파일 및 다운로드 속도와 오실로스코프에서 확인된 카운터 기능 작동을 통해 설계가 실현 가능함을 확인했습니다.
Verilog로 작성된 간단한 테스트 회로는 아래에 나와 있습니다. 회로도와 Verilog 테스트 회로가 포함된 ZIP 파일을 Quartus II 프로젝트(버전 9.1 필요)로 다운로드할 수 있습니다.
앞서 말씀드린 것처럼, 회로 기판을 두 번째로 수정하여 설계 공유나 문제 해결 시 필요한 세부 사항에 더 주의를 기울일 예정입니다. 하단 커넥터의 너비를 0.9인치 이하로 설정해야 하므로, 표준 "와이드" DIP 패키지인 0.6인치로 유지할 수 있습니다. 이렇게 하면 하단 핀이 CPLD 소켓 풋프린트에서 돌출됩니다. 당시에는 수작업으로 조립했기 때문에 양산 상황에서는 이렇게 하지 않겠지만, 목표 중 하나가 수동 납땜 키트를 만드는 것이었습니다. 수동 납땜을 위해 감수해야 하는 부분은 발진기가 SMD 표면 실장형 하우징에 있어야 한다는 점입니다. 스루홀 버전은 크기가 너무 크고 일반적으로 제가 원하는 전압 범위를 지원하지 않습니다.
이 모듈들을 이용해서 간단한 컴퓨터를 완성할 수 있을까요? 메모리를 추가해야 할 것 같은데요.
하하...네, 어떤 종류의 컴퓨터인지에 따라 다르죠. 하지만 "진짜" 마이크로컨트롤러/마이크로컴퓨터는 모듈의 "핀 본딩"에 영향을 받기 때문에 모듈에서 충분한 용어를 추출해서 유용하게 사용할 수 있는 게 별로 없어요.
저는 프로세서가 필요 없는 64비트 크기의 완전한 NTSC 카메라 타이밍 및 모드 컨트롤러를 만들었습니다.
책 "Nand ​​to Tetris"에서 사용된 구조적 Verilog와 HDL은 거의 동일합니다.
관통형 부품은 왜 필요할까요? 0805 용접은 쉽습니다! 지금이야말로 모든 DIY 애호가들이 이 기술을 배울 때입니다.
윗쪽 소켓이 아래쪽에서 납땜된 핀과 겹치도록 만들면 "6핀 간격(40핀 칩을 시뮬레이션)"이나 대각선 간격 등을 사용할 수 있습니다. 이 경우 아랫쪽 리드선 납땜은 전적으로 수동 납땜으로 처리해야 하며, 윗쪽 소켓은 받침대 뒤쪽에 위치하게 됩니다.
하지만 초보자가 아래쪽에서 납땜하는 것은 어렵습니다. 저는 브레드보드용 PCB 헤더를 납땜할 때 (eBay에서 구할 수 있는 저렴한 SMD 어댑터 보드를 프로토타이핑에 사용할 수 있습니다), 먼저 브레드보드에 헤더를 꽂고 그 위에 PCB를 올려놓은 다음 납땜합니다. 브레드보드에 아주 적합한 방식이죠. 만약 아래쪽에서 납땜해야 한다면 훨씬 더 어려울 겁니다.
CPLD를 중앙에 배치하면 (배선이 더 쉬울 수 있음) 겹치지 않게 대각선으로 4열 설치할 수 있으며, 또는 CPLD를 한쪽에만 설치할 수도 있습니다.
납땜하기 전에 커넥터를 브레드보드에 꽂으라는 팁 감사합니다. 제 것은 좀 불안정하거든요.
한쪽 끝에는 DIP 형식의 브레드보드 핀이 있고, 다른 쪽 끝에는 동글 형태의 칩 소켓이 있는 건 어떨까요? 칩을 브레드보드 끝에 매달 수 있을 것 같습니다. 배선은 꽤 빡빡하겠지만요.
|####### ******************** |. 네, Xilinx와 Lattice처럼 Altera의 "무료" 버전을 사용하기로 했습니다. Al Williams와 상의하여 모든 오픈 소스 지원이 무엇을 지원하는지, 특히 디바이스 시리즈의 특정 속성까지 포함하여 자세히 알아봐야 할 것 같습니다. 어쨌든 무료 버전으로 많은 작업을 진행했습니다.
네, 말씀하신 대로 CPLD가 핀과 겹치는 부분이 있는 것 같습니다. 제가 제대로 이해했다면, 이건 Rev 2 버전처럼 보이네요. (대량) 생산을 위한 설계를 할 때는 "수동 납땜 조립" 단계를 정말 싫어합니다. 왜냐하면 (부품이 아닌 쪽의 납땜 핀이) 겹치기 때문이죠. (이미 수동 납땜 부품이긴 하지만) 이건 소규모 키트일 뿐, 양산용 설계는 아닙니다. 제 나이에 이런 습관을 고치기가 쉽지 않네요. :)
CPLD와 수동 부품이 장착된 T자형 회로 기판을 브레드보드 가장자리에 걸어두면 매우 유용할 것 같습니다. Adafruit RasPi T-Cobbler(http://www.adafruit.com/products/2028)와 비슷한 형태면 좋을 것 같습니다. 이렇게 하면 브레드보드 공간을 최대한 활용할 수 있을 것입니다.
유감스럽게도, 이번 ​​생산 중단으로 인해 XR2206 및 ICL8038 기반의 함수 생성기들과 마찬가지로 개인 프로젝트에서의 활용도가 크게 제한될 것입니다.
흥미로운 아이디어네요. 이 두 칩 모두 마음에 듭니다. CPLD는 구식이 아니라 3.3V에서 더 저렴하게 구입할 수 있는 방법일 뿐입니다.
당신의 "말도 안 되는 소리"에 대해 말씀드리자면... 브레드보드에 회로를 새로 구성한 게 아니잖아요. 그냥 먼저 전선을 브레드보드에 꽂고, 그 위에 CPLD를 꽂으면 됩니다. 아니면, 전원과 접지선이 연결된 브레드보드를 ​​하나에서 분리할 수 있다면, 브레드보드를 ​​두 개 사용하는 것도 방법입니다.
Altium과 Eagle에 대해 말씀드리자면, KiCad는 어떠세요? Altium보다 Eagle을 선호하실 만한 제약 사항이 전혀 없고, 기본적으로 연결되지 않은 모든 핀에 대해 DRC 오류를 생성합니다. 핀을 실제로 열어야 하는 경우 직접 지정해야 합니다. (입력 핀에만 해당될 수도 있고, 출력 핀에는 적용되지 않을 수도 있는데, 아직 확인되지 않았습니다.) 또 다른 장점은 배우기가 매우 쉽다는 것입니다. 훌륭한 입문 매뉴얼 덕분에 단 하루 만에 익힐 수 있었습니다.
저는 스루홀 방식보다 (크기가 더 큰) SMD 방식을 선호합니다. 사용하기가 더 쉽거든요. PCB를 계속 돌릴 필요가 없습니다. (미러링 때문에 어이없는 실수를 저지른 적이 몇 번 있었죠...) 그리고 저항 리드를 자를 필요도 없고요. 설계를 공유할 때, 여러 패키지를 하나의 PCB나 부품에 편리하게 배치할 수 있습니다. SMD 저항은 스루홀 방식보다 레이아웃이 조금 더 복잡해지긴 합니다.
저는 PDF 형식의 "KiCad 시작하기"를 사용했습니다. 제가 사용한 구버전은 29페이지이고, 최신 버전은 52페이지입니다. 다른 튜토리얼(비디오 링크 포함)에서도 해당 자료를 찾을 수 있습니다: http://kicad-pcb.org/help/tutorials/
Hackaday와 The Amp Hour의 [Chris Gemmell]이 KiCad에 대한 시리즈를 만들었다는 것을 알고 있습니다. http://kicad-pcb.org/help/tutorials/
KiCad가 유용할 것 같네요. Rev 2에서 어떻게 되는지 한번 보겠습니다. 제안해 주셔서 감사합니다. 연결되지 않은 입력은 DRC(ERC)에 도움이 되고, 커넥터나 기타 소프트 또는 I/O 관련 부품의 경우 대부분의 CAD 연결 끊김 메시지를 방지할 수 있습니다.
간단한 테스트를 해보고 커넥터를 빈 테이블에 넣은 다음 어노테이션과 DRC를 실행해 보세요. 각 핀에 대해 DRC 오류가 발생했습니다. 하지만 연결되지 않은 핀을 표시하는 것은 매우 간단합니다.
수동 모드로 설정합니다. (구성 요소 편집 -> 라이브러리 편집기로 편집)을 선택하면 라이브러리 편집기가 열리고 구성 요소가 별도의 창에 로드됩니다. 구성 요소의 모든 부분을 확인하거나 변경할 수 있으며, 변경된 구성 요소는 회로도에 저장하거나 업데이트할 수 있습니다. 덕분에 구성 요소 변경이 매우 간편합니다. 저는 라이브러리 자체에는 크게 관심이 없습니다. 예를 들어 CPLD를 사용하는 경우 핀에 의미 있는 이름을 지정해야 합니다. 더 중요한 것은, 사용자 정의 구성 요소를 설계할 수 있는 훌륭한 인터페이스가 제공된다는 점입니다.
KiCad의 ERC(전기 규칙 검사)에서 "연결되지 않은" 핀은 "수동 핀"과는 다른 유형의 핀이며, 모든 "연결되지 않은" 핀은 오류를 발생시킵니다. ERC 작동 방식은 [도구] -> [전기 규칙 검사] -> [옵션]에서 쉽게 조정할 수 있습니다.


게시 시간: 2021년 11월 18일