|
nedoPC.orgElectronics hobbyists community established in 2002 |
|
PC1-88 - одноплатный компьютер на 8088
Author |
Message |
Tronix
Doomed
Joined: 18 Nov 2013 02:38 Posts: 662 Location: Москва
|
И после того, как я проплакался и вытер скупые мужские слезы, можно чуть подробнее, как организован обмен SD - параллельная шина (ну, кроме преобразования уровней)? Программно ножки дергаются? А кто дергает - ВВ55 или как то иначе?
|
21 Jan 2016 11:26 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Спасибо! Да чего-там стыдного-то... ясен пень, что " любой, минимально соображающий в схемотехнике, нарисует..." , но интересна-то схема того, что на фотке, что у Вас работает. Мы ж для того и собираемся здесь - обсудить конструкции, программы и схемы...
_________________ iLavr
|
21 Jan 2016 11:40 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 709 Location: WWW
|
Если совсем вкратце, то передача/прием байта - аппаратно, через сдвиговые регистры, иначе совсем медленно будет. Подробности - после того, как убежусь (убедюсь ? ), что узел работает в полном объеме.
|
21 Jan 2016 21:50 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 709 Location: WWW
|
Блин, совсем заработался... Начал проверять прерывания - ну не идет, и все... Проверил код - все просто, ошибок вроде нет. Посмотрел схему - тоже вроде все правильно. В конце концов взял осциллограф и при попытке посмотреть сигнал на контроллере прерываний обнаружил его отсутствие... В смысле, отсутствие 8259 - просто забыл вставить в панельку !
|
22 Jan 2016 07:39 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 709 Location: WWW
|
Вроде работает... Как уже сказал, блок работы с SD картой взят практически целиком от первой версии данного узла моего компьютера на FPGA. Получилось довольно компактно - параллельно-последовательный и последовательно-параллельный регистры, счетчик, триггер и пару инверторов. Читается принятый байт через 8255, пишется для передачи прямо в регистр. Сигнал SDSS дерагается также через 8255, и бит готовности к приему-передачу тоже через 8255. Прерываний нет, нужно опрашивать готовность. Но даже в таком виде это быстрее, чем пытаться чисто программно генерить сигналы - сейчас тактовая частота SPI равна четверти тактовой процессора (можно и больше), программно этого не добиться. Кстати, первая попытка загрузить ДОС (пока на Int 13 поставил заглушку, так как там что-то не совсем в порядке):
|
22 Jan 2016 09:55 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 709 Location: WWW
|
Вторая попытка загрузить ДОС (после того, как в коде Int 13 убрал опечатку, случайно сделанную локтем): BIOS используется от XT, за исключением: Int 10 - пока реализован минимум необходимых функций Int 13 - вообще без переделки от моего FPGA проектаInt 16 - клавиатуру пока вообще не трогал
|
22 Jan 2016 23:25 |
|
|
Andy6zx
Novelist
Joined: 22 Apr 2015 06:56 Posts: 36 Location: Киров
|
ООО! Давненько хотелось что нибудь подобное, простое, но под современную периферию и дос совместимое. А 8086 сюда можно приладить? Да. А всё таки полную схему можно увидеть?
|
23 Jan 2016 22:54 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 709 Location: WWW
|
Обидно, но обнаружилась засада в самом последнем узле - работе с клавиатурой. Не сильно думая, я использовал схему на сдвиговом регистре от оригинальной PC XT. Вчера потратил несколько часов, пытаясь понять, почему узел работает не так, как должен (и как он вообще может работать правильно). Сегодня утром (правду говорят, что утро вечера мудренее) вдруг решил проверить одну вещь и офигел... Не знаю, почему не задумался об этом с самого начала, но XT клавиатура отличается от AT-шной не только набором набором скан-кодов, но и самим протоколом взаимодействия ! Так что без переделки узла подключить обычную PS/2 клавиатуру невозможно... Кроме того, попутно вылез еще один нюанс. Да, видео принципиально работает. Но кроме уже упомянутых недочетов есть еще один, посерьезнее. Частота строк получилась слишком высокая (хотя по вертикали 384 точки, но каждая отображается 2 раза, поэтому строк, естественно, 768), поэтому время обратного хода луча строчной развертки слишком маленькое, чтобы за это время что-то сделать без "снега" на экране. У меня даже не получилось без "снега" один байт записать, используя stosb. В результате, без "снега" можно писать только во время обратного хода кадровой развертки, но для многих случаев это слишком медленно. Да, вырисовывающиеся где-то за пол секунды буквы выглядят круто , но вообще такой подход совсем уж бессмысленный с практической точки зрения... На данном этапе пока не уверен, буду ли я пытаться что-то сделать, или посчитаю, что изначальная задача в целом выполнена.
|
24 Jan 2016 00:31 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
А ВОТ ЭТО - Вам что, не нравится в качестве полной схемы?
_________________ iLavr
|
24 Jan 2016 05:42 |
|
|
Andy6zx
Novelist
Joined: 22 Apr 2015 06:56 Posts: 36 Location: Киров
|
Прошу прощения, тем, что pdf размером 48,5 кб и открывается, у меня, только первая из пяти страниц. Остальных как будто не существует. Судя по содержимому, тут только часть схемы формирования видео, а остальное? Хотелось бы увидеть всё
|
24 Jan 2016 06:49 |
|
|
Vic3Dexe
Doomed
Joined: 16 Dec 2014 11:58 Posts: 370 Location: Киев
|
Что-то я не врублюсь в тайминги видео. При пиксельклоке 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 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 709 Location: WWW
|
32.5 - это частота не одного пиксела, а двух (вернее, одного в двойном количестве). Так что на монитор уходит сигнал, строго соответствующий режиму, а уж какая там картинка отображается на стандартном растре 1024х768, монитору глубоко пофигу. Вообще длительность обратного хода никак не равна длительности прямого хода. В данном случае есть 24 точки front porch, 136 sync и 160 back porch, во время которых нет вывода на экран (т.е. сигнал строчного гашения активен). Всего это 320 * 15.4 ns = 4,9 мкс (для простоты расчета использовал стандартные, не удвоенные точки/частоты). Почему-то этих 5 мкс не хватает даже на одну stosb (плюс время на определение начала гасящего импульса). Сильно не вникал, циклы не считал - лень было. Ну, это я с самого начала писал... Любая совместимость сделает узел видео сложнее, чем весь данный проект. Учитывая исходную цель (вернее, отсутствие всяких практических целей), решил этого не делать. Вообще даже самого минимального отличия достаточно, чтобы узел на жесткой логике не работал. Меня вообще удивило, что хоть что-то принималось (причем стабильно). Естественно, как я нашел вчера именно эту картинку, так сразу все понятно стало, но слишком много нужно дорожек резать и МГТФа паять, чтобы заработало. Под дребезгом подразумевается помехи на длинном проводе от клавиатуры (ведь механического дребезга контактов не приходит в принципе) ? Если да, то ничем особенным. Как уже говорил, узел цельнотянутый из PC XT, там есть просто небольшие конденсаторы на линиях синхронизации и данных. Плюс сигнал синхронизации пропускается через два D-триггера - если честно, я не совсем понял, зачем (возможно, как раз для повышения помехоустойчивости), разбираться до конца так же было лень.
|
24 Jan 2016 21:31 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Вот такой что-ли узел?
_________________ iLavr
|
25 Jan 2016 04:48 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 709 Location: WWW
|
Да. Только на этом рисунке (в главе, описывающей клавиатуру) есть ошибки (которые переходили из одного technical reference в следующее), правильная схема находится в общей схеме PC (/XT).
|
25 Jan 2016 05:36 |
|
|
Vic3Dexe
Doomed
Joined: 16 Dec 2014 11:58 Posts: 370 Location: Киев
|
Ага, вижу, по клок=1 и клок=0 уходят 2 разных цвета, т.е. реальная частота 65 МГц, тогда сходится. Да, точно, это я таки затупил. Под дребезгом подразумевается дребезг. Просто, если бы вы делали узел клавиатуры для FPGA-проекта сами, а не тянули из сети, вы бы поняли о чем я Я не знаю, как его давили на ХТ, и была ли вообще такая проблема на ХТ-клаве (имхо, от двух д-триггеров толку чуть). У вас-то ps/2-клава, и там дребезг есть 100%. Откуда берется - вероятно, длинный кабель звенит, я уже писал об этом ( viewtopic.php?f=87&t=10836&start=165#p119249). На АТ это решается тем, что 8042, будучи контроллером, а не синхронной логикой, хватает данные по уровню, т.е. когда все устаканилось. А вот без него приходится лепить подавители. Что принимается, если нажать ESC?
|
25 Jan 2016 06:04 |
|
|
Who is online |
Users browsing this forum: No registered users and 5 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
|
|