# 3개의 8핀 칩으로만 구성된 인터랙티브 속도의 Linux 컴퓨터

> Clean Markdown view of GeekNews topic #20165. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=20165](https://news.hada.io/topic?id=20165)
- GeekNews Markdown: [https://news.hada.io/topic/20165.md](https://news.hada.io/topic/20165.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2025-04-06T08:42:29+09:00
- Updated: 2025-04-06T08:42:29+09:00
- Original source: [dmitry.gr](https://dmitry.gr/?r=05.Projects&proj=36.%208pinLinux)
- Points: 1
- Comments: 1

## Topic Body

### 최소 컴퓨터

- **초기 생각**: 과거에는 키트를 주문하여 집에서 컴퓨터를 조립할 수 있었음. 현대 컴퓨터는 복잡한 칩으로 구성되어 있으며, 많은 전력을 필요로 함. 하지만, 현대 컴퓨터를 집에서 쉽게 조립할 수 있는 키트로 만들 수 있을지에 대한 실험을 시작함.
- **목표**: Debian Linux, vi, gcc, make를 실행할 수 있는 컴퓨터를 만드는 것. 8MB RAM, 1 MIPS CPU, SD 카드, USB를 목표로 설정함.

### 부품 선택

- **USB 인터페이스**: 8핀 칩 중 USB를 지원하는 칩은 거의 없음. PL2303GL과 ATTINYx5 시리즈가 가능함.
- **RAM**: SOIC-8 PSRAM 사용. 8MB RAM을 쉽게 구할 수 있음.
- **마이크로컨트롤러**: 여러 옵션을 고려했으나, STM32G031J6가 가장 적합하다고 판단됨. 32KB 플래시, 8KB RAM, 64MHz 클럭 속도를 가짐.

### 하드웨어 설계

- **콘솔**: UART 핀은 다른 것과 결합할 수 없음.
- **RAM**: SPI PSRAM은 QSPI 모드를 지원하나, 핀 수 제한으로 일반 SPI 모드 사용.
- **SD 카드**: 핀 부족 문제를 해결하기 위해 RAM과 SD 카드를 동일한 핀에 연결하는 방법을 고안함.

### 소프트웨어 이야기

- **에뮬레이터**: 기존 MIPS 에뮬레이터를 재사용함. 32KB 플래시를 부트로더와 메인 코드로 나눔.
- **부트로더**: SD 카드에서 펌웨어 업데이트를 지원하는 부트로더를 개발함.

### 성능

- **오버클럭**: STM32G031은 64MHz로 지정되어 있으나, 150MHz까지 오버클럭 가능함. 148MHz에서 에뮬레이트된 MIPS CPU는 약 1.65MHz MIPS R3000과 동등한 성능을 보임.

### 조립

- **초기 조립**: SD 카드 소켓, 커패시터, 저항, 마이크로컨트롤러, USB-시리얼 칩을 순서대로 납땜함.
- **2차 조립**: 부트로더를 마이크로컨트롤러에 프로그래밍한 후, RAM 칩을 납땜함.

### 다운로드 및 사용

- **파일**: 필요한 모든 파일은 다운로드 패키지에 포함되어 있음. SD 카드 이미지를 작성하고, 펌웨어를 SD 카드에 복사하여 부트로더가 첫 부팅 시 이를 인식하도록 함.
- **사용법**: 장치는 셸 프롬프트로 부팅되며, 추가로 bash를 실행할 수 있음. RAM 부족을 방지하기 위해 스왑 파일을 사용하는 것이 권장됨.

## Comments



### Comment 36791

- Author: neo
- Created: 2025-04-06T08:42:29+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=43586654) 
- SDIO의 세 핀과 결합할 수 있는 핀에 대한 고민 끝에, RAM의 nCS를 SD 카드의 CLK로, RAM의 CLK를 SD 카드의 CMD로, RAM의 MOSI를 SD 카드의 DAT로 사용할 수 있음
- USB와의 인터페이스를 위해 별도의 칩을 사용하는 것이 아쉬움. USB는 복잡한 프로토콜이며, 기본적인 V-USB를 제외하고는 전문 하드웨어와 소프트웨어 스택이 필요함. 반면 SPI는 매우 간단하며, 최소한의 하드웨어로도 가능함
- 과거 데스크탑과 랩탑에 노출된 직렬 및 병렬 포트가 있었던 것이 그리움. USB 대신 UART, I2C, SPI를 사용하고, 데이터가 많은 주변 장치에는 IEEE 802.3 이더넷 링크를 사용했다면 좋았을 것이라는 생각을 함
- 이 기사는 매우 유익하고 재미있었음
- 보드 두께(0.8mm)가 필요하다는 점을 언급하는 것이 좋을 것임. 이는 "USB-C 엣지 커넥터"가 플러그에 맞도록 하기 위함임
- 8핀 요구사항에 조금 더 유연했으면 프로젝트가 더 간단해졌을 것이라는 생각을 함. 몇 개의 핀이 더 있었다면 복잡성이 크게 줄어들었을 것임
- 거의 두 개의 칩으로 구성됨. 하나는 USB-시리얼 IC임. SD 카드를 포함하지 않으면 총 핀 수가 매우 적음
- 이 프로젝트는 매우 멋지지만, 초보자를 위한 새로운 컴퓨터 키트를 만들겠다는 목표와는 모순됨. 초보자에게는 SOIC8이나 SOIC28이나 큰 차이가 없으며, 더 큰 칩이 더 유용한 컴퓨터를 만들 수 있음
- 서버리스 IoT 인프라에 사용될 수 있을 것이라는 상상을 함. PCB 제공업체가 에너지와 이더넷만 제공하면 SSH 접속이 가능할 것임. 작업이 완료되면 금속/PCB를 재활용할 수 있을 것임
- RISC-V로도 가능할 것임. 간단한 회사를 만들어 오래된 휴대폰을 AI로 루팅하고 인터넷과 에너지를 제공하는 것을 생각함
- 보드를 생략하고 회로 조각으로 만들고 싶은 충동이 있음
- 개인적인 이유로 RISC-V에 알레르기가 있음
- SD 카드 대신 8핀 SPI 플래시 칩을 저장용으로 사용하는 것도 귀여울 것임
