PCBWay를 통한 PCB 제작 및 강력한 컴퓨터 기능 소개
목차 (Table of Contents)
- 이전 비디오에서 알아본 새로운 컴퓨터
- PCBWay - 프로토타입 제조 업체
- 컴퓨터 리빌드 및 새로운 아이디어
- PCB 설계와 품질
- 오류 수정과 부가 기능 개발
- 8255 칩의 사용 및 기능 개요
- 8255 칩을 이용한 텍스트 LCD 테스트
- LCD 동작 불안정성과 8 MHz 크리스탈 선택 이유
- PCB 확장을 위한 미래 계획
- 구독 및 다음 에피소드 기대하기
👷♂️ 이전 비디오에서 알아본 새로운 컴퓨터
지난 비디오에서 우리는 80C188 프로세서를 사용하여 새로운 컴퓨터를 만들었습니다. 이번에는 그 컴퓨터를 처음부터 다시 만들어보고자 합니다. 이젠 예전에 비디오에서 사용했던 어댑터를 더는 사용하지 않아도 될 것입니다. 그러나 이번 비디오의 녹화를 가능하게 해준 PCBWay의 도움 없이는 아무것도 할 수 없었을 겁니다. PCBWay는 표준 PCB와 Flex PCB, 고급 PCB, PCB 조립 등 여러 종류의 PCB 프로토 타이핑 제조업체입니다. 또한 3D 프린팅, CNC 기계 가공, 사출 성형 등 다양한 재료를 다루는 외부 케이싱까지 제공합니다. PCBWay를 통해 만드신 분들은 아이디어를 실제 프로젝트로 구현할 수 있습니다. 또한, PCBWay의 오픈 소스 커뮤니티에 많은 창작자들이 참여하고 있습니다. 특히 "공유 프로젝트" 섹션에는 PCBWay 사용자들이 흥미로운 전자 프로젝트를 공유하고 있습니다. 관심이 있으시다면 직접 보드를 구매하실 수 있습니다. pcbway.com에서 확인해보세요.
🏭 PCBWay - 프로토타입 제조 업체
PCBWay는 PCB 제작 및 프로토타이핑 서비스를 제공하는 믿을 수 있는 업체입니다. 다양한 종류의 PCB를 제작할 수 있는 능력을 가지고 있으며, 내부 PCB뿐 아니라 외부 케이싱 제작도 가능합니다. 이들은 표준 PCB, Flex PCB, 고급 PCB, PCB 조립 등의 다양한 제품들을 생산하고 있습니다. 또한, PCBWay는 메이커들이 자신들의 아이디어를 현실로 구현할 수 있는 원스톱 솔루션 서비스를 제공합니다. PCBWay의 오픈 소스 커뮤니티도 창작자들 사이에서 인기가 높습니다. 특히 "공유 프로젝트" 섹션에서 여러 창작자들이 흥미로운 전자 프로젝트를 공유하고 있습니다. 만약 이러한 프로젝트에 관심이 있다면 바로 pcbway.com에서 보드를 얻을 수 있습니다.
🚀 컴퓨터 리빌드 및 새로운 아이디어
지난 비디오를 만들면서 제작한 브레드보드 상의 컴퓨터를 PCB로 옮겨봅시다. 쓸 모든 소자들과 필요한 신호를 한 곳에 모아봤습니다. 여기에는 80C188 CPU, RAM, 플래시 칩, 주소 버스 래치 등이 있습니다. 이번에는 이전에 사용하지 않았던 NOR 게이트와 NAND 게이트 또한 사용했습니다. 또한, 버튼과 관련된 작업을 위해 74244 버퍼도 PCB에 추가했습니다. 이번에는 버튼 입력을 위해 8개의 입력 핀을 모두 사용하였습니다. 또한, 아이보로 8MHz의 외부 크리스탈도 추가하였습니다. 제작된 PCB에는 새로운 펌웨어를 플래시하는 ZIF 소켓도 있어 쉽게 프로그래밍할 수 있습니다. 또한, 브레드보드에 연결할 수 있는 핀 헤더도 추가되었습니다. 이 PCB는 처음 만들어지는 프로토타입이므로 몇 가지 오류가 있을 수 있습니다. 그러나 간단하게 수정할 수 있는 오류들이므로 큰 문제 없이 해결될 것입니다. 이 PCB 디자인은 아이디어가 계속해서 생각나는 과정 중에 조금 더 복잡하게 되었습니다. 그 결과 몇 가지 추가 칩들이 필요하게 되었습니다. 후속 영상에서 이에 대해 더 자세히 알아보겠습니다.
💡 PCB 설계와 품질
PCB 설계는 컴퓨터 제작에 있어 중요한 부분입니다. 그런데 설계만으로 충분하지 않습니다. 이를 실현시켜야 하는데, 이를 위해 PCBWay가 준비돼 있습니다. 몇일만에 내게 도착한 이 PCB는 매우 좋은 품질이었고 가격도 매우 저렴했습니다. 제작한 PCB의 품질이 좋아야 오류 수정이나 기능 추가가 원활하게 이루어질 수 있습니다. PCBWay에서 받은 저렴하고 고품질의 PCB로 난장판을 만들 시작할 수 있습니다. 이제 남은 것은 나의 솜씨에 달려있습니다. 이제 PCB 올릴 준비를 해보도록 하겠습니다.
🛠️ 오류 수정과 부가 기능 개발
롤보드에서 PCB로 제작한 이 새로운 컴퓨터를 납땜해 봅시다. 하지만 납땜을 시작하기 전에 이 PCB에 어떤 기능들이 들어가 있는지 설명하겠습니다. 당연한 이야기지만 가장 큰 부분은 CPU인 80C188입니다. 래치와 RAM, 플래시 메모리도 존재합니다. 이 PCB의 우측 상단에는 우리가 사용하는 버튼에 대한 74244 버퍼가 있습니다. 이번에는 2개의 버튼만 납땜했습니다. 하지만 8개 모두를 납땜할 준비가 되어 있으므로 나중에 추가할 수 있습니다. PCB의 상단에는 새로운 외장 LCD 헤더도 있습니다. 추가로 사용하지 않을 핀 헤더들이 더 있습니다. 이들은 미래의 영상에서 사용될 예정입니다. 이제 납땜 작업을 시작할 텐데, 이 작업은 매우 처음에 만들어진 프로토타입이므로 몇 개의 오류가 있을 수 있습니다. 하지만 이는 쉽게 수정할 수 있는 오류들이므로 큰 문제 없이 해결될 것입니다. 이제 납땜할 준비가 됐으니 이제 해보도록 하겠습니다. 이번에 납땜하는 과정을 보면서 겪은 오류에 대해서 설명드릴게요. CPU에 대한 오류를 하나 발견했었다는 사실부터 설명하도록 하겠습니다. 80C188에는 3개의 타이머가 있습니다. 그 중 두 개의 타이머(Timer0 및 Timer1)는 외부 원본과 CPU 클럭으로도 클록될 수 있지만, 타이머 하나가 할당된 특정 핀(TimerIn0 및 TimerIn1)이 존재합니다. 이전의 비디오에서 Timer0를 CPU 클럭으로 사용할 것이기 때문에 입력 핀을 사용하지 않을 생각을 했고, 따라서 이러한 핀을 접지(Ground)에 연결시켰습니다. 그런데 이 때문에 Timer0이 이해대로 동작하지 않는 오류를 발생시키게 됐습니다. TimerIn0 입력 핀은 타이머가 HIGH 상태일 때 타이머 값을 증가시키고, LOW 상태일 때 타이머를 중지시키도록 하는 기능을 합니다. 이해대로라면 TimerIn0이 접지로 연결되면 Timer0은 영구적으로 멈추게 될 것입니다. 그래서 Timer0을 동작시키기 위해서는 입력 핀을 풀업시켜야 합니다. 물론, Timer2를 이용해서 해결할 수도 있지만 이번에는 Timer2를 사용하지 않고 Timer0의 문제를 해결하고자 합니다. 과연 이러한 이유가 무엇일까요? 질문에 대한 답변으로 발생원인에 대해 어떤 이유인지 추측할 수 있을까요? 댓글에 여러분의 소견을 남겨주세요. 힌트로, 이는 인터럽트와 관련된 이유입니다. 충분히 이야기했으니 이제 납땜 작업을 시작하겠습니다. 하지만 주의하세요. 이 펌웨어는 아직 최종 프로토타입이므로 몇 가지 실수가 숨어 있을 수 있다는 사실을 기억하세요. 그렇지만 다행히도 쉽게 고칠 수 있는 실수이기 때문에 크게 문제될 부분은 아닐 것입니다. 일단 납땜 작업을 시작해볼까요?-
🔬 8255 칩의 사용 및 기능 개요
이번에는 8255 칩을 컴퓨터에 추가하여 더 많은 기능을 개발할 계획입니다. 8255 칩은 CPU와 데이터 버스, RD, WR, Chip Select 신호를 사용하여 CPU 인터페이스를 제공하며, 3개의 8비트 포트를 포함하고 있습니다. 각 포트는 입력 또는 출력으로 개별적으로 구성되며, 각 포트의 상태는 프로그래밍으로 읽거나 쓸 수 있습니다. 오늘은 "Mode 0"이라는 기본 구성에서 이 칩을 사용할 계획입니다. 이는 포트 A와 포트 B가 묶여서 입력 또는 출력으로 구성될 수 있으며, 포트 C는 따로 두 개의 4비트 그룹으로 나뉩니다. 이 그룹은 별도로 방향을 전환할 수 있습니다. 칩에는 NMOS 버전인 "8255"와 CMOS 버전인 "82C55" 두 가지 버전이 있습니다. 우리에게 관점을 기반으로 가장 큰 차이점은 속도입니다. NMOS 버전은 최대 4 또는 5 MHz로 클록될 수 있지만, "C" 버전은 최대 8 MHz까지 동작할 수 있습니다. 이 칩은 이미 이전에 디자인한 PCB를 고려하여 디자인된 부분입니다. 모든 I/O 핀이 노출된 2x13 핀 헤더를 통해 사용할 수 있습니다. 이 칩을 PCB에 추가할 준비가 되어있습니다.
⌨️ 8255 칩을 이용한 텍스트 LCD 테스트
텍스트 LCD 디스플레이를 사용하여 8255 칩을 테스트해보겠습니다. 물론 브레드보드에 연결된 핀 헤더를 이용해서도 테스트할 수 있지만, 이전에 설계된 PCB에는 8255 칩을 넣을 공간을 이미 예약해두었습니다. 이 2x13 핀 헤더는 모든 I/O 핀을 노출시킵니다. 그러니 칩을 이곳에 넣어보도록 하겠습니다. 이미 필요한 소스 코드를 수정하고 플래시도 업데이트했습니다. 이제 테스트 코드인데 첫 번째로 8255 칩을 선택한 뒤 LCD에 문자를 출력하는 코드입니다. 일반적으로 바쁜 상태 플래그를 검사하는 대신 코드는 LCD에 기록하고 지연 루프에서 대기합니다. 이는 8255를 테스트하기 위한 간단한 코드이며, 추후에 개선할 예정입니다. 관련 코드는 모두 GitHub 페이지에서 확인하실 수 있습니다.
🖥️ LCD 동작 불안정성과 8 MHz 크리스탈 선택 이유
텍스트 LCD 디스플레이의 동작 불안정성을 겪으며, 8 MHz 크리스탈을 선택한 이유에 대해 살펴보겠습니다. 이전 영상에서도 사용했던 8 MHz 크리스탈을 이번 PCB 디자인에도 사용했습니다. 이렇게 함으로써 CPU에 대한 4 MHz의 클록이 제공됩니다. CPU는 실제로 더 빠르게 동작할 수 있지만, LCD와 함께 8 MHz의 클록을 사용하면 LCD에서 문자가 누락되는 현상이 발생할 수 있습니다. 데이터시트를 살펴보니 8 MHz의 CPU 클록에 LCD의 버스가 너무 빨라서 문자가 누락될 수 있다고 합니다. 따라서 LCD가 정상적으로 동작하기 위해 약속된 8 MHz로 돌아갔습니다. LCD의 문제로 인해 4 MHz의 클록으로 변경되었습니다. "XL" 버전에서는 정상적으로 동작하지 않는 이슈가 발생하는데, 아직 원인은 밝혀지지 않았습니다. 추후에 결과를 확인하고 알려드리도록 하겠습니다. 하지만 기본 버전인 "C188"은 올바르게 동작합니다. 이것을 다음 영상에서 확인하실 수 있을 것입니다.
📈 PCB 확장을 위한 미래 계획
새로운 컴퓨터의 제작이 계속 진행될 예정이며, 앞으로 비어있는 소켓들에 더 많은 칩을 추가할 예정입니다. 다음 영상에서는 왼쪽 상단에 있던 공간에 어떤 것이 들어갈지 힌트를 드릴 것입니다. 다음 영상을 놓치고 싶지 않으시다면 구독을 꼭 해주세요. 빠른 시일 내에 다음 영상에서 더욱 확장된 컴퓨터를 만나보실 수 있습니다. 기대해주세요!
🔔 구독 및 다음 에피소드 기대하기
비디오를 시청해주셔서 감사합니다. 아직 구독하지 않으셨다면 꼭 구독해주세요. 저희는 이 컴퓨터를 더욱 확장시키고 이 빈 소켓들에 칩을 추가할 계획입니다. 다음 에피소드에서는 어떤 칩이 상단 왼쪽 공간에 추가될지 힌트를 드릴 예정입니다. 이를 놓치지 않으시려면 꼭 구독해주세요. 다음 영상에서 뵙겠습니다! 😊
하이라이트 (Highlights)
- PCBWay는 PCB 제작 및 프로토타이핑에 많은 도움을 주는 회사입니다.
- 이번 비디오에서는 이전에 만든 컴퓨터를 다시 제작해보고자 합니다.
- PCB 설계와 품질은 제작 과정에서 매우 중요한 요소입니다.
- 8255 칩을 추가하여 컴퓨터의 기능을 더욱 확장할 예정입니다.
- LCD 동작 불안정성으로 인해 8 MHz 크리스탈을 선택하게 되었습니다.
- 미래 계획으로는 빈 소켓에 더 많은 칩을 추가할 예정입니다.
자주 묻는 질문 (FAQ)
Q1. PCBWay에서 PCB를 주문하려면 어떻게 해야하나요?
- A1: PCBWay 웹사이트(pcbway.com)에 접속하여 주문 페이지에서 필요한 정보를 입력하고 주문을 진행하면 됩니다.
Q2. 8255 칩을 사용하여 추가적인 기능을 개발하기 위해 어떤 기능이 가장 유용한가요?
- A2: 8255 칩은 입력과 출력을 프로그래밍적으로 제어할 수 있는 기능을 제공합니다. 따라서 여러 가지 외부 장치와 데이터 통신을 할 때 유용합니다.
Q3. LCD의 동작 불안정성을 해결하기 위해 사용한 8 MHz 크리스탈이 왜 4 MHz로 변경되었나요?
- A3: LCD와 CPU의 클록 주파수가 맞지 않을 경우 LCD에서 문자가 누락될 수 있습니다. 따라서 8 MHz 대신 안정적인 4 MHz 크리스탈을 선택하였습니다.
Q4. 미래 계획에서 어떤 칩이 상단 왼쪽 공간에 추가될 예정인가요?
- A4: 다음 에피소드에서 자세한 내용을 확인하실 수 있을 것입니다. 이에 대한 힌트를 드린다면 해당 칩은 빠른 데이터 저장과 처리를 위해 사용될 것입니다.