В сообщении №659 — это vga развертка на S-Video, все сжато в два раза и повторяется.
В последнем сообщении картинка слева — правильная, меню выглядит именно так и находится именно там. Даже цвета каким-то образом похожи.
Успех уже очень близок!
Вид для печати
В сообщении №659 — это vga развертка на S-Video, все сжато в два раза и повторяется.
В последнем сообщении картинка слева — правильная, меню выглядит именно так и находится именно там. Даже цвета каким-то образом похожи.
Успех уже очень близок!
Понять бы ещё, почему меню всегда появляется (ну почти всегда... иногда перестаёт на клавиши курсора реагировать), а Вектор упорно отказывается стартовать.
Пищалка ещё "шипит" постоянно, очень тихо шипит. Пока "Кей0" нажат, шипения нет.
Буду паять переходник для VGA. Имеющийся выход (по одному биту на цвет) совсем тяжелый случай.
- - - Добавлено - - -
Я не могу разобраться с PLL.
Открываю модули altPLL через визард, там входная частота установлена как 48МГц.
А если смотреть модули в *.v - формате, там в коде:
Скрытый текст
Код:module colorclock_altpll
...
defparam
pll1.bandwidth_type = "auto",
pll1.clk0_divide_by = 8,
pll1.clk0_duty_cycle = 50,
pll1.clk0_multiply_by = 75,
pll1.clk0_phase_shift = "0",
pll1.compensate_clock = "clk0",
pll1.inclk0_input_frequency = 20833,
...
[свернуть]
и ещё:
Скрытый текст
Код:module wxeda_clocks_altpll
...
defparam
pll1.bandwidth_type = "auto",
pll1.clk0_divide_by = 2,
pll1.clk0_duty_cycle = 50,
pll1.clk0_multiply_by = 1,
pll1.clk0_phase_shift = "0",
pll1.clk1_divide_by = 4,
pll1.clk1_duty_cycle = 50,
pll1.clk1_multiply_by = 5,
pll1.clk1_phase_shift = "0",
pll1.clk2_divide_by = 4,
pll1.clk2_duty_cycle = 50,
pll1.clk2_multiply_by = 25,
pll1.clk2_phase_shift = "0",
pll1.clk3_divide_by = 2,
pll1.clk3_duty_cycle = 50,
pll1.clk3_multiply_by = 25,
pll1.clk3_phase_shift = "0",
pll1.compensate_clock = "clk0",
pll1.inclk0_input_frequency = 20833,
pll1.operation_mode = "normal",
pll1.pll_type = "auto",
pll1.lpm_type = "cycloneive_pll";
...
[свернуть]
Коэффициенты правильные, но что за значение входной частоты: pll1.inclk0_input_frequency = 20833 ?
Ума не приложу, откуда 20833. Альтера всегда советовала выбирать эти параметры в мегаколдуне, что я и делал. В мегагерцах там прописано 48.000, первый делитель 2, второй 4, множитель 5. 48/4*5 = 60, все вроде сходится. Попробуй сделай с нуля PLL с такими же параметрами, может быть просто старая версия колдуна не может прочитать более новую.
Странный параметр. В инете не нашел пояснений, по поводу, что это за чудо.
Создал новый PLL, поиграл с входной частотой:
При указании 100МГц - этот параметр будет "10000"
при 50МГц - "20000"
при 25МГц - "40000"
Явная закономерность, с обратной пропорциональностью.
Произведение частоты кварца на этот параметр, всегда равно "1 000 000 000 000".
Если это чудо разделить на 20833, получим почти 48МГц.
Ладно, трогать не буду. Буду копать дальше.
Не понятно, почему Загрузочная сетка не появляется, и как вообще проверить, что проц стартует и начинает ли отрабатывать программу загрузчика.
Похоже нужно придумывать каких-то "жучков" сажать их на межмодульные связи, и ими отлавливать, что на "шине" творится...
Но у тебя же получалось увидеть картинку на S-Video? Попробуй включить TV_MODE и запустить все в нем.
После получения картинки на VGA, ещё ни разу не удалось увидеть загрузочную сетку.
Я писал условия, при которых она появлялась (тыцканья на Кей0 и Кей3, запись при нажатых), но сейчас это не работает.
Подключил SD-карту, записал на неё файлы (в указанную папку) *.fdd и *.rom - меню их не видит.
Пока разбираюсь с Verilog, собрал переходник для VGA, по 4 бита на цвет, как в схеме DE1.
Перелопатил тестовый пример VGA от платы (с 1-им битом на цвет), вывел на экран все 4К комбинаций - вроде работает.
Странно, что не чувствуется разницы между настройками VGA выходов на 2.5V и 3.3V. Разница в напряжении почти 30%, а ничего не меняется.
Воткнул в проект модуль, который выводит на 8-ми сигментник состояние шины адреса (в hex-виде).
С загрузчиком, который идёт с проектом, программа постоянно крутится в диапазоне адресов 001D...0021 - там находится цикл очистки памяти. Странно, но я ни разу не выловил выход программы за его пределы, хотя после очистки должно начаться заполнение экрана загрузочной сеткой. Но программа почему-то зацикливается.
Заменил программу загрузчика на штатную заводскую, в ней есть тест ОЗУ (запись/чтение 55AAh).
И программа зациклилась в диапазоне адресов 0012h...0019h - это тест ОЗУ, который зацикливается если читается не 55AAh.
Похоже, что нужно начинать разбираться с SDRAM.
В ходе дела появился вопрос: а обрабатывает ли этот клон нажатие "УС" (для обхода очистки памяти) ?
Мне показалось, что сигнал "reset", который "сбрасывает" Вектор, так-же "сбрасывает" и ps/2-клаву.
Или нет?
Ресет на клавиатуру заведен с KEY[0], это глобальный такой мегаресет. Но Вектор сбрасывается еще по F11, или через меню.
Это я видел, в каком-то модуле, там из разных источников проверяются условия на сброс.
Но сброс получается общий, и регистры чтения клавы то-же сбрасываются, и вряд-ли можно принять код нажатой клавиши "УС" до того как проц Вектора пробежит десяток команд до чтения состояния этой клавиши.
Или я не прав?
Но меня сейчас больше заботит, как проконтролировать работу SDRAM ?