
Плата Марсоход2 гораздо сложнее нашей первой платы, и прежде чем начинать с ней работу, хорошо бы убедиться в работоспособности всех ее узлов. Значительную их часть можно протестировать с помощью
нашего первого проекта. Это : программатор, тактовый генератор, кнопки, светодиоды, связь с компьютером через COM-порт и VGA интерфейс.
Теперь мы будем тестировать еще один важный компонент платы Марсоход2 - динамическое ОЗУ (SDR SDRAM MT48LC4M16A2).
Описание микросхемы памяти:
. Оно имеет объем в общей сложности 8 Мбайт.За основу мы взяли проект "Фреймбуффер" для первой платы Марсоход, в котором уже использовалась подобная микросхема. Проект выполнен в среде Altera Quartus II.
Проект представляет собой простенький видеоадаптер с разрешением 1280х800, в котором, в качестве фреймбуфера, используется целиком один из 4х банков нашей микросхемы. Кроме того, в него внесено нескольно несложных изменений:
- увеличено количество бит на пиксел. В старом проекте было всего 3, мы увеличили до 16 (HI-COLOR).
- линии адресации банков (BA0,BA1) подключены к кнопкам, чтобы иметь возможность протестировать всю емкость ОЗУ.
- изменен интерфейс с компьютером. Теперь в COM-порт можно копировать обычные 24х-битные *.BMP файлы с разрешением 1280х800.
В папке CODE в проекте есть четыре таких файла, и четыре BAT-файла,
чтобы было проще их копировать в COM-порт :
mode com4 baud=12000000 data=8
copy net.bmp /b com4
Проект можно скачать вот здесь:
В марте 2014 проект был немного улучшен (теперь микросхема SDRAM программируется только однажды в самом начале работы проекта в ПЛИС):
Сама процедура тестов выглядит следующим образом:
Сразу после загрузки проекта, на экране должен появится "матрас" как на первой картинке - это данные ОЗУ после подачи питания. Главное, на что нужнно обратить внимание, ни одна точка на экране не должна "шевилиться". Это тест на чтение, все данные выводятся на экран 60 раз в секунду, и каждый раз они должны быть одинаковыми.
Далее, можно запустить один из BAT-файлов, для проверки ОЗУ на запись.
Картинка должна быть без искажений и артефактов.
Нажимая на кнопки KEY0, KEY1 или на обе сразу, можно аналогичным образом проверить все остальные банки.
НЮАНС: В проекте не предусмотрена регенерация, поэтому если долго не переключать на "фоновые" банки, информация в них начнет по-немногу разрушаться.


Конкретно за "драйвер" не скажу,
а весь проект занимает 433 LE.
Изначально проект делался под TFT-панель, которой нужен был именно этот режим.
Когда переделал для VGA, заработало на первом попавшемся мониторе - я и не стал ничего менять.
Оу. Оказывается существуют и такие режимы.
Спасибо.
Поторопился, стыдно
ftp.cs.nctu.edu.tw/.../...
Режим - Reduced Blanking
Частота кварца 100МГц.
ФАПЧ 36\25, значит clk 144МГц.
Блок mem_cntrl формирует с помощью счетчика частоты clk деленные на 2, 4, 8, 16 и 32 (сигналы c[4..0] на общей схеме.
Блок s1280x800_5 формирует в том числе синхросигналы VGA, при этом тактируется от c[4], т.е. частотой 144МГц / 32 = 4.5МГц. При этом для указанного разрешения нужна пиксельная частота 83.46МГц. Ну ок, мб это такой аналог чересстрочной развертки, только по горизонтали. Внутри блока есть счетчик inst4, он для формирования развертки по горизонтали, и он по модулю 90, его период 90/4.5e6 = 20мкс, что в принципе похоже. Начинаем смотреть другие интервалы - на данные у вас неизвестное кол-во тактов с[4], на синхросигнал 2 такта (0.44мкс против требуемых 1.63мкс, ну пофиг, длительность синхросигнала может быть и короче), на back porch что-то около 7 тактов (и это 1.55мкс, когда по стандарту требуется 2.4мкс, что уже удивляет сильнее).
Как это у вас вообще работает?
При использовании встроенного симулятора, открывается окно и сразу же закрывается. Как быть?
Оказывается Виндоус не воспринимает порты выше 10 как порты, а воспринимает их как файлы. Переназначил порты, изображение передалось... Правда, почему-то с красными полосами... Но это уже мелочи...
Пришла плата. Пасибки.
Первый тест прошла как надо... Кнопки, светодиоды, программатор, ком порт работают...
Но здесь, со вторым тестом, возникли траблы. (Похоже, что не с платой... А я просто что-то криво делаю.)
В общем, симптомы такие.
После загрузки проекта картина такая img-fotki.yandex.ru/.../...
Вместо вертикальных полос, как на видео здесь есть еще и горизонтальные. .. Но это четверть беды.
Беда в том, что изображение никак не реагирует на bat файлы.
com порты у меня определились как 14-ый и 15-ый...
Путем подставление номеров портов в батник
mode com14 baud=12000000 data=8
copy net.bmp /b com14
***
mode com15 baud=12000000 data=8
copy net.bmp /b com15
пробовал передавать по обоим...
Ноль реакции.
Прошу помощи.