2013-12-11 8 views
0

STM32F10B 메인 보드에서 DT028ATFT-TS 디스플레이를 초기화하려고합니다. 이전에는 DT028TFT-TS와 함께 작동했지만 디스플레이가 중단되었습니다. 새로운 디플레이를 사용한 결과, 인터페이스도 ILI9320에서 ILI9341로 변경되어야했습니다. 나는 기본적으로 이전에 가지고 있던 것과 동일한 구성으로 새 디스플레이를 초기화하려고합니다.DT028ATFT 디스플레이를 초기화하는 방법

내가 직면 한 문제는 표시 이미지가 깜박임이 약간 씩 흩어져서 (모든 시작시 약간 다르게) 수평 줄무늬가 나타나기 시작한다는 것입니다. 그리고 때때로 (관련이 있는지 확실하지 않은) 백라이트와 아무것도 보이지 않습니다. 줄무늬가없고 테스트 이미지가 없습니다. 테스트 이미지는 x = 100, y = 50에 표시된 하나의 큰 빨간색 사각형 (100x100)입니다. 여기서 문제의 영향을 확인할 수 있습니다 : 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 Hz로 설정하고 있습니다.

초기화 전에 적절한 재설정을 수행하고 있습니까?

당신이 ILI9341 컨트롤러에 대한 다른 구현과 비교할 수 : 전에 리셋을

+0

, 예. 프레임 속도 (70Hz)를 변경하면 줄무늬가 제거됩니다. 이제는 모두 깨끗합니다. 감사! 나는 여전히 이미지가 사라지는 것을 느낀다. (단지 백라이트가 왼쪽이다) 때때로 그것은 별개의 문제 일 것이다. – Unstacked

+0

잘 해결되었습니다. 사라지는 이미지에 대해서는 단서가 없습니다. 그것은 HW와 관련된 거의 모든 것이 될 수 있습니다. 두 번째 디스플레이가있는 경우 재현을 시도하고 전원 공급 장치 회로가 안정적인지 확인하십시오. – Manu3l0us

+0

사라지는 이미지에 대한 해결책을 얻었습니다. 다른 사람들이이 메모를 작성하는 것이 유용 할 수 있다고 생각했습니다. 불행히도 내가 가장 큰 영향을 미쳤는지 모르겠지만 여기에 있습니다 : 1. 칩 재설정 후 SW 재설정을 추가했습니다. – Unstacked