Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32F439IIT6 + LTDC дисплей
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
hd44780
Приветствую всех.
Подключаю дисплей (ДШ приложил) 800x480 к LTDC. Проц - F439IIT6, LQFP176, дисплей подключен по полной схеме RGB888 +4 сигнала (HSYNC, VSYNC, DE, DCLK).
На основе примеров написал прошивку (приложил) - просто инициализирует LTDC и всё. Но пока дальше невнятных полосок на экране ничего не увидел.
Полоски напоминают советский телек со сбитыми частотой кадров и всем остальным.
Если забить фреймбуфер нулями (чёрный цвет) - полоски исчезают (что вполне естественно), но вверху и внизу мигают и бегают светлые строки.

Буфер лежит в SDRAM. Сам SDRAM проверен миллион раз - STemWin с буфером 2 МБ в SDRAM + SSD1963 - работает великолепно.

Посмотрите, пожалуйста, кто может.
Хотя после откровенной неправды в ДШ насчёт напряжения подсветки (указано 9.9в, оказалось 18-19в), я вообще сильно сомневаюсь в его корректности.

Спасибо.
картошка
Делал для 800x600 в палитровом режиме 8-бит цвет, фреймбуфер на внешнюю SDRAM указывает, дисплей аналогичный по интерфейсу, процессор 429 . Посмотри может Ты чего пропустил, код инициализации рабочий.
CODE
void LCD_Config(void)
{
LTDC_InitTypeDef LTDC_InitStruct;
LTDC_Layer_InitTypeDef LTDC_Layer_InitStruct;

RCC_PLLSAICmd (DISABLE);
RCC_PLLSAIConfig(320, 7, 2);
RCC_LTDCCLKDivConfig(RCC_PLLSAIDivR_Div4);
RCC_PLLSAICmd(ENABLE);

while(RCC_GetFlagStatus(RCC_FLAG_PLLSAIRDY) == RESET)
{
}


RCC_APB2PeriphClockCmd(RCC_APB2Periph_LTDC, ENABLE);
InitTFTPinout();


LTDC_InitStruct.LTDC_HSPolarity = LTDC_HSPolarity_AL;
LTDC_InitStruct.LTDC_VSPolarity = LTDC_VSPolarity_AL;
LTDC_InitStruct.LTDC_DEPolarity = LTDC_DEPolarity_AL;
LTDC_InitStruct.LTDC_PCPolarity = LTDC_PCPolarity_IPC;

LTDC_InitStruct.LTDC_HorizontalSync = 40;
LTDC_InitStruct.LTDC_VerticalSync = 20;
LTDC_InitStruct.LTDC_AccumulatedHBP = 46;
LTDC_InitStruct.LTDC_AccumulatedVBP = 23;
LTDC_InitStruct.LTDC_AccumulatedActiveW = 1056;
LTDC_InitStruct.LTDC_AccumulatedActiveH = 635;
LTDC_InitStruct.LTDC_TotalWidth = 1058;
LTDC_InitStruct.LTDC_TotalHeigh = 637;
LTDC_InitStruct.LTDC_BackgroundRedValue = 0;
LTDC_InitStruct.LTDC_BackgroundGreenValue = 0;
LTDC_InitStruct.LTDC_BackgroundBlueValue = 0;

LTDC_Init(&LTDC_InitStruct);

LTDC_Layer_InitStruct.LTDC_HorizontalStart = 46;
LTDC_Layer_InitStruct.LTDC_HorizontalStop = (800 + 45);
LTDC_Layer_InitStruct.LTDC_VerticalStart = 23;
LTDC_Layer_InitStruct.LTDC_VerticalStop = (600 + 22);
LTDC_Layer_InitStruct.LTDC_PixelFormat = LTDC_Pixelformat_L8;//LTDC_Pixelformat_AL44;//LTDC_Pixelformat_ARGB4444;
LTDC_Layer_InitStruct.LTDC_ConstantAlpha = 255;
LTDC_Layer_InitStruct.LTDC_BlendingFactor_1 = LTDC_BlendingFactor1_CA;
LTDC_Layer_InitStruct.LTDC_BlendingFactor_2 = LTDC_BlendingFactor2_CA;
LTDC_Layer_InitStruct.LTDC_DefaultColorBlue = 0;
LTDC_Layer_InitStruct.LTDC_DefaultColorGreen = 0;
LTDC_Layer_InitStruct.LTDC_DefaultColorRed = 0;
LTDC_Layer_InitStruct.LTDC_DefaultColorAlpha = 0;
//LTDC_Layer_InitStruct.LTDC_CFBStartAdress = (uint32_t)&L8BIT;
LTDC_Layer_InitStruct.LTDC_CFBStartAdress = VideoAdress;
//FillMems (&L8BIT[0],10000,80);
//FillMems (&L8BIT[10000],10000,20);
//FillMems (&L8BIT[20000],10000,50);
//FillMems (&L8BIT[30000],10000,70);

//FillMems ((unsigned char*)VideoAdress,10000,80);
//FillMems ((unsigned char*)(VideoAdress+10000),10000,20);
//FillMems ((unsigned char*)(VideoAdress+20000),10000,50);
//FillMems ((unsigned char*)(VideoAdress+30000),10000,70);

LTDC_Layer_InitStruct.LTDC_CFBLineLength = (803);
LTDC_Layer_InitStruct.LTDC_CFBPitch = (800);
LTDC_Layer_InitStruct.LTDC_CFBLineNumber = 600;

LTDC_LayerInit(LTDC_Layer1, &LTDC_Layer_InitStruct);
LTDC_colorkeying_InitStruct.LTDC_ColorKeyBlue = 0;
LTDC_colorkeying_InitStruct.LTDC_ColorKeyGreen = 0;
LTDC_colorkeying_InitStruct.LTDC_ColorKeyRed = 0;
TFT_CLUT_Init ((unsigned char*)resname_pal_f);

LTDC_LayerCmd(LTDC_Layer1,ENABLE);
LTDC_ReloadConfig (LTDC_IMReload);
LTDC_Cmd (ENABLE);
}

Если SDRAM настроил хотя-бы на максимум - 85 Мгц, вроде, то должно работать. В любом случае по трафику програмного доступа к SDRAM у тебя остается от 5-10 мегабайт, так как 36 у тебя отнял дисплей. Память не забывай, работает 8-ми байтными пакетами, надеюсь 16-ти битная шина ?! Были полосы у меня при экспериментах пропускной способности и арбитража, когда я еще хотел на внешнюю SDRAM - с камеры грузить, она тоже 40 Мгц, тогда все сразу потухло, с полосами все было. Хотел посмотреть что будет.
Если у тебя какой-нибудь периферийный модуль с DMA настроен на настроен на внешнюю SDRAM, то тогда это причины.
hd44780
Спасибо за ответ.

Память у меня работает на 60 MHz, 90 на моей плате глючит, видимо, из-за разводки. DMA никаких нету, это тестовая прошивка, чтобы этот LTDC оживить, если возможно. Из доп периферии только SDRAM и светодиодик моргает.
SDRAM 16-битный MT48LC16M16A2.

Тайминги придётся подбирать через комп и уарт, иначе флэш проца подохнет раньше на перепрошивках, чем я их подберу.

Грёбаные китайцы ДШ левый подсунули - http://www.ebay.com/itm/7-inch-800x480-TFT...#ht_3554wt_1034 sad.gif
на шлейфе, где у них схемка спаяна, написано LY7040B, в интернете доки я не нашёл, только ссылки на али-бабу, где его купить можно.
romas2010
Цитата(hd44780 @ May 4 2016, 21:39) *
Полоски напоминают советский телек со сбитыми частотой кадров и всем остальным.
Если забить фреймбуфер нулями (чёрный цвет) - полоски исчезают (что вполне естественно), но вверху и внизу мигают и бегают светлые строки.

У меня для LPC1788+LCD подобный эффект был.у клоков,горизонтальной синхронизации и пр. полярностями попробуйте поиграть.. какая-нибудь все равно подойдет..да,еще нюанс-поставьте самый наинизший приоритет DMA для доступа к видеопамяти(ну если в STM есть такая возможность)
SpyBot
Чтобы просто оживить дисплей, я размещал видеопамять во внутреннем озу.
Еще можно что попробовать - увеличить ток (или частоту?) пинов ltdc.
skripach
Цитата
У меня для LPC1788+LCD подобный эффект был.у клоков,горизонтальной синхронизации и пр. полярностями попробуйте поиграть.. какая-нибудь все равно подойдет

+1, нужно контроллер LCD настроить в соответствии с документацией на LCD.
pvo125
По моему в структуре настройки слоя нужно писать координаты окна например 0-800 0-480. Но главное чтобы окно слоя не вылазило за границы видимой части дисплея ( например LTDC_Layer_InitStruct.LTDC_HorizontalStop не больше 800). В общем попробуйте проинициализировать с такой структурой.
Код
LTDC_Layer_InitStruct.LTDC_HorizontalStart = 0        //LCD_HSYNC + LCD_HBP;
LTDC_Layer_InitStruct.LTDC_VerticalStart = 0           //LCD_VSYNC + LCD_VBP;
LTDC_Layer_InitStruct.LTDC_HorizontalStop =800     // LCD_PIXEL_WIDTH + LCD_HSYNC + LCD_HBP - 1;
LTDC_Layer_InitStruct.LTDC_VerticalStop =480         // LCD_PIXEL_HEIGHT + LCD_VSYNC + LCD_VBP - 1;



Поторопился .... все таки слой у Вас правильно настраивается. Делал через структуру hal драйвера и там записываешь просто числа 0-800 например. А дальше когда вызывается функция инита там как раз и добавляются LCD_HSYNC + LCD_HBP. Сам запутался с 1 цами там в одном случае добавляют +1 в другом отнимают 1 хотел написать чтоб проверили это но нет.Как раз как было так правильно.

Код
LTDC_Layer_InitStruct.LTDC_HorizontalStart =LCD_HSYNC + LCD_HBP;
LTDC_Layer_InitStruct.LTDC_VerticalStart =LCD_VSYNC + LCD_VBP;
LTDC_Layer_InitStruct.LTDC_HorizontalStop =LCD_PIXEL_WIDTH + LCD_HSYNC + LCD_HBP - 1;
LTDC_Layer_InitStruct.LTDC_VerticalStop = LCD_PIXEL_HEIGHT + LCD_VSYNC + LCD_VBP - 1;
Шаманъ
Цитата(hd44780 @ May 4 2016, 21:39) *
Приветствую всех.
Подключаю дисплей (ДШ приложил) 800x480 к LTDC. Проц - F439IIT6, LQFP176, дисплей подключен по полной схеме RGB888 +4 сигнала (HSYNC, VSYNC, DE, DCLK).
На основе примеров написал прошивку (приложил) - просто инициализирует LTDC и всё. Но пока дальше невнятных полосок на экране ничего не увидел.
Полоски напоминают советский телек со сбитыми частотой кадров и всем остальным.

Померяйте частоту PixelClock, посмотрите тайминги HSync, VSync, DE - они в реальности соответствуют тому, что Вы запрограммировали?

Попробуйте частоту PixelClock уменьшить (пусть будет меньше, чем в датащите, например 15МГц) - может память не справляется.

Цитата
Хотя после откровенной неправды в ДШ насчёт напряжения подсветки (указано 9.9в, оказалось 18-19в), я вообще сильно сомневаюсь в его корректности.

Как по мне, то очевидно, что шесть белых светодиодов включенных последовательно (так нарисовано в датащите) не могут питаться от 9.9В. Подобные ошибки мне не первый раз встречаются в датащитах на TFT.

AVI-crak
Цитата(hd44780 @ May 5 2016, 01:39) *
Хотя после откровенной неправды в ДШ насчёт напряжения подсветки (указано 9.9в, оказалось 18-19в), я вообще сильно сомневаюсь в его корректности.


По докам этот дисплей имеет весьма оригинальную последовательность подачи напряжений при запуске и гашении. Для таких типов дисплеев существуют спец чипы: с собственной двойной-тройной экранной памятью, куче "аппаратных" графических функций, и множество типов входных сигналов (от 8080 до композитного).
Чип аккуратно на аппаратном уровне регулирует подачей-снятием напряжений с матрицы.
Сама матрица весьма нежная в этом плане, управляющие полевики в пикселах умудряются сдохнуть миллионом вариантов. Хотя обычно выдерживают разряд статики в экран.

Чего собственно у меня и произошло. RGB матрица без контролёра. Питание шимом двумя полевиками от ног st, с обратной связью. И такой облом, в режиме отладки забыл разрешить тиканье именно этого таймера. В результате, пока жахал кнопку нехт на отладчике - дисплей терял целостность.
hd44780
Благодарю всех за ответы. Продолжаю разборки, уарт прикрутил, написал на компе прогу, которая пуляет туда параметры HSYNC, HBP, и прочеею
Дисплей на такое управление реагирует. Буду подбирать параметры.

Про частоту DCLK мне непонятно. Это тактовая модуля LTDC или ещё что-то? Из ДШ проца не понял. Осциллом на выходных посмотрю.
DMA у LTDC как такового нету. DMA2D - как я понимаю, Приблуда только для граф функций. Включал/отключал его - пофигу.
Шаманъ
Цитата(hd44780 @ May 6 2016, 21:03) *
Про частоту DCLK мне непонятно. Это тактовая модуля LTDC или ещё что-то? Из ДШ проца не понял.

По идее да.

P.S. А мы оказывается почти соседи. Я около Донецка sm.gif
SpyBot
Вернее, даже не нужно использовать никакое озу. Достаточно просто разрешить ltdc и задать цвет фона. Потом уже подбирать размер поля и его смещение.
hd44780
Посмотрел осциллом:
1. DCLK == тактовой LTDC модуля.
2. Если выключить (либо не инициализировать) слои, сигналов VSYNC/HSYNC вообще нет. Они всегда висят в 1 (при настройке Active Low).
3. Длительности HSYNC/VSYNC процом формируются верно.

Цитата(Шаманъ @ May 6 2016, 23:29) *
P.S. А мы оказывается почти соседи. Я около Донецка sm.gif

rolleyes.gif

Ещё одна муть в ДШ дисплея: есть 2 набора временных диаграмм: DE mode и SYNC mode. Как осуществить выбор между ними - непонятно.
Знакомы купил другой дисплей AT070TN92 (но ещё не спаял его) - у него есть спец нога - MODE, которая переключает эти режимы. Здесь такой ноги (либо чего-то ещё) нет.
Да и как выбирать эти режимы в самом проце тоже пока не понял.
В DE режиме вообще HSYNC/VSYNC нету (или я неправильно это понимаю?).
Шаманъ
Цитата(hd44780 @ May 8 2016, 11:32) *
Посмотрел осциллом:
1. DCLK == тактовой LTDC модуля.

Пробовали запускать на более низкой частоте?

Цитата
Да и как выбирать эти режимы в самом проце тоже пока не понял.
В DE режиме вообще HSYNC/VSYNC нету (или я неправильно это понимаю?).

У некоторых TFT режим выбирается подачей сигналов:
- в DE режиме на VSYNC HSYNC подается высокий уровень, а на DE синхронизация
- в HSYNC/VSYNC режиме на DE подается низкий уровень, а на HSYNC/VSYNC синхронизация

Некоторые нормально работают если подавать все сигналы sm.gif, у некоторых, как Вы уже заметили есть специальная нога для выбора режима.

P.S. А что это за плата такая, что SDRAM только на 60МГц работает - домашнего изготовления?
hd44780
Цитата(Шаманъ @ May 8 2016, 12:28) *
Пробовали запускать на более низкой частоте?

Осциллом смотрел на 8МГц - мой UT-81B больше не понимает sm.gif Синхра, если точно, 8.25МГц получается, он и их в изуродованном виде показывает. Частоту, правда, правильно меряет.
Ещё на 16 включал - при уменьшении частоты картинка (точнее какой-то цветной мусор, меняющийся при записи в видеобуфер) сжимается. Правильно это или нет - я пока не осознал ....
Этот мусор растягивается на всю ширину дисплея при частотах типа 30 МГц.
Но на "бегание строк" изменение частоты никак не влияет. Наверное всё-таки что-то с синхронизацией...

Цитата(Шаманъ @ May 8 2016, 12:28) *
У некоторых TFT режим выбирается подачей сигналов:
- в DE режиме на VSYNC HSYNC подается высокий уровень, а на DE синхронизация
- в HSYNC/VSYNC режиме на DE подается низкий уровень, а на HSYNC/VSYNC синхронизация

Некоторые нормально работают если подавать все сигналы sm.gif, у некоторых, как Вы уже заметили есть специальная нога для выбора режима.

DE посмотрел осциллом - там 0.

Цитата(Шаманъ @ May 8 2016, 12:28) *
P.S. А что это за плата такая, что SDRAM только на 60МГц работает - домашнего изготовления?

Разводка домашняя, из альтиума, саму плату в Кировограде заказывали, на фирме какой-то.[DELETED]
Но разводка точно кривая. SDIO там тоже практически всегда с Timeout error вываливается.
Хорошо хоть SDRAM/FSMC-дисплей и оба USB хоста (оба FS) нормально пашут sm.gif . Ну не считая 60 МГц вместо 90.
Так что левые наводки на LTDC сигналы совсем не исключены.
hd44780
С Днём Победы всех!

Короче всякие там HSYNC и прочие никакого влияния практически не оказывает. С частотой пока особо не игрался.
SpyBot
Цитата(hd44780 @ May 8 2016, 17:32) *
DE посмотрел осциллом - там 0.

У меня на DE уровень периодически меняется. Как я понял, это Data Enable сигнал.

PS: кто нибудь пробовал при помощи этого сигнала подключить... два дисплея?
hd44780
Тут хоть бы этот один подключить ... Начинаю думать, что дисплей у меня какой-то больной sad.gif

Два диспа - по-моему вряд ли. Как я понял, этим сигналом иногда режимы синхронизации переключаются..
Шаманъ
Цитата(hd44780 @ May 11 2016, 14:14) *
Тут хоть бы этот один подключить ... Начинаю думать, что дисплей у меня какой-то больной sad.gif

Может Вашему дисплею нужно подавать все три сигнала? Сконфигурируйте и DE - пусть на нем будет правильный сигнал, вдруг заработает?

И еще, я бы зафиксировал какой-нить фиксированный уровень на входах данных (RGB) ТФТ и посмотрел картинка однотонная будет или нет. Как зафиксировать - переконфигурировать ноги МК в выходы и выставить там какой-нить цвет. Таким образом отбросите хоть одну неизвестную.
hd44780
RGB ноги я перекофигурю, а DЕ у меня и так к LTDC подключён:

Код
   // PF10
   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
   GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
   GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
   GPIO_PinAFConfig ( GPIOF, GPIO_PinSource10, GPIO_AF_LTDC );    // PF10 - DE
   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
   GPIO_Init ( GPIOF, &GPIO_InitStructure );

................

   // Initialize the data enable polarity as active low
   LTDC_InitStruct.LTDC_DEPolarity = LTDC_DEPolarity_AL;


Вот только ничего, кроме нуля, я на нём ничего не видел.
ArseGun
LCD подобного типа крайне чувствительны к соблюдению таймингов подачи питающих напряжений на матрицу при включении.
hd44780
ArseGun, я понимаю. Но на шлейфе нет никаких напряжений, кроме Vcc=+3.3v. Я добавил перед инициализацией LTDC delay_ms(100); - ничего оно не дало.
Есть ещё подсветка, но она к дисплею никак не относится.

Попробовал подавать на RGB пины фиксированные уровни - белый цвет почти нормальный, кое-где (в подавляющем большинстве справа) чёрные участки.
Подал только синий - красно-сине-зелёная мельтешня с теми же чёрными участками sad.gif .

Причём чёрные участки на верхней половине дисплея находятся на самом правом краю дисплея, на нижней - чуть левее, на глаз где-то на пятую часть.
Шаманъ
Цитата(hd44780 @ May 11 2016, 21:31) *
Попробовал подавать на RGB пины фиксированные уровни - белый цвет почти нормальный, кое-где (в подавляющем большинстве справа) чёрные участки.
Подал только синий - красно-сине-зелёная мельтешня с теми же чёрными участками sad.gif .

Если датащит не родной, то может быть еще два момента:
1. На многих 40пиновых дисплеях (как правило от разных ГПС/магнитол) контакт 31 включает дисплей. У Вас он отмечен как nc, может это не так.
2. У меня есть несколько датащитов на такие экраны и у всех у них другие тайминги. Вот такие (может Вам стоит попробовать их?):
Нажмите для просмотра прикрепленного файла

Цитата
Причём чёрные участки на верхней половине дисплея находятся на самом правом краю дисплея, на нижней - чуть левее, на глаз где-то на пятую часть.

Вы бы лучше одно фото выложили - было бы понятнее. Я бы сказал, что с синхронизацией у Вас проблемы.
ArseGun
Цитата(hd44780 @ May 11 2016, 22:31) *
ArseGun, я понимаю. Но на шлейфе нет никаких напряжений, кроме Vcc=+3.3v.

Извиняюсь, в представленном вами даташите требования к зоопарку питающих напряжений представлены и в таблице, и во временных диаграммах. Это меня и сбило с толку, а на распиновку я не посмотрел. Оказывается, эти напряжения на шлейф и не выведены. Сами долго бились с одним LCD, симптомы "нерабочести" очень похожи на ваш случай. Всё заработало, когда в точности реализовали диаграмму подачи питающих напряжений.


Попробуйте ещё проинвертировать DCLK.
hd44780
Цитата(ArseGun @ May 12 2016, 06:34) *
Попробуйте ещё проинвертировать DCLK.


Вот это я делал:
LTDC_InitStruct.LTDC_PCPolarity = LTDC_PCPolarity_IIPC;
и активными уровнями я тоже игрался.
Фото ахинеи приложил.
Шаманъ
Цитата(hd44780 @ May 12 2016, 16:25) *
Вот это я делал:
LTDC_InitStruct.LTDC_PCPolarity = LTDC_PCPolarity_IIPC;
и активными уровнями я тоже игрался.
Фото ахинеи приложил.

А если меняете параметры синхронизации эта "срань" из черных квадратов перемещается?

Тайминги, которые я выкладывал пробовали?
hd44780
Цитата(Шаманъ @ May 12 2016, 18:37) *
А если меняете параметры синхронизации эта "срань" из черных квадратов перемещается?

Да, но очень немного. Почти не заметно.

Цитата(Шаманъ @ May 12 2016, 18:37) *
Тайминги, которые я выкладывал пробовали?

Да. Существенных отличий не заметил.
SasaVitebsk
Честно говоря, судя по изображению, я вообще не вижу у вас картинки. У вас что-то вообще кардинально не так. Я бы сказал, что либо вообще нет тактирования, либо оно на порядок меньше, чем надо. Либо с питанием что-то не так. Здесь с синхронизацией играться рано. Не до этого.
У меня на последнем дисплее, подсветка достаточно мощная. Короче, надо пару ампер, чтобы источник выдавал. Он выдавал, но при старте проваливался. Ну у меня мусор на экране был через раз. Выглядела как хаотичная картинка. Но всё равно стабильная.
hd44780
Картинки да, нет. Есть то, что на фото. Только оно ещё и бегает непрерывно.
А должен быть просто сплошной синий цвет.

Питание платы - китайский импульсник 5в 1А. На плате стоит 5 амперный LT1084, выдаёт 3.15в. Осциллографом смотрел - просадок не заметил.
Можно поднять до 3.3в ровно, на LT1084 регулятор есть.

На выходных запитаю от компового AT БП, тот ампер 10-12 выдаёт. Тогда отпишусь. Щас включить не могу, там один проводок отвалился.
Шаманъ
Цитата(hd44780 @ May 12 2016, 19:10) *
Да, но очень немного. Почти не заметно.

А не может быть проблема на плате или в пайке/соединениях? Может перепутано что-то? Просто с теми экранами с которыми приходилось сталкиваться тайминги можно было менять довольно в широких пределах и в большинстве случаев это приводило просто к сдвигу изображения, а тут что-то ну совсем не то...
hd44780
Всем спасибо. Ошибка проектирования платы. 2 ноги LTDC пересекаются с SDRAM. В том числе и DCLK sm.gif .

Делать что-либо дальше бессмысленно crying.gif .
Шаманъ
Цитата(hd44780 @ May 14 2016, 18:06) *
Делать что-либо дальше бессмысленно crying.gif .

Да, сочувствую... А может ножик и провод спасут?
hd44780
Да, по DCLK спасут, а вторую дорогу пока не смотрел.
Но дело тонкое, на выходных займусь.
hd44780
Попробовал LTDC + 3xDAC --> VGA, оно ожило. Практически с пол-пинка.
Жутко криво (цвета искажённые, SDRAM, колбасит, видимо, от наводок), но работает.

Пока бросил до лучших времён.
Rash
на Disco429, нормально работает LTDC (565 запускал) и SDRAM под видеобуфер
hd44780
Да, на этой дискаверине и у меня норм всё. Но я не хочу её ломать.
Rash
для макета самое то, дисплей родной отпаивается, делается переходная плата под большой дисплей и понеслась, ничего ломать и не нужно. Как прототип готов, можно и свою полноценную делать.
hd44780
Всех с НГ и Рождеством Христовым!
Тема полностью закрыта. Этот дисп, о котором я писал в первом посте, рабочий на 100%. Его тайминги и все параметры, включая распиновку, полностью идентичны вот этому - http://www.buydisplay.com/default/7-tft-lc...4-gps-tablet-pc Доки там все есть.
На другой плате с таким же F439IIT6 (но уже 4-слойка с ручной разводкой) пашет великолепно.
Ещё раз убедился, что разводка - великая вещь sm.gif .
uriy
Можете похвастаться своими результатами?
Я тоже балуюсь с дисплеем 800х480.
В первом слое вывожу статичную фоновую картинку из флешки RGB565.
Второй слой из SDRAM (частота 90 МГц).
Использую DMA2D.
Если второй слой в формате RGB565 то обновление происходит нормально.
Если второй слой в формате ARGB8888 то уже появляются артефакты при изменении фреймбуффера в SDRAM.
Если не модифицировать фреймбуффер то тоже нормально работает.
Вероятно не хватает пропускной способности FMC.
hd44780
uriy, скорость я пока не тестировал, работаю на STemWin, там один слой работает. Но думаю, что будет также как у Вас, SDRAM у меня тоже на 90MHz.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.