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 - Rudolph

Pages: 1 [2] 3
16
General Discussion / Re: FT82x
« on: September 02, 2018, 04:01:53 PM »
All FT8xx so far have 8k of memory for the display-list, that is 2048 32-bit words.
Expanding this to 64k would be nice on first glance but then everything still would need to be executed for every single frame.
So at the same time the chip would need to be much faster.

This reminds me of a different "issue".
The divider for the clock only works well for small displays.
800x480 is configured to 928 h-cycles und 525 v-cycles, that are 487200 clock-cycles.
A typical value for the divider would be REG_PCLK = 2 which means that a FT81x uses 30 MHz.
In return these settings result in about 61 frames per second, nice.

Now I have this 1024x600 TFT from Glyn.
For some reason (I suspect a flaw in the design on Glyns side) these can not be used with the full clock of 60MHz.
As these are configured to 1100x720 this would result in 75 frames per second anyways.
The recommended value is 20MHz and therefore 25 fps and they work well with 30MHz which results in 37 FPS.

The issue I have there is that the divider does not allow for fractional values, so I could not configure it to
use 45MHz for example which would result in 56 fps.

Now the upcoming BT81x uses 72MHz.
That is nice, so the 1024x600 panel could be used with 45 fps.
The 800x480 panel at REG_PCLK = 2 would run with 73 fps so we need to make that REG_PCLK = 3.
But then it would be clocked with 24MHz and "only" 49 fps.

If for whatever reason you would need to fine-tune the frame-rate you simply could not do that.
One could come up with the idea to manipulate the base-clock but the datasheet does not give a frequency range, the only allowable frequency is 12MHz.
The PLL could be changed to multiply by 2...5 (6 with BT81x).

At higher resolutions this would even become more of an issue.

Do I want higher resolutions or do I need them?
No, not really, I would be fine with 4 pixels per mm for HMI. Or make that 8 pixels per mm.
The typical 800x480 7" has 11 pixels per mm.
But what I need are bigger displays and there close to none 800x480 or 800x600 panels bigger than 7" out there.
And the bigger panels do not only have higher resolutions, they also typically do not have a RGB interface anymore but LVDS instead.







17
General Discussion / Re: FT82x
« on: August 30, 2018, 07:06:41 AM »
Cypress has 1GBit NOR QSPI devices and Micron has 2GBit devices, Gigadevices has 512MBit.

SPI NAND however would be upto 8GBit.

If availability is the limiting factor: :-)

18
Discussion - Software / Re: Timing parameters for EVE modules?
« on: July 15, 2018, 03:33:09 PM »
Among a few other things I just added timings for all the Riverdi modules I had no timings for so far.

19
Discussion - Software / Re: Timing parameters for EVE modules?
« on: July 11, 2018, 08:01:49 AM »
Thanks, but I already have quite a few timings and tested all these that are in my still growing collection. :-)

https://github.com/RudolphRiedel/FT800-FT813
https://github.com/RudolphRiedel/FT800-FT813/blob/master/FT8_config.h

There are a few more out there but most of these are not obtainable anyways.

4DSystems *seems* to have given up on EVE, at least I found none at their booth on Embedded World this year.
Did not help either that no one at their booth was showing any interest in me.

Glyn has a whole family of modules but they are stricly B2B, you have to ask them for a quote from your company,
you can not just buy these from DigiKey or Mouser.

Riverdi has some that are a lot easier to get at least in Europe, you can buy these from TME for example.
I should add the rest from them as well.

Matrix Orbital has a complete set of modules that can be bought from DigiKey.
These are my favorite ones currently, specifically the "G" types. I have all timings for these.

Newhaven Display also has a complete set of modules that can be bought from DigiKey.
The panels are nice, expecially the premium ones, but the 1.0 mm FPC header make these a no-go for me.

Haoyu has a few inexpensive ones that are sold by Hotmcu.com out of Shenzen.
The panels are not as good, especially the cap-touch version disappointed me but they offer the lowest prices and their
board can be used with a single 5V supply and 5V signals, very much like the modules from FTDI.
In addition these come with a simple bezel mounting frame and some even with an integrated FPC breakout board.

20
Discussion - Software / Re: Timing parameters for EVE modules?
« on: July 06, 2018, 10:15:14 PM »
The VM810C, ME812A and ME813A all use the WVGA settings.

Thanks, I will add that.

Quote
Note that the ME810A-HV35R requires configuration of the ILI9488 inside the LCD panel via the dedicated serial interface on the LCD ribbon cable. You can find an example of this in the file ILI9488.h in our sample apps such as FT_App_Gradient.

Well, after a look in the datasheet and after checking out ILI9488.c of that example I better give this one a pass.
With no way to test this this is just to weird unique to support. Maybe if someone asks for it.

21
BITMAP_SIZE_H and BITMAP_LAYOUT_H is what you are looking for.
But you really want to check out CMD_SETBITMAP.

22
Discussion - Software / Timing parameters for EVE modules?
« on: July 05, 2018, 12:56:21 PM »
With the discussions here around the ME813A-WH50C module I just thought it would be a nice touch to add timing parameters for a few of the newer modules to my library.
ME813A-WH50C
ME812A-WH50R
ME810A-HV35R
VM810C50A-D

But there are no timing parameters to be found, not even the ones from the panel datasheets.

BRT_AN_018_FT90x_Camera_to_EVE\eve\EVE_config.h has these:

#if FT8XX_DISPLAY == WVGA
#define EVE_DISP_WIDTH 800 // Active width of LCD display
#define EVE_DISP_HEIGHT 480 // Active height of LCD display
#define EVE_DISP_HCYCLE 928 // Total number of clocks per line
#define EVE_DISP_HOFFSET 88 // Start of active line
#define EVE_DISP_HSYNC0 0 // Start of horizontal sync pulse
#define EVE_DISP_HSYNC1 48 // End of horizontal sync pulse
#define EVE_DISP_VCYCLE 525 // Total number of lines per screen
#define EVE_DISP_VOFFSET 32 // Start of active screen
#define EVE_DISP_VSYNC0 0 // Start of vertical sync pulse
#define EVE_DISP_VSYNC1 3 // End of vertical sync pulse
#define EVE_DISP_PCLK 2 // Pixel Clock
#define EVE_DISP_SWIZZLE 0 // Define RGB output pins
#define EVE_DISP_PCLKPOL 1 // Define active edge of PCLK
#endif // FT81X_WQVGA

But with no reference whatsoever for what module these parameters are supposed to be used.
Are these good for the three 5" modules with 800x480?

What parameters should be used with the ME810A-HV35R then?


Well, if FTDI/BRT would send me a sample ME813A-WH50C and ME810A-HV35R I would gladly tests these for use with my library and put these into my extensive collection of EVE modules. :-)

23
You can also check out my library: https://github.com/RudolphRiedel/FT800-FT813

It is plain C, cross-plattform in a sense that it uses a minimalistic set of mostly one-line functions that are target specific while almost everything else is not.
And while I have not used it with ARM myself I have reports that it has been used successfully with a whole bunch of ARM controllers: STM32, SAM3, SAM4, SAMV70, SAMC21, SAMD20.
The last platform I needed to adapt to was Infineon Aurix, with the help of the software engineer I was to provide a visualisation for it took about 20 minutes with a bit of explaining for the target specific lines and built flawlessly in the scope of his project.
Next up für me is SAME51.

A good starting point would be the "FT8xx_Test_90CAN_FT813_EVE2-35G" example I provided, it should be updated with the latest FT8_commands.c though.
You should be able to adapt it to your target quite easily and from there it should provide some ideas for your own library.

24
This is how I control the backlight

Why? What purpose serves that calculation?

I just use a 8-bit memory write:
FT8_memWrite8(REG_PWM_DUTY, 0x10);

And the valid range is 0...128.

25
Discussion - Hardware / Updated Design Support?
« on: June 30, 2018, 06:25:09 PM »
What about updated hardware-support?
Specifically I would like to see updated Altium Designer Libraries for FT8xx series.
What Altium has on their website as official FTDI support package really is old.
It mentions FT8xx but it really only has FT80x footprints and the FT800 schematic symbol, maybe the FT801.

A "reference" design with a FT813/FT812 would be nice, maybe on of the released modules like the ME810A-HV35R.

Or one for the upcoming BT815/BT16.
Regarding the BT81x - the website http://brtchip.com/bt81x/ still says "Available June 2018" and still only has that draft datasheet from february and still links to that buggy "FT81x Series Programmers Guide" in version 1.1 from 2016-09-19.
But we are almost past June now.


26
As I wrote, there is no function to draw arcs or circles directly.
The follwing is untested, just a bunch of code put together adhoc from existing code and modified.

Drawing a circle:
   FT8_cmd_dl(DL_BEGIN | FT8_POINTS);
   FT8_cmd_dl(DL_COLOR_RGB | mycolor);
   FT8_cmd_dl(POINT_SIZE((diameter + (2*width))* 16));
   FT8_cmd_dl(VERTEX2F(some_x * 16,some_y * 16));
   FT8_cmd_dl(DL_COLOR_RGB | background);
   FT8_cmd_dl(POINT_SIZE(diameter * 16));
   FT8_cmd_dl(VERTEX2F(some_x * 16, some_y * 16));
   FT8_cmd_dl(DL_END);

Drawing an arc:

       fill_arc_array();

   FT8_cmd_dl(DL_COLOR_RGB | color);
   FT8_cmd_dl(LINE_WIDTH(width * 16));
   FT8_cmd_dl(DL_BEGIN | FT8_LINE_STRIP);

   for(counter=0;counter<31;counter++)
   {
                FT8_cmd_dl(vertex2f_arc_xy[counter]);
   }
   FT8_cmd_dl(DL_END);

So the second assumes that you have a vertex2f_arc_xy[] array with 32 bit values filled like this:
vertex2f_arc_xy[n] = VERTEX2F(some_x * 16,some_y * 16);

This can be pre-calculated data, maybe with the help of a spreadsheet or calculated on the fly between to points
in the plane and probably a radius to go with that.

The result of this can be seen somewhat in this picture:
https://github.com/RudolphRiedel/FT800-FT813/blob/master/example_pics/FT811_HY50HD.jpg
That graph on the right consists of a line-strip with 64 points with fixed values for the sample code.
That sine curve on the far right only has a fraction of that points and still looks decent.

But as I wrote above, this eats the display-list, you have to find a a trade-off between just enough points for the arc and a really smooth one.

For static display elements however using pictures of arcs would be far superior in terms of resources used.

27
Discussion - Software / Re: FT81x and available free GRAM
« on: June 27, 2018, 01:02:53 PM »
There is no such info available, you need to keep track of GRAM in your application. For the FT8xx this is just a buffer and you tell it to put what where and from where to use it.

The only function I know that helps with that a bit is CMD_GETPTR which returns the end-address of the last data processed by CMD_INFLATE.
But for images that does not help much.
With a known resolution you already can calculate the size in GRAM.
And with some image loaded from somewhere like a SD-Card the uncompressed size is not really helpfull without the width, height and format.

A similar function would be CMD_GETPROPS for CMD_LOADIMAGE but this one does not return the end-address.
But you can calculate that with the format supplied to CMD_LOADIMGE and the resolution.

Anyways, it takes a little planning, maybe a spreadsheet.

28
You can use the VERTEX2F or VERTEX2II commands to draw graphics primitives including lines/arcs.

Actually, no, there is no command for drawing arcs or full circles, that is something I am missing in the FT8xx as well.
You can draw a circle by drawing a POINT and then a smaller one with the background color on top of it.
Plus you could draw a RECT to mask out a portion of that circle for an arc.

And you could in theory use a LINESTRIP to draw an arc but that would not only require quite a lot VERTEX2F commands for a decent arc and therefore eating up the available space in the display-list fast, it also is a pain for the controller to calculate since the Y coordinate has to be shifted into that odd bit-position for every VERTEX2F.

The third option would be to use bitmaps, if you can't draw it on the fly, fake it. :-)


29
General Discussion / Re: FT82x
« on: June 02, 2018, 03:08:16 PM »
First and off-topic, do we eventually earn the right to post here without approval of a moderator?

And it is the 2nd of June already and http://brtchip.com/bt81x/ has not been updated yet.
Unbelieveable, I demand an update now! :-)

No, actually I do not but I would apreciate more information and an updated programmers guide.

Btw. the "FT81x Series Programmers Guide" link on that page is actually pointing to the FT81x datasheet.

30
Discussion - Software / Re: Loading an image with FT813 issues
« on: May 25, 2018, 09:48:36 AM »
However, I have a home icon saved as a png image and I converted it to a hex file which I used in an array, and I followed same sequence in displaying the start Icon, but it not display when I run the code. Could anyone say what I need to change in the code below so that that png icon is displayed. I tried changing format from L4 to ARGB4, but no success.

Did you convert the .png to a hex file or did you convert it with the image-convert utility?
If you are trying to load a plain .png there is a chance that there is nothing wrong with your code since EVE is a bit picky about PNGs in generell.

Also this might help: https://github.com/RudolphRiedel/FT800-FT813
https://github.com/RudolphRiedel/FT800-FT813/tree/master/example_projects/FT8xx_Test_90CAN_FT813_EVE2-35G

This is a bit specific as it is for AVR and a EVE2-35G module from Matrix Orbital, however this example is a bit smaller than my others
and it includes loading and displaying of a .png image.

Although, while PNG has adantages over JPG for icons - it should compress a little better and is lossless - loading PNGs is really slow compared to JPG.

Best Regards, Rudolph

Pages: 1 [2] 3