Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Конфликт TFT и SDRAM
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
M_Andrey
Отлаживаю плату.
Имеется LPC2478 + SDRAM 32 бита (K4S561632C - 2 шт) + TFT 640x480x(R6-G6-B6) (OSD056TN53).
Схема один в один со стартеркитом Olimex, разводка моя. Завелась без проблем, но столкнулся с неприятным эффектом мерцания чет/нечет. строк, особенно если смотреть под углом. Стал повышать частоту LCDDCLK - остановился на 9Мгц (LCD_CFG_bit.CLKDIV = 7), т.к. при дальнейшем увеличении частоты начинается нестабильная работа других узлов - отваливается USB и/или срывается синхронизация изображения. Да и для этой частоты пришлось настраивать AHB:
AHBCFG1_bit.SHDL = 0; // Priority scheduling.
AHBCFG1_bit.EP1 = 1; // CPU
AHBCFG1_bit.EP2 = 5; // GPDMA
AHBCFG1_bit.EP3 = 4; // AHB1
AHBCFG1_bit.EP4 = 3; // USB
AHBCFG1_bit.EP5 = 2; // LCD

Решил попробовать режим 5-6-5 и тут началось самое интересное. При выводе любой информации на дисплей она случайным образом искажается. Смотрю под отладчиком - действительно записываю одно значение - считываю совсем другое. Вывожу черный текст (0x0000) на сером фоне (0xCE9A), а получаю чаще розовый с черными вкраплениями на сером с зелеными вкраплениями:
0x0000 -> 0x081A
0xCE9A -> 0xС098, 0xC680, 0x0E02
Частота LCDDCLK = 18Мгц (LCD_CFG_bit.CLKDIV = 3), кадровая 43Гц.
Понижал частоту до 3 МГц - ошибок меньше, но они есть!
В 8-8-8 режиме ничего подобного не было.
Полноцветная картинка выведенная до включения LCD_CTRL_bit.LcdEn = 1 и LCD_CTRL_bit.LcdPwr = 1 отображается правильно без искажений и практически не мерцает (что и хотел получить). Но после включения вновь записываемые данные искажаются.
Написал тест SDRAM с 32, 16 и 8-битным доступом - до включения TFT проходит полностью, после - только для 32-битного доступа, для 16 и 8-битного - ошибки. Кто-нибудь сталкивался с подобным, что я делаю не так?
Исходники работы с TFT и SDRAM брал из примеров IAR EWARM 5.50, только подправил для вывода 16-битного цвета.
DpInRock
Плата 2 слойная.
M_Andrey
Цитата(DpInRock @ Mar 25 2011, 13:03) *
Плата 2 слойная.


Это вопрос или ответ? Если вопрос, то плата действительно двухслойная.
DpInRock
Это ответ.
--
Т.е. начните борьбу с чистоты питания и прочего. Конденсаторы там, проводки ...
M_Andrey
Цитата(DpInRock @ Mar 25 2011, 13:13) *
Это ответ.

Но 32-битный доступ работает без ошибок. Если выводить на дисплей информацию в Int32, то пишется и отображается правильно.
DpInRock
Ну и что.
Значит адресные линии еще врут. При 0 работают, а как надо в 1 приподняться - не успевают...

Пропаяйте переходные отверстия, например.

Или снизьте вдвое частоту SDRAM, посмотрите что будет.

И не трогайте AHB. От тут вообще никакого значение не имеет.
M_Andrey
Разобрался

Цитата(M_Andrey @ Mar 25 2011, 12:34) *
Схема один в один со стартеркитом Olimex

Соврал. Для упрощения разводки поменял местами разряды шины данных и теперь эти грабли всплыли. Надо было хотя-бы при этом соблюсти привязку DQMOUT0-D0..D7, DQMOUT1-D8..D15, DQMOUT2-D16..D23, DQMOUT3-D24..D31. Теперь придется плату переразводить, а пока софтом изголяться.
DpInRock
Цитата
до включения TFT проходит полностью
?

Рек. 4 слоя.
Делал на этом проце с таким примерно экраном 4 модификации платы (требовались разные механические изменения).
Как ни изголялся - все работают без сбоев.
Разводил строго автоматическим разводчиком. (Кроме тех линий, которые не лень было разводить руками).

Стоит ненамного дороже.
В вашем случае - вы бы даже сэкономили бы. (Ибо обмен местами линий шины - это как раз проблема 2 слоев).
M_Andrey
Цитата(DpInRock @ Mar 25 2011, 20:37) *
?

До инициализации TFT.

После рестарта сначала инициализация SDRAM, тест SDRAM правильный, затем идет инициализация TFT, снова тест SDRAM но уже с ошибками. Похоже что даже при 8- и 16-битном доступе EMC пытается работать с полной шиной. Но когда работает DMA LCD контроллера, EMC экономит шину и тут всплывают мои грабли.
DpInRock
Нет.
Обращение к контроллеру памяти у всех единообразное.

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.