PDA

Просмотр полной версии : ULA для серого 128 +2, вопросы.



Копейкин
12.03.2017, 12:24
Итак, друзья, успешно закончился этап прототипирования R-ULA, схемы замещения ULA 128 / +2 серый.
Мой компьютер полностью работоспособен.
Теперь группирую все материалы здесь:
626596266062661
Схема, сборочный чертёж, перечень компонентов, прошивка:
62662
62663
62664
62665
Перечень исправлений и переходник для USB blaster
62666
62667
62668
================================================== ===============
Теперь нужно развести финальную версию платы, с исправленными ошибками и учетом пожеланий.

Копейкин
20.03.2017, 20:45
Итак, с памятью разобрался.
Вкратце может кому интересно:
----------------------------
ULA[15:14], область
----------------------------
0 0, ПЗУ задержек нет
0 1, Экран и нечётные банки, медленная память
1 0, Четные банки, быстрая память
1 1, Такая комбинация не формируется.
Сделано так, чтобы сохранить схему ULA 48K

Однако, следующий вопрос:
Сигналы с ULA, R, G, B, SYNC уходят через 75 ом на разъёмы, где нагружаются опять таки на 75 ом.
При I = 0, R G B дополнительно нагружаются на 75 ом делителя.
Это дает ток, по грубой оценке 5 / (75+75) = 33 мА, при I = 1
И 5 / (75 + 32,5) = 44мА, при I = 0
Интересно, рассчитывали ULA на такую нагрузку?
А вот EPM7128 имеет максимально допустимый ток 25 мА и она не выдержит.
Посоветуйте микросхему буфера, минимум на 5 линий (RGBI+SYNC), можно с инверсией,
но в маленьком (скажем SO-14) корпусе.
Я присмотрел 74ACT04SC, https://www.chipdip.ru/product/74act04sc
Максимально допустимый ток 50мА на 1 вывод.
Но может есть лучший выбор?

- - - Добавлено - - -

Пока получается так.
Ссылка на папку с диаграммами ниже.

Таблица временных соотношений доступа ULA к DRAM (nS)
Параметр- симуляция / паспортное
T column setup tASC -17 / -10
T row address hold tRAH 19 / 20
RAS to CAS delay tRDC 37 / 30-50
RAS precharge tRP 140 / 100
CAS precharge tCP 82 / 60
CAS pulse width tCAS 193 / 100 - 10000
RAS hold time tRSH 102 / 100
Column address hold tCAH tCAS+49 / 45

MV1971
21.03.2017, 18:47
Однако, следующий вопрос:
Сигналы с ULA, R, G, B, SYNC уходят через 75 ом на разъёмы, где нагружаются опять таки на 75 ом.
При I = 0, R G B дополнительно нагружаются на 75 ом делителя.
Это дает ток, по грубой оценке 5 / (75+75) = 33 мА, при I = 1
И 5 / (75 + 32,5) = 44мА, при I = 0
Интересно, рассчитывали ULA на такую нагрузку?
А вот EPM7128 имеет максимально допустимый ток 25 мА и она не выдержит.
Посоветуйте микросхему буфера, минимум на 5 линий (RGBI+SYNC), можно с инверсией,
но в маленьком (скажем SO-14) корпусе.
Я присмотрел 74ACT04SC, https://www.chipdip.ru/product/74act04sc
Максимально допустимый ток 50мА на 1 вывод.
Но может есть лучший выбор?



Может лучше транзисторы поставить ?
Они немного места займут.

Копейкин
21.03.2017, 20:00
----Может лучше транзисторы поставить ?
Я вот уже тоже о транзисторах думаю.
Т.к. ток через выводы питания 74ACT04 тоже ограничен 50 мА. :(

Копейкин
22.03.2017, 18:38
В этой папке будут лежать диаграммы, для обсуждения

https://drive.google.com/drive/folders/0B0Pt3iqwxgfmZmxMVjlkMzM0d3M?usp=sharing

1) ras_cas_tv.gif - диаграммы опроса видеопамяти, времянки темой выше
2) iorq_tv.gif - задержка тактовой частоты, при обращении к портам ULA.

Копейкин
02.04.2017, 18:24
Развел платку.
Выводы решил делать из штыревой линейки, угловой, 2мм.
Они узкие, не разобьют панельку, но припаивать придётся поштучно.
Можно наломав, воткнуть в панельку, и припаять уже точно зафиксированные.
Припаивать с нижней стороны на площадки.
Кто-нибудь видит явные нестыковки?

MV1971
02.04.2017, 21:47
Развел платку.
Выводы решил делать из штыревой линейки, угловой, 2мм.
Они узкие, не разобьют панельку, но припаивать придётся поштучно.
Можно наломав, воткнуть в панельку, и припаять уже точно зафиксированные.
Припаивать с нижней стороны на площадки.
Кто-нибудь видит явные нестыковки?

Может быть у кого-нибудь есть SLAM-128 ?
Посмотреть как там выводы сделаны.

В NEBULA кстати штыревая линейка на 2,54, толщина обычная, но контакты короче.
Но там сквозные отверстия.

Так как Вы предлагаете - не технологично, если один экземпляр делать - может и не страшно, а если несколько, слишком много работы.
Надо что-то другое придумать. Хотя какую линейку ставить это уже дело вкуса, плата же позволит ставит и 2,54 ?

А JTAG стандартный лучше убрать, надо сделать 5-шт. разъем, как можно меньшего размера или вообще просто контакты.
Прошивать все равно один раз при изготовлении.

Надо чтобы размер платы был как можно ближе к размеру оригинальной ULA.

Копейкин
02.04.2017, 22:22
Плата имеет площадки с шагом 2,54.
Однако, если поставить штыревые линейки со сквозными отверстиями, то плис между рядами не помещается.
Ставить ее рядом тоже не хочется, т.к. площадь платы удваивается, вот и решил поверхностным монтажом сделать.

Про jtag нужно прикинуть, мой программатор питание выходных буферов от платы берет, поэтому 6 проводов будет.
Но зато 1-рядный раз'ем почти 10мм в высоту позволит сократить, да.

CodeMaster
03.04.2017, 12:51
Выводы решил делать из штыревой линейки, угловой, 2мм.
Они узкие, не разобьют панельку, но припаивать придётся поштучно.

Не знаю, большинство таких платок сделаны с обычными линейкам 2,54 и вроде ничего не разбивается. К тому же её не надо каждый день вынимать, один раз поставил и забыл.

NiKa
03.04.2017, 17:52
Молодец, надо дать отпор буржуйским СЛАМам, и ещё надо 48ю запилить.

creator
03.04.2017, 18:15
и ещё надо 48ю запилитьС RGB!

Копейкин
04.04.2017, 19:45
Переставил вместо стандартного JTAG однорядную вилку.
Картинку выше обновил.
В таком виде, пожалуй, и закажу.


и ещё надо 48ю запилить.
Я так понимаю, ULA для "серого" 128К и ULA для 48К почти не отличаются, разве только цоколёвкой и выбором видеобанка.

- - - Добавлено - - -


С RGB!
Вы имеете в виду, что у 48K кодировка YUV?
Я схему оригинального не видел, честно говоря.
В книге Криса Смита описаны аналоговые блоки формирования YUV, построенные на внутренних ячейках ULA.
В EPM7128 (да и в других CPLD и FPGA)такой возможности нет, поэтому только RGB ;)

MV1971
04.04.2017, 20:25
Надо заказывать пока как есть, все равно нужны будут доработки.
Потом уже можно сделать окончательный вариант.

Totem
04.04.2017, 21:55
Переставил вместо стандартного JTAG однорядную вилку.
Картинку выше обновил.
В таком виде, пожалуй, и закажу.


Я так понимаю, ULA для "серого" 128К и ULA для 48К почти не отличаются, разве только цоколёвкой и выбором видеобанка.

- - - Добавлено - - -


Вы имеете в виду, что у 48K кодировка YUV?
Я схему оригинального не видел, честно говоря.
В книге Криса Смита описаны аналоговые блоки формирования YUV, построенные на внутренних ячейках ULA.
В EPM7128 (да и в других CPLD и FPGA)такой возможности нет, поэтому только RGB ;)

В оригинале 48 на краевой разъем выдается, не нужно такого "сщастия", RGB и SYNC- жить проще

Копейкин
01.10.2017, 11:01
Итак, благодаря всемерной поддержке уважаемого MV1971, готовы первые образцы плат.
Если припаять тонкие штыри от 2-мм линейки, как это сделано у меня, то панелька не убивается и можно менять ULA/Модуль для сравнения.
Но для этого нужно паять с шаблоном из макетной платы или широкой панельки. Немного неудобно.
А можно запаять линейки 2,54мм и установить вместо панельки.
Программирутся внутрисхемно, альтеровским байтбластером, но я вместо стандартного разъёма поставил 6-пиновую линейку.
На плате стоит EPM7128 и транзисторы для усиления видеосигналов.
Конфигурация построена по книге Криса Смита и должна подходить для моделей 128 и 48К.
Занято 123 из 128 ячеек.
У меня не получилось сформировать все необходимые задержки на внутренних ячейках,
поэтому одну линию задержки пришлось сделать внешней.
Эта RC-цепь на проводах видна на фото.
623716237262373
У мня серый 128 +2 стартует, работает клавиатура (с оригинальной ULA не работала), Бейсик работает.
К сожалению, у меня пока нет адаптера дисков или живых кассет, поэтому проверял только на тестовых ПЗУ.
TEST48K и TEST128K Фофанова успешно проходят.
Об остатках плат желающие могут договориться с MV1971, а файл прошивки запросить у меня.
В C-Петербурге я могу отдать, а после сборки прошить, 1(один) оставшийся экземпляр платы человеку,
готовому продолжить тестирование на своём экземпляре Спектрума.

Копейкин
04.10.2017, 19:52
Выкладываю схему, сборочный чертёж, перечень компонентов и цепи разъёма программирования Х3.
Поступило предложение назвать проект R-ULA. Пусть так и будет. :)
Позже выложу подключение дополнительной RC-цепи.
Файл прошивки буду высылать на e-mail по запросу, т.к. он действителен только для этой экспериментальной партии плат. Во избежание путаницы в дальнейшем.
PS
Транзисторы я поставил BC817-40 https://www.chipdip.ru/product/bc817-40mtf

(!) Материалы перенёс в первый пост.

McKlaud
05.10.2017, 01:09
R-ULA like R-Type game or rULA128 :)

HardWareMan
05.10.2017, 04:45
Копейкин, так почему тогда не выложить исходник? И люди смогу собрать себе прошивку под что угодно, хоть под Xilinx или вообще PAL/GAL.

Копейкин
05.10.2017, 19:47
Копейкин, так почему тогда не выложить исходник? И люди смогу собрать себе прошивку под что угодно, хоть под Xilinx или вообще PAL/GAL.
PAL/GAL/HAL не вместят весь проект, не хватит ресурсов. :)
Данный проект предназначен для замены фирменных ULA 128 в DIP корпусе.
Для этого проект сделан максимально близко к оригиналу, с использованием асинхронной логики.
Если просто задаться целью сделать свою ULA, можно сделать проще и надёжнее на современных CPLD/FPGA и ОЗУ, с использованием синхронного дизайна. Такие проекты уже существуют и даже предоставляют расширенные графические возможности.
А данный проект нужен для ремонта любимой вещи.
Перекомпилировать на другие платформы - Xilinx, Lattice или наши 5576XC.. - нужно разрабатывать другие платы, есть в этом смысл?
Вручную МГТФом тоже кристалл нормально не припаять, нужна платка.
Самостоятельно делать себе плату дорого, а ЛУТом сомнительно, шаг м/сх менее 1мм.
А эти платки, после отладки и исправления ошибок, будут делаться и к ним будет готовая прошивка = комплект для замены.
Чем плохо?
А выложить сейчас сырые исходники - это создать ненужный ажиотаж и путаницу.

PS
Добавил к документации в предыдущем сообщение rc-ext.txt- выводы, к которым подключать RC-цепочку и номиналы.

HardWareMan
06.10.2017, 09:16
Копейкин, есть люди, у которых PAL/GAL вагон и маленькая тележка. Но суть не в этом. Суть в том, что если работает - почему сырое? Боишься за путаницу версий - оформляй на гитхабе.

malmstream
24.10.2017, 16:48
хорошо бы версию для 48к. а то не купить.

NiKa
24.10.2017, 22:10
В барахолке всегда есть оригинал.

Копейкин
24.10.2017, 22:23
Явных ошибок в конфигурации ПЛИС я пока не нашел, поэтому выкладываю файл (pof) для программирования.
Очередные поправки касаются уже железа.
R6 изменить на 1КОм и добавить от базы VT5 резистор 330 ом к земле.
Иначе яркость имеет существенную задержку изменения от яркого к нормальному.
Ещё есть проблема со встроенным магнитофоном для версии +2 серый.
С магнитофона приходит сигнал амплитудой 3В и изолинией 1,5В.
И этот сигнал ещё делится на 3, прежде чем придёт на 34 вывод.
Буду на проводах компаратор лепить.
Выходной сигнал следует ослабить до ~800мВ, но это уже просто резисторами сделать.
В оригинале усилительный каскад внутри ULA, но на MAX7128 так не сделать.
Напоминаю, что есть одна чистая платка у меня в СПб и остатки пробной партии у MV1971.

Что касается версии 48К, то сама ULA одинаковая, разве что выводы м.б. по другому.
В 128К добавляется внешний регистр банков памяти и доп. логика на HAL10H8, адреса A14 и А15 для ULA эмулируются.
Поэтому, если кто возьмётся сделать саму плату для версии 48К, то я готов сделать конфигурацию.

malmstream
25.10.2017, 03:20
Да нету там. Не оригинала не новодела.

creator
25.10.2017, 10:51
Копейкин, оформи/выложи всё красиво в первом сообщении темы. Спасибо!

Копейкин
29.10.2017, 12:35
Перенёс материалы в 1-й пост.

Добавил компаратор на ОУ с порогом 0,5В и гистерезисом 100мВ.
Как и ожидалось чтение с магнитофона тоже заработало.

Теперь нужно развести новую плату с учётом всех ошибок и пожеланий.

Прошу высказаться по следующим пунктам:

1) Разъём программатора поставить стандартный 2х5 штырей?
Место позволяет, а цена платы возрастёт ненамного.

2) Схема чтения с магнитофона сейчас соответствует характеристикам ULA.
Т.е. чтение с линейного выхода внешнего магнитофона недоступно, нужно брать сигнал с выхода усилителя.
Есть смысл реализовывать, скажем 2-х каскадную схему, рассчитанную на линейный выход, которая использовалась в отечественных клонах,
или оставить как есть?

3) Может имеет смысл ещё что-нибудь улучшить/переделать относительно текущей схемы?