nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 06:24



Reply to topic  [ 60 posts ]  Go to page Previous  1, 2, 3, 4  Next
PC1-88 - одноплатный компьютер на 8088 
Author Message
Doomed

Joined: 18 Nov 2013 02:38
Posts: 662
Location: Москва
Reply with quote
И после того, как я проплакался и вытер скупые мужские слезы, можно чуть подробнее, как организован обмен SD - параллельная шина (ну, кроме преобразования уровней)? Программно ножки дергаются? А кто дергает - ВВ55 или как то иначе?

_________________
https://t.me/tronix_blog


21 Jan 2016 11:26
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
newold86 wrote:
Да нет там ничего особенного в этой схеме - все в лоб, без каких-либо фирменных know-how. Наоборот, есть пара ляпов, за которые стыдно. Такое любой, минимально соображающий в схемотехнике, нарисует... Но если уж очень хочется, то прикладываю, мне не жалко...

Спасибо! Да чего-там стыдного-то... ясен пень, что "любой, минимально соображающий в схемотехнике, нарисует..." 8) , но интересна-то схема того, что на фотке, что у Вас работает.
Мы ж для того и собираемся здесь - обсудить конструкции, программы и схемы... :wink:

_________________
iLavr


21 Jan 2016 11:40
Profile
Devil

Joined: 30 Nov 2013 11:08
Posts: 706
Location: WWW
Reply with quote
Tronix wrote:
...можно чуть подробнее, как организован обмен SD - параллельная шина...?


Если совсем вкратце, то передача/прием байта - аппаратно, через сдвиговые регистры, иначе совсем медленно будет. Подробности - после того, как убежусь (убедюсь ? :)), что узел работает в полном объеме.


21 Jan 2016 21:50
Profile
Devil

Joined: 30 Nov 2013 11:08
Posts: 706
Location: WWW
Reply with quote
Блин, совсем заработался... Начал проверять прерывания - ну не идет, и все... Проверил код - все просто, ошибок вроде нет. Посмотрел схему - тоже вроде все правильно. В конце концов взял осциллограф и при попытке посмотреть сигнал на контроллере прерываний обнаружил его отсутствие... В смысле, отсутствие 8259 - просто забыл вставить в панельку ! :)


22 Jan 2016 07:39
Profile
Devil

Joined: 30 Nov 2013 11:08
Posts: 706
Location: WWW
Reply with quote
newold86 wrote:
Tronix wrote:
...можно чуть подробнее, как организован обмен SD - параллельная шина...?


Если совсем вкратце, то передача/прием байта - аппаратно, через сдвиговые регистры, иначе совсем медленно будет. Подробности - после того, как убежусь (убедюсь ? :)), что узел работает в полном объеме.


Вроде работает... Как уже сказал, блок работы с SD картой взят практически целиком от первой версии данного узла моего компьютера на FPGA. Получилось довольно компактно - параллельно-последовательный и последовательно-параллельный регистры, счетчик, триггер и пару инверторов. Читается принятый байт через 8255, пишется для передачи прямо в регистр. Сигнал SDSS дерагается также через 8255, и бит готовности к приему-передачу тоже через 8255. Прерываний нет, нужно опрашивать готовность. Но даже в таком виде это быстрее, чем пытаться чисто программно генерить сигналы - сейчас тактовая частота SPI равна четверти тактовой процессора (можно и больше), программно этого не добиться.

Кстати, первая попытка загрузить ДОС (пока на Int 13 поставил заглушку, так как там что-то не совсем в порядке):

Attachment:
pc1-88 load.jpg
pc1-88 load.jpg [ 74.79 KiB | Viewed 7899 times ]


22 Jan 2016 09:55
Profile
Devil

Joined: 30 Nov 2013 11:08
Posts: 706
Location: WWW
Reply with quote
Вторая попытка загрузить ДОС (после того, как в коде Int 13 убрал опечатку, случайно сделанную локтем):

Attachment:
pc1-88 DOS.jpg
pc1-88 DOS.jpg [ 81.45 KiB | Viewed 7885 times ]


BIOS используется от XT, за исключением:

Int 10 - пока реализован минимум необходимых функций
Int 13 - вообще без переделки от моего FPGA проекта
Int 16 - клавиатуру пока вообще не трогал


22 Jan 2016 23:25
Profile
Novelist

Joined: 22 Apr 2015 06:56
Posts: 33
Location: Киров
Reply with quote
ООО! Давненько хотелось что нибудь подобное, простое, но под современную периферию и дос совместимое. А 8086 сюда можно приладить?
Да. А всё таки полную схему можно увидеть?


23 Jan 2016 22:54
Profile
Devil

Joined: 30 Nov 2013 11:08
Posts: 706
Location: WWW
Reply with quote
Обидно, но обнаружилась засада в самом последнем узле - работе с клавиатурой. Не сильно думая, я использовал схему на сдвиговом регистре от оригинальной PC XT. Вчера потратил несколько часов, пытаясь понять, почему узел работает не так, как должен (и как он вообще может работать правильно). Сегодня утром (правду говорят, что утро вечера мудренее) вдруг решил проверить одну вещь и офигел... Не знаю, почему не задумался об этом с самого начала, но XT клавиатура отличается от AT-шной не только набором набором скан-кодов, но и самим протоколом взаимодействия !

Так что без переделки узла подключить обычную PS/2 клавиатуру невозможно...

Кроме того, попутно вылез еще один нюанс. Да, видео принципиально работает. Но кроме уже упомянутых недочетов есть еще один, посерьезнее. Частота строк получилась слишком высокая (хотя по вертикали 384 точки, но каждая отображается 2 раза, поэтому строк, естественно, 768), поэтому время обратного хода луча строчной развертки слишком маленькое, чтобы за это время что-то сделать без "снега" на экране. У меня даже не получилось без "снега" один байт записать, используя stosb. В результате, без "снега" можно писать только во время обратного хода кадровой развертки, но для многих случаев это слишком медленно. Да, вырисовывающиеся где-то за пол секунды буквы выглядят круто :), но вообще такой подход совсем уж бессмысленный с практической точки зрения...

На данном этапе пока не уверен, буду ли я пытаться что-то сделать, или посчитаю, что изначальная задача в целом выполнена.


24 Jan 2016 00:31
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Andy6zx wrote:
Да. А всё таки полную схему можно увидеть?

А ВОТ ЭТО - Вам что, не нравится в качестве полной схемы? :-?

_________________
iLavr


24 Jan 2016 05:42
Profile
Novelist

Joined: 22 Apr 2015 06:56
Posts: 33
Location: Киров
Reply with quote
Lavr wrote:
А ВОТ ЭТО - Вам что, не нравится в качестве полной схемы? :-?

Прошу прощения, тем, что pdf размером 48,5 кб и открывается, у меня, только первая из пяти страниц. Остальных как будто не существует. Судя по содержимому, тут только часть схемы формирования видео, а остальное?
Хотелось бы увидеть всё :)


24 Jan 2016 06:49
Profile
Doomed

Joined: 16 Dec 2014 11:58
Posts: 370
Location: Киев
Reply with quote
Что-то я не врублюсь в тайминги видео.
При пиксельклоке 32.5 МГц частота кадров 32.5М/1024/768 = 41 Гц (грубо). Монитор это понимает? Или пытается приводить к 60 Гц (эффекты могут быть фееричны, я уже насмотрелся)?

Далее, при таком пиксельклоке длительность ОХ строки = 512/32.5М = 15.75 мкс!!! Длительность шинного цикла 8088 при 5 МГц = 4*200нс = 800 нс. С учетом памяти (пусть 55 нс, у вас же статика?) = 1 мкс. Ну хоть пяток записей пролезать должно со всеми накладными расходами?

Или я чего не вижу/туплю?

И да, всю схему хотелось бы, видеокарта, увы, в таком виде не очень интересна. Все, что будет работать с видеопамятью впрямую (тот же волков) - идет лесом.

По клавиатуре - а в чем затык? Не так сильно они оличаются.

А, и самое главное-то - дребезг подавляется от клавы?


24 Jan 2016 11:50
Profile
Devil

Joined: 30 Nov 2013 11:08
Posts: 706
Location: WWW
Reply with quote
Vic3Dexe wrote:
Что-то я не врублюсь в тайминги видео.
При пиксельклоке 32.5 МГц частота кадров 32.5М/1024/768 = 41 Гц (грубо). Монитор это понимает? Или пытается приводить к 60 Гц (эффекты могут быть фееричны, я уже насмотрелся)?


32.5 - это частота не одного пиксела, а двух (вернее, одного в двойном количестве). Так что на монитор уходит сигнал, строго соответствующий режиму, а уж какая там картинка отображается на стандартном растре 1024х768, монитору глубоко пофигу.

Vic3Dexe wrote:
Далее, при таком пиксельклоке длительность ОХ строки = 512/32.5М = 15.75 мкс!!! Длительность шинного цикла 8088 при 5 МГц = 4*200нс = 800 нс. С учетом памяти (пусть 55 нс, у вас же статика?) = 1 мкс. Ну хоть пяток записей пролезать должно со всеми накладными расходами?


Вообще длительность обратного хода никак не равна длительности прямого хода. В данном случае есть 24 точки front porch, 136 sync и 160 back porch, во время которых нет вывода на экран (т.е. сигнал строчного гашения активен). Всего это 320 * 15.4 ns = 4,9 мкс (для простоты расчета использовал стандартные, не удвоенные точки/частоты). Почему-то этих 5 мкс не хватает даже на одну stosb (плюс время на определение начала гасящего импульса). Сильно не вникал, циклы не считал - лень было.

Vic3Dexe wrote:
Все, что будет работать с видеопамятью впрямую (тот же волков) - идет лесом.


Ну, это я с самого начала писал... Любая совместимость сделает узел видео сложнее, чем весь данный проект. Учитывая исходную цель (вернее, отсутствие всяких практических целей), решил этого не делать.

Vic3Dexe wrote:
По клавиатуре - а в чем затык? Не так они оличаются.


Вообще даже самого минимального отличия достаточно, чтобы узел на жесткой логике не работал. Меня вообще удивило, что хоть что-то принималось (причем стабильно). Естественно, как я нашел вчера именно эту картинку, так сразу все понятно стало, но слишком много нужно дорожек резать и МГТФа паять, чтобы заработало.

Vic3Dexe wrote:
А, и самое главное-то - дребезг подавляется от клавы?


Под дребезгом подразумевается помехи на длинном проводе от клавиатуры (ведь механического дребезга контактов не приходит в принципе) ? Если да, то ничем особенным. Как уже говорил, узел цельнотянутый из PC XT, там есть просто небольшие конденсаторы на линиях синхронизации и данных. Плюс сигнал синхронизации пропускается через два D-триггера - если честно, я не совсем понял, зачем (возможно, как раз для повышения помехоустойчивости), разбираться до конца так же было лень.


24 Jan 2016 21:31
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
newold86 wrote:
узел цельнотянутый из PC XT, там есть просто небольшие конденсаторы на линиях синхронизации и данных. Плюс сигнал синхронизации пропускается через два D-триггера...

Вот такой что-ли узел?
Image

_________________
iLavr


25 Jan 2016 04:48
Profile
Devil

Joined: 30 Nov 2013 11:08
Posts: 706
Location: WWW
Reply with quote
Lavr wrote:
newold86 wrote:
узел цельнотянутый из PC XT, там есть просто небольшие конденсаторы на линиях синхронизации и данных. Плюс сигнал синхронизации пропускается через два D-триггера...

Вот такой что-ли узел?


Да. Только на этом рисунке (в главе, описывающей клавиатуру) есть ошибки (которые переходили из одного technical reference в следующее), правильная схема находится в общей схеме PC (/XT).


25 Jan 2016 05:36
Profile
Doomed

Joined: 16 Dec 2014 11:58
Posts: 370
Location: Киев
Reply with quote
newold86 wrote:
32.5 - это частота не одного пиксела, а двух (вернее, одного в двойном количестве). Так что на монитор уходит сигнал, строго соответствующий режиму, а уж какая там картинка отображается на стандартном растре 1024х768, монитору глубоко пофигу.

Ага, вижу, по клок=1 и клок=0 уходят 2 разных цвета, т.е. реальная частота 65 МГц, тогда сходится.
newold86 wrote:
Вообще длительность обратного хода никак не равна длительности прямого хода. В данном случае есть 24 точки front porch, 136 sync и 160 back porch, во время которых нет вывода на экран (т.е. сигнал строчного гашения активен). Всего это 320 * 15.4 ns = 4,9 мкс (для простоты расчета использовал стандартные, не удвоенные точки/частоты).

Да, точно, это я таки затупил.
newold86 wrote:
Под дребезгом подразумевается помехи на длинном проводе от клавиатуры (ведь механического дребезга контактов не приходит в принципе) ? Если да, то ничем особенным. Как уже говорил, узел цельнотянутый из PC XT, там есть просто небольшие конденсаторы на линиях синхронизации и данных. Плюс сигнал синхронизации пропускается через два D-триггера - если честно, я не совсем понял, зачем (возможно, как раз для повышения помехоустойчивости), разбираться до конца так же было лень.

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

Что принимается, если нажать ESC?


25 Jan 2016 06:04
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 60 posts ]  Go to page Previous  1, 2, 3, 4  Next

Who is online

Users browsing this forum: No registered users and 9 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.