PC1-88 - одноплатный компьютер на 8088
Moderator: Shaos
-
- Doomed
- Posts: 662
- Joined: 18 Nov 2013 02:38
- Location: Москва
Re: PC1-88 - одноплатный компьютер на 8088
И после того, как я проплакался и вытер скупые мужские слезы, можно чуть подробнее, как организован обмен SD - параллельная шина (ну, кроме преобразования уровней)? Программно ножки дергаются? А кто дергает - ВВ55 или как то иначе?
-
- Supreme God
- Posts: 16680
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: PC1-88 - одноплатный компьютер на 8088
Спасибо! Да чего-там стыдного-то... ясен пень, что "любой, минимально соображающий в схемотехнике, нарисует..."newold86 wrote:Да нет там ничего особенного в этой схеме - все в лоб, без каких-либо фирменных know-how. Наоборот, есть пара ляпов, за которые стыдно. Такое любой, минимально соображающий в схемотехнике, нарисует... Но если уж очень хочется, то прикладываю, мне не жалко...

Мы ж для того и собираемся здесь - обсудить конструкции, программы и схемы...

iLavr
-
- Devil
- Posts: 716
- Joined: 30 Nov 2013 11:08
- Location: WWW
Re: PC1-88 - одноплатный компьютер на 8088
Если совсем вкратце, то передача/прием байта - аппаратно, через сдвиговые регистры, иначе совсем медленно будет. Подробности - после того, как убежусь (убедюсь ?Tronix wrote:...можно чуть подробнее, как организован обмен SD - параллельная шина...?

-
- Devil
- Posts: 716
- Joined: 30 Nov 2013 11:08
- Location: WWW
Re: PC1-88 - одноплатный компьютер на 8088
Блин, совсем заработался... Начал проверять прерывания - ну не идет, и все... Проверил код - все просто, ошибок вроде нет. Посмотрел схему - тоже вроде все правильно. В конце концов взял осциллограф и при попытке посмотреть сигнал на контроллере прерываний обнаружил его отсутствие... В смысле, отсутствие 8259 - просто забыл вставить в панельку ! 

-
- Devil
- Posts: 716
- Joined: 30 Nov 2013 11:08
- Location: WWW
Re: PC1-88 - одноплатный компьютер на 8088
Вроде работает... Как уже сказал, блок работы с SD картой взят практически целиком от первой версии данного узла моего компьютера на FPGA. Получилось довольно компактно - параллельно-последовательный и последовательно-параллельный регистры, счетчик, триггер и пару инверторов. Читается принятый байт через 8255, пишется для передачи прямо в регистр. Сигнал SDSS дерагается также через 8255, и бит готовности к приему-передачу тоже через 8255. Прерываний нет, нужно опрашивать готовность. Но даже в таком виде это быстрее, чем пытаться чисто программно генерить сигналы - сейчас тактовая частота SPI равна четверти тактовой процессора (можно и больше), программно этого не добиться.newold86 wrote:Если совсем вкратце, то передача/прием байта - аппаратно, через сдвиговые регистры, иначе совсем медленно будет. Подробности - после того, как убежусь (убедюсь ?Tronix wrote:...можно чуть подробнее, как организован обмен SD - параллельная шина...?), что узел работает в полном объеме.
Кстати, первая попытка загрузить ДОС (пока на Int 13 поставил заглушку, так как там что-то не совсем в порядке):
You do not have the required permissions to view the files attached to this post.
-
- Devil
- Posts: 716
- Joined: 30 Nov 2013 11:08
- Location: WWW
Re: PC1-88 - одноплатный компьютер на 8088
Вторая попытка загрузить ДОС (после того, как в коде Int 13 убрал опечатку, случайно сделанную локтем):
BIOS используется от XT, за исключением:
Int 10 - пока реализован минимум необходимых функций
Int 13 - вообще без переделки от моего FPGA проекта
Int 16 - клавиатуру пока вообще не трогал
BIOS используется от XT, за исключением:
Int 10 - пока реализован минимум необходимых функций
Int 13 - вообще без переделки от моего FPGA проекта
Int 16 - клавиатуру пока вообще не трогал
You do not have the required permissions to view the files attached to this post.
-
- Fanat
- Posts: 57
- Joined: 22 Apr 2015 06:56
- Location: Киров
Re: PC1-88 - одноплатный компьютер на 8088
ООО! Давненько хотелось что нибудь подобное, простое, но под современную периферию и дос совместимое. А 8086 сюда можно приладить?
Да. А всё таки полную схему можно увидеть?
Да. А всё таки полную схему можно увидеть?
-
- Devil
- Posts: 716
- Joined: 30 Nov 2013 11:08
- Location: WWW
Re: PC1-88 - одноплатный компьютер на 8088
Обидно, но обнаружилась засада в самом последнем узле - работе с клавиатурой. Не сильно думая, я использовал схему на сдвиговом регистре от оригинальной PC XT. Вчера потратил несколько часов, пытаясь понять, почему узел работает не так, как должен (и как он вообще может работать правильно). Сегодня утром (правду говорят, что утро вечера мудренее) вдруг решил проверить одну вещь и офигел... Не знаю, почему не задумался об этом с самого начала, но XT клавиатура отличается от AT-шной не только набором набором скан-кодов, но и самим протоколом взаимодействия !
Так что без переделки узла подключить обычную PS/2 клавиатуру невозможно...
Кроме того, попутно вылез еще один нюанс. Да, видео принципиально работает. Но кроме уже упомянутых недочетов есть еще один, посерьезнее. Частота строк получилась слишком высокая (хотя по вертикали 384 точки, но каждая отображается 2 раза, поэтому строк, естественно, 768), поэтому время обратного хода луча строчной развертки слишком маленькое, чтобы за это время что-то сделать без "снега" на экране. У меня даже не получилось без "снега" один байт записать, используя stosb. В результате, без "снега" можно писать только во время обратного хода кадровой развертки, но для многих случаев это слишком медленно. Да, вырисовывающиеся где-то за пол секунды буквы выглядят круто
, но вообще такой подход совсем уж бессмысленный с практической точки зрения...
На данном этапе пока не уверен, буду ли я пытаться что-то сделать, или посчитаю, что изначальная задача в целом выполнена.
Так что без переделки узла подключить обычную PS/2 клавиатуру невозможно...
Кроме того, попутно вылез еще один нюанс. Да, видео принципиально работает. Но кроме уже упомянутых недочетов есть еще один, посерьезнее. Частота строк получилась слишком высокая (хотя по вертикали 384 точки, но каждая отображается 2 раза, поэтому строк, естественно, 768), поэтому время обратного хода луча строчной развертки слишком маленькое, чтобы за это время что-то сделать без "снега" на экране. У меня даже не получилось без "снега" один байт записать, используя stosb. В результате, без "снега" можно писать только во время обратного хода кадровой развертки, но для многих случаев это слишком медленно. Да, вырисовывающиеся где-то за пол секунды буквы выглядят круто

На данном этапе пока не уверен, буду ли я пытаться что-то сделать, или посчитаю, что изначальная задача в целом выполнена.
-
- Supreme God
- Posts: 16680
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: PC1-88 - одноплатный компьютер на 8088
А ВОТ ЭТО - Вам что, не нравится в качестве полной схемы?Andy6zx wrote:Да. А всё таки полную схему можно увидеть?

iLavr
-
- Fanat
- Posts: 57
- Joined: 22 Apr 2015 06:56
- Location: Киров
Re: PC1-88 - одноплатный компьютер на 8088
Прошу прощения, тем, что pdf размером 48,5 кб и открывается, у меня, только первая из пяти страниц. Остальных как будто не существует. Судя по содержимому, тут только часть схемы формирования видео, а остальное?Lavr wrote:А ВОТ ЭТО - Вам что, не нравится в качестве полной схемы?
Хотелось бы увидеть всё

-
- Doomed
- Posts: 370
- Joined: 16 Dec 2014 11:58
- Location: Киев
Re: PC1-88 - одноплатный компьютер на 8088
Что-то я не врублюсь в тайминги видео.
При пиксельклоке 32.5 МГц частота кадров 32.5М/1024/768 = 41 Гц (грубо). Монитор это понимает? Или пытается приводить к 60 Гц (эффекты могут быть фееричны, я уже насмотрелся)?
Далее, при таком пиксельклоке длительность ОХ строки = 512/32.5М = 15.75 мкс!!! Длительность шинного цикла 8088 при 5 МГц = 4*200нс = 800 нс. С учетом памяти (пусть 55 нс, у вас же статика?) = 1 мкс. Ну хоть пяток записей пролезать должно со всеми накладными расходами?
Или я чего не вижу/туплю?
И да, всю схему хотелось бы, видеокарта, увы, в таком виде не очень интересна. Все, что будет работать с видеопамятью впрямую (тот же волков) - идет лесом.
По клавиатуре - а в чем затык? Не так сильно они оличаются.
А, и самое главное-то - дребезг подавляется от клавы?
При пиксельклоке 32.5 МГц частота кадров 32.5М/1024/768 = 41 Гц (грубо). Монитор это понимает? Или пытается приводить к 60 Гц (эффекты могут быть фееричны, я уже насмотрелся)?
Далее, при таком пиксельклоке длительность ОХ строки = 512/32.5М = 15.75 мкс!!! Длительность шинного цикла 8088 при 5 МГц = 4*200нс = 800 нс. С учетом памяти (пусть 55 нс, у вас же статика?) = 1 мкс. Ну хоть пяток записей пролезать должно со всеми накладными расходами?
Или я чего не вижу/туплю?
И да, всю схему хотелось бы, видеокарта, увы, в таком виде не очень интересна. Все, что будет работать с видеопамятью впрямую (тот же волков) - идет лесом.
По клавиатуре - а в чем затык? Не так сильно они оличаются.
А, и самое главное-то - дребезг подавляется от клавы?
-
- Devil
- Posts: 716
- Joined: 30 Nov 2013 11:08
- Location: WWW
Re: PC1-88 - одноплатный компьютер на 8088
32.5 - это частота не одного пиксела, а двух (вернее, одного в двойном количестве). Так что на монитор уходит сигнал, строго соответствующий режиму, а уж какая там картинка отображается на стандартном растре 1024х768, монитору глубоко пофигу.Vic3Dexe wrote:Что-то я не врублюсь в тайминги видео.
При пиксельклоке 32.5 МГц частота кадров 32.5М/1024/768 = 41 Гц (грубо). Монитор это понимает? Или пытается приводить к 60 Гц (эффекты могут быть фееричны, я уже насмотрелся)?
Вообще длительность обратного хода никак не равна длительности прямого хода. В данном случае есть 24 точки front porch, 136 sync и 160 back porch, во время которых нет вывода на экран (т.е. сигнал строчного гашения активен). Всего это 320 * 15.4 ns = 4,9 мкс (для простоты расчета использовал стандартные, не удвоенные точки/частоты). Почему-то этих 5 мкс не хватает даже на одну stosb (плюс время на определение начала гасящего импульса). Сильно не вникал, циклы не считал - лень было.Vic3Dexe wrote:Далее, при таком пиксельклоке длительность ОХ строки = 512/32.5М = 15.75 мкс!!! Длительность шинного цикла 8088 при 5 МГц = 4*200нс = 800 нс. С учетом памяти (пусть 55 нс, у вас же статика?) = 1 мкс. Ну хоть пяток записей пролезать должно со всеми накладными расходами?
Ну, это я с самого начала писал... Любая совместимость сделает узел видео сложнее, чем весь данный проект. Учитывая исходную цель (вернее, отсутствие всяких практических целей), решил этого не делать.Vic3Dexe wrote:Все, что будет работать с видеопамятью впрямую (тот же волков) - идет лесом.
Вообще даже самого минимального отличия достаточно, чтобы узел на жесткой логике не работал. Меня вообще удивило, что хоть что-то принималось (причем стабильно). Естественно, как я нашел вчера именно эту картинку, так сразу все понятно стало, но слишком много нужно дорожек резать и МГТФа паять, чтобы заработало.Vic3Dexe wrote:По клавиатуре - а в чем затык? Не так они оличаются.
Под дребезгом подразумевается помехи на длинном проводе от клавиатуры (ведь механического дребезга контактов не приходит в принципе) ? Если да, то ничем особенным. Как уже говорил, узел цельнотянутый из PC XT, там есть просто небольшие конденсаторы на линиях синхронизации и данных. Плюс сигнал синхронизации пропускается через два D-триггера - если честно, я не совсем понял, зачем (возможно, как раз для повышения помехоустойчивости), разбираться до конца так же было лень.Vic3Dexe wrote:А, и самое главное-то - дребезг подавляется от клавы?
-
- Supreme God
- Posts: 16680
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: PC1-88 - одноплатный компьютер на 8088
Вот такой что-ли узел?newold86 wrote:узел цельнотянутый из PC XT, там есть просто небольшие конденсаторы на линиях синхронизации и данных. Плюс сигнал синхронизации пропускается через два D-триггера...

iLavr
-
- Devil
- Posts: 716
- Joined: 30 Nov 2013 11:08
- Location: WWW
Re: PC1-88 - одноплатный компьютер на 8088
Да. Только на этом рисунке (в главе, описывающей клавиатуру) есть ошибки (которые переходили из одного technical reference в следующее), правильная схема находится в общей схеме PC (/XT).Lavr wrote:Вот такой что-ли узел?newold86 wrote:узел цельнотянутый из PC XT, там есть просто небольшие конденсаторы на линиях синхронизации и данных. Плюс сигнал синхронизации пропускается через два D-триггера...
-
- Doomed
- Posts: 370
- Joined: 16 Dec 2014 11:58
- Location: Киев
Re: PC1-88 - одноплатный компьютер на 8088
Ага, вижу, по клок=1 и клок=0 уходят 2 разных цвета, т.е. реальная частота 65 МГц, тогда сходится.newold86 wrote:32.5 - это частота не одного пиксела, а двух (вернее, одного в двойном количестве). Так что на монитор уходит сигнал, строго соответствующий режиму, а уж какая там картинка отображается на стандартном растре 1024х768, монитору глубоко пофигу.
Да, точно, это я таки затупил.newold86 wrote: Вообще длительность обратного хода никак не равна длительности прямого хода. В данном случае есть 24 точки front porch, 136 sync и 160 back porch, во время которых нет вывода на экран (т.е. сигнал строчного гашения активен). Всего это 320 * 15.4 ns = 4,9 мкс (для простоты расчета использовал стандартные, не удвоенные точки/частоты).
Под дребезгом подразумевается дребезг. Просто, если бы вы делали узел клавиатуры для FPGA-проекта сами, а не тянули из сети, вы бы поняли о чем яnewold86 wrote: Под дребезгом подразумевается помехи на длинном проводе от клавиатуры (ведь механического дребезга контактов не приходит в принципе) ? Если да, то ничем особенным. Как уже говорил, узел цельнотянутый из PC XT, там есть просто небольшие конденсаторы на линиях синхронизации и данных. Плюс сигнал синхронизации пропускается через два D-триггера - если честно, я не совсем понял, зачем (возможно, как раз для повышения помехоустойчивости), разбираться до конца так же было лень.

Я не знаю, как его давили на ХТ, и была ли вообще такая проблема на ХТ-клаве (имхо, от двух д-триггеров толку чуть). У вас-то ps/2-клава, и там дребезг есть 100%. Откуда берется - вероятно, длинный кабель звенит, я уже писал об этом (viewtopic.php?f=87&t=10836&start=165#p119249). На АТ это решается тем, что 8042, будучи контроллером, а не синхронной логикой, хватает данные по уровню, т.е. когда все устаканилось. А вот без него приходится лепить подавители.
Что принимается, если нажать ESC?