Тест SDRAM или "Фреймбуффер2"

matras в динамической памяти

Плата Марсоход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 или на обе сразу, можно аналогичным образом проверить все остальные банки.

НЮАНС: В проекте не предусмотрена регенерация, поэтому если долго не переключать на "фоновые" банки, информация в них начнет по-немногу разрушаться.


Добавить комментарий