у меня 100Мгц - всё работает.
int tft_Init(uint8_t x) { spi_num = x; delay_ms(25); tft_lcd_rst(false); delay_ms(50); tft_lcd_rst(true); delay_ms(130); tft_lcd_cs(false); delay_ms(5); tft_lcd_send_cmd(ST7789_SWRESET); delay_ms(130); tft_lcd_send8(ST7789_COLMOD, ST7789_COLOR_MODE_16bit); // Set color mode delay_ms(10); tft_lcd_send_cmd(0xB2); // Porch control { const uint8_t data[] = {0x0C, 0x0C, 0x00, 0x33, 0x33}; tft_lcd_send_data((uint8_t*)data, sizeof(data)); } // Internal LCD Voltage generator settings tft_lcd_send8(0XB7, 0x35); // Gate Control, Default value tft_lcd_send8(0xBB, 0x20); // VCOM setting, 0.725v (default 0.75v for 0x20) tft_lcd_send8(0xC0, 0x2c); // LCMCTRL, Default value tft_lcd_send8(0xC2, 0x01); // VDV and VRH command Enable, Default value tft_lcd_send8(0xC3, 0x0b); // VRH set, +-4.45v (defalut +-4.1v for 0x0B) tft_lcd_send8(0xC4, 0x20); // VDV set, Default value tft_lcd_send8(0xC6, 0x0f); // Frame rate control in normal mode, Default value (60HZ) tft_lcd_send16(0xD0, 0xA4A1); // Power control, Default value
tft_lcd_send_cmd(0xE0); { const uint8_t data[] = {0xD0, 0x04, 0x0D, 0x11, 0x13, 0x2B, 0x3F, 0x54, 0x4C, 0x18, 0x0D, 0x0B, 0x1F, 0x23}; tft_lcd_send_data((uint8_t*)data, sizeof(data)); }
tft_lcd_send_cmd(0xE1); { const uint8_t data[] = {0xD0, 0x04, 0x0C, 0x11, 0x13, 0x2C, 0x3F, 0x44, 0x51, 0x2F, 0x1F, 0x1F, 0x20, 0x23}; tft_lcd_send_data((uint8_t*)data, sizeof(data)); }
//tft_lcd_send_cmd(ST7789_INVON); // Inversion ON tft_lcd_send_cmd(ST7789_SLPOUT); // Out of sleep mode tft_lcd_send_cmd(ST7789_NORON); // Normal Display on tft_lcd_send_cmd(ST7789_DISPON); // Main screen turned on // Включение TE (Tearing Effect Line) tft_lcd_send_cmd(0x35); tft_lcd_send_data8(0); // Настройка вертикальных porch параметров tft_lcd_send_cmd(0xB2); tft_lcd_send_data8(0x0C); // VFP = 12 tft_lcd_send_data8(0x0C); // VBP = 12 tft_lcd_send_data8(0x00); // VSA = 0 delay_ms(50); tft_lcd_cs(true); return SUCCESS; }