作者: ghostkcleung 時間: 2021-5-21 20:31 標題: 都唔知整啲 18Bit(666) color 出嚟做乜
本帖最後由 ghostkcleung 於 2021-5-21 21:10 編輯
16-bit 咪 16-bit 囉,係都要必整多 2 粒出嚟,
搞到我 1 個 pixel 要 transfer 3 個 byte,
拖慢咗 50% 速度,
用 ESP32 嘅 27Mhz SPI 輸俾 Arduino Due 嘅 Parallel。
佢一係就 24 叫做豐富啲啦。
作者: Charcoal99 時間: 2021-5-22 10:59
這些 TFT color display 通常都可以設定 color mode, rgb666 18bit可以顯示262K color, 你若然需要speed performance, 可以選 65K color 16bit 的 rgb565 mode. 每個pixel 2byte. 要速度還是要 深color depth 任君選擇, 不是很好嗎?
SPI 串行口速度輸給並行口, 不是很正常的嗎?
作者: xiao 時間: 2021-5-22 11:41
16-bit 咪 16-bit 囉,係都要必整多 2 粒出嚟,
搞到我 1 個 pixel 要 transfer 3 個 byte,
拖慢咗 50% 速 ...
ghostkcleung 發表於 2021-5-21 20:31
你試試看自己優化人家的library, 泛用設計兼顧很多沒用的東西就會慢
按照自己需要改一下就會好起來.
作者: ghostkcleung 時間: 2021-5-29 15:54
本帖最後由 ghostkcleung 於 2021-5-29 17:51 編輯
這些 TFT color display 通常都可以設定 color mode, rgb666 18bit可以顯示262K color, 你若然需要speed p ...
Charcoal99 發表於 2021-5-22 10:59
我嗰塊無得 Set 16 bit,原來一般嚟講會有 3 個 pin,
IM1, IM2, IM3 俾你 short 埋,先至可以有相關設定。
作者: ghostkcleung 時間: 2021-5-29 15:55
我就係做緊呢樣嘢
https://github.com/ghostkcleung/tft_framework
作者: marlin12 時間: 2021-5-30 17:37
本帖最後由 marlin12 於 2021-5-30 17:41 編輯
如果ESP32的SPI clock是27MHz,ILI9488的解像度是320x480,照計算都應該做到約7 frames/sec。如果只是用來做user interface (不是做動畫),應該已經很足夠。會唔會係ESP32 core背後的多工環境,影響到SPI的速度?
27MHz / (320 x 480 x 3 bytes/pixel x 8 bits/byte) = 7.324 frames/sec
作者: ghostkcleung 時間: 2021-5-30 17:50
我 clear 8 次,用咗 0.96 秒。
速度 OK 嘅,不過我諗法係如果可以 3 個 byte 變成 2 個 byte 嘅話,
會比較開心啲囉。
同埋我睇過,原來 ILI9488 行 SPI 係一定要 18-bit color。
即係通常有個 Command ( 0x3A, 0x66 )
唔可以 0x3A, 0x55
如果ESP32的SPI clock是27MHz,ILI9488的解像度是320x480,照計算都應該做到約7 frames/sec。如果只是用來 ...
marlin12 發表於 2021-5-30 17:37
作者: marlin12 時間: 2021-5-30 18:04
本帖最後由 marlin12 於 2021-5-30 18:26 編輯
我 clear 8 次,用咗 0.96 秒。
速度 OK 嘅,不過我諗法係如果可以 3 個 byte 變成 2 個 byte 嘅話,
會比 ...
ghostkcleung 發表於 2021-5-30 17:50
但係ILI9488說明書指出,它的4-line serial interface是支援RGB565,可惜無timing diagram。你有無試過?
ILI9488 datasheet
https://h2.hkepc.com/forum/attachment.php?aid=2265760&k=e3c9862d835ef113e7caf06f477e4958&t=1781476687&sid=8yrqzhwrG

作者: marlin12 時間: 2021-5-30 18:43
但係ILI9488說明書指出,它的4-line serial interface是支援RGB565,可惜無timing diagram。你有無試過?
...
marlin12 發表於 2021-5-30 18:04
已經有人試過4-wire serial I/F的RGB565係唔得既!
ILITEK啲咁既公司,錯既說明書,連errata都無。

Convert 16bit to 18bit
作者: ghostkcleung 時間: 2021-5-30 19:19
只要我俾咗個 command (0x3A, 0x55)
就只會見到白畫面。
作者: ghostkcleung 時間: 2021-5-30 19:47
其實仲有邊隻行 SPI 嘅 TFT Chip 係好玩?
作者: marlin12 時間: 2021-5-30 20:30
本帖最後由 marlin12 於 2021-5-30 20:38 編輯
小弟對TFT彩屏都好外行。
如果唔理價錢,又要方便,咪試吓玩HMI屏(例如:Nextion),但真係無咩邊個做得好,而且都幾多限制。
其實,比較優質既TFT屏,係用SYSTECH既controller,其他廠都係抄佢,但係普通人好難買到。
雖然大陸屏質素麻麻,但係勝在夠快(SPI都可以推到40MHz)。可以用buffer+DMA+interrupt既方法,將frame rate推到最高。一來可以offload個MCU做其他野,又可以用來做動畫。
另一個方向是做工具,好似你咁做個好用既library(甚至HMI或CRO framework)。又或者做個TFT屏的simulator,唔需要每次都下載到MCU上面調試。
作者: ghostkcleung 時間: 2021-5-30 21:55
其實我手上嗰塊 ILI9488 已經好好玩,
缺點就係喺 565 同埋 666 嗰度。
搞到好似無乜心機再搞落去。
作者: Charcoal99 時間: 2021-5-30 22:31
玩厭TFT, 有編程底, 價錢不貴, 可以試玩高級點的 HMI Display 。
既可玩HMI, 又可以玩於RTOS編程 (lua programming language), 內置雙核400MHz CPU, 有觸屏, Wifi, RTC, SD Card, 支持 JPEG, MP4 播放, 仲可以做實際應用。
https://item.taobao.com/item.htm?id=590584576312
https://zh.wikipedia.org/wiki/Lua
作者: ghostkcleung 時間: 2021-7-28 11:44
加咗繪畫 BMP 功能。
https://github.com/ghostkcleung/ ... mework/src/Image.md
https://h2.hkepc.com/forum/attachment.php?aid=2275056&k=4bd0a2d4408ba659e01262710767be79&t=1781476687&sid=8yrqzhwrG

作者: ghostkcleung 時間: 2021-7-28 11:46
唔識 DMA
作者: marlin12 時間: 2021-8-7 12:43
你有無量度過,從SD card下載一幅320x480x24-bit的BMP圖像,到在LCD完整的顯示,在Arduino Mega和ESP32上,分別要花多少時間 ?
看到你在github.com/ghostkcleung/tft_framework上面的What will I do next,如果你想做screen capture到SD card,建議你改用SdFat程式庫,因為Arduino的SD程式庫寫的速度很慢。
Why is the SD library slow?
作者: marlin12 時間: 2021-8-7 13:08
Arduino Mega上面的ATmega2560沒有DMA控制器,ESP32-Arduino 也不支援DMA。
但是,ESP32是一個Dual-core的MCU,在Arduino上面,通常只用了其中一個CPU core。如果可以在一個core更新一個display buffer的時候,另一個core把另一個display buffer抄到LCD module。這樣,便可以有類似CPU和DMA同時工作的效果。
ESP32 Dual Core Programming with Arduino IDE
找到一個第三方支援ESP32-Arduino用DMA傳輸SPI的方案,但是很懷疑它的功能和可靠性。
hideakitai / ESP32DMASPI
作者: ghostkcleung 時間: 2021-8-9 20:43
試過,用 esp32 大約 1 秒。
如果 SdFat 可以兼容大部分 MCU,
我會嘗試吓改寫(呢個建議不錯)
你有無量度過,從SD card下載一幅320x480x24-bit的BMP圖像,到在LCD完整的顯示,在Arduino Mega和ESP32上 ...
marlin12 發表於 2021-8-7 12:43
作者: ghostkcleung 時間: 2021-8-9 20:46
淘寶呢排搵唔到行 SPI 嘅 ili9486。
作者: marlin12 時間: 2021-8-11 23:41
本帖最後由 marlin12 於 2021-8-22 13:03 編輯
近日台灣的芯片供應嚴重短缺,唔單止大幅漲價,而且交貨期超長。
如果你還是介意ILI9488/9486的SPI RGB666,為何不考慮轉用支援SPI RGB565的ST7796S?
ST7796S Datasheet
GFX Library for Arduino和Bodmer / TFT_eSPI這兩個Graphic Libraries,都支援ST7796 driver。


