Author |
Message |
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
_________________ iLavr
|
25 Apr 2014 11:30 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 707 Location: WWW
|
Спасибо за ссылки, но, как говорил, смогу вернуться ко всему только после праздников..
|
27 Apr 2014 02:54 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 707 Location: WWW
|
Всех с прошедшими праздниками !
Дождался расширителя пинов для своей отладочной платы и очень расстроился - несмотря на мои подробнейшие инструкции, прислали не с тем разъемом
Думал на выходных спаять и подключить "родную" клавиатуру, но не судьба. Зато начал осваивать новые технологии - "софтовый" процессор NIOS II от Altera.
Сгенерил простую систему (естественно, рядом с Орионом) - процессор, немного памяти и восемь 8-битных (если совсем точно, то два 32-битных) регистров. В регистры должны записываться биты, имитирующие нажатые клавиши. Регистры подключены к мультиплексору. Далее небольшая обвязка, чтобы при записи в порт А скана очередного столбца клавиатуры выбирался соответствующий канал мультиплексора, и чтобы при чтении из порта В читался выход мультиплексора. Все это заработало сразу - впрочем, никаких хитростей тут нет.
Далее подключаем к этому контроллеру клавиатуру (хоть PS/2, хоть USB), и пишем программу, которая будет принимать скан-коды и выставлять/сбрасывать нужные биты в регистрах. Тоже вроде все просто, но есть несколько моментов:
1. Никогда в жизни не работал на аппаратном уровне с портами PS/2 или, тем более, USB
2. Никогда в жизни не писал ни на чем, кроме ассемблера, а тут нужно писать на С.
Так что пока снова беру паузу на изучение вышеупомянутого
P.S. Но даже сейчас уже слегка работает - первая в моей жизни программа на С читает состояние кнопки на отладочной плате и выставляет соответствующим образом один из битов одного из регистров. В результате могу теперь печатать букву D
|
16 May 2014 11:49 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 707 Location: WWW
|
Такое вроде не бывает - чтобы первая "настоящая" программа на новом языке программирования заработала сразу, без наладки. Тем не менее, это случилось:
Так что клавиатура у меня появилась, можно двигаться дальше.
Процесс программирования был мучителен - каждый оператор приходилось отыскивать в учебнике и правильно расставлять все эти скобочки, точки с запятой и прочие смайлики. К этому нужно прибавить совершенно долбанутую глюкавую среду программирования (где не уверен, то ли моя ошибка, то ли среды) и параллельное освоение этой виртуально-аппаратной платформы.
Зато сейчас вроде такие перспективы расскрываются ! На мой взгляд, это очень круто - прямо на компьютере можно и "железо" строить, и легко к нему прикручивать процессор с нормальным языком программирования.
Сейчас утрясу все в голове, доведу клавиатуру до ума (пока есть только латинский регистр, и не обрабатываются расширенные скан-коды, но это уже мелочь на полчаса работы) и можно подумать, наконец, о подключении внешнего накопителя (наверное, SD карты)...
|
24 May 2014 09:21 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 707 Location: WWW
|
Никто не знает, обычно в играх для Ориона клавиатурный ВВ55 перепрограммировали для своих нужд, или оставляли в "стандартном" состоянии (как монитор проинициализировал) ?
А то запустил несколько игр, но моя реализация клавиатуры только с одной (Zoo) нормально заработала...
|
25 May 2014 11:29 |
|
|
pfgx
Senior
Joined: 20 Mar 2013 03:36 Posts: 137 Location: Ростов-на-Дону
|
В Специалисте точно перепрограммировали. Писал простенький эмулятор Специалиста, пришлось и ВВ55 хотя бы примерно описать. Многие игры сами клавиатуру сканируют, в отладчике было видно.
|
25 May 2014 12:20 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 707 Location: WWW
|
Сканируют то ладно, волнует именно изменение настроек ВВ55...
|
25 May 2014 12:30 |
|
|
Stan
Banned
Joined: 04 Jan 2013 10:09 Posts: 397 Location: 95.24.178.158
|
Ну писателям игр не прикажешь же... а система у "Ориона" настройками ВВ55 вроде не хлопала...
Поэтому и контроллер PS/2 - ВВ55 у "Ориона" проще: обсуждали на форуме это...
|
25 May 2014 12:49 |
|
|
pfgx
Senior
Joined: 20 Mar 2013 03:36 Posts: 137 Location: Ростов-на-Дону
|
Так и настройки меняются, кто столбцами, кто строками сканирует...
Можно добавить на Verilog одну строку, определяющую запись в регистр статуса ВВ55, и вывести это на ножку ПЛИС, а к ней осциллограф или светодиод, сразу всё ясно станет.
|
25 May 2014 13:04 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 707 Location: WWW
|
Ну и почему я сам до этого не додумался, чтобы других людей глупыми вопросами не отвлекать ???
|
25 May 2014 21:41 |
|
|
petrenko
Doomed
Joined: 10 Mar 2012 16:21 Posts: 598 Location: РФ
|
Можно развить сию идею и для других узлов - тогда получится классическая модель легко проверяемого устройства - можно хоть с выводом почти всего, последовательно через один вывод ИМС.
( и обозвать сей вывод "тестовая сигнатура" )
В пошаговом режиме отслеживать всё "насквозь"
|
26 May 2014 06:28 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 707 Location: WWW
|
У меня на отладочной плате есть:
1. Светодиоды - 26 шт
2. 7-сегментные индикаторы - 8 шт
3. LCD экран с двумя строчками по 16 символов в каждой - 1 шт
Всем этим я активно пользуюсь в разборках с моим творением - помогает обалденно ! Также можно упомянуть о виртуальном логическом анализаторе SignalTap - его можно прикрутить внутри ПЛИС к чему угодно (правда, пока я не научился им пользоваться, поэтому светодиод как-то удобнее )
Только есть одно "но" - подключение дополнительных элементов реально влияет на работу устройства, если что-то работает "на грани" (впрочем, как и на реальном железе - щуп осциллографа может оказывать сильное влияние на работу железки).
Есть у меня один затык, который пока отложил на потом - иногда перестает формироваться сигнал 62. Подозрение на синхронность/асинхронность счетчиков (конкретно - DD3). Так вот, когда начал разбираться, то обнаружил, что простой вывод этого сигнала наружу может все запустить, как уберу - все останавливается.
Мало того - в зависимости от того, что я изменил в схеме (безотносительно к этому узлу - вообще где угодно), иногда требуется вывод этого сигнала на несколько внешних пинов. Можно, конечно, собраться с силами и описать синхрогенератор на VHDL, но тогда совсем уж уйду от оригинальной схемы, а не хотелось бы...
|
26 May 2014 09:03 |
|
|
pfgx
Senior
Joined: 20 Mar 2013 03:36 Posts: 137 Location: Ростов-на-Дону
|
При переводе в HDL надо учитывать что у тех микросхем задержка была десятки наносекунд, у ПЛИС - единицы, а симулятор вообще может без задержек просчитывать. Поэтому и плывёт всё при изменении схемы и размещения на кристалле ПЛИС. В Z80 обработка префиксов достаточно сильно завязана на задержке распространения сигнала, поэтому если в лоб перевести на Verilog - не работает, пришлось додумывать. Так что может и стоит отойти от оригинальной схемы.
А что за отладочная плата с таким количеством устройств индикации?
|
26 May 2014 09:19 |
|
|
pfgx
Senior
Joined: 20 Mar 2013 03:36 Posts: 137 Location: Ростов-на-Дону
|
недоJTAG?
|
26 May 2014 09:23 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 707 Location: WWW
|
На второй странице этой темы я фото размещал - Terasic DE2-115
|
26 May 2014 09:27 |
|
|