Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: LCD и SDRAM
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Novichok1
Доброго времени суток!
Работал на отладочной плате LPC2478, потом сделали свой девайс с тем же процом, контроллером LCD и SDRAM, различия лишь в кварце(был 12 MHz, стал 22118400 Hz) и шине на внешнюю оперативку (была 32 битная, стала 16).
Далее, настроил новую частоту проца, перестроил SDRAM на 16 бит. Протестировал внешнюю оперативку на предмет корректности чтения-записи, обрадовался - все работало как часы! Затем пришло время дисплея. Тут-то и начались неполадки: подсоединил к новой плате дисплей, который раньше тестировал на LPC2478, настроил его, закрасил - закрасился хорошо, ровно; потом захотел нарисовать прямоугольник, но вместо ровно очерченного прямоугольника получил размытую фигуру!
После исследования проблемы выяснилось следующее: на внешнюю оперативку все записывается и читается просто превосходно, до тех пор, пока дисплей не начинает обновляться! Такое ощущение. что происходит какой-то конфликт обращения к памяти, который нигде не фиксируется, а проявляется он в некорректной записи во внешнюю RAM.
Если кто знает, с чем это может быть связано, и как это решить, буду очень признателен!
sherr
Параметры дисплея можно(разрешение, скольких- битный цвет, FPS) ?
DpInRock
Цитата
но вместо ровно очерченного прямоугольника получил размытую фигуру!

Неправильно считаете координаты пиксела.
Novichok1
Цитата
Параметры дисплея можно(разрешение, скольких- битный цвет, FPS) ?


Разрешение 800x480, на пиксель 12 бит, так что 2 байта, FPS поставил минимальный.

Но дисплей походу тут не причем. Я тестировал внешнюю рамку так:
1. Перебирал адресное пространство рамки, и записывал в каждые 2 байта 2-х байтное число(у меня шина 16 битная), потом его считывал и сравнивал со значением, которое должно было записаться, если эти значения разные, тогда выдать на консоль ошибку с указанием адреса.
2. То же самое, только записывал и считывал массив байт.

При отключенном дисплеи эти тесты говорили, что все хорошо.
Потом я провел еще один тест:
Заполняю рамку каким-либо определенным значением A, затем некоторому массиву присваиваю другое значение B, и пробегаюсь по остальной рамке и смотрю, где значения отличаются от тех, которые были присвоены всей рамке (value != A ). Оказалось, что при записи массива со значениями B, значение B также присваивается другим ячейкам памяти! Потом подключаю дисплей, и там вижу оригинал массива (прямоугольник) и со смещением по горизонтали две его неполностью прорисованные копии, причем вторая копия менее прорисована чем первая.

Этот тест наводит на мысль, что корень зла кроется в контроллере внешней памяти, но там вроде все проинициализировано правильно, так что у меня сейчас небольшой тупик.
Novichok1
Проблема решена: при пайке были перепутаны контакты с рамки на камень.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.