User Tag List

Страница 28 из 45 ПерваяПервая ... 242526272829303132 ... ПоследняяПоследняя
Показано с 271 по 280 из 448

Тема: ОРИОН-2010 на ПЛИС.

  1. #271

    Регистрация
    18.09.2009
    Адрес
    г.Ногинск, МО
    Сообщений
    246
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Ewgeny7 Посмотреть сообщение
    П.С. Запись в F500 (при включенном бите 7 в 4F) выствит на шину адреса содержимое F502 & F501, на шину данных пойдут данные с процессора, сигнал ROM_WE сработает по сигналу WR процессора.
    Правильно ли я понял алгоритм записи в ROM_Flash?
    - ставим перемычке JP2!
    - выключаем видеосинхронизатор: F800 (F8H) D1=1

    - записываем мл.байт адреса в F501 (29Н)
    - записываем ст.байт адреса в F502 (2АН)
    - включаем бит 7 в 4F, т.е. D7=1
    - записываем байт данных в F500 (28Н)
    - выключаем бит 7 в 4F, т.е. D7=0
    - готовим след.адрес и т.д.
    Цитата Сообщение от Ewgeny7 Посмотреть сообщение
    - Порт F766(4E). При нажатии...(метод Error404)
    Скажу сразу - это примитивный "метод"! Мало того, что он аппаратно сложнее в реализации (но, это уже проблемы Евгения!), так еще и не позволяет использовать клавиши E0+X. Я против этого "метода", и настаиваю на создании второго порта, где будет записываться один из трех вариантов: 00, E0, F0. Пусть это будет (если жалко "вентелей") не полноразмерный (8 бит) порт, а только 4 бита в младшей тетраде, где записывается старшая тетрада принятого байта. Тогда сдвижкой вправо через перенос легко проверить, это - E или F, а нулевое значение - и того проще. Думаю, так будет правильно!
    Если ты чего-то не знаешь, то это не значит, что этого не может быть.

  2. #271
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #272

    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,168
    Спасибо Благодарностей отдано 
    147
    Спасибо Благодарностей получено 
    84
    Поблагодарили
    55 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от pvlad Посмотреть сообщение
    - выключаем видеосинхронизатор: F800 (F8H) D1=1
    Точнее, D2='0', D1='1'. Проще всего просто записать 2 в порт F800.

    Цитата Сообщение от pvlad Посмотреть сообщение
    - выключаем бит 7 в 4F, т.е. D7=0
    не надо. Сигнал ROM_WE будет "дергаться" только при "00" на младших адресах шины. Т.е. запись в F501-02 не приведет к ложному срабатыванию.
    Остальное - правильно.
    не забываем, что запись во флеши делается блочно по 128 байт, затем небольшой перерыв (чтобы флеша успела переписать данные из своего буфера на матрицу памяти).

    Цитата Сообщение от pvlad Посмотреть сообщение
    Мало того, что он аппаратно сложнее в реализации
    Я сделал то, что аппаратно вообще почти не потребовало усилий. Два байта - это сложней сделать. Поэтому - не сейчас.
    ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
    Speccy-2007 128/AY/TR-DOS

    Сайт с документацией к "Scorpion ZS 256"

  4. #273

    Регистрация
    18.09.2009
    Адрес
    г.Ногинск, МО
    Сообщений
    246
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Ewgeny7 Посмотреть сообщение
    Сигнал ROM_WE будет "дергаться" только при "00" на младших адресах шины.
    Не понял. Что это значит - "дергаться"?
    Как я понял, включив D7(4Fh)=1, не выключаем до полного завершения прог.флешки, делая небольшие задержки после 128 байт? Т.е. пихаем по очереди байты в F501, F502 и F500 и так в цикле 128 +дальше!

    Цитата Сообщение от Ewgeny7 Посмотреть сообщение
    Я сделал то, что аппаратно вообще почти не потребовало усилий. Два байта - это сложней сделать. Поэтому - не сейчас.
    Что же здесь сложного - добавить еще восемь разрядов + выпустить на шину? Зато это полноценное решение, а не какие-то извращения.

    P.S. После записи байта, содержимое портов F501, F502 сохраняется, или надо обновлять постоянно? Я имею ввиду старший байт в F502 ?
    Последний раз редактировалось pvlad; 17.07.2010 в 20:17.
    Если ты чего-то не знаешь, то это не значит, что этого не может быть.

  5. #274

    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,168
    Спасибо Благодарностей отдано 
    147
    Спасибо Благодарностей получено 
    84
    Поблагодарили
    55 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от pvlad Посмотреть сообщение
    Не понял. Что это значит - "дергаться"?
    переключаться по сигналу WR процессора

    Цитата Сообщение от pvlad Посмотреть сообщение
    Как я понял,
    Да, верно.

    Цитата Сообщение от pvlad Посмотреть сообщение
    Что же здесь сложного - добавить еще восемь разрядов + выпустить на шину?
    Я не вижу сложностей в запуске табуретки в космос. Поскольку не представляю как это делается
    Я использую готовый альтеровский + самодельный контроллеры, которые в куче не предназначены для выдачи произвольного числа байтов, а только одного. Для выделения префиксов как раз и требуются пляски с бубном.
    Цитата Сообщение от pvlad Посмотреть сообщение
    Я имею ввиду старший байт в F502 ?
    Нет, регистры там хранят данные до выключения питания или перезаписи.

    ---------- Post added at 21:17 ---------- Previous post was at 20:27 ----------

    Как я буду делать второй байт - идеи есть. Тем паче, что это полностью стыкуется с моим стремлением полноценно задействовать всю клавиатуру (сейчас цифровое поле не интерпретируется как цифры).
    Буду отслеживать последовательность поступивших сканкодов в стейт-машине и ставить "флаги", на выходе это даст последний сканкод + флаги префиксов, на основе которых станет доступна почти вся клавиатура. Это дает возможность также передать в драйвер непосредственно сами префиксы (или просто биты состояния). Не очень представляю пока, в какой порт выдавать префикс. Для PS/2 мы используем F766 (4E). Но следующий порт F767 (4F) уже занят портом конфигурации.
    ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
    Speccy-2007 128/AY/TR-DOS

    Сайт с документацией к "Scorpion ZS 256"

  6. #275

    Регистрация
    18.09.2009
    Адрес
    г.Ногинск, МО
    Сообщений
    246
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Ewgeny7 Посмотреть сообщение
    Сигнал ROM_WE будет "дергаться" только при "00" на младших адресах шины.
    Извини, не правильно поставил акцент. Я не понял: "только при "00" на младших адресах шины". Как ROM_WE связан со значением "00" в мл.адресах?


    Цитата Сообщение от Ewgeny7 Посмотреть сообщение
    Я не вижу сложностей в запуске табуретки...
    Как я понял, "твой" нынешний контроллер принимает два байта по очереди. Получив в первом байте F0 (и проанализировав, что это именно F0!), ты запоминаешь где-то "1" и затем получив второй байт - принудительно устанавливаешь D7=1. Тогда что мешает переписать весь первый байт в какой-то дополнительный регистр без какого-либо анализа, а не устраивать проверку одного его разряд? А уже затем, этот дополнительный регистр выпустить на шину с другим адресом.

    П.С. Когда нас покидаешь, и уже к тебе можно не адресоваться на форуме?

    ---------- Post added at 21:31 ---------- Previous post was at 21:21 ----------

    Цитата Сообщение от Ewgeny7 Посмотреть сообщение
    Не очень представляю пока, в какой порт выдавать префикс. Для PS/2 мы используем F766 (4E). Но следующий порт F767 (4F) уже занят портом конфигурации.
    Ты немного опередил меня с ответом.
    У нас пока не утверждены ни какие "стандарты". Можешь лопатить как хочешь и переделать все адреса портов по своему усмотрению.
    Если ты чего-то не знаешь, то это не значит, что этого не может быть.

  7. #276

    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,168
    Спасибо Благодарностей отдано 
    147
    Спасибо Благодарностей получено 
    84
    Поблагодарили
    55 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от pvlad Посмотреть сообщение
    Как ROM_WE связан со значением "00" в мл.адресах?
    Просто команда LD (F500),A запишет содержимое А в ячейку ОЗУ с адресом F500.
    Но если мы включим бит 7 порта 4F, то по приведенной выше команде события пойдут по другому - данные с процессора также пойдут на внешнюю шину данных (на которой висят и ОЗУ и ПЗУ), но одновременно состояние сигнала WR процессора будет передано на вход WE флеш-ПЗУ (а не WE ОЗУ). Учитывая, что при выборе адресного пространства F500-F502 на шину адреса поступают не адреса с процессора, а адреса из регистров pF502 & pF501, получаем "законченную картину". На адресные входы ПЗУ идут заранее записанные адреса из регистров РОМдиска, на входы данных идут непосредственно данные с процессора, сигнал OE='1' (поскольку мы не читаем, а пишем), на вход WE идет сигнал процессора WR. Байтик записан. Далее спокойно обновляем адрес в порту pF501 (на шине адреса процессора младшие разряды ="01") или в pF502 ( ="10" соответственно). Поскольку это не "00", то эти данные запишутся только в порты, на входе WE ПЗУ будет висеть "1".

    Цитата Сообщение от pvlad Посмотреть сообщение
    Как я понял, "твой" нынешний контроллер принимает два байта по очереди.
    Нет. Он принимает ВСЕ байты последовательно (до 6 байт). Но специальный "механизм" - statemachine - отслеживает всю цепочку кодов с целью пропустить все "лишние" коды и выдать в результате один-единственный последний сканкод. при этом стейт-машина отслеживает префикс F0 перед последним сканкодом, и в соответствии с ним "замыкает" или "размыкает" сигналы на матрице, имитирующей реальную РК-клавиатуру. Такая технология позволяет иметь до шести одновременно нажатых кнопок.
    Естесственно, чтобы выдать в порт PS2 данные с установленным или сброшенным старшим битом, мне достаточно просто "добавить один проводок" от флага нажатия/отпускания до старшего разряда данных сканкода.


    Цитата Сообщение от pvlad Посмотреть сообщение
    П.С. Когда нас покидаешь, и уже к тебе можно не адресоваться на форуме?
    До вечера понедельника я буду торчать на форуме. С вечера вторника буду заглядывать в свой почтовый ящик. Со 2-го августа я снова здесь.

    ---------- Post added at 21:57 ---------- Previous post was at 21:55 ----------

    Цитата Сообщение от pvlad Посмотреть сообщение
    Можешь лопатить как хочешь и переделать все адреса портов по своему усмотрению.
    Тогда можно "прилопатить" на тот же F767. Мы же его пока только записываем. А на чтение можно и префиксы читать
    ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
    Speccy-2007 128/AY/TR-DOS

    Сайт с документацией к "Scorpion ZS 256"

  8. #277

    Регистрация
    18.09.2009
    Адрес
    г.Ногинск, МО
    Сообщений
    246
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Ewgeny7 Посмотреть сообщение
    На адресные входы ПЗУ идут заранее записанные адреса из регистров РОМдиска, на входы данных идут непосредственно данные с процессора, сигнал OE='1' (поскольку мы не читаем, а пишем), на вход WE идет сигнал процессора WR. Байтик записан.
    Т.е. порт F500 - это фикция. В действительности читается/пишется сразу в процессор?

    Цитата Сообщение от Ewgeny7 Посмотреть сообщение
    Далее спокойно обновляем адрес в порту pF501 (на шине адреса процессора младшие разряды ="01") или в pF502 ( ="10" соответственно). Поскольку это не "00", то эти данные запишутся только в порты, на входе WE ПЗУ будет висеть "1".
    Вот здесь не въезжаю! Что-то очень мудро. Ведь есть же адрес РОМ-диска=0000?

    Цитата Сообщение от Ewgeny7 Посмотреть сообщение
    - Как я буду делать второй байт - идеи есть. Тем паче, что это полностью стыкуется с моим стремлением полноценно задействовать всю клавиатуру...
    - Нет. Он принимает ВСЕ байты...
    Я все понял. Важно другое - наши намерения и желания совпадают. А техническая реализация - это детали.


    Цитата Сообщение от Ewgeny7 Посмотреть сообщение
    До вечера понедельника я буду торчать на форуме...
    Приятно! Значит еще есть время поболтать...

    Цитата Сообщение от Ewgeny7 Посмотреть сообщение
    Тогда можно "прилопатить" на тот же F767. Мы же его пока только записываем. А на чтение можно и префиксы читать
    Думаю, делать порты (особенно служебные) только на запись - это дурной тон. В этом случае приходится определять ячейку, в которой надо хранить копию записанной инфо в порт. Я двадцать раз себя проклинал в том, что пошел на поводу редакции и сделал распортовку, похожую на РК86 - отсутствие возможности читать порты. Это была (были и другие) самая большая глупость. Так вот, порты I/O должны писаться и читаться. Думаю, для клавиатуры ты найдешь другие свободные адреса. Кроме того, следует иметь запас адресов для портов - ведь со временем что-то еще придумается. Куда вешать?
    Если ты чего-то не знаешь, то это не значит, что этого не может быть.

  9. #278

    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,168
    Спасибо Благодарностей отдано 
    147
    Спасибо Благодарностей получено 
    84
    Поблагодарили
    55 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от pvlad Посмотреть сообщение
    Т.е. порт F500 - это фикция. В действительности читается/пишется сразу в процессор?
    Разумеется. Такого порта нет в принципе. На самом деле - это прямой канал на шину данных.

    Цитата Сообщение от pvlad Посмотреть сообщение
    Вот здесь не въезжаю! Что-то очень мудро. Ведь есть же адрес РОМ-диска=0000?
    Есть. Только с адресной шиной процессора у него нет ничего общего. Мы ведь пишем БАЙТ ДАННЫХ 00000000 в порт F501 или F502

    Цитата Сообщение от pvlad Посмотреть сообщение
    А техническая реализация - это детали.
    Одна из "деталей" - при отпускании кнопки ПРАВЫЙ CTRL (к примеру), мы получаем не два, а три байта - F0 E0 14. Как будем жить? И таких кнопок много...

    Цитата Сообщение от pvlad Посмотреть сообщение
    следует иметь запас адресов для портов - ведь со временем что-то еще придумается. Куда вешать?
    Согласен.
    Пока Error404 пьянствует и безобразия хулиганит, давай займем диапазон 50-5F
    С Орион-про это не пересекается?

    ---------- Post added at 23:37 ---------- Previous post was at 23:31 ----------

    Цитата Сообщение от Ewgeny7 Посмотреть сообщение
    Как будем жить?
    Предлагаю все же не лохматить бабушку, а сигнализировать просто битами.
    если принять -
    00 - 00
    E0 - 01
    F0 - 10

    - то нам понадобится всего два бита для полной передачи информации драйверу.
    Т.е. драйвер получит сам сканкод 14, а также два бита установленных в единицу (префикс E0 есть, префикс F0 есть). Ёжики поймут, что отпущен правый CTRL.

    ---------- Post added at 23:39 ---------- Previous post was at 23:37 ----------

    Цитата Сообщение от pvlad Посмотреть сообщение
    Так вот, порты I/O должны писаться и читаться
    не очень хотелось бы. Усложнение мультиплексоров. Как бы глюки не полезли на высокой частоте. Попробовать можно.
    ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
    Speccy-2007 128/AY/TR-DOS

    Сайт с документацией к "Scorpion ZS 256"

  10. #279

    Регистрация
    18.09.2009
    Адрес
    г.Ногинск, МО
    Сообщений
    246
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Ewgeny7 Посмотреть сообщение
    Одна из "деталей" - при отпускании кнопки ПРАВЫЙ CTRL (к примеру), мы получаем не два, а три байта - F0 E0 14. Как будем жить? И таких кнопок много...
    Ты неправ. При отпускании, байты распределяются так: E0 F0 14. А значит второй байт так же F0. Это упрощает анализ - следить надо только за вторым байтом. См. картинку внизу. Это из таблицы, которую ты сам выкладывал.

    Цитата Сообщение от Ewgeny7 Посмотреть сообщение
    С Орион-про это не пересекается?
    Адреса 30-9F свободны. Я прицепил бы книгу Орион-ПРО, но она почти 2Мб. Посмотри еще сам в http://zx.pk.ru/showpost.php?p=229897&postcount=4.

    Цитата Сообщение от Ewgeny7 Посмотреть сообщение
    Предлагаю все же не лохматить бабушку...
    Полностью согласен с таким подходом.


    Цитата Сообщение от Ewgeny7 Посмотреть сообщение
    не очень хотелось бы. Усложнение мультиплексоров. Как бы глюки не полезли на высокой частоте. Попробовать можно.
    Смотри сам. Получится - значит получится, а нет..., но хорошо бы!

    P.S. Порты (в Орион-ПРО) 2C-2F (D3-D0) - выделены под переключение страниц РОМ-диска. А у тебя только клавиша F8? Хорошо бы продублировать, тогда можно попробовать модернизировать ОРДОС, чтобы она управляла страницами РОМ-диска.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	Scan Codes.jpg 
Просмотров:	272 
Размер:	25.0 Кб 
ID:	19255  
    Последний раз редактировалось pvlad; 18.07.2010 в 01:02.
    Если ты чего-то не знаешь, то это не значит, что этого не может быть.

  11. #280

    Регистрация
    09.03.2009
    Адрес
    Н.Новгород
    Сообщений
    27
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    14
    Поблагодарили
    6 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Господа, а зачем вы пытаетесь возложить анализ нажатий и отжатий на ПЛИС? Почему нельзя сделать как в PC: один байт - одно прерывание, а дальше анализ в драйвере самого Ориона. Все равно драйвер заново писать.

Страница 28 из 45 ПерваяПервая ... 242526272829303132 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. ПЛИС и всё что с ними связано
    от Sayman в разделе Для начинающих
    Ответов: 1909
    Последнее: 17.11.2024, 12:43
  2. Вопрос по ПЛИС
    от Zloy в разделе Несортированное железо
    Ответов: 23
    Последнее: 17.10.2015, 17:12
  3. Орион-2010. Hard & Soft
    от Error404 в разделе Орион
    Ответов: 1198
    Последнее: 24.11.2013, 15:35
  4. Ответов: 92
    Последнее: 19.02.2009, 17:33

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •