FTDI Community

Please login or register.

Login with username, password and session length.
Advanced Search  

News:

Welcome to the FTDI Community!

Please read our Welcome Note

Technical Support enquires
please contact the team
@ FTDI Support


New Bridgetek Community is now open

Please note that we have created the Bridgetek Community to discuss all Bridgetek products e.g. EVE, MCU.

Please follow this link and create a new user account to get started.

Bridgetek Community

Show Posts

You can view here all posts made by this member. Note that you can only see posts made in areas to which you currently have access.

Messages - marbalon

Pages: [1]
1
Hi,
Back to the suggestion about checking decompressed data, I'm trying to get these values, and this command is not working. I get correct width and height values but the size is always 0.

I'm using this library:
https://github.com/RudolphRiedel/FT800-FT813/blob/4.x/EVE_commands.c

And checked the command implementation and it looks fine. The user manual says that it is RAM_G address of the image and this is true - I'm loading the image to the address 0, but how to check end address?

Any suggestion?

BR,
Marcin.

2
Discussion - Software / Re: FT813 (or BT815) few fonts at the same time.
« on: September 10, 2019, 11:05:13 AM »
Ok, I after some tests and L2 fonts seem to be fine in most cases. But I have a new problem to resolve. I'm loading fonts to the RAM_G from SD card, then on the FT813/BT815 I can use two commands:

- SETFONT - this ok but I have to provide: stride, widht,  and heigh - the question is how can I get these values? The best if I can calculate it based on the size + L1/L2/L4/L8 method. Advantage of this command is that I can upload the font to any RAM address I want and it is working.
- SETFONT2 - seems to be better because I only need to provide font address, but problem is that loading address is "compiled" into the raw file when it is generated ??? When I use this command with different address then provided in the the font converter then it is not working.

In my case, I can have dynamic content on the screen controlled by the server. So I want to use a few fonts on the same screen, but I don't know what combination of these fonts will be used.

Like I mentioned before we are going to switch from FT813 to BT815 to have external flash capability. But Can I use this flash for commands above by putting FLASH address instead RAM_G?

What is the best to resolve the case above???

BR,
Marcin.

Edit.
I found a "hack" for SETFONT2 command and now I can use this command no mather what offset was provided using EVE font converter. I found that in the raw file at offset 0x90 RAM_G address is located (value = RAM_G offset+148), so when I modify this in the memory everything is working ;-)

Code: [Select]
EVE_cmd_load_from_sd(fontFileAddress, EVE_OPT_NODL, font_name, CMD_LOAD);
offsetValueFix = fontFileAddress+148;
EVE_memWrite_flash_buffer(fontFileAddress+0x90, (uint8_t*)&offsetValueFix, 4);

The question is - can I use SETFONT2 command for fonts stored in external flash in BT815 ?

Edit2.
Does the SPI flash can be used to save RAM_G only for dynamic pictures ? Or all displayed data must be in RAM_G including fonts etc.

3
Discussion - Software / Re: FT813 (or BT815) few fonts at the same time.
« on: September 09, 2019, 09:05:27 AM »
Thanks for all the hints I will try to do some different test and see what will be best and fast. But just to confirm - can I use fonts directly (without copying to RAM_G) from the external flash in BT815?


4
Discussion - Software / FT813 (or BT815) few fonts at the same time.
« on: September 04, 2019, 11:29:49 AM »
In our application, we need to have possibility to use few fonts with different sizes. Now I'm working on FT813 and found that custom fonts must be uploaded to RAM_G, but custom font means 1 x font in 1 x size yes ? So, I can't upload font in size 20 and then use it in smaller size ?

I found that new chip from BT81x family have possibility to use external flash to store fonts/bitmaps. So in this way we can upload few fonts in to the external flash and use later? But in FT813 we can not overwrite existing fonts ?

Is there any example how to use external flash fonts ? The documentation is not clear for me.


5
Again thanks for the reply.

I thought images are stored in RAM_G still in JPEG format ant then are converted "in the fly" when chip when need to be used.
So different buffers for different images will not help at all for full-screen images (800x480), most of the images decompressed are bigger than 500kb.
So to make this effect almost not noticeable is use the same buffer address, but small JPG files small as possible and uploaded using  QuadSPI interface.

6
Thanks for a quick answer. So the best way is to keep the images small around max 200kb to save some RAM_G for extra fonts and FIFO when I need to play AVI files because all of this functionality is used in the same time.

Edit.
I have similar problem like another user on this forum (he didn't get an answer). When I try to use 2 buffers in RAM_G for images when I'm writing to first one second is overwritten but img size is much smaller then buffer size. All images are jpg files smaller than 200kb, the maximum size is about 120kb. Btw. When I'm playing avi files from media fifo everything is working fine.

Here is slow-motion video to show this effect:

https://www.youtube.com/watch?v=-DPUduvh1ps

Here are definictionsand code:

Code: [Select]
#define EVE_RAM_G_SIZE 1024*1024L
#define EVE_CMDFIFO_SIZE 4*1024L
#define EVE_RAM_DL_SIZE 8*1024L
#define MEDIAFIFO_SIZE (64*1024)
#define IMG_SIZE (200*1024)
#define IMG1_ADDR (EVE_RAM_G_SIZE - MEDIAFIFO_SIZE - IMG_SIZE)
#define IMG2_ADDR (IMG1_ADDR - IMG_SIZE)

...
void TFT_loop(void)
{
static int index = 0;
static int handle = 0;
uint32_t target_address=0;

target_address = handle ? IMG1_ADDR : IMG2_ADDR;

EVE_cmd_load_from_sd(target_address, EVE_OPT_NODL , file_name[index++], CMD_LOADIMAGE);
EVE_start_cmd_burst(); /* start writing to the cmd-fifo as one stream of bytes, only sending the address once */
EVE_cmd_dl(CMD_DLSTART);/* start the display list */
EVE_cmd_dl(DL_CLEAR_RGB | WHITE); /* set the default clear color to white */
EVE_cmd_dl(BITMAP_HANDLE(handle));
EVE_cmd_dl(BITMAP_SOURCE(target_address));
EVE_cmd_setbitmap(target_address, EVE_RGB565, EVE_HSIZE, EVE_VSIZE);
EVE_cmd_dl(DL_BEGIN | EVE_BITMAPS);
EVE_cmd_dl(VERTEX2II(0, 0, handle, 0));

EVE_cmd_dl(DL_DISPLAY); /* instruct the graphics processor to show the list */
EVE_cmd_dl(CMD_SWAP); /* make this list active */
EVE_end_cmd_burst(); /* stop writing to the cmd-fifo */
EVE_cmd_start(); /* order the command co-processor to start processing its FIFO queue but do not wait for completion */

handle ^= 1;

if (index >= 7)
index = 0;

DELAY_MS(1000);
}



7
Hi all,

I'm trying to find a way to display images one by one from SD card but rapidly one by one. The problem is that when I'm trying to do this I got always rolling effect for all images except the first one. Below is the code with just two images, and it is not working because second images is slightly overwritten with white colour. Images are about 300-500kb. What is the best method to do this? do I have to put images to a different part of the RAM_G? Is there any trick to do this with media fifo or something like that to save a ram for fonts etc.?

The best solution will be:

- froze the screen
- fill with new data using fifo or RAM_G but with the same address
- switch to the new screen

But now everytime I start to write to the RAM_G new data it is automaticaly writed to the screen.

Code: [Select]
void TFT_loop(void)
{
static int index = 0;
uint32_t target_address=0;

target_address = index ? 512*1024 : 0;

EVE_cmd_load_from_sd(target_address, EVE_OPT_NODL , file_name[index], CMD_LOADIMAGE);
EVE_start_cmd_burst(); /* start writing to the cmd-fifo as one stream of bytes, only sending the address once */
EVE_cmd_dl(CMD_DLSTART);/* start the display list */
EVE_cmd_dl(DL_CLEAR_RGB | WHITE); /* set the default clear color to white */
EVE_cmd_dl(BITMAP_HANDLE(index));
EVE_cmd_dl(BITMAP_SOURCE(target_address));
EVE_cmd_setbitmap(target_address, EVE_RGB565, EVE_HSIZE, EVE_VSIZE);
EVE_cmd_dl(DL_BEGIN | EVE_BITMAPS);
EVE_cmd_dl(VERTEX2II(0, 0, index, 0));

EVE_cmd_dl(DL_DISPLAY); /* instruct the graphics processor to show the list */
EVE_cmd_dl(CMD_SWAP); /* make this list active */
EVE_end_cmd_burst(); /* stop writing to the cmd-fifo */
EVE_cmd_start(); /* order the command co-processor to start processing its FIFO queue but do not wait for completion */

index ^= 1;

DELAY_MS(1000);
}

Pages: [1]