Просмотр полной версии : Reverse. Конфигурации
Black_Cat
09.01.2011, 13:36
Как на счет чего то нестандартного, для перспективы? Текстового режима 80х30 или графического 800х600 с цветом(256) для каждой точки например?Зачем "нестандартного"? Есть хорошо проработанная сетка расширения видеорежимов для Спека (http://zx.clan.su/forum/7-57-337-16-1257898283), с расписанными видеорежимами и портами управления, в которую входят так же и режимы под 800х600 VGA. Это 384х256 и 768х512, т.е. 48х32 и 96х64 символа. Абсолютно все видеорежимы чётко укладываются в спековские адреса видеопамяти.
А если еще подрубить DMA то и DMASC звуковуха заработаетвнешний 8237 имеется ввиду?
внешний 8237 имеется ввиду?
Ну, да, внешний относительно портов в/в core T80. :)
Black_Cat
09.01.2011, 15:16
Ну, да, внешний относительно портов в/в core T80.т.е. хочешь загнать 8237 в FPGA? Влезет?
т.е. хочешь загнать 8237 в FPGA? Влезет?
Хотя имеет большое значение в какое FPGA загонять и в какую конфигурацию.
Black_Cat
09.01.2011, 15:34
Уже два влезло Хотя имеет большое значение в какое FPGA загонять и в какую конфигурацию.речь про твою плату. В неё помимо Спека влезло два 8237? В какой конфигурации?
Ссылка чёт не открывается
Давай сначала часы сделаем и вг93. Потом уж и посмотрим.
+100500
Давай сначала часы сделаем и вг93. Потом уж и посмотрим.
Согласен, чем и занят, чтоб было на что только смотреть.
речь про твою плату. В неё помимо Спека влезло два 8237? В какой конфигурации?
В тестовой, всему свое время... С помощью все быстрее будет...
+100500
А почему не 65536, или 131072 (1 0000h или 2 0000h)?:)
А почему не 65536, или 131072 (1 0000h или 2 0000h)?
http://lurkmore.ru/Стопиццот
Evgeny7, как всегда прав и в тему :)
axel_sunrise
29.01.2011, 16:01
объясните мне плиз
1. когда прошиваю плис конфигом,на экране потом должен появиться квадрат с мусором?
2. как залить ром файл в конф. флэш?
1. когда прошиваю плис конфигом,на экране потом должен появиться квадрат с мусором?
Да, спековский экран с мусором и красным бордюром.
Если к этому моменту уже вставлена SD-карта с образом ПЗУ, то комп должен стартовать с выходом в неглюк или меню пентагона.
2. как залить ром файл в конф. флэш?
Вопрос некорректен. Ромфайл в конфПЗУ не заливается. Он на флешке записывается.
Сейчас есть несколько вариантов прошивок под разные мапперы. Я, например, пользусь Профинской раскладкой с Неглюком 0.19 и двумя рамдисками А и В.
У lisica в работе пентагоновский маппер.
axel_sunrise
30.01.2011, 06:54
Да, спековский экран с мусором и красным бордюром.
Если к этому моменту уже вставлена SD-карта с образом ПЗУ, то комп должен стартовать с выходом в неглюк или меню пентагона.
Вопрос некорректен. Ромфайл в конфПЗУ не заливается. Он на флешке записывается.
Сейчас есть несколько вариантов прошивок под разные мапперы. Я, например, пользусь Профинской раскладкой с Неглюком 0.19 и двумя рамдисками А и В.
У lisica в работе пентагоновский маппер.
понятно,сорри за глупые вопросы,если что,пытаюсь вникнуть...сд карта является как бы ПЗУ,там должен постоянно находиться ром файл?
---------- Post added at 13:54 ---------- Previous post was at 13:53 ----------
тест памяти у меня проходит,значит всё хорошо (озу статика)
---------- Post added at 13:54 ---------- Previous post was at 13:54 ----------
тест памяти у меня проходит,значит всё хорошо (озу статика)
сд карта является как бы ПЗУ,там должен постоянно находиться ром файл?
Примерно так. С карты считывается ромфайл при включении платы или ее сбросе. При работе компа ромфайл размещен в ОЗУ платы.
Не забываем, что формат карты - FAT16 (в винде ХРю он называется просто FAT).
Сразу же на отформатированную карту заливается образ ПЗУ, потом хобета Фаталла. Затем можно кидать образы спекки-дисков TRD и SCL.
Вот комплектик файлов для примера, .jic заливается в плату, остальные на карту. Сначала на карту записывать Неглюк, чтобы он был первым файлом.
На первой странице у меня залиты все необходимые файлы, для разных мапперов.
Добавил модуль spi, теперь появится возможность записывать конфигурацию во FLASH без программатора прямо с SD или через терминал. Данные в sof файле записаны в перевернутом виде, т.е. биты 0...7 а не 7...0. u9speccy 0.04 alfa rev20110201 скинул в ящик. Сейчас доделываю модуль I2C...
Rev.20110201 u9Speccy Version 0.04 alfa
+ модуль spi (возможность работать с FLASH M25P40)
+ модуль uart (возможность обмена данными с u9 через HyperTerminal на PC)
Для UART:
1. Устанавливаем драйвер от FTDI
2. Запускаем HyperTerminal
3. Устанавливаем скорость (бит/с): 115200, Биты данных: 8, Четность: Нет, Стоповые биты: 1, Управление потоком: Нет
Для SPI:
Тест и пример в файле test.scl
vlad, у тебя небыло такой проблемы с UART, что если не подключен байтбластер, то FT232 не откликается в винде? Суть в том, что байтбластер дает "землю", которая по стандартному шнурку USB не доходит до FT. Ибо вместо 5 контакта земля у тебя заведена на 4-й...
у тебя небыло такой проблемы с UART, что если не подключен байтбластер, то FT232 не откликается в винде? Суть в том, что байтбластер дает "землю", которая по стандартному шнурку USB не доходит до FT. Ибо вместо 5 контакта земля у тебя заведена на 4-й...
Земля по схеме на 4-м контакте miniUSB, у меня FT работает и откликается и без USB Blaster'a (только один соединяющий с РС кабель, схемная земля соединена с экраном). Спаяй ламели 4-5 разъема miniUSB на плате.
Спаяй ламели 4-5 разъема miniUSB на плате.
Так и сделал.
u9speccy 0.04 alfa rev20110201 скинул в ящик
Клава не работает.
Клава не работает.
попробуй sof или возьми другую клаву...
Я при тесте uart пытался на спековой в терминале печатать :), плакать было уже поздно...
попробуй sof
Не работает.
или возьми другую клаву.
Не, это совсем не кошерно. Просто использую свой старый модуль, он с клавами дружит :)
---------- Post added at 22:31 ---------- Previous post was at 22:29 ----------
Я при тесте uart пытался на спековой в терминале печатать
Прекрасно печаталось. На 03d, которую я тебе отправлял. Дядя, верните клоки на место! :)
Просто использую свой старый модуль
Ну извини :(, я пробовал только на двух: A4Tech KR-750 и Sven Internet 650 все работает.
---------- Post added at 21:41 ---------- Previous post was at 21:35 ----------
Дядя, верните клоки на место!
filter_length : positive := 8:)
filter_length : positive := 8
А это что за фильтр такой? Я бы понял, если бы это была константа "внутреннего" клока модуля (клавы могут работать на разных скоростях), но фильтр... :v2_conf2:
Обновлена конфигурация для u9 (http://zx.pk.ru/showpost.php?p=316317&postcount=3)
Error404
10.02.2011, 11:58
Пожалуйста сделайте из первого поста ссылку на тред где описывается собственно сами u9/u10. Т.к. насколько я помню это болтается чуть ли не в барахолке.:D
Пожалуйста сделайте
Лягко. Заодно привел в порядок файлы/ссылки.
u9Speccy version 0.04 alfa Rev.20110208
Три имеющиеся клавиатуры не работают.
На 03d работают все.
---------- Post added at 17:25 ---------- Previous post was at 17:16 ----------
Кстате, а в тесте платы 07 клавиатура должна работать? Реакции также нет.
Вот и я. Простите за отсутствие... Проблемки были...
Три имеющиеся клавиатуры не работают.
На 03d работают все.
Клава у меня работает, но по ресету нельзя теперь выйти в сетап часов.
Карточку не видит...
Клава у меня работает, но по ресету нельзя теперь выйти в сетап часов.
Карточку не видит...
Заменил драйвера keyboard, mouse, Z-Controller. По поводу последнего, думаю нужно добавить bit 7: READY в рег. состояния IN #77 на будущее (сейчас цикл чтения/записи 571,42нс) для согласования скорости обмена данными с CPU при x3..28.
u9Speccy Version 0.04 Alfa Rev.20110213
+ CPU Z80 (T80 @ 7MHz)
+ TurboSound (YM2149 x2)
+ Soundrive v1.05
+ UART (115200 Baud)
+ RTC (MC146818A)
+ Keyboard (+ 3 Led)
+ Mouse (Scroll + 3 button)
+ Z-Controller (SD Card)
+ Multicolor
+ Memory 256K
+ Kempston
Закончил вроде версию Орион-2010 для u9.
Перелопатил много чего, проц тикает в обычном режиме (было fastZ80), тест скорости теперь показывает 4.0 (чего так долго хотели большевики :) ).
Причесал весь исходник для красивости.
Тестирую.
---------- Post added at 00:02 ---------- Previous post was at 00:00 ----------
+ Multicolor
это что, простите? ;)
Ewgeny7, сорцы скинул в ящик :)
---------- Post added at 23:06 ---------- Previous post was at 23:04 ----------
это что, простите?
извраты древних :) сейчас думаю как 256 цветов прикрутить :)
извраты древних
это понятно. Но это софтверная фишка. Ты аппаратный чтоле прикрутил?
---------- Post added at 00:11 ---------- Previous post was at 00:08 ----------
Ewgeny7, сорцы скинул в ящик
пока не вижу :(
u9_Orion_1.1
Файлы проекта перенесены в "Орионовский" раздел.
это понятно. Но это софтверная фишка. Ты аппаратный чтоле прикрутил?
Есть описание аппаратного? попробую...
Есть описание аппаратного, попробую...
Тогда я вообще не понял... Софтверный и так работает нормально...
Что на клавиатурные диоды будем вешать? Понажимай NumLock :) И куда приткнуть мышиное колесо?
Ага, нумлок красиво.
Колесо - биты #FADF - <Z-4бита>0<MS><LS><RS>
Но надо ещё зделать чтоб клава опроашивалась при а,0 ин а,254
Но надо ещё зделать чтоб клава опроашивалась при а,0 ин а,254
Точнее, нужно сделать чтобы клава читалась по любой маске адреса. Т.е. нужно эмулировать матрицу кнопок. Пример можно глянуть в моём модуле.
Колесо - биты #FADF - <Z-4бита>0<MS><LS><RS>
Должно быть:
<Z-4бита>1<MS><LS><RS>
Caro, это я скопировал из твоего мануала на мышку, значит там ошибка?
Caro, это я скопировал из твоего мануала на мышку, значит там ошибка?Из какого мануала? Скажи, я поправлю.
Я помню, когда то у меня была идея, чтобы состояние бита 3 = "0" отображало наличие мышки с колесом,
но в дальнейшем я от этого отказался. Теперь оно всегда должно быть установлено в 1.
u9Speccy Version 0.04 Alfa Rev.20110213
другое дело :) Всё работает.
caro, В версии zxkm_v40 в пятом пункте.
caro, В версии zxkm_v40 в пятом пункте.Спасибо, посмотрю и если что исправлю, как должно быть.
PS. Перезалил прошивку с исправленным текстом: http://www.zx.pk.ru/attachment.php?attachmentid=24977&d=1297666140
То, что ром читает при вынутой карточке - это хорошо, но когда на карте нет рома - всё равно считывает первые сектора как ром и... соответственно зависон. Надо придумать опрос рома на карте по имени, или ещё как то, ну, индификатор какой нить, что ли...
То, что ром читает при вынутой карточке - это хорошо, но когда на карте нет рома - всё равно считывает первые сектора как ром и... соответственно зависон. Надо придумать опрос рома на карте по имени, или ещё как то, ну, индификатор какой нить, что ли...
Можно CRC or file_name.rom or Setup or speccy.ini ?
Ваяю матрицу клавишь для корректного опроса кнопок по любым состояниям шины адреса А(15..8).
То, что в Верилоге я сделал просто и элегантно, в VHDL превращается в танцы с бубном....
Кто-нить знает, как в VHDL преобразовать типы bit_vector и std_logic_vector между собой??? Варианты типа A <= bit_vector(B) и A <= std_logic(B) не работают. Библиотеку numeric_bit и numeric_all уже привинчивал, бесполезно...
---------- Post added at 12:26 ---------- Previous post was at 12:00 ----------
другое дело Всё работает.
Бздынь.... Развалилось.
Полчаса работы и u9 покосилась, на клаву не реагирует.
Перезагрузки/выключения не помогают.
Залил старую 03d - всё работает.
Вывод - гдето в клавиатурном модуле что-то работает "на пределе" гонок сигналов, чип стал теплым - сигналы поплыли - клава отвалилась.
что-то работает "на пределе" гонок сигналов
ну так погоняй на тайминги и посмотри на самые тормозные цепи
ну так погоняй на тайминги и посмотри на самые тормозные цепи
Свой модуль я уже отгонял, работает как танк :)
А этот - Влад изобретает. Поэтому я просто атчот ему пишу, пущай думает :)
Бздынь.... Развалилось.
Полчаса работы и u9 покосилась, на клаву не реагирует.
Перезагрузки/выключения не помогают.
Залил старую 03d - всё работает.
Вывод - гдето в клавиатурном модуле что-то работает "на пределе" гонок сигналов, чип стал теплым - сигналы поплыли - клава отвалилась.
Нужен подробный отчет, модель клавиатуры, напряжение на PS2_KBCLK и PS2_KBDAT (должно быть около 3,4V). Дождемся lisica что скажет... Если и у него тоже то откатываемся на модуль из версии 0.03b. Да, еще вопрос, мышка не дымит?
---------- Post added at 12:05 ---------- Previous post was at 12:02 ----------
Работает со вчерашнего вечера с клавиатурой A4TECH Model: KR-750 5V ... 30mA. Проблем пока еще не обнаружил :(
Да, еще вопрос, мышка не дымит?
Нет, но подпрыгивает :)
Клава - Chicony KB9810. Дома две другие, на них посмотрю вечером.
---------- Post added at 13:12 ---------- Previous post was at 13:11 ----------
должно быть около 3,4V
Так точно, 3.43 показывает
---------- Post added at 13:12 ---------- Previous post was at 13:12 ----------
должно быть около 3,4V
Так точно, 3.43 показывает
Нет, но подпрыгивает
Я к тому что драйвер нижнего уровня один на "мышу" и "клаву".
Так точно, 3.43 показывает
Отлично, значит внешние сигналы в норме.
Попробуй заменить драйвер из версии 0.03b. Если после часа у клавиатуры хвост не отвалится а только почернеет, то так и оставим :)
Дождемся lisica что скажет...
А чё я скажу? У меня после часа работы клава пашет нормально. Единственно, что джой вниз, повешено на двойку - неудобно, надо на пятёрку вернуть.
Клава хз каккой фирмы, удалось прочитать Win98 и made in china, покупал гдет в 2004 году. Спецом новую A4TECH Model: KL-45mu подключил - тож работает.
Звук какой то не такой стал... Что то менее сочные низы получились.
---------- Post added at 16:21 ---------- Previous post was at 15:08 ----------
Два часа - полёт нормальный. Обнаружилось что в ВЕРЕ пробел и ентер не пашет.
А чё я скажу? У меня после часа работы клава пашет нормально.
Значит клавы у нас особенные, получается? Кто бы еще отписался?
Единственно, что джой вниз, повешено на двойку - неудобно, надо на четвёрку вернуть.
Попробуй, перенеси [2] на [5] может клавиатурная матрица так сделана, что не получается добиться IN 31 = 31 при одновременном нажатии всех кнопок кемпстона. Даже в v0.03b кемпстон не правильно работает (кемпстон с запоминанием какой то, так задумано?)
Звук какой то не такой стал... Что то менее сочные низы получились.
Вот! есть же улучшения, хрипа меньше стало. Микшер убрал из-под процесса, причина - при проигрывании soundrive как-то странно свистел. Может ym каналы и beeper вмешивались? А может и частота 8MHz на DAC великовата? Да, еще регистры soundrive по сбросу и если не используется нужно в 0, а то громкость из-за чего интересно разная?
Попробуй, перенеси [2] на [5] может клавиатурная матрица так сделана, что не получается добиться IN 31 = 31 при одновременном нажатии всех кнопок кемпстона. Даже в v0.03b кемпстон не правильно работает (кемпстон с запоминанием какой то, так задумано?
Да, но было же в u9_speccy_03хх - 4,5,6,8,и альт...Только вместе и не нужно нажимать. Попробуй ка ручку джоя одновременно во все направления поверни...
---------- Post added at 16:34 ---------- Previous post was at 16:33 ----------
По этому принципу и определяется кемпстон - влево и вправо нельзя одновременно нажать и если оба в 1 значит его нет.
Да, но было же в u9_speccy_03хх - 4,5,6,8,и альт...Только вместе и не нужно нажимать. Попробуй ка ручку джоя одновременно во все направления поверни...
Согласен :) нужно вернуть на [5] так удобней, хотя в реале регистр был, ему все равно сможешь ты это, или додумаешься...
---------- Post added at 16:55 ---------- Previous post was at 16:52 ----------
Верну если влево-вверх-огонь или аналогичные будут работать.
А я тут КАЕм-1024 с "Крамисом" балуюсь... :) На базе u9, естесственно.
---------- Post added at 18:02 ---------- Previous post was at 18:01 ----------
Да, забыл сказать - мои домашние клавы с мышами вообще не работают с 04... Даже курсора мышиного нету на экране. Головной модуль PS2 вероятно отвалился?
мои домашние клавы с мышами вообще не работают с 04...
Приылай свои клавы Владу, он разберётся.
Головной модуль PS2 вероятно отвалился?
Скорей всего.
Надо придумать опрос рома на карте по имени, или ещё как то, ну, индификатор какой нить, что ли...
Особо сильно думать не надо. Файл пускай обзывается как нам заблагорассудится, так еще и удобней.
А проверить наличие ромфайла на SD очень просто. В буте, когда мы уже прочитали блок данных 64кб с карты в память, нужно проверить что байт по адресам #8000 и #C000 равны #F3. Это команда включения прерывания стоит первой в обоих бейсиках.
нужно проверить что байт по адресам #8000 и #C000 равны #F3
А если совпадёт с левым файлом? Всяк бывает... Может, лучше отказаться от опроса карты при ресете, а сделать только во время заливки рома с карты в конфигурационку?
А если совпадёт с левым файлом? Всяк бывает..
Вероятность что левый файл опознается как ПЗУ равен 1/(256*256) = 0,0000152587890625. Т.е. почти ноль.
Но вообще не мешала бы функция перезаписи с карты в чип. Это было бы архиудобно.
А если совпадёт с левым файлом? Всяк бывает... Может, лучше отказаться от опроса карты при ресете, а сделать только во время заливки рома с карты в конфигурационку?
Сделаем так, если обнаружена карта, загрузка rom c карты, если карта не вставлена, загрузка rom с FLASH. Ну и цвет бордюра для понятности что грузим (пока не напишем setup).
Влад, а что с мс часов и ВГ93, не выходит?
Но вообще не мешала бы функция перезаписи с карты в чип. Это было бы архиудобно.
Будет, также будет удобно и конфигурацию обновлять тем, у кого нет программатора.
Сделаем так, если обнаружена карта, загрузка rom c карты, если карта не вставлена, загрузка rom с FLASH
Это большая редкость будит, что карта не вставлена, так что это лишнее.
Влад, а что с мс часов и ВГ93, не выходит?
Все выходит, как видишь, но по порядку. Голова не генератор, у того и то два плеча :)...
---------- Post added at 20:24 ---------- Previous post was at 20:23 ----------
Это большая редкость будит, что карта не вставлена, так что это лишнее.
Тогда грузим с карты, чем плохо?
---------- Post added at 20:29 ---------- Previous post was at 20:24 ----------
давай в ICQ обсудим...
Тогда грузим с карты, чем плохо?
Плохого ничего, но конфигурационка гулять тогда будит. Ну это так - будит не будит, лишь бы работало!
Error404
15.02.2011, 15:11
u9_Orion_1.1
Вопрос: а SDRAM от U9 используется для Ориона?
Если не используется, то можно ли вместо припаивания МСХ SDRAM c соответствующих ножек развести (и поддержать в ПЛИС) некое подобие системного разъема?
Например для подключения BB55 (IDE), часов на DS1302 или еще чего.
Вопрос: а SDRAM от U9 используется для Ориона?
В этой версии не используется, и вероятно не будет использоваться. Смысла не вижу. Ориону хватает и 512кб срамины.
Также здесь я исправил работу проца до "сусального" состояния. Возможно, это решит твои проблемы с индексами.
---------- Post added at 16:02 ---------- Previous post was at 16:00 ----------
часов на DS1302 или еще чего.
еще немножко терпения, лучшие умы уже привинчивают PCF ;)
Error404
15.02.2011, 16:09
В этой версии не используется, и вероятно не будет использоваться. Смысла не вижу. Ориону хватает и 512кб срамины.
Также здесь я исправил работу проца до "сусального" состояния. Возможно, это решит твои проблемы с индексами.
А для платки Орион-2010 будет сусальная версия? Мне пока больше негде проверить. И в идеале бы с поддержкой подключения ВИ1 как было в версии 0,6 (индексные баги в частности на коде опроса ВИ1 проявлялись).
А как насчет идеи задействовать пустые ножки ПЛИС идущие к ненужной SDRAM?
еще немножко терпения, лучшие умы уже привинчивают PCF ;)
{капризным голосом} А драйвер для PCF будет? :)
Или все же будет доведена эмуляция ВИ1?
А как насчет идеи задействовать пустые ножки ПЛИС идущие к ненужной SDRAM?
По желанию - что-нить могу туда вывести. У себя я не буду отдирать чип памяти :)
А для платки Орион-2010 будет сусальная версия? Мне пока больше негде проверить. И в идеале бы с поддержкой подключения ВИ1 как было в версии 0,6
Процик переделаю, насчет RTC не знаю. Нужно озарение, желание и микруху RTC.
А драйвер для PCF будет?
Будет. Его сделаешь ТЫ :)
Или все же будет доведена эмуляция ВИ1?
Нет, там будет отдельная песня. В смысле, часы будут видны как ВИ1, но на сохранение данных для выключения придется писать процедурку.
Error404
15.02.2011, 16:28
еще немножко терпения, лучшие умы уже привинчивают PCF ;)
Кстати, DS1302 я сегодня таки купил несколько штучек. По 60 руб. отдавали, не смог пройти мимо.
не смог пройти мимо.
прямо в булочной чтоле продавали???
Error404
15.02.2011, 16:31
Процик переделаю, насчет RTC не знаю. Нужно озарение, желание и микруху RTC.
У меня от версии 0,6 сохранен архив с прошивкой. Не поможет для озарения?
У меня от версии 0,6 сохранен архив с прошивкой. Не поможет для озарения?
У меня тоже есть.
Error404
15.02.2011, 16:40
прямо в булочной чтоле продавали???
ЧипоДип удачно расположен по пути на работу. :)
u9_KAY.
Ознакомительная версия.
В аттаче конфиг и файлик ПЗУ для карты.
Фаталл не нужен. Загрузка образов прямо из меню ресет-сервиса ("Service -> Image to RAMdisk"). Запуск загруженого образа - "TR-DOS boot".
Спасибо огромное Дмитрий'ю за переделку ресет-сервиса для народных нужд :)
Переключалка "турбо" и блокировка памяти пока не работают.
Странно тырдос работает... Из меню ("Service -> Image to RAMdisk") подключаю образ на диск А, при выходе в дос оно почему то диском С. Но, самый прикол обнаружился, когда из меню "TR-DOS boot" загружаешь реалком - оказываешся на диске А, но это ещё не всё, в реалкоме есть выход в дос по Q и в досе диск А......
А когда загружаешь этот же реалком с доса ( когда диск уже С), то и в реалкоме С...
Как такое может быть...
Да, изменение буквы диска работает только в сервисе. В реальном ТРДОСе рамдиск всегда С.
А как объяснить выход из реалкома в реальный дос? Тама ведь тож буква А.
Я не знаю механизма присвоения буквы рамдиску. Можешь считать, что он во всех случаях С, за исключением загрузки и запуска из ресетсервиса.
Ну тогда я всё равно не пойму механизма взаимодействия с реалкомом...
Ну тогда я всё равно не пойму механизма взаимодействия с реалкомом...
да нафига тебе реалком сдался?
да нафига тебе реалком сдался?
Я им пользуюсь на софт дискетах. Удобно копировать, диск доктор, музоны, рисунки, и т д и т п...
Я попросил народ в соседней теме переименовать рамдиск на букву А по умолчанию.
---------- Post added at 21:09 ---------- Previous post was at 21:07 ----------
А как тебе вообще впечатления от ресетсервиса? Очень удобно все манипуляции делать мышкой. И мегабыстрая загрузка с карты в рамдиск.
---------- Post added at 21:10 ---------- Previous post was at 21:09 ----------
Управление турбиной из меню не будет. Слишком коряво оно сделано в КАЕ, записью во второй бит порта 1FFD. Лучше оставить нашу кнопочку F9
А как тебе вообще впечатления от ресетсервиса? Очень удобно все манипуляции делать мышкой. И мегабыстрая загрузка с карты в рамдиск.
В принципе не плохо, только шариковой крысой без коврика плохо.
---------- Post added at 20:13 ---------- Previous post was at 20:12 ----------
Лучше оставить нашу кнопочку F9
Согласен, тем более привычно и аппаратно.
Прикрутил I2C контроллер для PCF8583. Аппаратная обвеска теперь полностью поддержана.
Переключаюсь на корку FDC.
Осталось написать программку установки времени для PCF8583 под TRDOS.
Обновил конфигурацию (http://zx.pk.ru/attachment.php?attachmentid=25146&d=1298205946).
Пример чтения из PCF:
;-----------------------------------------------------------------------------
; I2C PCF8583
;-----------------------------------------------------------------------------
; Ports:
; #8C: Data (write/read)
; bit 7-0 = Stores I2C read/write data
; #8C: Address (write)
; bit 7-1 = Holds the first seven address bits of the I2C slave device
; bit 0 = I2C 1:read/0:write bit
; #9C: Command/Status Register (write)
; bit 7-2 = Reserved
; bit 1-0 = 00: IDLE; 01: START; 10: nSTART; 11: STOP
; #9C: Command/Status Register (read)
; bit 7-2 = Reserved
; bit 1 = 1:ERROR (I2C transaction error)
; bit 0 = 1:BUSY (I2C bus busy)
; HL= адрес буфера
; B = длина (0=256 байт)
; C = адрес
I2C_GET LD A,%11111101 ; START
OUT (#9C),A
LD A,%10100000 ; SLAVE ADDRESS W
OUT (#8C),A
CALL I2C_ACK
LD A,%11111110 ; NSTART
OUT (#9C),A
LD A,C ; WORD ADDRESS
OUT (#8C),A
CALL I2C_ACK
LD A,%11111101 ; START
OUT (#9C),A
LD A,%10100001 ; SLAVE ADDRESS R
OUT (#8C),A
CALL I2C_ACK
LD A,%11111100 ; IDLE
OUT (#9C),A
I2C_GET2 OUT (#8C),A
CALL I2C_ACK
IN A,(#8C)
LD (HL),A
INC HL
LD A,B
CP 2
JR NZ,I2C_GET1
LD A,%11111111 ; STOP
OUT (#9C),A
I2C_GET1 DJNZ I2C_GET2
RET
; Wait ACK
I2C_ACK IN A,(#9C)
RRCA ; ACK?
JR C,I2C_ACK
RRCA ; ERROR?
RET
Программка для установки времени в PCF8583
Влад, что ты сделал с рем диском? теперь его нет и соответственно ничего не грузится.
---------- Post added at 17:03 ---------- Previous post was at 16:53 ----------
Да, и доделай клавиатуру, плиз.
Влад, что ты сделал с рем диском? теперь его нет и соответственно ничего не грузится.
Сам дурак... Разобрался. Забыл, что вчера SRAM версию проверял и на карте не от ром был.
Программка для установки времени в PCF8583
Что это за расширение "Н", и как её запустить?
Что это за расширение "Н", и как её запустить?
Файл в хобетном формате. Копируешь на диск. В аласме, корректируешь время и запускаешь.
---------- Post added at 08:55 ---------- Previous post was at 08:52 ----------
Да, и доделай клавиатуру, плиз.
Уже разобрался, при any key реагировала на #FEFE A8 [CS][Z][X][C][V], добавлю состояние, где A15..8 = "00000000".
В аласме
Я с ним не дружу, сделай конечный продукт, чтоб запустил и подставил значения в виде цифр и нажатий энтер.
Я с ним не дружу, сделай конечный продукт, чтоб запустил и подставил значения в виде цифр и нажатий энтер.
Хорошо, нет проблем, доделывай FDC :)
Black_Cat
21.02.2011, 10:21
добавлю состояние, где A15..8 = "00000000". мож A15..8 = 11111111
мож A15..8 = 11111111
Нет - 00000000 . А ещё лучше по любой маске.
Я с ним не дружу
Еле вкурил, записались значения, считались, часы тикают. Но! После ресета уходят назад, к тому значению что прописал. То есть мс не тикает...
Давай в ICQ...
---------- Post added at 10:35 ---------- Previous post was at 10:31 ----------
Нужно определиться со стандартом хранения доп. инфо в PCF (год еще 6 бит...) и как распределить 240 байт
Black_Cat
21.02.2011, 11:49
Нужно определиться со стандартом хранения доп. инфо в PCF (год еще 5 бит...) и как распределить 240 байт
vlad, забивай пока токо стандартные ячейки , соответствующие аналогам в 512BИ1. Ячейки 512BИ1 (0- 63) - системные, они должны иметь одинаковое назначение во всех компах. 64 и выше, думаю, можно сделать с индивидуальным назначением для каждого компа, и определяться его BIOS'ом
Ячейки 512BИ1 (до 64) - системные, они должны иметь одинаковое назначение во всех компах. 64 и выше, думаю, можно сделать с индивидуальным назначением для каждого компа
Принято
Уф, с помощью Влада - затикали, но как быть с годом...
---------- Post added at 10:59 ---------- Previous post was at 10:58 ----------
Доделаем год и напишу простенькую оболочку для ввода времени.
Error404
21.02.2011, 13:46
Программка для установки времени в PCF8583
Уф, с помощью Влада - затикали, но как быть с годом...
---------- Post added at 10:59 ---------- Previous post was at 10:58 ----------
Доделаем год и напишу простенькую оболочку для ввода времени.
А исходники утилиты покажете? Только если можно - в обычном asm-тексте, с спектрумовскими "нобетами" и подобными форматами я не дружу в виду отсутствия спека. :)
я не дружу в виду отсутствия спека.
А в эмуле асм запустить слабо?
Error404
21.02.2011, 17:39
А в эмуле асм запустить слабо?
с какой целью выеживаешься? не хочешь помочь - промолчи
Уф, с помощью Влада - затикали, но как быть с годом...
Пардон, а теперь всем владельцам u9 обращаться к Владу для запуска часов? ;)
Влад, прочитай пожалуйста мантру для запуска PCF на всех платах! :)
У меня не тикают.
Error404, бинарник файла, 70 байт. Как выдрать текст из аласма - вопрос суровый :)
Проще дизасмить, тем более там пяток команд всего используется.
Снял скриншоты - на что сил хватило.
Влад, прочитай пожалуйста мантру для запуска PCF на всех платах!
У меня не тикают.
1-отключить питание
2-вытащить батарейку
3-разрядить кондёры
4-подключить, залить конфигу
5-проверить, тикают ли?
6-вставить батарейку
7-сходить за пивом
Вот здесь уже jik файл с ромом в конфигурационке.
Вот здесь уже jik файл с ромом в конфигурационке.
Это как это "с водкой в операционке"???
А, ясно...
---------- Post added at 19:46 ---------- Previous post was at 19:45 ----------
7-сходить за пивом
Пить я бросил, видать потому и не заводится :(
Я что-то пропустил?
Ага!. Часы не тикающие.
И неработающие тесты.
Тесты запустились ("пробой" или окисление конденсатора у пина RST). Процессорный сброс сидел на земле. Ты не глицерин-гидразином платы паяешь?
Часы молчат. Менял кварц, менял PCF. Прозванивал цепи от часов до альтеры. Звонил на "сопли" и обрывы. Пока ничего не накопал. Питание микросхемы в порядке. Под конец уже заменил конденсатор на кварце на 6.8п. Не помогает. Я пока в растерянности...
Да, запись в память часов работает прекрасно. Но они стоят. Питание обнулял полностью (дабы сбросить нулевую ячейку).
В аласме команда волшебная есть eXport, это для тех кому файл из асм->txt
; I2C PCF8583 SetTime version 0.2 Written By MVV Rev.20110221
;Port #8C W/R
; bit7-0 = DATA
;Port #9C W
; bit1-0 = 00:IDLE; 01:START; 10:NSTART; 11:STOP
;Port #9C R
; bit1 = ERROR
; bit0 = BUSY
;BCD FORMAT
SECOND EQU #00 ;7-0=SECOND
MINUTES EQU #22 ;7-0=MINUTES
HOURS EQU %00010110 ;7=FORMAT; 6=FLAG; 5-0=HOURS
YEAR_DATE EQU %01100000 ;7-6=YEAR; 5-0=DAYS
WEEK_MONTH EQU %11100010 ;7-5=WEEKDAYS; 4-0=MONTHS
ORG 30000
DI
;---------------------------------------------------------------
; JP COR ; CORRECTION YEAR
;---------------------------------------------------------------
LD A,%11111101 ;START
OUT (#9C),A
LD A,%10100000 ;SLAVE ADDRESS W
OUT (#8C),A
CALL W1
LD A,%11111100 ;IDLE
OUT (#9C),A
LD A,#02 ;WORD ADDRESS
OUT (#8C),A
CALL W1
LD A,SECOND
OUT (#8C),A
CALL W1
LD A,MINUTES
OUT (#8C),A
CALL W1
LD A,HOURS
OUT (#8C),A
CALL W1
LD A,YEAR_DATE
OUT (#8C),A
CALL W1
LD A,%11111111 ;STOP
OUT (#9C),A
LD A,WEEK_MONTH
OUT (#8C),A
CALL W1
COR LD A,%11111101 ;START
OUT (#9C),A
LD A,%10100000 ;SLAVE ADDRESS W
OUT (#8C),A
CALL W1
LD A,%11111100 ;IDLE
OUT (#9C),A
LD A,#10 ;WORD ADDRESS
OUT (#8C),A
CALL W1
LD A,%11111111 ;STOP
OUT (#9C),A
LD A,#10 ;YEAR CORRECTION
OUT (#8C),A
CALL W1
RET
;WAIT ACKNOWLEDGEMENT
W1 IN A,(#9C)
RRCA
JR C,W1
RRCA
RET
Для коррекции запускаем с метки COR
---------- Post added at 22:25 ---------- Previous post was at 22:16 ----------
Ага!. Часы не тикающие.
И неработающие тесты.
1) отключи питание платы
2) вынь батарейку
3) разряди кондер батарейки С29
4) подключи шлейф программера и т.д.
5) залей тест, RTC_INT# должно меняться с "0" на "1" с частотой 1Гц.
---------- Post added at 22:34 ---------- Previous post was at 22:25 ----------
Тесты запустились ("пробой" или окисление конденсатора у пина RST). Процессорный сброс сидел на земле. Ты не глицерин-гидразином платы паяешь?
Аккуратней с подключением к JP1 (Reset/GPI). И не спеши все распаивать...
Часы молчат. Менял кварц, менял PCF. Прозванивал цепи от часов до альтеры. Звонил на "сопли" и обрывы. Пока ничего не накопал. Питание микросхемы в порядке. Под конец уже заменил конденсатор на кварце на 6.8п. Не помогает. Я пока в растерянности...
Часы устанавливаются с ревизии 20110220
Доработал конфигурацию.
! исправлен скан матрицы клавиатуры
! коррекция дня недели
! правильное отображение года (в ячейке #10 PCF записывается поправка)
Проверить часы можно вольтметром, щуп на вывод 7, после сброса PCF, там частота 1Гц.
1) отключи питание платы
2) вынь батарейку
3) разряди кондер батарейки С29
4) подключи шлейф программера и т.д.
5) залей тест, RTC_INT# должно меняться с "0" на "1" с частотой 1Гц.
Не меняется.
Аккуратней с подключением к JP1 (Reset/GPI).
Это чем обосновано?
Часы устанавливаются с ревизии 20110220
Да, запись в память часов работает прекрасно. Но они стоят.
---------- Post added at 08:58 ---------- Previous post was at 08:26 ----------
Нашел косяк. Непротрав между контактными площадками конденсатора у кварца. Причем не короткое, а имеет сопротивление. Прорезал скальпелем, часы пошли.
Менял кварц, менял PCF. Прозванивал цепи от часов до альтеры. Звонил на "сопли" и обрывы. Пока ничего не накопал. Питание микросхемы в порядке. Под конец уже заменил конденсатор на кварце на 6.8п. Не помогает. Я пока в растерянности...
А как это объяснить? Если есть вторая PCF, подключи к ней кварц, кондер, питание и вольтметром проверь вывод 7. Если на нем нет изменений, тогда это не PCF8583.
---------- Post added at 08:04 ---------- Previous post was at 08:02 ----------
Нашел косяк. Непротрав между контактными площадками конденсатора у кварца. Причем не короткое, а имеет сопротивление. Прорезал скальпелем, часы пошли.
Так бы раньше, а то уже начали волноваться :)
Как с годом? Есть предложение при считывании в буте банально прибавлять 10 лет. В даташите вроде как значится что PCF работает с 4-х годичным циклом.
Как с годом? Есть предложение при считывании в буте банально прибавлять 10 лет. В даташите вроде как значится что PCF работает с 4-х годичным циклом.
Уже так и сделал в ревизии 20110221.
---------- Post added at 08:31 ---------- Previous post was at 08:28 ----------
Обновить нужно этим (http://zx.pk.ru/showpost.php?p=360876&postcount=614)
---------- Post added at 08:34 ---------- Previous post was at 08:31 ----------
в буте банально прибавлять 10 лет
Не совсем так, в ячейке #10 PCF записывается число (для года 2010-2013 это #10)
---------- Post added at 08:38 ---------- Previous post was at 08:34 ----------
Как быть если значения в виртуальном RTC изменились? Проверять CRC? и если не совпадает перезаписывать ячейки #11... PCF, ячейками #0E.. MC146818A?
Влад, я тут уже моск сломал пытаясь решить вопрос с конфликтом пина 11. Ты давал ссылку на иносранный форум с решением, я так понимаю что ответ здесь:
"one good solution is set PIN11 "I/O Maximum Toggle Rate" to "0" by Assignment Editor."
Но я не могу найти эту опцию пина. Уже всё перерыл, так и не нашел.
я тут уже моск сломал пытаясь решить вопрос с конфликтом пина 11
1) клик по Assignment Editor
2) двойной клик в поле Assignment Name (Location) в строке DCLK Location PIN_12 Yes
3) в открывшемся списке выбрать I/O Maximum Toggle Rate
---------- Post added at 11:27 ---------- Previous post was at 11:26 ----------
4) 0 MHz
---------- Post added at 11:38 ---------- Previous post was at 11:27 ----------
Прикручиваю текстовый режим 1024x768 @ 60Hz (матрица 128 x 48 символов, символ 8 х 16 точек, цвет символа x_x_pR_pG_pB_iR_iG_iB, где x_x - возможно будут еще 4-ре дополнительных знакогенератора; p - цвет бумаги; i - цвет чернил)
---------- Post added at 11:40 ---------- Previous post was at 11:38 ----------
6144 байт символов + 6144 байт атрибутов
---------- Post added at 11:44 ---------- Previous post was at 11:40 ----------
распределение: #4000 символ (0-255), #4001 атрибут (0-255) и так дальше...
---------- Post added at 11:46 ---------- Previous post was at 11:44 ----------
Размер знакогенератора 4096 байт
---------- Post added at 11:52 ---------- Previous post was at 11:46 ----------
Если будет желание сделаю загрузчик конфигурации, jic/sof -> M25
LD A,%11111111 ;STOP
OUT (#9C),A
LD A,#10 ;YEAR CORRECTION
OUT (#8C),A
CALL W1 RET
#10 надо заменить на #0E.
Так как 2011 год последний в четвётке и в часах он должен быть - 3, следующий будит 0 (2012), то есть для часов високосный. (и для нас тож)
---------- Post added at 19:21 ---------- Previous post was at 19:18 ----------
Ewgeny7, Зайди, плиз в аську.
Тема подчищена, как я и предупреждал.
Пост №666 остался за Блэк Кэтом, это символично.
Просьба всем остановить флудильню и концептуальню.
Соавторы будут делать то, что посчитают нужным.
Аминь.
За продолжение флуда дам по шапкам. Себе тоже :)
Black_Cat
24.02.2011, 19:24
Спасибо Женя, что удалил оба мои предложения - по монолитной архитектуре и по текстовому разрешению 768х512! Удаляй и дальше всё, что тебе не нравится :) . Но есть более радикальный способ затыкать рот - удалить неугодного тебе юзера :) Удачи!
Ewgeny7, скидываю на ящик последнюю стабильную ревизию и вплотную берусь за FDС. По поводу текстового режима, из-за частотной зависимости PLL, частота 65МГц (1024х768 @ 60Гц) провинчиваться пока напряжно, мешает с2 56МГц. Пока без проблем удалось запустить (800х600 @ 60Гц) 40МГц. Оставлю для второй версии, чтоб был интерес :).
vlad, спасибо :)
По поводу 56Мгц (память сканера) - можешь изменить этот клок, главное чтобы он был кратен 14Мгц. Т.е. должно работать и на 70, и на 84Мгц.
Выложил новую конфигурацию (http://zx.pk.ru/showpost.php?p=316317&postcount=3) Rev.20110225 (http://zx.pk.ru/attachment.php?attachmentid=25269&stc=1&d=1298662840)
Выложил новую конфигурацию Rev.20110225
Не правильно порты Soundrine, (ковокс не работает и нет стерео), переделываю.
---------- Post added at 22:08 ---------- Previous post was at 22:05 ----------
Ещё сделаю версию на порт 7FFD(7,6,5,3,2,1), на всяк случай.
Проверь еще работу SD с разными флешками и клавиатуру (any key) опрос с разной маской #xxFE.
---------- Post added at 23:49 ---------- Previous post was at 23:46 ----------
Не правильно порты Soundrine, (ковокс не работает и нет стерео), переделываю.
Soundrave соответствует v1.05, порт #FB не реализован, можно добавить.
vlad, диапазон значений фильтра в модуле клавиатуры какой? Я пока безуспешно пытаюсь заставить работу клавиатуры с твоим модулем.
---------- Post added at 14:17 ---------- Previous post was at 12:24 ----------
Не удается запустить клавиатуру. :(
Вставил свой модуль.
Привинтил ТВ-RGB выход, переключаю по кнопочке F7. Стало удобно работать, не нужно перетыкать шнур монитора то в ПЦ, то в u9 :) Завел сигналы на ТВ-тюнер и смотрю картинку в окне тюнера.
диапазон значений фильтра в модуле клавиатуры какой? Я пока безуспешно пытаюсь заставить работу клавиатуры с твоим модулем.
Не знаю, но по каким то неизвестным мне причинам у меня все работает :(
Попробуй увеличить/уменьшить в два раза значение clockFilter или ticksPerUsec. Светодиоды на клавиатуре хоть работают? Нужно знать причину отказа клавиатуры, я просто не уверен, что и твой модуль работает на других клавиатурах, согласен? Мышь работает?
Привинтил ТВ-RGB выход, переключаю по кнопочке F7. Стало удобно работать, не нужно перетыкать шнур монитора то в ПЦ, то в u9 Завел сигналы на ТВ-тюнер и смотрю картинку в окне тюнера.
Схемка сопряжения имеется? А то аналогичная ситуация с передергиванием шнура :)
Схемка сопряжения имеется? А то аналогичная ситуация с передергиванием шнура :)
Блин, и у меня точно такая же ситуация.:(
Попробуй увеличить/уменьшить в два раза значение clockFilter или ticksPerUsec
Пробовал значения фильтра от 8 до 16. Неа :(
Светодиоды на клавиатуре хоть работают?
Конечно нет, клава ведь не коннектится.
я просто не уверен, что и твой модуль работает на других клавиатурах, согласен?
Тут фишка в том, что головной модуль у меня используется фирменный, от Альтеры. Здесь статистика уже измеряется тысячами, куда его только не пихали :) Жалоб небыло.
Мышь работает?
Заработала после привинчивания моего модуля клавы.
Схемка сопряжения имеется? А то аналогичная ситуация с передергиванием шнура
Нормальную схему рассчитаю за выходные. Сейчас тупо три резистора на цвет (1к, 470е, 220е) и 13 вывод с синхросмесью. Картинка разумеется на 3+ :) Надо рассчитать резисторы с учетом имеющихся на плате и синхру подвести через транзисторный ключик.
Вот картинко с тюнера, чтоб было наглядно.
Тут фишка в том, что головной модуль у меня используется фирменный, от Альтеры. Здесь статистика уже измеряется тысячами, куда его только не пихали Жалоб небыло.
Согласен, пусть остается фирменный. На поиск несоответствия нет времени, а может и смысла... хотя...
Soundrave соответствует v1.05, порт #FB не реализован, можно добавить.
Добавляю, но я в замешательстве. Нашёл в каком то журнале, так тама ещё и вывод в порт 255 реализован - ставить его?
Не знаю, но по каким то неизвестным мне причинам у меня все работает
Ага, и у меня обе клавы работают, и мышь, белая, шариковая. Надо ещё оптику Genius попробовать.
Согласен, пусть остается фирменный.
У него нет отправки команд в клавиатуру.
Интересует поведение вг при подачи (других комбинаций бит не входящих в таблицу) команд второго и третьего типа.
Black_Cat
26.02.2011, 19:53
Добавляю, но я в замешательстве. Нашёл в каком то журнале, так тама ещё и вывод в порт 255 реализован - ставить его?
lisica, ты собираешься со всех ламерсих журналов схемки прикручивать? :) Подскажу где их много: http://zxdn.narod.ru/ ..могу представить какой в итоге будет глюкодром.. ;)
Самая корректная схема соунддрайва здесь: SoundDrive v.1.6 (http://zx.clan.su/forum/8-80-1#519) :)
Интересует поведение вг при подачи (других комбинаций бит не входящих в таблицу) команд второго и третьего типа.
Наверное не реагирует...
---------- Post added at 18:59 ---------- Previous post was at 18:57 ----------
lisica, ты собираешься со всех ламерсих журналов схемки прикручивать?
Если я сомневаюсь - то спрашиваю у знающих. Если знаешь - то ответь по существу!
Вот мое решение проблемы :)
Резисторы на:
R - 470е
G - 0е
B - 1к2
Syn (13) - 100е
Соединил выходы с резисторов и подал на видеовход тюнера.
Земля - к земле.
Включение/выключение ТВ/VGA - ножка GPI. Посадил туда перемычку чтобы не тыркать клавиатуру лишний раз, а отключать ТВ просто снятием перемычки.
Прошивку класть смысла нет, у меня она "особенная" изза клавиатурного модуля, поэтому по кускам:
signal videoout_mode : std_logic;
signal hsync : std_logic;
signal hsync_buf : std_logic;
signal vsync_buf : std_logic;
.........................
process(clk_cnt,vid_h_cnt)
begin
if clk_cnt(0)'event and clk_cnt(0) = '1' then
if vid_h_cnt = 328 then hsync <= '0'; end if;
if vid_h_cnt = 356 then hsync <= '1'; end if;
end if;
end process;
...........................
VGA_R2 <= vid_sin_bus(5) when videoout_mode = '0' else vid_sout_reg(5);
VGA_G2 <= vid_sin_bus(4) when videoout_mode = '0' else vid_sout_reg(4);
VGA_B2 <= vid_sin_bus(3) when videoout_mode = '0' else vid_sout_reg(3);
VGA_R1 <= vid_sin_bus(2) when videoout_mode = '0' else vid_sout_reg(2);
VGA_G1 <= vid_sin_bus(1) when videoout_mode = '0' else vid_sout_reg(1);
VGA_B1 <= vid_sin_bus(0) when videoout_mode = '0' else vid_sout_reg(0);
VGA_R0 <= 'Z';
VGA_G0 <= 'Z';
VGA_B0 <= 'Z';
hsync_buf <= vid_hsync;
vsync_buf <= vid_vsync;
VGA_HSYNC <= hsync_buf when videoout_mode = '0' else not(hsync xor vsync_buf);
VGA_VSYNC <= vsync_buf;
videoout_mode <= '0' when GPI = '1' else '1';
Собственно, всё.
Black_Cat
26.02.2011, 21:01
Если знаешь - то ответь по существу! я те уже ответил по существу сцылкой на единственно грамотную схему, всё остальное можешь сразу отправлять в печку
Вот мое решение проблемы
Мне легче, имею два монитора - перевтыкаться не надо.
---------- Post added at 20:10 ---------- Previous post was at 20:08 ----------
я те уже ответил по существу сцылкой на единственно грамотную схему, всё остальное можешь сразу отправлять в печку
Подставил по той схеме - компилится. Теперь дай ссылочку на музон с CD, чтоб проверить.
Код изменил, хотя толку от этого мало. Прикрути лучше UDMA SC.
process(CLK, ENA)
begin
if (ENA = '0') then
outa <= (others => '0');
outb <= (others => '0');
outc <= (others => '0');
outd <= (others => '0');
elsif (CLK'event and CLK = '1') then
if ((A = X"0F" or A = X"79") and nIORQ = '0' and nWR = '0' and DOS = '0') then
outa <= DI;
elsif ((A = X"1F" or A = X"7B") and nIORQ = '0' and nWR = '0' and DOS = '0') then
outb <= DI;
elsif ((A = X"4F" or A = X"F9") and nIORQ = '0' and nWR = '0' and DOS = '0') then
outc <= DI;
elsif ((A = X"5F" or A = X"FB") and nIORQ = '0' and nWR = '0' and DOS = '0') then
outd <= DI;
end if;
end if;
end process;
---------- Post added at 21:46 ---------- Previous post was at 21:41 ----------
Можно переделать с маской, для одиночной записи сразу в 1/2/3/4 регистра.
Прикрути лучше UDMA SC.
А что это такое, и где о нём почитать.
Код изменил, хотя толку от этого мало.
Я подставил уже из ссылки БК-0010, вроде играет.
Не знаю, надо ли - сделал в одной прошивке два маппера под разные ромы. (7FFD(5,7,6,2,1,0) и DFFD) Переключаются F10. Вот, только как его индицировать?
Вроде заработала клавиатура с модулем Влада. Выясняю детали...
Black_Cat
27.02.2011, 00:00
Прикрути лучше UDMA SCчёт есть у мну сомнение что 8237 у вас в FPGA влезет
solegstar
27.02.2011, 02:19
Я подставил уже из ссылки БК-0010, вроде играет...
извиняюсь, что вмешиваюсь, но можно я свои пять копеек вставлю... возможно в конфиг soundrive добавить порт #B3 (GS-covox, который почему-то выкинул БК-0010 из своей схемы) и порт Scorpion`a #DD.
to БК-0010, по твоей схеме, второй режим soundrive полезен только портом #FB, ну и теоретически лучшей дешифрацией (хотя, я так понял на практике не проверялось)... откуда взялись порты #79, #7B? зачем они вообще нужны, если стандартные для второго режима были (лет этак 10-12) #F1, #F3 (на который отзывался порт #B3 GS-Covox), ну и конечно #F9 и #FB?.. но это уже не в этой теме обсуждать...
Black_Cat
27.02.2011, 03:20
возможно в конфиг soundrive добавить порт #B3 (GS-covox, который почему-то выкинул БК-0010 из своей схемы) и порт Scorpion`a #DD.не надо этот огород городить. Есть два наиболее распространённых стандарта - Covox (одноканальный) - для всего мира, и SounDrive (четырёхканальный) - в нашем узком кругу. Всё остальное - это конверсии из этих стандартов. Нет ничего ценного и уникального, чего нет на ковоксе и соунддрайве, в других реализациях портов, и поддерживать их нет смысла. Таких портов не два, их есть куча, и под них никто ничего не пишет, в лучшем случае существуют старые конверсии с ковокса. Ты предлагаешь все их прикрутить? Вобщем FPGA большая, можно весь хлам в неё запихать если задаться целью.. :)
---------- Post added at 03:20 ---------- Previous post was at 02:55 ----------
vlad, лучше проясни всёж вопрос на счёт 8237, она реально влезет в FPGA, ..и ещё пара таймеров 8254?
лучше проясни всёж вопрос на счёт 8237, она реально влезет в FPGA, ..и ещё пара таймеров 8254?
Сейчас, серьезно прикручиванием UDMA никто не занимается, т.к. я пока не знаю кто уже реально ее прикрутил в FPGA. По поводу влезет или нет, то думаю влезет, ведь не все режимы чипов используются, да и повторять их (как есть) нет смысла, просто будет взят алгоритм работы.
Не знаю, надо ли - сделал в одной прошивке два маппера под разные ромы. (7FFD(5,7,6,2,1,0) и DFFD) Переключаются F10. Вот, только как его индицировать?
Повторюсь с вопросом - надо это, или оставить две разные прошивки под разные мапперы?
Я, вот подумал, может совместить переключатель мапперов с переключателем фреймов - режим экрана - пентагон и режим маппера тож пентагон?
---------- Post added at 09:53 ---------- Previous post was at 09:10 ----------
Влад, подставил FB, всё равно старый, добрый Covox не играет.
---------- Post added at 10:02 ---------- Previous post was at 09:53 ----------
Разобрался - заиграл covox
Повторюсь с вопросом - надо это, или оставить две разные прошивки под разные мапперы?
Я, вот подумал, может совместить переключатель мапперов с переключателем фреймов - режим экрана - пентагон и режим маппера тож пентагон?
Думаю смешивать "все в одном" ненужно, хотя и не мешало бы :) если: конфигурационный файл, который должен подгружаться с SD и настраивать систему. С другой стороны, по предложению Ewgeny7, конфигурацию стоит разместить в (NVRAM) PCF8583, так вот, нужен стандарт.
+ возможность обновления конфигурации "на лету"
А не могли бы вы просветить на этот счет? Это как?
Думаю смешивать "все в одном" ненужно, хотя и не мешало бы если: конфигурационный файл, который должен подгружаться с SD и настраивать систему. С другой стороны, по предложению Ewgeny7, конфигурацию стоит разместить в (NVRAM) PCF8583, так вот, нужен стандарт.
Значит давайте определимся где и куда и откуда. Но для карточной конфигурации ромов версия рабочая.
Я делаю механизм запуска теневой страницы альтераПЗУ с программой записи данных в PCF по нажатию кнопки F11.
Я делаю механизм запуска теневой страницы альтераПЗУ с программой записи данных в PCF по нажатию кнопки F11.
Это как? Совместно с вкл. Soundrive? Вроде при нажатии на ScrollLock этот механизм срабатывает?
---------- Post added at 13:25 ---------- Previous post was at 13:24 ----------
Хотя, может если флажки расставить...
Это как? Совместно с вкл. Soundrive? Вроде при нажатии на ScrollLock этот механизм срабатывает?
Очепятка, F2 (как "сохранение" в ПЦ).
Использую механизм прерываний по INT, вместо ПЗУ в обработчик будет подставляться своя теневая ПЗУ. По выходу с обработчика на место возвращается основное ПЗУ.
---------- Post added at 14:30 ---------- Previous post was at 14:29 ----------
Вроде при нажатии на ScrollLock этот механизм срабатывает?
Какой?
Просмотрел DMA USC. Если откинуть то что не востребовано в 8254 и 8237 то для FPGA пакуется все в разы и напрашивается вторая версия :) возможно 16-разрядная, и возможно с перезапуском семпла на конкретном адресе :) Понятно, что это никому ненужно...
---------- Post added at 13:38 ---------- Previous post was at 13:32 ----------
Использую механизм прерываний по INT, вместо ПЗУ в обработчик будет подставляться своя теневая ПЗУ. По выходу с обработчика на место возвращается основное ПЗУ.
Может зразу прикрутить ультру, с ее аналогичным механизмом обработки прерываний, для теневых подпрограмм (BIOS). Хотя это уже не входит в данную конфигурацию.
---------- Post added at 13:41 ---------- Previous post was at 13:38 ----------
Можно по этой F2 сделаю OSD?
Можно по этой F2 сделаю OSD?
занято, занято! :)
OSD логичней было бы на F1, типа "help" в отладке :)
Black_Cat
27.02.2011, 15:27
кто уже реально ее прикрутил в FPGADMAUSC - никто, 8237 - ZEK давал как-то сцылку, занимает что-то около 30% DE1 (на сегодня реализована токо частично)
---------- Post added at 15:27 ---------- Previous post was at 15:21 ----------
По поводу влезет или нет, то думаю влезет, ведь не все режимы чипов используютсят.е. ты предлагаешь сделать эмулятор под те три программы, что юзают DMAUSC, и всё.. а если появится четвёртая программа, юзающая DMA по другому - то всё, приплыли :)
да и повторять их (как есть) нет смысла,почему?
8237 - ZEK давал как-то сцылку, занимает что-то около 30% DE1 (на сегодня реализована токо частично)
но там можно почистить и выкинуть часть режимов, как то "Передача память-память" (которая так нигде и не использовалась), "Тестовый режим"(толку от него ноль, только торможение), "Сжатие времени передачи" (для спека не актуально), "Тип передачи: каскадный режим", это так - навскидку, можно полистать даташит и найти еще что выкинуть.
---------- Post added at 14:32 ---------- Previous post was at 14:31 ----------
Если откинуть то что не востребовано в 8254
Отличий 8253 от 8254 не знаю, но в DMA юзалась 8253 (ВИ53).
Black_Cat
27.02.2011, 15:58
Я, вот подумал, может совместить переключатель мапперов с переключателем фреймов - режим экрана - пентагон и режим маппера тож пентагон?лучше отдельно включать тайминги ZX48/Pentagon. А на какой архитетуре портов - это дело самих юзеров, вон Pentagon-1024SL v.1.4 - это по портам KAY, но с пентовыми таймингами
---------- Post added at 15:45 ---------- Previous post was at 15:34 ----------
конфигурационный файл, который должен подгружаться с SD и настраивать систему. С другой стороны, по предложению Ewgeny7, конфигурацию стоит разместить в (NVRAM) PCF8583, так вот, нужен стандартконфигурационные файлы должны применяться для загрузи разных архитетур.. типо ZX, Орион, Вектор и т.д. А внутри одной архитектуры все переключения на разные клоны делать портами. В этом случае будет возможно менять конфигурацию на лету.. типо - один кадр - Пент, а на другой уже SKAY и т.д. Я не предлагаю менять их каждый кадр, имеется ввиду быстрота смены
---------- Post added at 15:47 ---------- Previous post was at 15:45 ----------
Отличий 8253 от 8254 не знаю
в 54 исправлены ошибки и частота 8MHz
---------- Post added at 15:58 ---------- Previous post was at 15:47 ----------
там можно почистить и выкинуть часть режимов, как то "Передача память-память" (которая так нигде и не использовалась), "Тестовый режим"(толку от него ноль, только торможение), "Сжатие времени передачи" (для спека не актуально), "Тип передачи: каскадный режим", это так - навскидку, можно полистать даташит и найти еще что выкинуть.режим память-память в версии DMAUSC под NemoBus v.2.0 расширен до возможностей Z80DMA, т.е. кроме mem->mem, добавлены mem->I/O, I/O->mem, I/O->I/O. Кроме того в каскадном режиме включен второй 8237. И вообще, они оба используются как системные DMA со всеми вытекающими.
лучше отдельно включать тайминги ZX48/Pentagon. А на какой архитетуре портов - это дело самих юзеров
Знач ставлю пока на F10.
конфигурационные файлы должны применяться для загрузи разных архитетур.. типо ZX, Орион, Вектор и т.д. А внутри одной архитектуры все переключения на разные клоны делать портами.
Если и делать портами, то только, когда активен CD загрузчик (когда грузится ром).
А сами конфиги конкретного клона всунуть в остальные ячейки RTS.
Black_Cat
27.02.2011, 18:09
Знач ставлю пока на F10.имхо, на лету это делать нет необходимости, токо кнопку занимать. Эт надо в сетапе выставлять при первоначальной загрузке. В Хiмеr'e например, конфигурация прописывается в спец регистрах в защищённом режиме ОС (по типу режима Kernel в ReVerSe). В этих регистрах указывается полная конфигурация виртуальной машины XVM, в которой и будет запускаться спековский софт. Возможно динамическое переключение между несколькими XVM в режиме вытесняющей многозадачности или реалтайм многозадачности.
---------- Post added at 18:09 ---------- Previous post was at 17:54 ----------
сами конфиги конкретного клона всунуть в остальные ячейки RTSТ.к. обращение в RTC очень медленное, а динамическое изменение конфигурации должно происходить быстро, то в RTC есть смысл сохранять параметры токо для первоначальной инициализации. Память RTC - это токо зеркало, которое не влияет на параметры, меняющиеся динамически. Т.е. юзером через сетап сначала прописывается значение в порт, а уже потом это дублируется в памяти RTC.
режим память-память в версии DMAUSC под NemoBus v.2.0
а на u9 есть NemoBUS?
Black_Cat
27.02.2011, 18:27
Да, забыл сказать, что в Хiмеr'e динамически можно переключаться только между четырьмя спековскими архитектурами портов: SKAY, Pentagon, Profi(токо спековский режим), +3.
---------- Post added at 18:27 ---------- Previous post was at 18:22 ----------
а на u9 есть NemoBUS?ты хочешь на u9 NemoBus? :) Знаешь, нет ничего нереального :) - последовательный интерфейс + южный мост - и подключай хоть NemoBus, хоть ISA.. :)
имхо, на лету это делать нет необходимости, токо кнопку занимать.
Пока тырдос нормальный для DFFD не появится - висеть переключателю на кнопке.Во всяком случае я для себя, а то, бывает мучаешься с прошивкой, а оказывается дос виноват. Да, и я же сказал пока ставлю - для отладки. А может и приживётся там.
Black_Cat
27.02.2011, 19:07
Пока тырдос нормальный для DFFD не появится я говорил о таймингах, а не о портах. Тайминги на лету переключать нет смысла, и привязывать их к конкретной архитектуре портов тож. Тайминги выбираются - отдельно, порты - отдельно.
Кто хотел понять тот понял.
Блэк Кэт опять написал пост №666. Это уже не случайность, а диагноз :)
По поводу ПДП. Делаю для нижнего уровня: 4 канала (память <-> порт); 2 канала (память <-> память). Развернутые 25 битовые регистры адреса, т.е. доступ канала сразу ко всей памяти 32Мбайт. На верхнем уровне будет одна 8237.
Black_Cat
01.03.2011, 12:43
Делаю для нижнего уровня: 4 канала (память <-> порт); 2 канала (память <-> память). Развернутые 25 битовые регистры адреса, т.е. доступ канала сразу ко всей памяти 32Мбайт. На верхнем уровне будет одна 8237. т.е. опять две разных архитектуры.. а если у другого клона будет 16Mb, а у третьего 256Mb - то под каждый из них надо писать типо свой софт под разную разрядность.. замечательная перспектива - очередной Спринтер обеспечен! Делай монолитную архитектуру! Всё, что выходит за рамки монолитной архитектуры - нафиг! Выигрыш на увеличении разрядности DMA - мизерный. Ничего страшного если придётся программно несколько раз перезапускать DMA, зато оно везде будет работать одинаково!
т.е. опять две разных архитектуры..
Нет, архитектура одна. Здесь разговор идет о нижнем и верхнем аппаратном уровне. Пример - драйвер, через который программа взаимодействует с устройством через понятные ей рычаги :). Так, что о какай несовместимости идет речь?
---------- Post added at 12:05 ---------- Previous post was at 12:03 ----------
Все же, добавлю технологию - "виртуальный порт" из ultra. Решит на программном уровне множество задач :)
---------- Post added at 12:25 ---------- Previous post was at 12:05 ----------
Все же, добавлю технологию - "виртуальный порт" из ultra. Решит на программном уровне множество задач
Емкость Cyclone не резиновая, так что часть возьмет на себя второе ядро (эмуляция ВГ, DMA USC, GS...), ну пока об этом рано говорить... сложность такой системы в разы... да, и код под это все писать нужно, посмотрим...
Black_Cat
01.03.2011, 13:34
Здесь разговор идет о нижнем и верхнем аппаратном уровне.я знаю токо один аппаратный уровень - собсно единственный аппаратный уровень - уровень железа. Выше него - только программные уровни. Поэтому не оч понятно о каких двух аппаратных уровнях речь..
Пример - драйвер, через который программа взаимодействует с устройством через понятные ей рычаги . Так, что о какай несовместимости идет речь?
Про рычаги в драйверах - эт понятно, но вот допустим есть конкретная программа, которая знает о 25 разрядной шине и соответственно оперирует 25 разрядными словами.. Оперирует 25 разрядными словами чисто из соображений лени.. типо - а зачем другими, если DMA 25 разрядный.. Ведь если в прграмме делать разрядность другую, отличную от 25, то можно и 16 разрядов сделать как в 8237.. Но тогда почему сразу 8237 не поставить, а лепить какую-то отсебятину? Логика понятна? Какой смысл отсебятины?
---------- Post added at 13:34 ---------- Previous post was at 13:26 ----------
дык вот, такую 25 разрядную программу перетаскивать на другой клон, у которого DMA доустим 19 разрядный - это не драйвер переписать, это всю прогу переделывать надо в особо критичном случае.. И кто будет писать эти драйвера под тыщу клонов с сотней разных DMA?
Ты понимаешь, что ты закладываешь бомбу под всё дальнейшее развитие?
Black_Cat
01.03.2011, 21:04
Всему свое время.... :) будешь осчастливливать человечество? :) Ох, как показывает практика - человечество бывает очень неблагодарным. :) ..особенно когда его осчастливливают против воли.. :)
будешь осчастливливать человечество? Ох, как показывает практика - человечество бывает очень неблагодарным. ..особенно когда его осчастливливают против воли..
Решил пока ограничиться советами БК-0010 :) Доделываю DMA USC.
Ewgeny7, скинул на ящик пару ядрешек 8237 и 8254 думаю это поможет вырваться в перед :) хотя многое зависит как ими распорядиться...
vlad, спасибо!
У меня тут другое творится - по "просьбе товарищей" пишу туториал в трёх частях о ваянии спектрума на uX_Reverse. Своеобразный учебник для тех, кто уже что-то понимает в VHDL, но интересен принцип построения компьютеров на ПЛИС. Цель - Спектрум-48.
Сделал за выходные мануал по железу u9 Reverse, хотел выложить, но он оказался больше 640К :( думаю над частями...
Сделал за выходные мануал по железу u9 Reverse
Во, документации будет изрядно :)
но он оказался больше 640К
"яндекс народ" рулит.
Закончил "самый маленький спектрум" на u9. Без клавиатуры, поскольку речь шла о создании видеогенератора. Теперь надо художественно расписать по шагам теорию и практику...
Black_Cat
08.03.2011, 00:51
Сделал за выходные мануал по железу u9 Reverse, хотел выложить, но он оказался больше 640К думаю над частями... а чего думать? выкладывай здесь: http://zx.clan.su/forum/7-69-1
Сделал за выходные мануал по железу u9 Reverse, хотел выложить, но он оказался больше 640К
Закинул на сайт "Скорпиона", читать здесь (http://scorpion-zs.narod.ru/U9EP3C_FPGA_Development_Kit.pdf).
А чего на англицком? Международные стандарты?
пишу туториал
Написал половину. Поразмыслив, правильно ли я понимаю суть задачи, решил выложить кусок мануала. Всё ли там понятно?
Хоть здесь на русском - уже за это спасибо!
ооо!! продолжение. спасибо :)
немного оффтоп:
Пытаюсь запустить проц T80 на плис... молчит гад.. на M1 глухо, RD/WR молчат
process (clock, hcnt, vcnt)
begin
if (clock'event and clock = '1') then
if (hcnt > 301 and hcnt < 417) or (vcnt(9 downto 1) > 224 and
vcnt(9 downto 1) < 285) then
blank <= '1';
else
blank <= '0';
end if;
end if;
end process;
А разве blank не активируется '0'?
---------- Post added at 18:01 ---------- Previous post was at 17:54 ----------
if (vid_h_cnt < 301 or vid_h_cnt > 417) and (vid_v_cnt(8 downto 0) < 224 or vid_v_cnt(8 downto 0) > 285) then
vid_blank <= '1';
else
vid_blank <= '0';
end if;
Это из рабочего проэкта.
Попутаны знаки ><
---------- Post added at 18:02 ---------- Previous post was at 18:01 ----------
Или присвоение переставить, хотя бы...
blank <= '0';
else
blank <= '1';
end if;
примерно...
lisica, ты не смотри в наш проект. Здесь многое переиначено в более толковую сторону.
Всё правильно в туторе написано, и проект работает у меня на u9 :)
---------- Post added at 19:09 ---------- Previous post was at 19:08 ----------
Попутаны знаки ><
ничего не попутано.
Вот сырок и .sof
Хотя, для начала не мешало бы добавить вводную статью типа про логику, дешифраторы, счетчики, регистры... Просто столкнулся с асинхронными и синхронными процессами, где требуется согласование разных частот работы схем... где использую двухступенчатые триггеры мастер-помошник...
Хотя, для начала не мешало бы добавить вводную статью типа про логику, дешифраторы, счетчики, регистры...
Подразумевается, что чел уже умеет это. Иначе это получится талмуд толщиной с энциклопедию.
Просто столкнулся с асинхронными и синхронными процессами, где требуется согласование разных частот работы схем...
С асинхронностью в этом проекте или вообще? ПЛИС по любому предпочитает синхронность, это ёжику понятно. Но у нас процессом рулит процессор, который за счет своих тормозов прекрасно справляется с многими вольностями.
Во к примеру:
LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL;
USE IEEE.std_logic_unsigned.ALL;
--************************************************** ********************************************
-- Input/Output Declarations
--************************************************** ********************************************
ENTITY AddrSync IS
PORT (
RESET : IN std_logic;
AIN : IN std_logic_vector(3 DOWNTO 0);
nIORIN : IN std_logic;
nIOWIN : IN std_logic;
nCS : IN std_logic;
CLK : IN std_logic;
SyncAddrOut : OUT std_logic_vector(3 DOWNTO 0)
);
END AddrSync;
--************************************************** ********************************************
-- Architecture Body
--************************************************** ********************************************
ARCHITECTURE rtl OF AddrSync IS
SIGNAL AddrVal : std_logic_vector(3 DOWNTO 0);
BEGIN
--
-- AddrLatchProc: The.
--
AddrLatchProc: PROCESS ( nCS, nIORIN, nIOWIN, AIN, AddrVal, RESET )
BEGIN
IF ( RESET = '1' ) THEN
AddrVal <= "0000";
ELSIF ( (nCS = '0') AND ( (nIOWIN = '0') OR (nIORIN = '0') ) ) THEN
AddrVal <= AIN;
ELSE
AddrVal <= AddrVal;
END IF;
END PROCESS AddrLatchProc;
--
-- WriteSyncProc: The mode register synchronizer. Synchronizes
-- changes in mode register data to the internal
-- timing domain i.e. the falling edge of CLK.
--
WriteSyncProc : PROCESS ( CLK, RESET )
BEGIN
IF ( RESET = '1' ) THEN -- Asynchronous clear
SyncAddrOut <= "0000";
ELSIF ( CLK'EVENT AND (CLK = '1') ) THEN
SyncAddrOut <= AddrVal;
END IF;
END PROCESS WriteSyncProc;
END rtl;
Выше выложил файлик прошивки
---------- Post added at 19:25 ---------- Previous post was at 19:23 ----------
Во к примеру
Ага, в первом процессе синтезируется защелка вместо триггера, Кактус будет материться. Этого надо избегать. Проще всего заключить процесс в "клок".
Если в общем, то все отлично!
---------- Post added at 18:32 ---------- Previous post was at 18:27 ----------
в первом процессе синтезируется защелка вместо триггера, Кактус будет материться. Этого надо избегать. Проще всего заключить процесс в "клок".
Ну насчет материться, может... но таким методом удастся засинхронизировать процесс с меньшей частотой клока.
Всё, я пошел в F.E.A.R. поиграю в награду :)
---------- Post added at 19:33 ---------- Previous post was at 19:32 ----------
Ну насчет материться, может... но таким методом удастся засинхронизировать процесс с меньшей частотой клока.
Возможно. Поэтому правила правилами, а мозги и интуиция полезней :)
---------- Post added at 19:35 ---------- Previous post was at 19:33 ----------
Но защелки и в самом деле могут работать непредсказуемо, сталкивался с этим.
Прочитал... Увлекательно вышло! Ждём продолжения. Тогда и на счёт бланка понятно будит.
---------- Post added at 18:38 ---------- Previous post was at 18:36 ----------
Жень, извини, если что. Просто я подумал, что ты очепятался.
Да, еще совет, не мешает хоть изредка после компиляции заглядывать в RTL Viewer и Chip Planner... Пути кактуса могут быть непредсказуемыми со взгляда только с одной стороны. Да, и для конкретной архитектуры свои конкретные заморочки (при оптимизации).
Но защелки и в самом деле могут работать непредсказуемо, сталкивался с этим.
Вот, не совсем как хотелось (отличия с первым примером явно видны). Получили мастер-помощник :) а, хотели к примеру просто защелку по (nCS = '0') AND (nIORIN = '0') с синхронным триггером...
LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL;
USE IEEE.std_logic_unsigned.ALL;
--************************************************** ********************************************
-- Input/Output Declarations
--************************************************** ********************************************
ENTITY ReadSync IS
PORT (
RESET : IN std_logic;
CLK : IN std_logic;
nIORIN : IN std_logic;
nCS : IN std_logic;
ReadEnable : OUT std_logic
);
END ReadSync;
--************************************************** ********************************************
-- Architecture Body
--************************************************** ********************************************
ARCHITECTURE rtl OF ReadSync IS
SIGNAL SampledRead : std_logic;
SIGNAL SyncRead1 : std_logic;
SIGNAL SyncRead2 : std_logic;
BEGIN
--
-- ReadSampleProc:
--
ReadSampleProc: PROCESS ( nCS, nIORIN, CLK, RESET, SampledRead )
VARIABLE next_SampledRead : std_logic;
BEGIN
IF ( RESET = '1' ) THEN
next_SampledRead := '1';
ELSIF ( (nCS = '0') AND (nIORIN = '0') ) THEN
next_SampledRead := '0';
ELSE
next_SampledRead := '1';
END IF;
IF ( RESET = '1' ) THEN
SampledRead <= '1';
ELSIF ( CLK'EVENT AND (CLK = '1') ) THEN
SampledRead <= next_SampledRead;
END IF;
END PROCESS ReadSampleProc;
--
-- ReadSyncProc: The mode register synchronizer. Synchronizes
-- changes in mode register data to the internal
-- timing domain i.e. the falling edge of CLK.
--
ReadSyncProc : PROCESS ( CLK, RESET, SampledRead, SyncRead1, SyncRead2 )
VARIABLE next_SyncRead1 : std_logic;
VARIABLE next_SyncRead2 : std_logic;
BEGIN
next_SyncRead1 := SampledRead;
next_SyncRead2 := SyncRead1;
IF ( (SyncRead1 = '1') AND (SyncRead2 = '0') ) THEN
ReadEnable <= '1';
ELSE
ReadEnable <= '0';
END IF;
IF ( RESET = '1' ) THEN -- Asynchronous clear
SyncRead1 <= '1';
SyncRead2 <= '1';
ELSIF ( CLK'EVENT AND (CLK = '0') ) THEN
SyncRead1 <= next_SyncRead1;
SyncRead2 <= next_SyncRead2;
END IF;
END PROCESS ReadSyncProc;
END rtl;
Но это уже скорее для другого раздела :)
Всё, мануал по проектированию простого спектрума на ПЛИС закончил.
Держите :)
Также прилагаю сами файлы проекта к ентой книжке.
Мануал по написанию проекта (https://yadi.sk/i/9VCSdCPVmsmbu).
Отличная работа Ewgeny7.
Первый полный мануал по проектированию простого Speccy 48К на VHDL / Verelog (клавиатурный модуль).
bak файлы в проекте оставлены для истории... :)
bak файлы в проекте оставлены для истории...
Ээээ... ну да... надо подчистить :) Я проект ухнул на форум целиком, прямо от Квартуса оторвал. Только DB удалил для уменьшения размера.
---------- Post added at 15:01 ---------- Previous post was at 14:53 ----------
на VHDL / Verelog
Шпильку принял :)
Но я не стал добавлять твой модуль, поскольку он, зараза, все равно подглюкивает.
Причем я вроде выяснил, что проблема в низкоуровневом, мышка через раз инициируется после включения, нужно сброс давить. Камиль в своих контроллерах делал задержку после подачи питания, чтобы контроллеры клавы и мышки успевали проснуться.
Добавлю свои 5 копеек :) Спасибо автору за мануал.Очень познавательно. Прояснил для себя очень много непонятных моментов. Столкнулся с проблемой такого рода, монитор TFT Acer 19' Wide .. отказывается хавать 50Гц кадровую синхронизацию!!!.. минимум подавай ему 60 Гц. Долго бился с этим делом.. в конце концов по совету Жени поднял тактовую до 17 Мгц... изображение есть но теперь не запускается проц, но это уже отдельная история скорее связанная с переносом проекта на платформу Xilinx и его среду разработке ISE. Может быть кто подскажет как решить проблему с кадровой синхрой ? Покупать новый монитор не пойду :)
бордюры по вертикали урежь :)
Нормальное решение - настоящий скандаблер, с полем памяти на весь фрейм. На нем можно задавать любую частоту видеовывода при сохранении "внутренней" 50Гц. Но это будет по сути еще один видеогенератор, что не входит в рамки мануала.
---------- Post added at 16:28 ---------- Previous post was at 16:26 ----------
поднял тактовую до 17 Мгц... изображение есть но теперь не запускается проц
Это на проц не должно влиять вообще. В этом проекте проц прекрасно работает и на 7Мгц, так что твои 4Мгц ему совсем до лампочки. Скорее, оптимизатор что-то не то вытворяет...
---------- Post added at 16:30 ---------- Previous post was at 16:28 ----------
Попробуй отдельно процик синтезировать, и в симуляторе посмотреть что там на его лапках творится.
Нормальное решение - настоящий скандаблер, с полем памяти на весь фрейм. На нем можно задавать любую частоту видеовывода при сохранении "внутренней" 50Гц. Но это будет по сути еще один видеогенератор, что не входит в рамки мануала.
Уже было хотел делать такое (50Гц на ЭЛТ не сильно приятно смотрится), но обзавелся ЖК монитором, на нем все нормально... А в общем, если у Geban есть желание и время повозиться над скандаблером работающем на оптимальной частоте мона, то можно попробовать сделать... только память под вопросом.
Мне бы проц запустить сначала. Там ещё ISE ругался на модуль клавиатуры, я его заремил пока. потом разберусь.
Вчера попробовал просто проц сделать... дал тактовую, wait & nmi & busrq & rst = vcc
М1 на выходной пин... получил сипульсы 700КГц при тактовой около 4 МГц. Если я правильно понимаю то проц на каждые 4 такта выдает 1 импульс с М1... тогда получается все работает? или нет? А вот проц + ула выпендриваются
В ISE с Verilog был такой задрот что она не переваривает wire и reg которые объявляются позже чем юзаются, квактусу пофик
оно ругается на использование wire и reg перед их объявлением и объявление assign в самом начале файла. там надо просто местами блоки поменять. но дело не в кнопках пока. с этим я разберусь я думаю
Проект привязан всеми ногами с головой к конкретному железу - u9, внимательно просмотри и сравни связи портов, возможно что-то не туда прицеплено или отличается в управлении внешняя обвязка...
Память работает. т .е на экране при включении область видеопамяти заполнена хаотично цветными квадратами. Поидее если не подключать ПЗУ то на экране должен быть матрас. а его нет. отсюда я решил что процессор не работает. может быть я не прав
Geban, скинь сюда файлик .vhdl своего проекта... Вдруг чо там не так.
Ewgeny7, Где ты нашёл кота с таким взглядом? Как будто на нос муха села...
Спасибо за руководство. На очереди руководство подключения мафона, звука, 128, AY, кемпстона, и т д и т п... Осилишь?
PS А ещё и скандаблера со спеки на VGA.
На очереди руководство подключения мафона, звука, 128, AY, кемпстона, и т д и т п... Осилишь?
Осилю. Только это в планы не входит.
Ewgeny7, Где ты нашёл кота с таким взглядом? Как будто на нос муха села...
Спасибо за руководство. На очереди руководство подключения мафона, звука, 128, AY, кемпстона, и т д и т п... Осилишь?
PS А ещё и скандаблера со спеки на VGA.
После таких предложений, и не такое увидишь... :)
Так, вроди разобрался с процессором. Расскажите плз как осуществляется загрузка ПЗУ из SD карты. Я так понимаю что есть некая программа-загрузчик внутри плис, поторая обеспечивает минимальные функции работы с ФС карты.. типа поиска файла и его чтения с последующий загрузкой в определенную область памяти. да?
Так, вроди разобрался с процессором.
И в чем был баг?
Расскажите плз как осуществляется загрузка ПЗУ из SD карты. Я так понимаю что есть некая программа-загрузчик внутри плис, поторая обеспечивает минимальные функции работы с ФС карты.. типа поиска файла и его чтения с последующий загрузкой в определенную область памяти. да?
Да, есть загрузчик в (корке) ROM выполняющий загрузку ROM из FLASH или SD в область памяти, при этом может использоваться два контроллера (корки): SPI(FLASH <-> system bus) и ZCSPI (SD <-> system bus). system bus - это внутренняя системная шина, к которой имеет доступ CPU (через порта в/в) или DMA... Для конкретного железа могут быть свои задумки... можно подсмотреть в исходниках.
Баг был в черезмерной бдительности ISE. Подумываю и покупке 3го циклона для опытов.
С SD картой все понятно. В принципе все так как я думал.
Небольшое уточнение. )
Т.е внутри плис(или где то ещё) есть небольшой кусок кода для процессора, который исполняется при включении загружая основной ROM из того места где он хранится (FLASH,SD, etc.) и после говорит процессору что работать ему нужно с такого то адреса памяти (там где лежит основной ром)
так?
Вот, из за "доблесной" таможни, пришлось, лежащую без дела, U10, переделать под VGA кодер. Прошивку взял от ZST v1.2.
Сопротивления на RGBI, SSI, F14 - брал со схемы ZXKIT1. Подпаял прям на плате Робика.
Перемычки вставил в прошивку, выставив F14 и SET_FK_OUT в '0'.
Вобщем получилось для Робика и Пентагон 128 (1991гг.)
Ну, как то так...
Чуть не забыл...
Пины:
1 - масса
3 - R
4 - G
5 - B
6 - I
7 - SINCH
8 - F14
пришлось, лежащую без дела, U10, переделать под VGA кодер
Хорошо :)
Я свою лень так и не смог победить, а хотел то же самое сделать (свой VGA-конвертер отдал lupus'у в пользование).
Можно еще попробовать логический анализатор или осцил на u10 сделать...
axel_sunrise
20.04.2011, 13:25
а mp3 плеер или видео плеер реально сделать на U9 ?
а mp3 плеер или видео плеер реально сделать на U9 ?
На u10 в принципе возможно (есть audio codec), на u9 можно попробовать, если использовать корку mp3 decoder'a.
Повозился с тестовой конфигурацией Speccy, цель - получить оптимальные данные производительности платы u9. Вот черновик:
Контроллер SDRAM: SDRAMCLK=105MHz (1T=9,52ns) (WR/RD=5T, RFSH=7T)
Макс. частота работы CPU T80 ver303 без WAIT при работе с SDRAM: CPU0CLK = 21МHz (x6)
Временные окна доступа к SDRAM: T1,T2(CPU0RD/WR),T3,(T4 при М1)
С WAIT частота CPU0CLK = 105MHz (RD/WR=8T; OpCode M1= 9T(15T при RFSH))
В начале думал добавить Cache на двух-портовых M9K блоках и использовать FULL-PAGE BURST (1K за 1028 тактов SDRAMCLK) но передумал, не стал пока городить велосипед (не выбрал модель :). Решил ограничиться двух-портовым RAM 32Kx8bit в роли простого кеша, для возможности работы CPU0/1 на макс. частоте вне видео (SRAM 512K) и SDRAM (32M) страниц.
Макс. частота работы CPU T80 без WAIT с SRAM(10ns) или Dual-Port-RAM: CPU0CLK = 105МHz (x30)
...
---------- Post added at 23:47 ---------- Previous post was at 23:24 ----------
Вот, из за "доблесной" таможни, пришлось, лежащую без дела, U10, переделать под VGA кодер.
И чем u10 не NeoGS + TurboSound FM?
...
Видео(графика):
1) 640x480x8bpp@60Hz (SRAM= 307200 байт, Pixel clock= 25.2MHz)
2) 800х600х8bpp@60Hz (SRAM= 480000 байт, Pixel clock= 40MHz)
Линейное размещение в памяти, т.е. pixel(8bit), pixel(8bit)...
Видео(текст):
1) 80x30x16цветов на базовом 640х480@60Hz (2400 текст + 2400 атрибуты цвета= 4800 байт, знакогенератор= 4096, символ 8x16)
2) 128x48x16цветов на базовом 1024x768@60Hz (6144 текст + 6144 атрибуты цвета= 12288 байт, знакогенератор= 4096, символ 8x16)
Линейное размещение в памяти, т.е. символ(8bit), цвет(2+6bit)...
...
Попробуйте, и отпишитесь уже
Чёт не пойму в чём прикол нового загрузчика...
Да,и, фатал, в архиве старой версии (scl отдельные файлы не пишет).
И где неглюк делся?
Чёт не пойму в чём прикол нового загрузчика...
Прикол в том, что он новый :) А в чем собственно проблема? Замена конфигурации и ROM все исправит... :)
Black_Cat
22.05.2011, 11:52
Видео(графика):
1) 640x480x8bpp@60Hz (SRAM= 307200 байт, Pixel clock= 25.2MHz)
2) 800х600х8bpp@60Hz (SRAM= 480000 байт, Pixel clock= 40MHz)
Линейное размещение в памяти, т.е. pixel(8bit), pixel(8bit)...
Видео(текст):
1) 80x30x16цветов на базовом 640х480@60Hz (2400 текст + 2400 атрибуты цвета= 4800 байт, знакогенератор= 4096, символ 8x16)
2) 128x48x16цветов на базовом 1024x768@60Hz (6144 текст + 6144 атрибуты цвета= 12288 байт, знакогенератор= 4096, символ 8x16)
Линейное размещение в памяти, т.е. символ(8bit), цвет(2+6bit).
Это для Спетрума?
Если что, то для Спектрума уже есть продуманные графические и текстовые режимы:
Базовые видеоразрешения:
Графические разрешения:
1) Базовый: 256x192, производные до: 512х384 (воспроизводится в режиме VGA 640x480)
2) Базовый: 384х256, производные до: 768х512 (воспроизводится в режиме VGA 800x600)
Текстовые разрешения:
1) Базовый: 32x24, производные до: 64х48 (воспроизводится в режиме VGA 640x480, знакогенератор= 2k, символ 8x8)
2) Базовый: 48x32, производные до: 96х64 (воспроизводится в режиме VGA 800x600, знакогенератор= 2k, символ 8x8)
Везде структура расположения информации в памяти спектрумовская, т.е. разделение экрана на 3 или 4 части, по 8 блоков в каждой, сгруппированых по номерам строк в знакоместе.
Базовые видеорежимы:
Графические видеорежимы:
Атрибутные:
1) Стандартный, с производными до 16 байт на строку знакоместа
2) FlashColor, с производными до 16 байт на строку знакоместа
3) MultiColor, с производными до 16 байт на строку знакоместа
Безатрибутный:
4) 4Color per pixel, с производными до 16 байт на строку знакоместа
Текстовые видеорежимы:
Атрибутные:
1) Со стандартным атрибутом на знакоместо, с производными до 16 байт на строку знакоместа
2) С изменённым атрибутом на знакоместо, с производными до 16 байт на строку знакоместа
3) С изменённым атрибутом на символ, с производными до 16 байт на строку знакоместа
Безатрибутный:
4) 1bit per pixel (1 байт на строку знакоместа), с производными до 8 байт на строку знакоместа
Все текстовые атрибутные режимы имеют двукратное торможение процессора на экране, безатрибутный режим - без торможения. Знакогенератор может хранится в каждой странице экранного ОЗУ, и выбираться произвольно, количество знакогенераторов ограничено количеством страниц экранного ОЗУ.
Это для Спетрума?
Если что, то для Спектрума уже есть продуманные графические и текстовые режимы
цель - получить оптимальные данные производительности платы u9
Ну и отлично, тогда делать ничего и не будем, раз уже есть :)
Все текстовые атрибутные режимы имеют двукратное торможение процессора на экране, безатрибутный режим - без торможения. Знакогенератор может хранится в каждой странице экранного ОЗУ, и выбираться произвольно, количество знакогенераторов ограничено количеством страниц экранного ОЗУ.
Не совсем проникся сказанным, что тут можно еще добавить? разве что еще ручник.
Black_Cat
22.05.2011, 12:51
разве что еще ручник.Для текстовых режимов такое торможение не критично, там объём пересылаемых данных мизерный по сравнению с графикой, и даже с торможением, переписывание экрана получается в 4 раза быстрее, чем для аналогичного графического. Кроме того есть безатрибутный текстовый режим без торможения :) , в котором переписывание экрана в 8 раз быстрее аналогичного графического :) . Кроме того никто не отменял тупое мгновенное переключение страниц :) . Зато все режимы вписываются в структуру спектрумовского экрана, и легко масштабируются.
А исходников конфигурации speccy со sdram никто не выкладывал?
Извиняюсь если вопрос неприличный.
Все текстовые атрибутные режимы имеют двукратное торможение процессора на экране
ваще не понял - а нафига вапще чего то тормозить? в то время как все стараются ускорять, бк замедляет..ыыы.
А исходников конфигурации speccy со sdram никто не выкладывал?
Вопрос-то приличный, только... в теме вроде должны быть вывалены промежуточные версии для u9 с исходниками. Начиная с версии 03 используется SDRAM. Надо искать по страницам. Не найдешь - свистни, я тебе мылом отправлю.
axel_sunrise
18.06.2011, 14:57
А исходников конфигурации speccy со sdram никто не выкладывал?
Извиняюсь если вопрос неприличный.
вот всё что нашёл
Спасибо. а то я в свое время промахнулся с выбором девборды
и взял единственную на которой оказался вместо обычного SRAM
какойто синхронный SSRAM, который не с первого такта выдает данные.
вот и пытаюсь теперь спек или с внутренней памятью циклона запустить
которую (к моему сожалению) тоже можно сделать только синхронную.
или попробовать версию со сдрам переделать.
вот всё что нашёл
Вложения
U9EP3C.rar (498.4 Кб, 3 просмотров)
тут я исходников не нашел. все вроде уже скомпилировано.
я тебе мылом отправлю.
если несложно кинь на el1976 gmail com
или попробовать версию со сдрам переделать.
Используется корка контроллера MT48LC32M8A2 – 8 Meg x 8 x 4 banks, а у Вас какая память на плате?
а у Вас какая память на плате?
SSRAM IS61LPS51236A-200TQLI
2-Mbyte standard synchronous SRAM
Organized as 512K x 36 bits
SDRAM IS42S16160B
Two 32-Mbyte Single Data Rate Synchronous Dynamic RAM memory chips
Organized as 4M x 16 bits x 4 banks
Organized as 4M x 16 bits x 4 banks
Вам нужно смотреть проект Speccy2010.
Вам нужно смотреть проект Speccy2010.
Да, я туда поглядываю уже, это единственное что я со сдрам нашел
Только там в проекте еще арм используется
боюсь мне его оттуда не по силам выкинуть будет
Только там в проекте еще арм используется
боюсь мне его оттуда не по силам выкинуть будет
А что он Вас так испугал :) Возьмите за основу туториал (http://zx.pk.ru/showpost.php?p=364990&postcount=704) от Ewgeny7, он отлично подойдет как основа, а контроллер SDRAM из проекта Speccy2010. Все остальное, может только окончательно запутать... т.к. подгоняется под аппаратные ресурсы платы.
спасибо vlad'y за board!
теперь общие вопросы, спрошу и тут , ибо интересен не только спец ( как первый мой комп ) но и Z80:
- как я понял - SD обязательна ибо на ней boot.bin,
правильно? перейменованый zxm_bios_fatall_0_23.rom или какой последний сейчас?
- как например с SD работать? ( или просто моя SD не запустилась - не все читаются ? fat16 ( нет 32 ) )
в смысле просто запустить с нее пример какой игрушки и тд... .scl etc
- где можно посмотреть и может помочь с исходниками ( не VHDL - это нашлось , но того же zxm_bios_fatall_0_23.rom или какой последний? )
SD обязательна ибо на ней boot.bin,
Обязательна.
перейменованый zxm_bios_fatall_0_23.rom или какой последний сейчас?
Как его не назови - он должен после форматировки быть первым. Форматировать в фат 32!!!
- где можно посмотреть и может помочь с исходниками ( не VHDL - это нашлось , но того же zxm_bios_fatall_0_23.rom или какой последний?
Это просто образ пзу, адаптированный под конкретное железо.
- как например с SD работать?
В неглюке нажимаешь "F" - загрузится фаталл, в фатале переписываешь с карты на диск то, что нужно, нажимаешь ресет. (образы - scl, trd).
Потом работаешь с этим диском как обычно.
lisica спасибо , перешил u10ку .jic из u10_speccy_06c
записал на fat32 zxm_bios_fatall_0_23.rom но - на экране только мусор,
Scroll Lock - сброс , вроде работает с зеленым фоном
( вообщем как и http://www.zx.pk.ru/showpost.php?p=330807&postcount=383 )
.... еще не вижу что могло слететь...
вообщем SD была неправильная , решилось, Спектрум запустился на u10 :)
есть ли у кого проблемы с http://zx.pk.ru/showthread.php?t=6396
R-Type ?
С этой версией r-type проблем не было.
С этой версией r-type проблем не было.
спасибо - работает,
что может быть с первоначальной версией?
и еще - звук должен быть на u10 ?
и еще - звук должен быть на u10 ?
Да, выведен на USB, есть и на гребенке GPIO. Для VS так никто и не сделал.
---------- Post added at 17:54 ---------- Previous post was at 17:47 ----------
- как я понял - SD обязательна ибо на ней boot.bin,
правильно? перейменованый zxm_bios_fatall_0_23.rom или какой последний сейчас?
rom может быть записан в свободное место m25 (с 6-го сектора 60000h - 7FFFFh = 128К) и наличие на SD необязательно.
---------- Post added at 17:55 ---------- Previous post was at 17:54 ----------
В основном такие доработки можно заимствовать из конфигураций для u9.
В неглюке нажимаешь "F"
Сорри, U10 не делали с неглюком. Вот здесь (http://zx.pk.ru/showpost.php?p=316279&postcount=2) перекомпилил.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot