คอมพิวเตอร์ขั้นต่ำ
- แนวคิดเริ่มต้น: ในอดีต เราสามารถสั่งชุดคิทมาประกอบคอมพิวเตอร์เองที่บ้านได้ คอมพิวเตอร์สมัยใหม่ประกอบด้วยชิปที่ซับซ้อนและต้องใช้พลังงานจำนวนมาก แต่ได้เริ่มทดลองว่า จะสามารถทำคอมพิวเตอร์สมัยใหม่ให้อยู่ในรูปคิทที่ประกอบเองที่บ้านได้อย่างง่ายดายหรือไม่
- เป้าหมาย: สร้างคอมพิวเตอร์ที่สามารถรัน Debian Linux, vi, gcc, make ได้ โดยตั้งเป้าไว้ที่ RAM 8MB, CPU 1 MIPS, SD การ์ด และ USB
การเลือกชิ้นส่วน
- อินเทอร์เฟซ USB: ในบรรดาชิป 8 ขา แทบไม่มีชิปที่รองรับ USB โดยตรง ตัวเลือกที่เป็นไปได้คือซีรีส์ PL2303GL และ ATTINYx5
- RAM: ใช้ SOIC-8 PSRAM ซึ่งสามารถหา RAM ขนาด 8MB ได้ไม่ยาก
- ไมโครคอนโทรลเลอร์: พิจารณาหลายตัวเลือกแล้ว และสรุปว่า STM32G031J6 เหมาะสมที่สุด มีแฟลช 32KB, RAM 8KB และความถี่สัญญาณนาฬิกา 64MHz
การออกแบบฮาร์ดแวร์
- คอนโซล: ขา UART ไม่สามารถนำไปรวมใช้งานกับส่วนอื่นได้
- RAM: แม้ SPI PSRAM จะรองรับโหมด QSPI แต่เนื่องจากข้อจำกัดด้านจำนวนขา จึงใช้โหมด SPI ปกติ
- SD การ์ด: เพื่อแก้ปัญหาจำนวนขาไม่พอ จึงออกแบบวิธีเชื่อมต่อ RAM และ SD การ์ดเข้ากับขาเดียวกัน
เรื่องราวฝั่งซอฟต์แวร์
- อีมูเลเตอร์: นำ MIPS emulator ที่มีอยู่เดิมกลับมาใช้ใหม่ และแบ่งแฟลช 32KB ออกเป็นบูตโหลดเดอร์กับโค้ดหลัก
- บูตโหลดเดอร์: พัฒนาบูตโหลดเดอร์ที่รองรับการอัปเดตเฟิร์มแวร์จาก SD การ์ด
ประสิทธิภาพ
- โอเวอร์คล็อก: STM32G031 ถูกระบุไว้ที่ 64MHz แต่สามารถโอเวอร์คล็อกได้ถึง 150MHz ที่ 148MHz, CPU MIPS ที่จำลองขึ้นมีประสิทธิภาพเทียบเท่ากับ MIPS R3000 ราว 1.65MHz
การประกอบ
- การประกอบรอบแรก: บัดกรีซ็อกเก็ต SD การ์ด, คาปาซิเตอร์, ตัวต้านทาน, ไมโครคอนโทรลเลอร์ และชิป USB-serial ตามลำดับ
- การประกอบรอบที่สอง: หลังโปรแกรมบูตโหลดเดอร์ลงในไมโครคอนโทรลเลอร์แล้ว จึงบัดกรีชิป RAM
การดาวน์โหลดและการใช้งาน
- ไฟล์: ไฟล์ที่จำเป็นทั้งหมดรวมอยู่ในแพ็กเกจดาวน์โหลด เขียนอิมเมจลง SD การ์ด แล้วคัดลอกเฟิร์มแวร์ลง SD การ์ด เพื่อให้บูตโหลดเดอร์ตรวจพบได้ในระหว่างการบูตครั้งแรก
- วิธีใช้งาน: อุปกรณ์จะบูตเข้าสู่เชลล์พรอมป์ต์ และสามารถรัน bash เพิ่มเติมได้ แนะนำให้ใช้ไฟล์สว็อปเพื่อป้องกันปัญหา RAM ไม่เพียงพอ
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News