1 điểm bởi GN⁺ 2025-04-06 | 1 bình luận | Chia sẻ qua WhatsApp

Máy tính tối giản

  • Ý tưởng ban đầu: Trước đây có thể đặt mua kit để tự lắp ráp máy tính tại nhà. Máy tính hiện đại được cấu thành từ các chip phức tạp và cần nhiều điện năng. Tuy nhiên, tác giả bắt đầu thử nghiệm xem liệu có thể tạo ra một bộ kit giúp dễ dàng tự lắp ráp máy tính hiện đại tại nhà hay không.
  • Mục tiêu: Tạo ra một máy tính có thể chạy Debian Linux, vi, gcc và make. Mục tiêu được đặt ra là 8MB RAM, CPU 1 MIPS, thẻ SD và USB.

Lựa chọn linh kiện

  • Giao tiếp USB: Trong số các chip 8 chân, hầu như không có chip nào hỗ trợ USB. PL2303GL và dòng ATTINYx5 là những lựa chọn khả thi.
  • RAM: Sử dụng PSRAM SOIC-8. Có thể dễ dàng kiếm được RAM 8MB.
  • Vi điều khiển: Đã cân nhắc nhiều phương án, nhưng STM32G031J6 được đánh giá là phù hợp nhất. Nó có 32KB flash, 8KB RAM và xung nhịp 64MHz.

Thiết kế phần cứng

  • Bảng điều khiển: Chân UART không thể ghép chung với các thành phần khác.
  • RAM: SPI PSRAM hỗ trợ chế độ QSPI, nhưng do giới hạn số chân nên dùng chế độ SPI thông thường.
  • Thẻ SD: Để giải quyết vấn đề thiếu chân, tác giả придумал cách nối RAM và thẻ SD vào cùng một nhóm chân.

Câu chuyện phần mềm

  • Trình giả lập: Tái sử dụng trình giả lập MIPS sẵn có. Bộ nhớ flash 32KB được chia thành bootloader và mã chính.
  • Bootloader: Phát triển một bootloader hỗ trợ cập nhật firmware từ thẻ SD.

Hiệu năng

  • Ép xung: STM32G031 được định danh ở mức 64MHz, nhưng có thể ép xung lên tới 150MHz. Ở 148MHz, CPU MIPS được giả lập cho hiệu năng tương đương khoảng MIPS R3000 1.65MHz.

Lắp ráp

  • Lắp ráp ban đầu: Hàn lần lượt socket thẻ SD, tụ điện, điện trở, vi điều khiển và chip USB-to-serial.
  • Lắp ráp lần hai: Sau khi lập trình bootloader vào vi điều khiển, tiến hành hàn chip RAM.

Tải xuống và sử dụng

  • Tệp: Mọi tệp cần thiết đều có trong gói tải về. Ghi image thẻ SD và chép firmware vào thẻ SD để bootloader nhận ra nó ở lần khởi động đầu tiên.
  • Cách dùng: Thiết bị khởi động vào dấu nhắc shell, và có thể chạy thêm bash. Để tránh thiếu RAM, nên dùng swap file.

1 bình luận

 
GN⁺ 2025-04-06
Ý kiến Hacker News
  • Sau khi cân nhắc các chân có thể ghép với ba chân của SDIO, có thể dùng nCS của RAM làm CLK của thẻ SD, CLK của RAM làm CMD của thẻ SD, và MOSI của RAM làm DAT của thẻ SD
  • Hơi tiếc vì phải dùng một chip riêng để giao tiếp với USB. USB là một giao thức phức tạp, ngoài V-USB ở mức cơ bản thì cần phần cứng chuyên dụng và software stack riêng. Trong khi đó SPI rất đơn giản và có thể chạy với phần cứng tối thiểu
  • Nhớ thời desktop và laptop còn có sẵn cổng nối tiếp và cổng song song lộ ra ngoài. Giá như thay vì USB người ta dùng UART, I2C, SPI, còn với các thiết bị ngoại vi nhiều dữ liệu thì dùng liên kết Ethernet IEEE 802.3
  • Bài viết này rất bổ ích và thú vị
  • Nên nhắc đến yêu cầu về độ dày bo mạch (0.8mm). Điều này là để "đầu nối cạnh USB-C" khớp với đầu cắm
  • Cảm giác là nếu linh hoạt hơn một chút với yêu cầu 8 chân thì dự án đã đơn giản hơn. Chỉ cần thêm vài chân thôi là độ phức tạp đã giảm đi rất nhiều
  • Gần như là cấu thành từ hai con chip. Một con là IC USB-serial. Nếu không tính thẻ SD thì tổng số chân là rất ít
  • Dự án này rất ngầu, nhưng lại mâu thuẫn với mục tiêu tạo ra một bộ kit máy tính mới cho người mới bắt đầu. Với người mới thì SOIC8 hay SOIC28 không khác nhau nhiều, còn chip lớn hơn lại có thể tạo ra một máy tính hữu dụng hơn
  • Có thể tưởng tượng nó được dùng cho hạ tầng IoT serverless. Chỉ cần nhà cung cấp PCB cấp năng lượng và Ethernet là có thể SSH vào. Khi xong việc thì có thể tái chế kim loại/PCB
  • Có lẽ cũng làm được với RISC-V. Tôi nghĩ đến chuyện lập một công ty đơn giản để root các điện thoại cũ bằng AI rồi cung cấp Internet và năng lượng
  • Có thôi thúc muốn bỏ hẳn bo mạch và làm nó thành kiểu điêu khắc mạch điện
  • Vì lý do cá nhân nên tôi bị dị ứng với RISC-V
  • Dùng chip flash SPI 8 chân thay cho thẻ SD để lưu trữ cũng sẽ khá dễ thương