2013-12-11 2 views
0

Я пытаюсь инициализировать отображение DT028ATFT-TS на основной плате STM32F10B. Ранее система работала с DT028TFT-TS, но этот дисплей был прекращен. В результате использования нового diplay интерфейс также должен был перейти от ILI9320 к ILI9341. В настоящее время я пытаюсь инициализировать новый экран в конфигурации, которая была бы эквивалентна тому, что у меня было раньше.Как инициализировать дисплей DT028ATFT

Проблема, с которой я сталкиваюсь, заключается в том, что изображение на экране заканчивается показом горизонтальных полос, случайно распределенных (немного отличающихся при каждом запуске) с небольшим количеством мерцания. И порой (не уверен, если они связаны), он просто показывает подсветку и ничего больше - никаких полос, никакого тестового изображения. Тестовое изображение представляет собой только один большой красный квадрат (100x100), отображаемый при x = 100, y = 50. Вы можете увидеть эффект проблемы здесь: Streaked Display Image.

Ниже приведена часть кода инициализации, который я использовал, - часть его взята как таковая из примера кода DisplayTech, предлагаемого на их веб-сайте, часть которого настроена. Я исключил команды из кода примера, которые не задокументированы в соответствии с ILI9341 (возможно, настройка вендора) и параметры гамма-коррекции, просто для экономии места. Любая помощь в выяснении, где я пошла не так, будет оценена по достоинству.

// DT028ATFT LCD init - ILI9341: 
// Frame Rate Control 
SPI_WriteCMD(0xB1); 
SPI_WriteDAT(0x00);  // division ratio: 1 
SPI_WriteDAT(0x10);  // 16 clocks per line 
// Power Control 
SPI_WriteCMD(0xC0); 
SPI_WriteDAT(0x25);  // GVDD = 4.70V 
SPI_WriteCMD(0xC1); 
SPI_WriteDAT(0x03);  // VCL=VCI x 2, VGH=VCI x 6, VGL=-VCI x 3 
// VCOM Control 
SPI_WriteCMD(0xC5); 
SPI_WriteDAT(0x5C);  // VCOMH = 5.000 V 
SPI_WriteDAT(0x4C);  // VCOML = -0.600 V 
SPI_WriteCMD(0xC7); 
SPI_WriteDAT(0x94);  // VCOMH = VMH - 44, VCOML = VML - 44 
// Memory Access Control 
SPI_WriteCMD(0x36); 
SPI_WriteDAT(0x08);  // BGR=1, Normal addr order and refresh direction 
// Write CTRL Display 
SPI_WriteCMD(0x53); 
SPI_WriteDAT(0x24);  // BCTRL=1, DD=0, BL=1 
// Display Function Control 
SPI_WriteCMD(0xB6); 
SPI_WriteDAT(0x00);  // Normal scan, V63 pos pol/V0 neg pol 
SPI_WriteDAT(0xA0);  // LCD normally white, G1 to G320, S720 to S1 
SPI_WriteDAT(0x27);  // NL = 320 
SPI_WriteDAT(0x00);  // PCDIV not used 
// Entry Mode Set 
SPI_WriteCMD(0xB7); 
SPI_WriteDAT(0x06);  // Normal display for G1-G320 output, Low voltage detection enabled 
// Column Address Set 
SPI_WriteCMD(0x2A); 
SPI_WriteDAT(0x00); 
SPI_WriteDAT(0x00);  // Start Column = 0 
SPI_WriteDAT(0x00); 
SPI_WriteDAT(0xEF);  // End Column = 239 
// Page Address Set 
SPI_WriteCMD(0x2B); 
SPI_WriteDAT(0x00); 
SPI_WriteDAT(0x00);  // Start Page = 0 
SPI_WriteDAT(0x01); 
SPI_WriteDAT(0x3F);  // End Page = 319 
// Gamma Set 
SPI_WriteCMD(0x26); 
SPI_WriteDAT(0x01);  // Gamma Curve 1 selected (G2.2) 
// Pixel Format Set 
SPI_WriteCMD(0x3A); 
SPI_WriteDAT(0x55);  // 16bits/pixel (RGB and MCU i/f) 
// Interface Control 
SPI_WriteCMD(0xF6); 
SPI_WriteDAT(0x00);  // image data not wrapped around (exceeding data ignored) 
SPI_WriteDAT(0x00);  // MSB used also as LSB for R and B (64k colours) 
SPI_WriteDAT(0x00);  // Disp Op Mode: internal clk, GRAM access: Sys I/F, 1 transf/pxl (16bit 64k colours) 
// RGB Interface Signal Control 
SPI_WriteCMD(0xB0); 
SPI_WriteDAT(0xC0);  // BypassMode=1, RCM=2, VSPL=0, HSPL=0, DPL=0, EPL=0 
// Sleep Mode off (DC/DC conv enabled, internal osc started) 
SPI_WriteCMD(0x11); 
Dly100us((void*)1200); 
// Display ON 
SPI_WriteCMD(0x29); 
// =============================== 

ответ

1

Ваша проблема звучит как вопрос времени. Вы пытались уменьшить частоту кадров? что должно уменьшить время отображения. вы устанавливаете его на 119 Гц.

Вы делаете правильный сброс перед init?

вы можете сравнить с другими реализациями для контроллера ILI9341:

+0

я сделать сброс до того, да. Изменение частоты кадров (70 Гц) избавилось от полос. Теперь все чисто. Благодаря! Я по-прежнему получаю исчезновение изображения (просто подсветка слева) иногда, но это, вероятно, отдельная проблема. – Unstacked

+0

Хорошо, что это сработало. Что касается исчезающего образа, я понятия не имею. Это может быть почти все, что связано с HW. Если у вас есть второй дисплей, попробуйте воспроизвести, а также убедитесь, что ваша схема питания стабильная. – Manu3l0us

+0

Получил исправление для исчезающего изображения - я подумал, что было бы полезно другим сделать эту заметку. К сожалению, я не уверен, какие из изменений оказали наибольшее влияние, но вот они: 1. Добавлен SW Reset после сброса микросхемы, который у меня уже был – Unstacked

Смежные вопросы