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 - BRT Community

Pages: 1 ... 44 45 [46] 47 48 ... 50
676
Discussion - EVE / Re: EVE3 - Asynchronous display-list updates
« on: August 22, 2019, 10:29:33 AM »
One thing to add regarding buttons is that we find using bitmap icons is often a good way where you have lots of buttons. If your icons are all the same size, using bitmap cells (where you create a large bitmap image which is one button wide and many buttons high) is a really handy way of doing this with minimal display list content plus you can give the icons your own desired appearance. You then place the icon by VERTEX2II which includes the handle and the specific cell number you want to place. Or by the CELL instruction followed by VERTEX2F.

There are several ways to implement this including:

  • Having one image per icon and use conditional code to do one of the following when a variable indicates the button should be 'pressed'
- using the bitmap transform to re-size slightly
- add a slightly larger rectangle behind to give a glow round the edges
- set COLOR_RGB before the icon is placed and re-color to indicate pressed

  • Having more than one image per icon which you select using the cell number using similar conditional code:

Code: [Select]
TAG_MASK(1);
BEGIN(BITMAPS)
COLOR_RGB(255,255,255)  // white displays following bitmaps in their original colours
TAG(Button_0);
If(Button0_Pressed == false)  // Button0_pressed is a local Boolean in your code
VERTEX2II(100,100,5,0)  // display cell 0 which is your button 0 unpressed
Else
VERTEX2II(100,100,5,1)  // display cell 1 which is your button 0 pressed

With most of these methods you can also keep the display list size the same regardless of button state.

As you mentioned, it is often quite efficient to re-send the entire list especially when using SPI burst writes when something on the screen changes if you have a lot of dynamic objects. For anyone looking to use the append in the original way (with RAM_DL content rather than commands) then you may also find using icons rather than buttons along with using multiple appended sections as smaller building blocks helps to minimise variation in length of the DL.

Thanks for your inputs Rudolph and Jesse, I'm sure your experiences here will help other users too,

Best Regards,
BRT Community



677
Discussion - EVE / Re: EVE3 - Asynchronous display-list updates
« on: August 16, 2019, 02:58:31 PM »
Hi,

Thanks for your additional explanation and it's good to hear that you're having good success with EVE.

I'm not sure if we have any examples which store the co-processor commands (rather than the resulting display list commands) but we'll look further into this.

Best Regards, BRT Community

678
Discussion - EVE / Re: unified blob in BT815
« on: August 15, 2019, 10:42:25 AM »
Hello,

Thanks for pointing that out, we will update the documentation.

Best Regards,
BRT Community

679
Discussion - EVE / Re: EVE3 - Asynchronous display-list updates
« on: August 15, 2019, 10:15:16 AM »
Hi,

Yes, the Append is very useful in reducing SPI traffic when you have many parts of the screen which don't change.

The display list in RAM_DL always defines the final display and is also double buffered.

As you mentioned Rudolph, you can append together several building blocks to make up the screen by creating the display list, storing it whilst noting the location and size, and then appending it in. Note that the total size must still fit in the 8K available.

We have some additional examples and documents below which may be useful:

Principles of using Append
https://brtchip.com/wp-content/uploads/Support/Documentation/Application_Notes/ICs/EVE/AN_340_FT800_Optimising-screen-updates-with-Macro-and-Append.pdf

Example of putting together several static sections
https://brtchip.com/wp-content/uploads/Support/Documentation/Application_Notes/Modules/EVE/AN_356-FT800-Interfacing-I2C-Sensor-to-VM800P.pdf

Simple example of append - see section 9
https://brtchip.com/wp-content/uploads/Support/Documentation/Application_Notes/ICs/EVE/BRT_AN_014_FT81X_Simple_PIC_Library_Examples.pdf

Some of our sample apps also use this technique
https://brtchip.com/softwareexamples-eve/


Best Regards,
BRT Community




680
Discussion - EVE / Re: Migrate from ft811 to bt815
« on: August 14, 2019, 11:37:47 AM »
Hello,

I cannot see anything inherently wrong with your schematic.

I would suggest checking that all the power supplies are correct and ensuring there are no shorts on your board.

Best Regards,
BRT Community

681
Discussion - EVE / Re: BT815 custom font and image PIC MCU
« on: August 12, 2019, 11:29:26 AM »
Hello,

Is the font compressed or non-compressed?

If its non compressed you can check the size of the data array for the font that's been written to RAM_G.

Best Regards,
BRT Community

682
Discussion - EVE / Re: BT815 in HD
« on: August 12, 2019, 11:23:32 AM »
Hello,

Theoretically you can set the REG_PCLK register to equal 1, but I would recommend against it.
I am going to make an assumption here, but surely the reduction in graphics intensity would negate the need for a higher frame rate anyway?

Yes, you would need re-initialize the IC to change the REG_PCLK settings.

Best Regards,
BRT Community

683
Discussion - EVE / Re: Migrate from ft811 to bt815
« on: August 08, 2019, 01:28:25 PM »
Hello,

We have successfully tested the following library with the BT815 IC in the office here:
https://brtchip.com/wp-content/uploads/Support/Documentation/Application_Notes/ICs/EVE/BRT_AN_014_FT81X_Simple_PIC_Library_Examples.pdf

Now it doesn't include the definitions or implementations of BT81X specific functions, but it should allow you to get up and running as the SPI and legacy FT81x functions remains the same for the BT81x. The code included is based on a PIC microcontroller, but it shouldn't be too hard to port to your given MCU (you basically just need to do the SPI implementation for your MCU).

If you wish a schematic review please email in to us at:
support.emea@brtchip.com

Best Regards,
BRT Community

684
Discussion - EVE / Re: BT815 in HD
« on: August 08, 2019, 01:18:33 PM »
Hello,

It is not recommended to run REG_PCLK = 1, this will significantly short the computation time for each pixel.
Theoretically it is possible, but the likelihood of you running into issues when adding components on the screen and the GPU not having enough computational time to calculate for a given pixel is high. So yes, you can run the PCLK at 60MHz (if your chosen LCD supports this), but I suggest once you actually start developing your application you will need to lower this.

Again, EVE is designed primarily to be an HMI, and is optimized to give a good visual experience for such use cases, it is not designed to be for example to be a high frame rate video player or similar.

Best Regards,
BRT Community

685
Discussion - EVE / Re: unified blob in BT815
« on: August 05, 2019, 03:57:00 PM »
Hello,

1.     You can Program the blob into flash using our EVE Asset Builder utility (please see the attached image).
        https://brtchip.com/eve-toolchains/#EVEAssetBuilder

2.   After the blob is programed,  run the program as below to check the state of Flash:

Code: [Select]
uint32_t Gpu_CoCmd_FlashHelper_SwitchFullMode(Gpu_Hal_Context_t *phost)
{
       uint8_t val;
       /* Try detaching and attaching the flash followed by fast mdoe */
       Gpu_CoCmd_FlashDetach(phost);
       App_Flush_Co_Buffer(phost);
       Gpu_Hal_WaitCmdfifo_empty(phost);
       val = Gpu_Hal_Rd8(phost, REG_FLASH_STATUS);

       if (FLASH_STATUS_DETACHED != val)
       {
              printf("Error, Flash is not able to detatch %d\n", val);
              return 0;
       }

       Gpu_CoCmd_FlashAttach(phost);
       App_Flush_Co_Buffer(phost);
       Gpu_Hal_WaitCmdfifo_empty(phost);
       val = Gpu_Hal_Rd8(phost, REG_FLASH_STATUS);

       if (FLASH_STATUS_BASIC != val)
       {
              printf("Error, Flash is not able to attach %d\n", val);
              return 0;
       }

       Gpu_CoCmd_FlashFast(phost, 0);
       App_Flush_Co_Buffer(phost);
       Gpu_Hal_WaitCmdfifo_empty(phost);
       val = Gpu_Hal_Rd8(phost, REG_FLASH_STATUS);

       if (FLASH_STATUS_FULL != val)
       {
              printf("Error, Flash is not able to get into full mode %d\n", val);
              return 0;
       }
       return 1;
}

Best Regards,
BRT Community

686
Discussion - EVE / Re: BT815 custom font and image PIC MCU
« on: August 05, 2019, 10:08:12 AM »
Hello,

Please have a look at the following application note, this has an example of loading a custom font and an image concurrently:
https://brtchip.com/wp-content/uploads/Support/Documentation/Application_Notes/ICs/EVE/BRT_AN_014_FT81X_Simple_PIC_Library_Examples.pdf

Best Regards,
BRT Community

687
Discussion - EVE / Re: problem regarding eve2 display.
« on: August 05, 2019, 10:03:32 AM »
Hello,

You would need to clarify with Matrix Orbital if these connections are correct.

HI,
The same code I have applied.
As I am using Matrix orbital EVE2-70A TPR module
I did the following wiring
1) pin no.1 3.3v, pin no.16 3.3v, pin no.17,18 all are shorted to 3.3 v from mcu board.
2) Pin no.2 GND, Pin no. 15 GND, Pin no. 19,20 all are shorted to GND from mcu board
3) int pin is shorted to GND of mcu board through 4.7 kohm.
is this connection is correct?

Best Regards,
BRT Community

688
Discussion - EVE / Re: problem regarding eve2 display.
« on: July 31, 2019, 10:17:17 AM »
Hello,

There should be a min. 300ms delay followed by checks of the REG_ID and REG_CPURESET before you can expect FT81x to be ready.

Code: [Select]
    MCU_PDlow();                                                                // PD low                                                               
    MCU_Delay_20ms();
    MCU_PDhigh();                                                               // PD high
    MCU_Delay_20ms();
 
    Set ext clock here if required
    MCU_Delay_20ms();

    EVE_CmdWrite(FT81x_ACTIVE, 0x00);                                           // Sends 00 00 00 to wake FT8xx
   
    MCU_Delay_500ms();                                                          // 500ms delay (EVE requires at least 300ms here))
       
    // --------------- Check that FT81x ready and SPI comms OK -----------------
   
    while (EVE_MemRead8(REG_ID) != 0x7C)                                        // Read REG_ID register until reads 0x7C
    {
    }
     
    while (EVE_MemRead8(REG_CPURESET) != 0x00)                                  // Ensure CPUreset register reads 0 and so FT81x is ready   
    {
    }

Now continue to set display registers, load bitmaps/fonts etc.

Best Regards,
BRT Community

689
Discussion - EVE / Re: BT815 in HD
« on: July 31, 2019, 10:07:09 AM »
Hello,

No, if you read the datasheet for the FT81X you will see that the max PCLK available is 30MHz (hence using this number in the above calculations).

The term HD in this context refers to the screen resolution, not necessarily the screens frame rate (which the document does not reference). It is possible to run EVE at these higher resolutions, though this will incur a performance penalty in terms of frame rate. EVE is designed primarily to be an HMI, and is optimized to give a good visual experience for such use cases, it is not designed to be for example to be a high frame rate video player, although it can be used to display video. I would suggest the differences between 60 and 53 fps in this scenario is negligible.

Best Regards,
BRT Community

690
Discussion - EVE / Re: BT815 in HD
« on: July 29, 2019, 09:47:58 AM »
Hello

Please see table 4.11 in the BT81X datasheet (page 27), it is not possible to run the PCLK at the same rate as the system Clock (60Mhz in your calculation), the highest achievable would be 36Mhz:
https://brtchip.com/wp-content/uploads/Support/Documentation/Datasheets/ICs/EVE/DS_BT81X.pdf

This would give you an approximate FPS of (36,000,000/679,540) = ~ 53.

I would however advise that running the PCLK at the fastest possible rate reduces the computation time available for each pixel on the screen. This can cause issues if the GPU runs out of time to calculate what it should display for a given pixel if many graphics elements intersect this given point. In simple terms the faster you run the PCLK the less complex of a Display List you can run on the screen.

Best Regards,
BRT Community

Pages: 1 ... 44 45 [46] 47 48 ... 50