(Ще один) домашній SBC на базі 8088 ("ПК-88")

Є бажання поспілкуватися на загальні теми, тоді тобі сюди
Аватар користувача
And3rson
Повідомлень: 2
З нами з: 28 вересня 2023, 12:33
Звідки: UA
Контактна інформація:

(Ще один) домашній SBC на базі 8088 ("ПК-88")

Повідомлення And3rson »

Всім привіт,

Це мій перший пост на форумі і я не впевнений, чи є тут люди, які зацікавляться моїм хобі, але я все ж напишу свій лонгрід - раптом комусь буде цікаво.

Під натхненням від класики 80-х (комодор, спектрум, атарі, аміги, etc - в мене їх ціла колекція), я деякий час бавився з процесорами 6502 і навіть зробив декілька SBC (зокрема мій найтриваліший проект - deck65, якого в мене вже було 20 ревізій). До речі, WDC досі випускає 65c02 (CMOS-версія 6502). Його і інші додаткові чіпи з серії (65c22 і 65c51) досі можна купити абсолютно новими - я брав їх на mouser.com.

Також робив експерименти з Z80 і 65816.

Найактивнішим форумом наразі виглядає 6502.org - там я публікував свої роботи і отримував купу корисної інформації (там є багато старших людей з значним досвідом в цій сфері).

TL;DR

Я люблю 6502, але там дуже складно писати relocatable код. Я почав писати під свій Deck65 власну мультизадачну ОС, але з часом забив, оскільки дуже багато часу йшло на жонглювання з регістрами, а якщо писати код на C (з компілятором cc65), то він виходить дуже неефективний, оскільки 6502 має лише три 8-бітні регістри загального призначення, а cc65 не вміє (і не може вміти в принципі) адекватно використовувати прапорці стану процесора для оптимізації коду.

Я вирішив копнути в сторону інтелів і наткнувся на 8086/8088 (чи не останні процесори тих часів, які були ще в DIP-корпусі, а в мене лютий фетіш на DIP-корпуси). Мені сподобалась 8-бітна шина даних 8088 (плюс в мене вагон паралельних 8-бітних ЕПРОМів і РАМів), і я вирішив спробувати зібрати простий домашній одноплатний комп'ютер саме на ньому.

Я купив на оголошеннях КМ1810ВМ88 (клон i8088 - київський, до речі!), і додатково замовив на eBay 80c88 (CMOS-версія 8088, там простіше з таймінгами і вона може працювати на вищих частотах; до речі, Book 8088 з цього треду працює якраз на ньому.

Проект називається "ПК-88" (оригінально, нє?)

Проектую все в KiCad, розводжу доріжки в DipTrace (український софт, дуже крутий). Хоча цього разу спробував FreeRouting в KiCad - розвело дуже непогано.

Компоненти:
- 8088 (або КМ1810ВМ88 - спробую обидва)
- 8255 - I/O контролер (дуже дерев'яний порівняно з 65c22 VIA - мені реально бракує останнього, але інтерфейс там не сумісний з 8088)
- ATF16V8 (сучасна версія GAL16V8) - дешифратор адрес і генератор тактового сигналу для процесора
- W27C512 - EPROM (64 КБ)
- AS6C4008 - SRAM (512 КБ)
- 74HC573 - латчі для демультиплексії шини адрес (A0-A7, A16-A19(
- PS/2 клавіатура (через 8255)
- 20x04 символьний OLED-дисплей (на базі HD44780 - так, саме OLED, а не LCD; знайшов на аліку)
- Додаткова обвіска - DS1813, L7805, конденсатори, etc etc.

Схема першої пробної версії:

Зображення

Друкована плата:

Зображення

3D-рендер:

Зображення

Код проекту тримаю тут: https://github.com/and3rson/pk88

PDF креслення: https://github.com/and3rson/pk88/blob/m ... d/main.pdf

Наразі чекаю на плату. Прототипи замовляю у Львові, роблять від 1 до 5 днів (залежно від ціни). Дорожче, ніж на jlcpcb, зате швидко. :) Завтра ввечері матиму плату, зберу прототип та гляну, що з того вийшло. В майбутньому хотілося б розвинути його до того, щоб запустити на ньому DOS.

Дякую за увагу!
/Андрій

deck65 - одноплатний 6502 з дисплеєм і клавіатурою | leo80 - олноплатний Z80 | nice65 - лінтер для 6502 асемблера | farland (WIP) - одноплатний 65816 | Символи, футпрінти і 3д-моделі для KiCad/FreeCAD