void ILI9481_t3::setIO(uint16_t data)
{
// lower 8 bits
GPIOD_PCOR = 0xFF;
GPIOD_PSOR = data & 0xFF; // DB 7, 6, 5, 4, 3, 2, 1, 0
// upper 8 bits
byte a = data >> 8;
(a & 0x80) ? (CORE_PIN31_PORTSET = CORE_PIN31_BITMASK) : (CORE_PIN31_PORTCLEAR = CORE_PIN31_BITMASK); // DB_15
(a & 0x40) ? (CORE_PIN32_PORTSET = CORE_PIN32_BITMASK) : (CORE_PIN32_PORTCLEAR = CORE_PIN32_BITMASK); // DB_14
(a & 0x20) ? (CORE_PIN29_PORTSET = CORE_PIN29_BITMASK) : (CORE_PIN29_PORTCLEAR = CORE_PIN29_BITMASK); // DB_13
(a & 0x10) ? (CORE_PIN30_PORTSET = CORE_PIN30_BITMASK) : (CORE_PIN30_PORTCLEAR = CORE_PIN30_BITMASK); // DB_12
GPIOA_PCOR = 0x3C000;
GPIOA_PSOR = (a & 0xF) << 14; // DB 11, 10, 9 , 8;
}
The T4 already has a GPU with a fast interface. Paul mentioned a larger variant... my hope is, it has the required pins, then.. even if the GPU is not very powerful - the interface alone would be very helpful.
Recently in the team we managed to install a 3.5 "FT813 HD screen, in the Teensy 4. After many hours of unveiling, we were able to link the Greiman SdFat beta library to the James 23X gameduino library, with the idea of using the interface SDIO, as a means to store images, jpg or png, assets, cell arrangements and even videos in avi format with audio.The screen specifically is this: NHD-3.5-320240FT-CSXN-CTP, without using an external power source.
They are somewhat expensive screens, however they have good resolution, are visible under sunlight, moderate consumption and have a 20-pin head that facilitates installation on a PCB. The SPI 1 bus can be configured up to 45 MHz!, in order to activate the display interface.
Esta es la librería adaptada, incluye algunos ejemplos: https://github.com/FT81xMania/GD23ZUTX
Reviving this for the sake of info from Paul
I'm ordering the 3.5" ILI9488 display from buydisplay.com
I'll connect it to an FPC breakout board for testing. I know there are some additional components required such as the driver transistor for the backlight, but I see other components on the 3.2 adapter you built in 2017 and would be interested in seeing a schematic if possible
@Rezo - The one of theirs I have I think is one of these: https://www.buydisplay.com/lcd-3-5-...lay-module-optl-touch-screen-w-breakout-board
Don't remember if it has touch on it or not... If I remember correctly I purchased it through EBAY.
Personally I probably prefer the HX8357 over the ILI9488, at least if you are doing communications over SPI (4 pin), as if I remember correctly the HX8357 you can do 16 bit color writes to the screen. Where as the ILI9488 you do 18 bit colors (actually 24 bits) So things like fillScreen take 1.5 times as long.
Also with things like Frame buffer, I did not want to go through all of the work to somehow make the frame buffer to work with 24 bits and DMA, so instead by default it stores as the same 16 bits as the colors we use and then when the screen is updated, it converts the 16 bits to 24 bits to output. If the operation is DMA than, this is done a buffer at a time, first at the start up to fill the first buffers and start up the DMA operation, and then it triggers an ISR when a buffer output is complete, and it converts the next portion of the frame into the buffer... So system overhead there as well.
BUT I do have an option for T4.1 with external memory, where you can setup the Frame buffer for 32 bit pixels. Only 24 bits are used, conversation done when stored and DMA is setup to transfer 32 bits to the SPI.TDR register and SPI configured to transfer 24 bits out... So maybe wasted memory but no system overhead to output over DMA... I keep wanting to cleanup some of this code to allow it be configured by sketch instead of header file options... But I have not done so.
Yes and someday yeshas the library been updated to utilize the extra RAM or is it something still being worked on?
//#define ENABLE_EXT_DMA_UPDATES // This is only valid for those T4.1 which have external memory.
I understand you - if you can get it to be configurable in the constructor it will make config much easier for the user, but at the moment I think people are competent enough to uncomment that lineThat is today, with the library, if you look at the header file you will see:
If you uncomment it, then this option is enabled on ALL t4.1s... So it will only work on those T4.1 that have the memory. I HATE these types of options.Code://#define ENABLE_EXT_DMA_UPDATES // This is only valid for those T4.1 which have external memory.
So even with the extra RAM and writing more bits at a time its till slower? I guess the only bottleneck is the SPI bus after all. But, I have seen someone here running the 9488 at 80Mhz! I can get the HX to run at 32Mhz at most and it looks exactly the same as it does at 26Mhz. Anything higher, it stops displaying.Over time, I would like to have an option or sub-class or ??? where you can define if you wish the TFT to use 1 byte 2 bytes or 4 bytes per pixel in the Frame buffer.
Today with T3.5/T3.6, 1 byte is the only option and we have a pallet(Palate) for those of us who are spelling challenged. For T4/T4.1 without extra memory, you can do 1 or 2... With ones with extra memory you have all 3 options.
I can totally understand the price difference, but just wanted to give you a heads up on the speed differences.
what I suspect are micro solder shorts on the FPC connector.