BRT Community

Please login or register.

Login with username, password and session length
Advanced search  

News:

Welcome to the Bridgetek Community!

Please read our Welcome Note

Technical Support enquires
please contact the team
@ Bridgetek Support

Please refer to our website for detailed information on all our products - Bridgetek - Bridging Technology

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Rudolph

Pages: 1 ... 23 24 [25] 26 27
361
Discussion - EVE / Re: EVE3 - Asynchronous display-list updates
« on: August 16, 2019, 05:11:33 PM »
I still have no idea what "issue" you are trying to fix in the first place.

Given that the resulting display list is within 8kB - and you always have to make sure it does - I can think of no issue, even when you try to rebuild snippets for the display list over and over.

Even if you just placed your display-list for build from snippets thru the co-processor and immeadiately after this
issue more commands thru the co-processor to update the snippets, it does not matter since all commands are executed sequentially anyways.
You need to make sure that you are not overloading the FIFO but again, you always need to take care of that and since the co-processer is rather fast when processing the FIFO you really would need to put some effort into racing it.

So I guess you could write display-list snippets directly to RAM-GL but not only is this a bad idea on its own, you could easily check if the co-processor is still busy with the display list.
Since you must not try to swap the display list faster than it is displayed, you can easily refresh the snippets in the 17ms you are not refreshing.

The argument that a display list could be without an update for a whole whopping frame is void when you put the updating of the snippets right before building a new list every 17+ ms.

And on top, why do you refresh your snippets anyways?
Everytime you do you could as well send the exact same commands thru the co-processor instead of using cmd_append afterwards, the SPI traffic sure is a little lower, but only for all the frames you do not refresh that snippet.
It more or less only makes the amount of SPI traffic unpredictable and you need to make sure that your programm is still running as it is supposed to in the worst case.

Saving memory could be raised as reason to refresh the snippets.
But first off the display-list is only 8kB long.
How many times that do you need in snippets to make it a problem?
And since for a example a button uses a different amount of memory if displayed normal or flat, you would either allocate the maximum amount for the snippet or implement some memory management.
Investing a little memory to pre-calculate two different snippets would be easier in this case.
And avoid using cmd_button in favour of two button images would make both snippets significantly smaller.
Plus since we are talking about EVE3 you could as well pre-calculate the snippets, put them in the FLASH and then use cmd_appendf to place the snippets from flash in the display-list.

I am afraid that you spent a whole lot of time solving something that is not an issue in the first place.

362
Discussion - EVE / Re: unified blob in BT815
« on: August 15, 2019, 08:51:23 PM »
I am not sure but I might have used 0x800000 as target as well.
But I misplaced that code somehow.
So I tried it again with 0x0000000 as target adress.

And this time it worked on my EVE3-50G on which I replaced the 32MBit flash with a 128MBit type.

I generated a flash.bin with the EVE Asset Builder containing two pictures.
Then I wrote this flash.bin with the EVE Asset Builder to check if my code does display the images correctly and it does.
So I erased the flash with the EVE Asset Builder and linked the flash.bin to my programm.
I added a few lines to execute a cmd_flashwrite() in case the flash status is "2" after trying to put it into FULL mode.
The flash.bin is 22528 bytes long and it gets written now the first time my programm runs after erasing the flash.
After a reset the images are displayed.

The RVT43ULBNWC00 however that I put a SST26VF064BA-101I/SM on is a totally different story.
I can erase the flash just fine with the EVE Asset Builder.
And from my software I can tell it gets detected by the BT815 and put into "BASIC" mode.
But cmd_flashwrite() just silently fails doing nothing.

And when I use the EVE Asset Builder to write the flash.bin I get this:

----
Write D:.../Flash/flash.bin to flash unsuccessfully!
Log:
 Information on channel number 0:
 Flags=0x2
 Type=0x8
 ID=0x4036014
 LocId=0x432
 SerialNumber=
 Description=Single RS232-HS
 ftHandle=0x0

handle=0x76edb8 status=0x0
VC1 register ID after wake up 7c

 reg_touch_rz =0x7fff
 reg_touch_rzthresh =0xffff
 reg_touch_tag_xy=0x80008000
 reg_touch_tag=0x0

Writing Blob file ".\unified.blob" to BT81X Flash Storage
Error, Flash is not able to get into full mode
Fail to write Blob file ".\unified.blob" to BT81X Flash Storage
Existing ...
----

Oh yes, that "Existing" is a typo in the flashtool. :-)

But I wrote it before somewhere else in this forum, the rest of the message is also a bit strange.
Why is the flashtool still insisting on writing "unified.blob" while the blob already is part of the flash.bin?
"Error, Flash is not able to get into full mode" - why is this error even there? Why does it even try to put the flash into full mode?

Bottom line, neither the EVE Asset Builder or my software can write to the Flash of my choice,
is there anything that can be done about this?
Or is there even a reason to this, some incompatibility that maybe is shared with other Flash chips?







363
Discussion - EVE / Re: EVE3 - Asynchronous display-list updates
« on: August 14, 2019, 07:35:11 PM »
Hrmm, you know that the display-list is doubled buffered and only gets used to actually display anything if you tell it to?

You can use the co-processor to generate as many fragments of display lists as you like and take as much time
as you like to copy these around.
The display list is always updated asynchronously.

https://github.com/RudolphRiedel/FT800-FT813/blob/4.x/example_projects/EVE_Test_SAMC21_FT813_EVE2-35G/tft.c

This is just my ugly test-code and it is a bit outdated.
But I always have a function initStaticBackground() in which I define the portions of the screen that do not change.
and append this at the start when building the display list.
In my last project I expanded this to three segments, two additional ones to switch between two screens.



364
Discussion - EVE / Re: unified blob in BT815
« on: August 08, 2019, 07:33:24 PM »
I am not sure about cmd_flashupdate since it is not mentioned in the programming manual on page 17.
I went with cmd_flashwrite and for some reason it did not fail but it dod not work exactly either.

However, you could try to add a header to the SPI pins between your controller and the BT815 in order to connect
a VA800A-SPI to it and use the EVE Asset Builder.
This should work when you put your controller into reset.

This is one more reason why I stick with modules like the EVE3-50G, I can detach my controller board and connect
the module to my "EVE2 USB to SPI" from Matrix Orbital or my "Hermes Board" from Riverdi.
The current iteration of my controller board is only 45x36 mm, has a stepdown regulator, a speaker, an ATSAMC21E18A-AU, a LDO for the CAN and a TJA1051 CAN-FD transceiver.
I use a 5cm FFC cable.

365
Shared Projects / EVE code library
« on: August 06, 2019, 09:51:53 PM »
Looks like this is the place to put something like this, I have a code Library up on Github for a while now:
https://github.com/RudolphRiedel/FT800-FT813

Despite the name it supports BT81x as well.
I just finished a project for which I replaced a defective VM800B50A with a RVT50AQBNWC00.
This unit was driven by an Arduino mini-pro using the Arduino framework.
And in parallel I was testing the exact same display code on an EVE3-50G using an ATSAMC21E18A board with SPI by DMA.

Edit:
I just released the first interation of V5 of my code library:
https://github.com/RudolphRiedel/FT800-FT813/tree/5.x

366
Discussion - EVE / Re: unified blob in BT815
« on: August 06, 2019, 09:27:53 PM »
According to page 17 of the Programming Guide cmd_flashfast is not needed to write to the FLASH.
A couple of commands like cmd_flasherase and cmd_flashwrite work in "Basic" state as well and this way the Asset Builder is able to write to the FLASH thru the BT81x even if the FLASH has been erased or is completely new.
My best guess is that "Basic" is using simple SPI and "Full" is using QSPI.

Well, at least in theory it is that way and I experienced cmd_flashwrite not working myself recently.
My code was doing something wrong and I still need to find out what.

367
Discussion - EVE / BT81x and Animation support
« on: August 02, 2019, 05:19:31 PM »
I played with the new animation support in the EVE Screen Editor.
And I wonder what this is supposed to be used for.

Splitting up the frames of an animation into tiles is nice to save space in the external FLASH I guess.
Although the converter doubles the amount of frames and all the odd frames look exactly the same than
the even ones, so I have to wonder if this really is saving memory.
Without more insight I call this a bug in the converter.

There is a huge issue however, due to the tiling of the frames the display list is getting filled rather fast.
Now the smallest off-the-shelve FLASH on a BT81x module is 32MBit and I can easily replace it.
But the size of the display list is still only 8kB or 2048 commands.
The 124x300 pixel animation I have up in the EVE Screen Editor fills up the RAM_DL to 28% with only four lines
of coprocessor commands.

Am I missing something important here?
Right now this looks like a feature I rather not use.
Just cyling thru images on my controller has zero impact on the display list and while this costs a couple
more lines of code I just got a lot of free space for moving the images into the external FLASH.

And I checked, there is no way to tell the animation converter to drop the tiling.

368
Discussion - EVE / Re: problem regarding eve2 display.
« on: August 02, 2019, 04:48:00 PM »
The init in my library starts a little different:

Code: [Select]
EVE_pdn_set();
DELAY_MS(6); /* minimum time for power-down is 5ms */
EVE_pdn_clear();
DELAY_MS(21); /* minimum time to allow from rising PD_N to first access is 20ms */

#if defined (EVE_HAS_CRYSTAL)
EVE_cmdWrite(EVE_CLKEXT,0); /* setup FT8xx for external clock */
#else
EVE_cmdWrite(EVE_CLKINT,0); /* setup FT8xx for internal clock */
#endif

#if defined (BT81X_ENABLE)
EVE_cmdWrite(EVE_CLKSEL,0x46); /* set clock to 72 MHz */
#endif

EVE_cmdWrite(EVE_ACTIVE,0); /* start FT8xx */

chipid = EVE_memRead8(REG_ID); /* Read ID register */
while(chipid != 0x7C) /* if chipid is not 0x7c, continue to read it until it is, FT81x may need a moment for it's power on selftest */
{
chipid = EVE_memRead8(REG_ID);
DELAY_MS(1);
timeout++;
if(timeout > 400)
{
return 0;
}
}

This does not only work faster than a fixed delay, it also works with no display attached.

369
Discussion - EVE / implementing support for formated strings
« on: June 23, 2019, 05:29:25 PM »
Hi,

has anyone successfully implemented vararg functions for CMD_BUTTON, CMD_TEXT and CMD_TOGGLE?
I am looking into implementing it for CMD_TEXT and I am sort of stuck at the beginning.

The problem is, there is no way to tell how many arguments are supplied and of what type these are.
So if I understand this correctly you either have to work with a known set or arguments like numbers for which
you also provide the amount with which you are calling the function.

void EVE_cmd_text_numbers(int16_t x0, int16_t y0, int16_t font, uint16_t options, const char* text, num,...)

EVE_cmd_text_numbers(0,0,28,OPT_FORMAT,"foo bar %x.i",2,0xdeadbeef,8);

This approach seems lacking.

The other alternative would be to parse the string.
But then I could use snprintf() before using EVE_cmd_text() and be done.

A practical approach would be a function that adds a single uint32_t parameter that is transferred only if OPT_FORMAT is given.
Well, better than nothing, I am adding this for now.


370
Discussion - EVE / BT81x faster FLASH testing
« on: June 21, 2019, 04:45:14 PM »
Today I received two SST26VF064BA-101I/SM from Microchip which I bought from Mouser.
Instead of the industrie-standard 50...180 seconds for a chip-erase these do a chip-erase in 50ms max.
I soldered one onto my RVT43ULBNWC00 and tested it with the EVE Asset Builder.
The whole "Erase" action takes less than five seconds now which really is great for testing things.

Edit: after some tries and no help with this here I gave up on the SST26VF064BA-101I/SM now.
Yes, the chip-erase is very fast.
But as it turns out, EVE refuses to write to these.
The SST26VF064BA-101I/SM are detected correctly with the right size, but cmd_flashwrite does not write
anything to the chip.
And there is no output from the EVE Asset builder to indicate what could be wrong.

I removed the SST26VF064BA-101I/SM again and put back the 64Mbit flash that the RVT43ULBNWC00 was deliverded with.
And after a (painfully long) erasing of the chip with the EVE Asset Builder my test aplication used cmd_flashwrite just fine
for a small file containing the unified.blob and two images.

371
I'm trying to load two converted png file from mcu flash but something is not right. How to know where to load next one image (display RAMG address) avoiding overwriting previous image?

How can you not know the properties of the images that you converted to be loaded from flash? :-)

Loading some random image from a sd-card could be a challenge.
But even then you better make sure that they fit into the space you reserve for them before unpacking these to RAM_G.


this makes use of the GET_PROPS command

That is a good example for a function which is described not so good in the user-manual.
The C prototype "void cmd_getprops( uint32_t ptr, uint32_t width, uint32_t height);" implies that you are feeding
parameters into it, not that you can use it to retrieve parameters.
The way how this works and how the data could be acessed is described a little for cmd_getptr.

372
Discussion - EVE / Re: EVE Image Converter and Alpha-Channel
« on: June 06, 2019, 08:53:20 PM »
I know that Riverdi has EVE3 modules, I could get them from TME.
I have a RVT43ULBNWC00 I am playing with.

However, I already have a finished design for a tablet-like case to fit an EVE2-70G in and Riverdi uses
a completely different PCB.
The need to take additional steps when converting images is far less of a inconveniance than to
redesign our case and maybe even our PCB.

Of course you are right and if DigiKey and Mouser keep pushing the delivery data I just might get modules from Riverdi regardless.

373
Discussion - EVE / Re: EVE Image Converter and Alpha-Channel
« on: June 03, 2019, 04:38:40 PM »
My problem is not that I do not have an alpha-channel.
My problem is that the alpha-channel in my pictures is 8 bit and EVE uses only 1 bit.

The file "test_original.jpg" is a portion of a .png saved with irfanview.
The file "test_ARGB.jpg" shows how EVE Image Converter converts it.

And here I could stop as unfortunately using a BT815 instead of a FT813 still is not an option for me.
I would like to switch from EVE2-70G to EVE3-70G but neither Mouser or DigiKey have these in stock.

But you are right, as can be seen in the file "test_ASTC4x4.jpg", this works much better.
At least in the EVE Screen Editor it does.
 



374
I didn't initialize the display list to any value before writing REG_PCLK. Now I send DISPLAY() and write REG_DLSWAP before REG_PCLK.

I think the behavior between FT813 and BT815 is different, though. I have never experienced any problem with my previous PCB.

Well I have a FT800 Programmers Guide.pdf from 2014 here and the given example for the initialization example is pretty much the same in the current BRT_AN_033_BT81X_Series_Programming_Guide.pdf.
And you are still not following it correctly.

375
Discussion - EVE / Re: Speeding up font conversion
« on: May 27, 2019, 08:34:38 PM »
Sent out a bunch of files.

Pages: 1 ... 23 24 [25] 26 27