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);
// ===============================
, 예. 프레임 속도 (70Hz)를 변경하면 줄무늬가 제거됩니다. 이제는 모두 깨끗합니다. 감사! 나는 여전히 이미지가 사라지는 것을 느낀다. (단지 백라이트가 왼쪽이다) 때때로 그것은 별개의 문제 일 것이다. – Unstacked
잘 해결되었습니다. 사라지는 이미지에 대해서는 단서가 없습니다. 그것은 HW와 관련된 거의 모든 것이 될 수 있습니다. 두 번째 디스플레이가있는 경우 재현을 시도하고 전원 공급 장치 회로가 안정적인지 확인하십시오. – Manu3l0us
사라지는 이미지에 대한 해결책을 얻었습니다. 다른 사람들이이 메모를 작성하는 것이 유용 할 수 있다고 생각했습니다. 불행히도 내가 가장 큰 영향을 미쳤는지 모르겠지만 여기에 있습니다 : 1. 칩 재설정 후 SW 재설정을 추가했습니다. – Unstacked