nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 12 Dec 2019 13:46



Reply to topic  [ 153 posts ]  Go to page 1, 2, 3, 4, 5 ... 11  Next
8086+FPGA 
Author Message
Doomed

Joined: 16 Dec 2014 12:58
Posts: 363
Location: Киев
Reply with quote
Преамбула: на создание своей недо-ХТ меня сподвигло вот это. В той же теме я сначала и постил, затем по всеобщему согласию Shaos выделил посты, касающиеся моего проекта в эту тему. За что ему спасибо :)
Были куплены 8086+8087+82077А-1, заказана простейшая тестовая плата, а также китайско-безымянная плата с FPGA. Соединять все это предполагалось шлейфами.

Далее амбула.

----------------------

Ну и меня можно поздравить с тем, что я баран :) Потому что даташиты надо читать внимательно!

На скорую руку слепил ключ на КТ315, включил в разрыв клока, сам клок инвертировал.
Результат - устойчивый старт и работа. Правда, через какое-то время обоснованно останавливается, так как читает из порта не то, что записал. После ресета опять все ок, со временем (нагревом?) периоды нормальной работы уменьшаются.
Явно виноваты 2 битые ноги циклона, которые приходятся на шину данных. Обернул шлейфы фольгой, чтобы уменьшить наводки и облегчить процу задачу отделения мух от котлет.
Результат - остановки прекратились.
Впрочем, все равно нет-нет да и словит глюк (по отладчику выполнение идет непонятно где), но битые ноги мне никак не обойти в текущей конфигурации.

Извините за мутную фотку. Снимал на телефон дрожащими ручками.
Просьба сильно не ржать :)
 картинка на мегабайт
Image

 signaltap, 300k
Image


Last edited by Vic3Dexe on 18 Feb 2016 07:41, edited 2 times in total.



02 Apr 2015 04:15
Profile
Doomed

Joined: 16 Dec 2014 12:58
Posts: 363
Location: Киев
Reply with quote
newold86 wrote:
Нет, на новой плате - сигнал CLK от отладочной платы до преобразователя на моей плате.

Вполне вероятно, что тока драйвера циклона не хватает для возбуждения контура (т.е. сравнительно большое выходное сопротивление, и шлейфов нет).
А вот конвертор уровня выдает, скорее всего, гораздо более мощный сигнал (по даташиту для LVC8T245 - максимум 50 мА) - откуда и звон.

added
Померял температуру после 40 минут работы. Сначала пальцем. :) Держать можно, но горячо.
Термодатчик от китайского тестера показал 44. Но так как на моей тушке он показал 32, то реально там около 50.
Имхо - вполне.


Last edited by Vic3Dexe on 16 Feb 2016 17:45, edited 1 time in total.



02 Apr 2015 04:49
Profile
Devil

Joined: 30 Nov 2013 12:08
Posts: 668
Location: WWW
Reply with quote
Vic3Dexe wrote:
Померял температуру после 40 минут работы. Сначала пальцем. :) Держать можно, но горячо.
Термодатчик от китайского тестера показал 44. Но так как на моей тушке он показал 32, то реально там около 50.
Имхо - вполне.


Процессор какой ? У меня после замены на 80C88 вообще холодный, а до этого был реально горячий (именно так же - палец держать можно, но горячо).


02 Apr 2015 08:46
Profile
Doomed

Joined: 16 Dec 2014 12:58
Posts: 363
Location: Киев
Reply with quote
8086-1, 10 МГц, реально запущен на 8.33 (25 от набортного генератора на 3 поделил, лень было PLLкой 30 делать).

Разгонять свой не пробовали? Интересно, это вообще возможно?


Last edited by Vic3Dexe on 16 Feb 2016 17:45, edited 1 time in total.



02 Apr 2015 11:13
Profile
God

Joined: 02 Jan 2006 03:28
Posts: 1390
Location: Abakan
Reply with quote
Vic3Dexe wrote:
Просьба сильно не ржать :)
А с чего ржать то? ;)
Тут вопрос возник - а что за плата с циклоном? "EP4CE" - общее название серии. И есть подозрение, что на плате с обратной стороны вовсе не пусто. Но вот что?


02 Apr 2015 20:51
Profile
Doomed

Joined: 16 Dec 2014 12:58
Posts: 363
Location: Киев
Reply with quote
jdigreze wrote:
А с чего ржать то? ;)

Ну мало ли :) Я, когда шлейфы в фольгу укутывал и прищепками заземлял, похихикал слегка.
jdigreze wrote:
Тут вопрос возник - а что за плата с циклоном? "EP4CE" - общее название серии. И есть подозрение, что на плате с обратной стороны вовсе не пусто. Но вот что?

EP4CE это общее название семейства циклонов, а не платы. Плата китайско-безымянная. Брал на ебее. Это не реклама, скорее наоборот - брать у этого продавца не рекомендую. Как я писал страницу-две назад, плата от флюса не отмыта, поэтому 6 ног в разной степени дохлости (коротят на землю).
Там же, на ебее, есть фотки обратной стороны. Кварц-генератор 25М, флешка под прошивку (EPCS4), стабилизаторы питания и кнопка сброса прошивки по JTAG (т.е. перезагрузка из флешки).
Или речь о желтой плате снизу? Так это мой переходник, на штыри циклоновской платы IDC-разъемы не налезали - тесно :)


Last edited by Vic3Dexe on 16 Feb 2016 17:46, edited 1 time in total.



02 Apr 2015 22:18
Profile
God

Joined: 02 Jan 2006 03:28
Posts: 1390
Location: Abakan
Reply with quote
Vic3Dexe wrote:
EP4CE это общее название семейства циклонов, а не платы. Плата китайско-безымянная. Брал на ебее.
Это я и имел ввиду. Интересен был камень и что с обратной стороны. У самого лежит acex не паяный, всё подступиться к нему не могу. Читаю пока подвиги других, дозреваю так сказать.


03 Apr 2015 02:08
Profile
Doomed

Joined: 16 Dec 2014 12:58
Posts: 363
Location: Киев
Reply with quote
Начал работу над CGA. На рабочих ногах циклона влет заработало на 640х480. Так как на текущей плате либо проц либо CGA, в роли проца выступаю я :)
Вручную меняю регистры и содержимое памяти. Есть все 6 палитр CGA, однако из-за моих косяков в выходных RGB-ключах пока только 8 цветов (т.е. вывод I толком ничерта не делает).

Ну и нарыл CGA-тестер.
http://www.oldskool.org/pc/cgacomp


Last edited by Vic3Dexe on 16 Feb 2016 17:46, edited 1 time in total.



16 Apr 2015 04:53
Profile
Doomed

Joined: 16 Dec 2014 12:58
Posts: 363
Location: Киев
Reply with quote
В основе своей CGA почти готов к употреблению. Пока что без взаимодействия с CPU, но и так неплохо.
Ограничения:
- растр прибит гвоздями к 640х480. Т.е. регистров управления синхроимпульсами, HTotal, VTotal и пр. тупо нет. Они будут, когда будет новая плата, и на ней будет CPU, но запись в них будет игнориться.
- видимая область, соотвественно, прибита к 640х400 (даблскан). Т.е. имеем полосы оверскана сверху и снизу в случае монитора 1280х1024 (гнусмас 732N). Вообще говоря, этот момент - больное место всей идеи. Я так и не придумал, как на чисто аппаратном уровне выставлять идеальный режим для всего колхоза существующих ныне мониторов (всякие там 1366х866.5 и пр.). Поддерживаемые режимы явно разные (некоторые, например, умеют и 720х480, чего мой гнусмас не умеет), пропорции разные (на боевом NEC 2690WUXI 16:10 не тестил, ссыкотно), в общем, где будет (и будет ли) оверскан - вопрос. Пока, как я уже говорил, прибито гвоздями, в финальной версии будет обмен по I2C с монитором, и хай биос решает. Свой биос, разумеется.
- так как растр по горизонтали ограничен 640, не будет режима TXT 90х30. Для него надо те самые 720х480. Вправить мозги гнусмасу по этому поводу мне не удалось. Что бы я ни делал, он упорно видит результат как 720х400 с соотв. оргвыводами (обрезания где нужно и где не нужно, а где совсем не нужно - так растягивание 640 до 720 и пр.). Ну да и хрен с ним. Не знаю ни одного приложения, которое бы хотело 90х30.
- нет интерлейса/светового пера (соотв. регистры игнорируются). Реализовать несложно - просто ненужно.
- нет и не будет композита - во-1 без надобности, во-2 на FPGA сложновато как-то... :)

Что есть:
- все стандартные режимы, 320х200 со всеми 6 палитрами и сменой цвета фона, 640х200 с возможностью смены цвета foreground, текстовые со сменой цвета оверскана, миганием/яркостью фона
- 160х100 (который на самом деле текстовый) - не проверял, нет дампа памяти под него, но, по идее, работать обязан
- аппаратный курсор в текстовых режимах, частота мигания его и текста (если разрешено в соотв. битах регистров) соответствует оригинальному CGA. Хотя, на видео в ютубе вроде курсор медленней мигает, сложно понять короче. Я тупо скопировал оригинальный CGA. Не совсем понял только как их счетчик взаимодействует со встроенной в 6845 мигалкой. Также курсор умеет быть "двойным" (split-box, типа сверху и снизу). Из CGA-тестилки, что я приводил, не понял чем отличается strkieout от split - надо дизассемблером посмотреть, что там автор делает, как по мне - то же самое, только номера строк разные.
- шрифт пока только один (который толстый, сами глифы взяты из биоса "поиска", т.е. с русскими буквами во второй половине). Как почитал, оригинальный CGA умел 2 шрифта по джамперу на карте (толстый и тонкий), если хватит у циклона мозгов, прогружу оба (CP437, взял тут) и сделаю переключение какое-нить.

зы В качестве послесловия. В неравной борьбе с собственными косяками в выходных ключах пал КТ315 (был безжалостно выпилен кусачками в процессе поиска этих самых косяков) и 4 подстроечных резистора (аналогично выпилены плоскогубцами за ненадобностью). Косяки, тем не менее, найдены, устранены, после чего пришло понимание, что Analog Devices мне не переплюнуть, так как нога I перешла от состояния "совсем не работает" к состоянию "практически не работает". Вы не видите разницы? Я тоже. :-?

ззы Да, и где конь не валялся - так это в плане разделения доступа меж процом и, собственно, видяхой. Так как финальная память будет однопортовой, решил себя не баловать, и решать эту проблему сразу, пока вся память под контролем отладчика. Так что никаких двухпортовок в исполнении альтеры. По расчетам, для финальной версии вполне хватило бы и 20 нс SRAM, но так как или 15 или 45, то придется ставить то, что можно купить, т.е. 10 нс Cypress. Странная логика? Это вы продавцам и производителям объясните.
После недолгой внутренней борьбы решил, что снег эмулировать не буду. Вроде, он как фича нигде не использовался.


Last edited by Vic3Dexe on 16 Feb 2016 17:46, edited 1 time in total.



27 Apr 2015 18:35
Profile
Doomed

Joined: 16 Dec 2014 12:58
Posts: 363
Location: Киев
Reply with quote
Вторая версия тестовой платы собрана и запущена.

Наконец-то есть 16 цветов в CGA. Подложил свинью монитор, у которого сдохла верхняя лампа (или две) подсветки. В результате, изображение вверху темнее. Долго искал причину в своей плате, пока не плюнул и не переткнул маник обратно на оснвной комп. :)

На скорую руку сбацан контроллер памяти (она вся в циклоне пока что), который позволяет общаться с однопортовой памятью как с двухпортовой, т.е. чтение со стороны CRT-контроллера и обмен с процом. Идея в разделении времени - CRT читает по два байта (т.е. через 8 или 16 пикселей в зав. от режима), оставшееся время отдается процу, его вполне хватает.
Однако, реактивный контроллер по сигналу AMWR от 8288 (т.е. "растянутому", как MRD) умудряется выполнить запись до того, как проц, собственно, выставит на шину данные. Пришлось вводить укороченные сигналы.

Ну и запущен 8087. Он горячий. Не, не так. ГОРЯЧИЙ ШО ПЦ. Термометр показал 63, значит, реально - за 70. Притронуться почти невозможно, не говоря о том, чтобы держать палец. А ведь всего-то 8.3 МГц против родных 10...
Впрочем, инструкции выполняет, хотя приходится натыкивать fwait вручную, иначе не происходит вообще ничего.
Наверно, вытяну его пока, без охлаждения стремно, хотя народ пишет, что это нормально.


Last edited by Vic3Dexe on 16 Feb 2016 17:47, edited 1 time in total.



08 Jun 2015 11:26
Profile
Doomed

Joined: 16 Dec 2014 12:58
Posts: 363
Location: Киев
Reply with quote
Из закромов оф родина был извлечен радиатор. Хрен его знает от чего :)
Свреху катушка с припоем, которая поджимает его именно к 8087 (они с 8086 слегка наперекос относительно друг друга стали в панельках).
 фото раз
Image

С ним наблюдаем резкое снижение температуры (без него уже было бы 60+).
 фото два
Image

Ну и вид в целом. Первая строка на мониторе демострирует 16 цветов, вторая - результат прямого вывода в видеопамять числа пи (fstp tbyte [B800:160]) :)
Некоторые символы там мигают, поэтому на фото не попали.
 фото три
Image

Извините за говнокачество. Фотик отказался отдавать отснятое по ЮСБ, пришлось телефоном.


Last edited by Vic3Dexe on 16 Feb 2016 17:47, edited 1 time in total.



09 Jun 2015 03:24
Profile
Maniac

Joined: 18 Nov 2013 16:15
Posts: 202
Location: все оттуда ;)
Reply with quote
Vic3Dexe поздравляю с очередным этапом.


09 Jun 2015 15:16
Profile
Doomed

Joined: 16 Dec 2014 12:58
Posts: 363
Location: Киев
Reply with quote
Работает таймер (8254 без readback) и контроллер прерываний (master/slave, нет ротации приоритетов, есть поллинг, но я его не проверял).
Попытался подцепить клаву и наткнулся на грабли - куча ложных переключений при приеме байта.
Полагаю, что дело в растянутых фронтах (что при 10 кГц тактовой неудивительно), у автора данной темы в коде также присутствует подавление дребезга.

Мне вот интересно, как вообще такое может произойти? У циклона выставлено 3.3LVTTL, т.е. есть некий защитный диапазон, как и у любой честной TTL-микрухи. Ему не пофиг какой там длины фронт? Да даже если и не пофиг - 5 мкс это так много? Или я уже отупел с этой схемой?

зы VGrad, спасибо

ззы Как показало беглое исследование гугла, дребезг давят во всех проектах ps/2 клавомыши, т.е. это не мои персональные грабли. Но откуда дребезг в выходных сигналах 8048 - мне непонятно. Звон в длинном кабеле от клавы?


Last edited by Vic3Dexe on 16 Feb 2016 17:47, edited 1 time in total.



29 Jun 2015 08:50
Profile
Doomed

Joined: 16 Dec 2014 12:58
Posts: 363
Location: Киев
Reply with quote
Новости нашего городка.

Из имеющегося циклона я выжал все - кончились ноги и встроенная память. Поэтому была запилена новая плата под BGA-версию взамен китайского недоразумения.
Разумеется, паять дома BGA мне тупо нечем - ни прожектора, ни строительного фена :) , поэтому поехал на поклон в ближайший по гуглу ремпункт для ноутов.
Там удивились, но припаяли за 200 грн. (~8 у.е.). Результат - не контачит с десяток ног. Поехал второй раз. Там признались, что недогрели из боязни спалить. Пропаяли еще разок и - о чудо! - все работает, прошивается и по JTAG и по AS (флешка EPCS16).

Отдельных матюков заслуживают конденсаторы обвязки 0402 (бОльшие просто не влезали между виа под BGA). Паять их пришлось обыкновенным ЭПСН-25, т.к. у китайской станции радиус жала больше, чем сами кондеры - невозможно ткнуть в пад. У обычного же паяльника заточка острая, можно подобраться, но температура такая, что один пад не вынес издевательств и отвалился. Ну да и хрен с ним. Главное, что глаза все-таки не вылезли, шанс был, да.

Наш девиз - ни одной платы без косяков. На этот раз забыл развести три дороги - синхру на монитор и одну из линий данных на IDE. Придется кидать перемычки, пожертвовав VGA SDA/SCL (общение с флешкой монитора) и каким-нибудь IOCS16 на IDE (вот как можно было не забыть развести эту ненужность, а три необходимых линии забыть, а?!).

Монитор, над которым я издевался все это время (и у которого издохла лампа подсветки) таки отъехал окончательно, напоследок завоняв всю комнату. Куплен новый, самый дешевый асер. Посмотрим, сколько протянет :)

Ну и фоточки, опять говнокачество, но теперь с мыльницы. Я уже и забыл, насколько хреново она снимает. Плюс дрожащие ручки.
 раз, общий мутный вид
Image

 два, крупным мутным планом чип и генератор на 50 МГц
Image


Last edited by Vic3Dexe on 16 Feb 2016 17:47, edited 1 time in total.



04 Nov 2015 15:21
Profile
Doomed

Joined: 16 Dec 2014 12:58
Posts: 363
Location: Киев
Reply with quote
Новая плата завелась с полпинка, причем процы на номинальных 10 МГц (против 8.33 в старой версии). По большому счету, от старого кода остался только год назад написаный i8288, все остальное так или иначе изменилось.

Видеокарта переписана с нуля. Точнее четыре видеокарты:
- EGA 256k - работают все режимы, нужны доп. тесты для GC (граф. контроллер), но в целом ок
- EGA 64k (почувствуй себя нищебродом) - как ни странно, но написанная сугубо по интуитивным предположениям о назначении некоторых бит в регистрах EGA, завелась сразу. До сих пор в шоке :o
- VGA - все ее потроха написаны (как бы не сильно отличаются от EGA), не тестировалась, но работать, по идее, должна
- CGA обыкновенная - полностью на потрохах EGA/VGA (ну т.е. сдвиговые регистры из GC, регистры CRT на таковых от EGA и т.п.)

Типы карт переключаемы на лету простой записью в порт (разумеется, после этого нужно корректно переписать все регистры на новой карточке).

На плате 2 опорных генератора:
- 50 МГц (готовый генератор, фотки выше), из него через PLL вырабатывается клок проца (30 МГц, которые дальше делятся до 10 со скважностью 30%), клок VGA на внешний DAC ADV7125 и половинный клок туда же (для режимов 320p :))
- 14.31818 МГц как в оригинальной PC/XT. От него работает PIT, а также через второй PLL генерится 4.77 МГц (пока не используется). Так как я зафейлил заказать сразу готовые генераторы (как для 50М), а вместо этого заказал обычные кварцевые резонаторы о двух ногах, пришлось городить генератор Пирса. Так как я зафейлил еще раз и не додумался почитать про кол-во буферов в инверторе, был небольшой кирпичный завод по поводу заработает оно или нет. Заработало сразу, причем номиналы обвяза взяты с разбросом в 40% от изначальной схемы. Дважды в шоке. :o

Работает 2 метра 10 ns SRAM (1Mx16). Еще один предмет волнений, который взлетел сразу. Больше всего боялся, что из-за плотности дорожек и близости 50М гены огребу наводки. Обошлось, правда и память работает не на 100, а лишь на 50 МГц (точнее 25 МГц + псевдо-DDR).

Контроллер памяти также переписан, в основном потому, что EGA/VGA имеют дурную привычку на каждый байт от проца гадить четырьмя байтами в память. Им-то хорошо, у них плоскости видеопамяти разными чипами представлены. А мне из моей одной микросхемы еще и инструкции процу забирать. В результате контроллер имеет 4 временнЫх слота под операции чтения-записи со стороны CPU и 2 - со стороны CRT (рефреш экрана). Приоритет у CRT, скорость памяти позволяет запомнить данные и адрес для каждого CPU-слота и выполнить их чуть позже.

Работает автодетект типа проца (8088/8086). 88 в текущей конфигурации использоваться не может (нет отдельных линий управления для младшего и старшего байта трансиверов), но сама идея работает.

Биос, как я и планировал, располагается во флешке с прошивкой для самого циклона. И вот она мне нервы потрепала. Не видно ее после загрузки конфига - и хоть тресни. 4 дня проковырялся, хотел идти за святой водой. Оказалось, что достаточно было подождать ~50 тактов на 14 МГц. После этого все видно и все можно. Полтергейст короче.

В данный момент дописываю видео-биос (int 10h). Далее в планах - CMOS+RTC+контроль питания на attiny, потом флоп+IDE.

Фоток нет, особо фоткать нечего.


Last edited by Vic3Dexe on 16 Feb 2016 17:47, edited 2 times in total.



19 Dec 2015 17:58
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 153 posts ]  Go to page 1, 2, 3, 4, 5 ... 11  Next

Who is online

Users browsing this forum: No registered users and 2 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:  
cron
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.