|
nedoPC.orgElectronics hobbyists community established in 2002 |
|
PC1-88 - одноплатный компьютер на 8088
Author |
Message |
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 709 Location: WWW
|
Так как собрал все, что хотел в свое время собрать, причем в разных вариациях, возникло желание сделать что-то свое. В результате появился проект одноплатного компьютера на 8088, частично совместимого с IBM PC. На борту имеется: 8088 - тактируется от отдельного кварца, поэтому какой поставишь (в пределах допустимого для конкретного процессора), такая тактовая и будет 512К SRAM 32К ROM 8255 x 2 8254 PS/2 разъем для клавиатуры Разъем для SD карт Видеоадаптер располагается на этой же плате: Выход - VGA разъем Сигнал - VGA 1024x768 Разрешение - 512x384 (т.е. каждая точка отображена 4-мя точками развертки дисплея) Цветность - 16 странных цветов (4 бита на точку - WRGB, где W - нечто типа сигнала яркости) Видео ОЗУ - SRAM 128K (используется 96K), при обращении процессора к адаптеру на экране снег, так как прозрачный доступ решил не делать Кроме процессорного комплекта, все остальное - серия 74xx (видео - в основном 74Fxx), плюс одна МС согласователя уровней для SD карты (можно было и резисторами обойтись) Смысл был именно в НЕ использовании CPLD/FPGA/PAL/GAL вообще. Никакого практического применения этому устройству я, естественно, не вижу - просто хотелось поиграться. Так как схему рисовал за два вечера, после запуска выяснилось, что немного напутал в управлении мультиплексором видеоданных - вместо WrBrGrRrWlBlGlRl (две точки на байт) получилось WrWlGrGlBrBlRrRl. Так как за время ожидания платы из производства написал Int 10, сейчас думаю - переписывать ли Int 10, или же просто разрезать дорожку и припаять проводок. Остальное вроде работает.
|
19 Jan 2016 01:53 |
|
|
petrenko
Doomed
Joined: 10 Mar 2012 16:21 Posts: 598 Location: РФ
|
Хотелось бы подробнее узнать самый интригующий момент - организацию видеопамяти и счётчиков.
|
19 Jan 2016 02:14 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 709 Location: WWW
|
Блин, ситуация хуже, чем я думал вначале - биты перепутаны еще круче, а резать нужно не 1, а 8 дорожек...
|
19 Jan 2016 02:39 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 709 Location: WWW
|
Упустил еще 8259, на который приходят int 08 от таймера, 09 от клавиатуры и еще прерывания от строчных и кадровых гасящих импульсов.
|
19 Jan 2016 09:25 |
|
|
Vic3Dexe
Doomed
Joined: 16 Dec 2014 11:58 Posts: 370 Location: Киев
|
Ух класс! Я думал такое сделать, но решил, что с моим счастьем на FPGA будет проще (и был прав! На переделках уже разорился бы нахрен). Терь конкретнее: - не вижу на плате DAC, откуда VGA сигнал? - откуда такое странное разрешение? Вангую, что из-за опорного кварца. - так 4 бита на точку (IRGB) или 8 бит на точку (irgbIRGB)? И самое главное (так и не понял) - оно PC/XT/x86 совместимое или нет? Да, и RGB попутаны, мне кажется. Я не знаю, как генерится картинка на скрине, но если по порядку цветов, то синий должен идти после черного. Хотя... третьим (с нуля) цветом должна быть сумма 1 и 2 (т.е. у вас R+B = magenta), а на картинке зеленый... Не, может, так в коде задумано, мне отсюда не видно ps SMD чего не юзаете? Удобнее же паять... pps Это дело техники, я пока принципиально не понимаю, как там видеосигнал генерится.
|
19 Jan 2016 13:31 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 709 Location: WWW
|
Да, блин, мне самому нужно было не лениться, а сделать хотя бы видеоадаптер в полном объеме в FPGA для проверки, прежде чем делать плату. Похоже, нашел еще одну ошибку, где уже чисто программно не исправить - причину еще не выявил, но вообще не отображаются первые две точки (один байт) в каждой строке. Причем, когда рисовал схему, понимал, что начало и конец критичны, и пытался быть внимательным, но что-то где-то упустил... Ну как же так, есть там DAC - всем DAC'am DAC ! Целых 6 резисторов и 3 диода, прямо у VGA разъема Кварц был вторичен - первичным был выбор разрешения. Мысли были следующие: - стандартная VGA развертка для монитора - поместиться максимум в 128К видеопамяти - с ОЧЕНЬ большим запасом вписаться в быстродействие всех компонентов, чтобы не возиться еще и с проблемами задержек, гонок и т.д. - в строке количество точек "двоично" круглое для упрощения схемотехники - получить разрешение получше, чем CGA 4 бита на точку, т.е. 1 байт на 2 точки - IRGB. Очень ограниченно. Основная проблема - видео не совместимо ни с чем, причем есть только графический режим. Через свой Int 10, естественно, можно все гонять, но напрямую с видеобуфером ничто существующее работать не будет. Думал сделать перехват обращений к видеопамяти через NMI (типа как в Поиске, если я правильно понимаю), но не смог для себя найти объяснение, зачем мне это нужно Следующее - так как коды AT клавиатуры попадают в BIOS (говорить об PC AT) оттранслированными в (грубо говоря) XT-шные коды, а у меня отдельного контроллера клавиатуры нет, то напрямую с клавиатурой стандартные программы тоже не будут работать (если только не найти XT-шную клавиатуру). Также не стал делать перекодировку через прерывания. Int 13 используется мой, который был написан для PC XT на FPGA. Имеющиеся порты сидят на стандартных IBM PC адресах и работа с ними практически идентична. На последовательность цветов вообще можно не смотреть - там табличка байт для вывода прямо в программе, так как я напутал с соединением данных видеопамяти с мультиплексором, который должен был половинки байта коммутировать для четных/нечетных точек. Да и я с самого начала сказал, что цвета странные из-за особенностей моего супер-DACа Вот так люди, начав с SMD, потом к FPGA и скатываются ! Для пущей винтажности, да и никогда хотя бы минимально серьезно с SMD не работал...
|
19 Jan 2016 14:12 |
|
|
Vic3Dexe
Doomed
Joined: 16 Dec 2014 11:58 Posts: 370 Location: Киев
|
Понятно, я так и предполагал. Уровни выдержаны? Это я на тему "странной" интенсивности. Когда возился со своим резистивным DAC, тоже нога I работала как попало, потому что уровни были какие угодно, но не те, что надо. 640х480, она отвечает всем требованиям, кроме четвертого. Я не то чтобы доколупываюсь, просто непонятно, зачем делать изначально ни с чем несовместимое... В качесте самообразования? Вряд ли, произвольная задача имеет произвольное решение, ну в смысле себя не проверишь - правильно или нет. Винтажность не в схеме, винтажность в голове Можно вообще на реле всю схему собирать, выселив семью на улицу, иначе нихрена не поместится И я бы не сказал, что я "скатился" к FPGA, скорее, поднялся, да А что касается SMD... сегодня за 20 минут распаял полсотни SMD-резисторов (цепи IDE на моей плате). Это с учетом времени, необходимого для их поиска в куче подобных. Выводные формовал и паял бы, обжигая пальцы, наверное до сих пор...
|
19 Jan 2016 16:33 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 709 Location: WWW
|
Естественно, 640х480 был самый первый кандидат, но он не отвечает еще и второму пункту, если только не использовать всего лишь четыре цвета (2 бита на точку). А насчет цели проекта и возможности проверки - цели (кроме "захотелось") нет в принципе, а работу именно моей схемы могу, естественно, проверить и сам. Для этого не обязательно гонять стандартные программы. Да и, думаю, сложновато будет найти программу, которая может работать на 8088, но при этом использует режим 640х480...
|
19 Jan 2016 22:38 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Насколько я помню, вот эта игрушка так могла. Я тода работал на CGA-мониторе, но уже с EGA-картой, так на этой игрушке синхронизация была устойчивой, но нижняя часть изображения уходила за экран.
_________________ iLavr
|
20 Jan 2016 06:02 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 709 Location: WWW
|
Так вроде у EGA нет режима 640x480 ? В любом случае, даже EGA-совместимый (пускай частично) адаптер по сложности будет покруче, чем все мое творение. Я, кстати, пытался поместиться в 50 корпусов МС, что вроде с трудом удалось...
|
20 Jan 2016 06:19 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Так по идее и синхронизации не должно было быть! В EGA - режимах на моём советском мониторе "Электроника" я наблюдал лишь мельтешение строк. А тут - картинка устойчива была, но часть - внизу за экраном. Почему мне это и запомнилось!
_________________ iLavr
|
20 Jan 2016 07:49 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 709 Location: WWW
|
После некоторой возни с парой недочетов в видеочасти все удалось исправить, практически не трогая плату: Дальше, по идее, должно пойти попроще...
|
21 Jan 2016 09:40 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Мы схему всё-таки увидим, или так и будем блуждать в догадках, опираясь на словесные рассказы о недочетах и неполадках? Одна принципиальная схема, на мой взгляд, говорит о себе специалисту гораздо больше, чем множество страниц словоблудия.
_________________ iLavr
|
21 Jan 2016 09:56 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 709 Location: WWW
|
Да нет там ничего особенного в этой схеме - все в лоб, без каких-либо фирменных know-how. Наоборот, есть пара ляпов, за которые стыдно. Такое любой, минимально соображающий в схемотехнике, нарисует... Но если уж очень хочется, то прикладываю, мне не жалко...
На данной схеме, как уже говорил, есть некоторые ошибки (не влияющие принципиально на работоспособность):
1. Перепутаны местами B и G сигналы на VGA разъеме 2. Неправильно подключены входы мультиплексора IC27 - вообще решается программно, просто в байте биты точек получаются перепутаны между собой 3. Самое главное - в корне неверная сама идея использовать мультиплексор в этом узле. Из-за задержек в регистре IC18 и в мультиплексоре IC27 четные и нечетные точки получаются разными. Мне удалось свести разницу к минимуму за счет использования более медленного мультиплексора (серия ALS вместо F), но это неправильный подход. Уже придумал, как вместо этих двух микросхем использовать всего одну (ИР13), при этом точки получаются идентичными, так как схема уже синхронная.
Update:
4. Забыл еще один нюанс - вывод 1 IC16 вместо питания нужно подключить к выводу 2 этой же микросхемы. Это решает ранее упомянутую проблему отсутствия первых двух точек в каждой строке.
Last edited by newold86 on 21 Jan 2016 10:41, edited 1 time in total.
|
21 Jan 2016 10:19 |
|
|
Tronix
Doomed
Joined: 18 Nov 2013 02:38 Posts: 662 Location: Москва
|
Зачет! Это однозначно пять с плюсом и больше. Афтор - бог . Хотя бы по тому, что у него нашлось время это сделать. Восхищаюсь! Горжусь! И просто рад за человека. А если просто - молодец. Радуюсь, что есть еще такие люди. Я думал, уже никто не знает и не помнит, а смотри-ка! Вы - сделали мой день! Так держать!
|
21 Jan 2016 11:22 |
|
|
Who is online |
Users browsing this forum: No registered users and 1 guest |
|
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
|
|