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 ... 22 23 [24] 25 26 ... 50
346
Discussion - EVE / Re: Using flash for bitmaps
« on: June 18, 2021, 02:28:55 PM »
Hello,

If you are not utilising a flash binary file generated from EAB which includes the .blob then you will also need to upload the .blob file to the flash IC as the CMD_FLASHERASE function willerase this. this can be done in the following manner:

Code: [Select]
1) Obtain the “unified.blob” file from the EAB installation folders, which is 4096 bytes only.
2) Ensure that the EVE board is properly booted up by following the known sequence.
3) Read the file “unified.blob” and download the whole 4096 bytes into RAM_G ( using EVE_MemWrite)
4) Send the command cmd_flashupdate(0,  RAM_G, 4096) to RAM_CMD, update the write pointer(REG_CMD_WRITE) properly
5) Wait till REG_CMD_WRITE is equal to REG_CMD_READ
6) The flash has been programmed with BLOB file.

Then you can use the CMD_FLASHUDPATE or CMDFLASHWRITE function to write your image files into flash from memory location 4096 onwards.


Best Regards,
BRT Community

347
Discussion - EVE / Re: Custom Widget EVE Screen Editor 4.0
« on: June 18, 2021, 02:04:18 PM »
Hello,

You can create a custom widget by right clicking in the library browser, selecting New > Widget.

Please references the existing widget files .h and .widget files for examples of how to construct a given widget.

Best Regards,
BRT Community

348
Discussion - EVE / Re: Text Box or drop down in EVE Screen Editor 4.0
« on: June 18, 2021, 12:11:35 PM »
Hello,

Unfortunately there are no drop down or text input box in-built widgets in ESD, however yes it is possible to define a custom widget by Right Clicking in the library browser, selecting New > Widget. You can then create a custom widget implementing any of the basic ESD or inbuilt widgets along with the logic editor to create you new widgets functionality. please remember to also implement the Render, Start and Stop functions .

The CMD_BUTTON command is defined within the 'EVE_CoCmd_Widgets.c file in the Ft_Eve_Hal.esd folder.


Best Regards,
BRT Community

349
Discussion - EVE / Re: BT817Q CMD_SPINNER fails
« on: June 18, 2021, 11:49:34 AM »
Hello,

The development team confirmed that the CMD_SPINNER command will implicitly call a SWAP command in the EVE 4 series.
I will get this information updated in the programmers guide.

Best Regards,
BRT COmmunity

350
Discussion - EVE / Re: EVE Asset Builder
« on: June 18, 2021, 11:39:24 AM »
Hello,

Thank you for reporting this.
I will inform the development team so they can update EAB for the next release.

Best Regards,
BRT Community

351
Discussion - EVE / Re: Using flash for bitmaps
« on: June 17, 2021, 04:17:06 PM »
Hello,

Thank you for your question.

Could you provide details on the DrawBitmap() function and how you have converted the image asset in EVE Asset Builder (i.e. what format you have used)?
Several different approaches are required depending on how you have converted the image, you can find some useful examples within EVE Screen Editors examples folder.

Best Regards,
BRT Community

352
Discussion - EVE / Re: BT817Q CMD_SPINNER fails
« on: June 17, 2021, 04:03:13 PM »
Hello,

Thank you for the update, I haven't had a chance to explicitly verify this behaviour yet with a BT817 development board.

However the following code is from our main sample application, and this does not include a swap command:
Code: [Select]
void SAMAPP_CoPro_Widget_Spinner()
{
/*************************************************************************/
/* Below code demonstrates the usage of spinner function. Spinner func   */
/* will wait untill stop command is sent from the mcu. Spinner has option*/
/* for displaying points in circle fashion or in a line fashion.         */
/*************************************************************************/
EVE_CoCmd_dlStart(phost);
EVE_Cmd_wr32(phost, CLEAR_COLOR_RGB(64, 64, 64));
EVE_Cmd_wr32(phost, CLEAR(1, 1, 1));
EVE_Cmd_wr32(phost, COLOR_RGB(0xff, 0xff, 0xff));
EVE_CoCmd_text(phost, (int16_t)(DispWidth / 2), 20, 27, OPT_CENTER, "Spinner circle");
EVE_CoCmd_text(phost, (int16_t)(DispWidth / 2), 80, 27, OPT_CENTER, "Please Wait ...");
EVE_CoCmd_spinner(phost, (int16_t)(DispWidth / 2), (int16_t)(DispHeight / 2), 0, 1);//style 0 and scale 0

/* Wait till coprocessor completes the operation */
EVE_Cmd_waitFlush(phost);

EVE_sleep(1000);

/**************************** spinner with style 1 and scale 1 *****************************************************/

EVE_CoCmd_dlStart(phost);
EVE_Cmd_wr32(phost, CLEAR_COLOR_RGB(64, 64, 64));
EVE_Cmd_wr32(phost, CLEAR(1, 1, 1));
EVE_Cmd_wr32(phost, COLOR_RGB(0xff, 0xff, 0xff));
EVE_CoCmd_text(phost, (int16_t)(DispWidth / 2), 20, 27, OPT_CENTER, "Spinner line");
EVE_CoCmd_text(phost, (int16_t)(DispWidth / 2), 80, 27, OPT_CENTER, "Please Wait ...");
EVE_Cmd_wr32(phost, COLOR_RGB(0x00, 0x00, 0x80));
EVE_CoCmd_spinner(phost, (int16_t)(DispWidth / 2), (int16_t)(DispHeight / 2), 1, 1);//style 1 and scale 1

/* Wait till coprocessor completes the operation */
EVE_Cmd_waitFlush(phost);

EVE_sleep(1000);

EVE_CoCmd_dlStart(phost);
EVE_Cmd_wr32(phost, CLEAR_COLOR_RGB(64, 64, 64));
EVE_Cmd_wr32(phost, CLEAR(1, 1, 1));
EVE_Cmd_wr32(phost, COLOR_RGB(0xff, 0xff, 0xff));
EVE_CoCmd_text(phost, (int16_t)(DispWidth / 2), 20, 27, OPT_CENTER, "Spinner clockhand");
EVE_CoCmd_text(phost, (int16_t)(DispWidth / 2), 80, 27, OPT_CENTER, "Please Wait ...");
EVE_Cmd_wr32(phost, COLOR_RGB(0x80, 0x00, 0x00));
EVE_CoCmd_spinner(phost, (int16_t)(DispWidth / 2), (int16_t)((DispHeight / 2) + 20), 2, 1);//style 2 scale 1

/* Wait till coprocessor completes the operation */
EVE_Cmd_waitFlush(phost);

EVE_sleep(1000);

EVE_CoCmd_dlStart(phost);
EVE_Cmd_wr32(phost, CLEAR_COLOR_RGB(64, 64, 64));
EVE_Cmd_wr32(phost, CLEAR(1, 1, 1));
EVE_Cmd_wr32(phost, COLOR_RGB(0xff, 0xff, 0xff));
EVE_CoCmd_text(phost, (int16_t)(DispWidth / 2), 20, 27, OPT_CENTER, "Spinner two dots");
EVE_CoCmd_text(phost, (int16_t)(DispWidth / 2), 80, 27, OPT_CENTER, "Please Wait ...");
EVE_Cmd_wr32(phost, COLOR_RGB(0x80, 0x00, 0x00));
EVE_CoCmd_spinner(phost, (int16_t)(DispWidth / 2), (int16_t)((DispHeight / 2) + 20), 3, 1);//style 3 scale 0

/* Wait till coprocessor completes the operation */
EVE_Cmd_waitFlush(phost);

EVE_sleep(1000);

/* Send the stop command */
EVE_Cmd_wr32(phost, CMD_STOP);
/* Update the command buffer pointers - both read and write pointers */
EVE_Cmd_waitFlush(phost);

EVE_sleep(1000);
}

As such I believe you are correct and the swap is issued implicitly when calling CMD_SPINNER on EVE 4, I will verify this with the development team.

Best Regards,
BRT Community.

353
Discussion - EVE / Re: Flash busy detection
« on: June 17, 2021, 03:36:42 PM »
Hello,

Unfortunately there are not any other registers which can be utilised to check if the flash has been erased, although your can be certain that if you flash was in the FULL state before issuing the erase command and returns to the BASIC state then the flash has been erased.

I would suggest checking that the CMD_READ and CMD_WRITE pointers are equal after issuing the erase command, at this point you can be certain that the command has executed, something like the following could be used:

Code: [Select]
uint8_t HAL_WaitCmdFifoEmpty(void)
{
uint32_t readCmdPointer;

// Wait until the two registers match
do
{
// Read the graphics processor read/write pointers
readCmdPointer = HAL_MemRead32(EVE_REG_CMD_READ);
                writeCmdPointer = HAL_MemRead32(EVE_REG_CMD_WRITE);

} while ((writeCmdPointer != readCmdPointer) && (readCmdPointer != 0xFFF));


if(readCmdPointer == 0xFFF)
{
// Return 0xFF if an error occurred
return 0xFF;
}
else
{
// Return 0 if pointers became equal successfully
return 0;
}
}

Best Regards,
BRT Community

354
Hello,

Thank you for your question.

I'm note sure which library you are referring to when you mention the EVE 'Lite' Library. However you can find a standard EVE initialization sequence below:
Code: [Select]
    MCU_PDlow();                                                                // PD low to reset device                                                               
    MCU_Delay_20ms();
    MCU_PDhigh();                                                               // PD high again
    MCU_Delay_20ms();

    // ---------------------- Delay to allow FT81x start-up --------------------   
   
    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 FT8xx 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 FT8xx is ready   
    {
    }
   
    // ------------------------- Display settings ------------------------------

    // WQVGA display parameters
    lcdWidth   = 800;                                                           // Active width of LCD display
    lcdHeight  = 480;                                                           // Active height of LCD display
    lcdHcycle  = 928;                                                           // Total number of clocks per line
    lcdHoffset = 88;                                                            // Start of active line
    lcdHsync0  = 0;                                                             // Start of horizontal sync pulse
    lcdHsync1  = 48;                                                            // End of horizontal sync pulse
    lcdVcycle  = 525;                                                           // Total number of lines per screen
    lcdVoffset = 32;                                                            // Start of active screen
    lcdVsync0  = 0;                                                             // Start of vertical sync pulse
    lcdVsync1  = 3;                                                             // End of vertical sync pulse
    lcdPclk    = 2;                                                             // Pixel Clock
    lcdSwizzle = 0;                                                             // Define RGB output pins
    lcdPclkpol = 1;                                                             // Define active edge of PCLK
       
    EVE_MemWrite16(REG_HSIZE,   lcdWidth);     
    EVE_MemWrite16(REG_HCYCLE,  lcdHcycle);     
    EVE_MemWrite16(REG_HOFFSET, lcdHoffset);   
    EVE_MemWrite16(REG_HSYNC0,  lcdHsync0);     
    EVE_MemWrite16(REG_HSYNC1,  lcdHsync1);     
    EVE_MemWrite16(REG_VSIZE,   lcdHeight);     
    EVE_MemWrite16(REG_VCYCLE,  lcdVcycle);     
    EVE_MemWrite16(REG_VOFFSET, lcdVoffset);   
    EVE_MemWrite16(REG_VSYNC0,  lcdVsync0);     
    EVE_MemWrite16(REG_VSYNC1,  lcdVsync1);     
    EVE_MemWrite8(REG_SWIZZLE,  lcdSwizzle);   
    EVE_MemWrite8(REG_PCLK_POL, lcdPclkpol);   
   
       
    // ---------------------- Touch and Audio settings -------------------------

    EVE_MemWrite16(REG_TOUCH_RZTHRESH, 1200);                                   // Eliminate any false touches

    EVE_MemWrite8(REG_VOL_PB, ZERO);                                            // turn recorded audio volume down
    EVE_MemWrite8(REG_VOL_SOUND, ZERO);                                         // turn volume down
    EVE_MemWrite16(REG_SOUND, 0x6000);                                          // set volume mute
       
   
    // ---------------- Configure the GPIO and PWM  --------------------
   
    EVE_MemWrite8(REG_PWM_DUTY, 0);                                             // Backlight off
   
    FT81x_GPIO_DAT = EVE_MemRead16(REG_GPIOX);                                  // Read the FT81x GPIO register for a read/modify/write operation
    FT81x_GPIO_DAT = FT81x_GPIO_DAT | 0x8000;                                   // set bit 15 of GPIO register (DISP). If using audio, also enable the amplifier shutdown GPIO line here
    EVE_MemWrite16(REG_GPIOX, FT81x_GPIO_DAT);                                  // Enable the DISP signal to the LCD panel

    FT81x_GPIO_DIR = EVE_MemRead16(REG_GPIOX_DIR);                              // Read the FT81x GPIO DIR register for a read/modify/write operation
    FT81x_GPIO_DIR = FT81x_GPIO_DIR | 0x8000;                                   // DISP is output, if using audio, also set the associated shutdown line as output (check your Eval module schematic))
    EVE_MemWrite16(REG_GPIOX_DIR, FT81x_GPIO_DIR);                              // Enable the DISP signal to the LCD panel
       

    // ---------------------- Create an initial screen before we enable the display -------------------------

    ramDisplayList = RAM_DL;                                                    // start of Display List
    EVE_MemWrite32(ramDisplayList, 0x02000000);                                 // Clear Color RGB sets the colour to clear screen to

    ramDisplayList += 4;                                                        // point to next location
    EVE_MemWrite32(ramDisplayList, (0x26000000 | 0x00000007));                  // Clear 00100110 -------- -------- -----CST  (C/S/T define which parameters to clear)

    ramDisplayList += 4;                                                        // point to next location
    EVE_MemWrite32(ramDisplayList, 0x00000000);                                 // DISPLAY command 00000000 00000000 00000000 00000000 (end of display list)

    EVE_MemWrite32(REG_DLSWAP, DLSWAP_FRAME);                                   // Swap display list to make the edited one active

    // -------------------- Now turn on PCLK and ramp the PWM up  -------------------------------------
    // ---------------- This provides a clean start-up for the application ----------------------------
       
    EVE_MemWrite8(REG_PCLK, lcdPclk);                                           // Now start clocking data to the LCD panel

    MCU_Delay_20ms();
   
    for(PWM = 0; PWM <= 127; PWM ++)
    {
        EVE_MemWrite8(REG_PWM_DUTY, PWM);     
        MCU_Delay_20ms();
    }

Note the "Create an initial screen before we enable the display" creates a blank display before issuing the first display list in your application to EVE, this should mitigate any screen 'glitches' seen after initialization.

Unfortunately however there are not registers available to detect whether or not the screen has already been initialized. I would suggest if your are using two separate libraries and these include two separate initialization sequences that you could check for a given value in one of the display registers (width for example) if this has already been written you could then abort the initialization code within the ESD library section of your application.

Best Regards,
BRT Community

355
Hello,

The developers have provided the following steps to use an animation asset in ESD:
Code: [Select]
Steps to generate Animations
1. Convert gif file to animation file with EAB, under Generate Animation tab, the output is xxx.anim
2. Covert xxx.anim to bin file under Flash Utilities tab, the output is xxx.bin
3. Remove the first 4096 bytes of xxx.bin in step 2. This is because the first 4096 bytes is reserved for blob, if don't remove them there will be an unexpected address shift which will prevent ESD to find the correct anim address
4. In ESD project, create Resources folder, add xxx.bin in this folder
5. In the properties of xxx.bin file, set Resource Type as ESD_RESOURCE_DIRECTFLASH and set Compressed to False
6. Create User_xxx.widget which implement Render, Start and Stop functions
7. In User_xxx.c(includes the above functions), add below 2 lines:
#define ANIM_ADDR (address)  -- this address is in the xxx.map file which is the by-product of bin file, the value after xxx.anim.object
#define FRAME_COUNT (count)  -- this count is defined in xxx_anim.c file which is the by-product of bin file
8. Add User_xxx.widget to the place where you want to play, run the project

They have also provided a sample project based on the above which I can provide to you, we are in the process of migrating our FTP site currently so ive uploaded this to WeTransfer temporarily: https://we.tl/t-5pzbsoI0vm

Ill need to clarify which EAB settings they used to generate the animation, however the indication is that steps above are more pertinent than the specific settings used.

Best Regards,
BRT Community

356
Discussion - EVE / Re: BT817Q VERTEX2II y not display correctly
« on: June 17, 2021, 11:30:17 AM »
Hello,

Thanks for the update, I'm double checking with the developers to see if they can reproduce this issue.
Please let me know how you get on with the Riverdi board.

Best Regards,
BRT Community

357
Discussion - EVE / Re: BT817Q CMD_SPINNER fails
« on: June 16, 2021, 03:52:31 PM »
Hello,

Can you provide the display list you are using when you see this behaviour?
Could you also provide the CMD_SPINNER implementation you are using in your library?

Best Regards,
BRT Community

358
Discussion - EVE / Re: BT817Q VERTEX2II y not display correctly
« on: June 16, 2021, 11:59:31 AM »
Hello,

Thank you for the update, I can in the attached images the behaviour you are describing.
Although I note this is unlikely to be an issue with the vertex2f or vertex2ii command itself, but rather an issue somewhere else. What is the full display list being used?
Could you attach the flash files you were using?

Also can you let me know if the co-processor is reporting any errors?

Thank you for the display settings, I cannot see any issues with these.
Are you using the ME817EV? If so does the same issue exhibit in ESE for your given display list and flash file?

Best Regards,
BRT Community

359
Discussion - EVE / Re: EVE Asset Builder
« on: June 16, 2021, 10:16:05 AM »
Hello,

We are currently migrating our FTP site to an SFTP server.
If you wish to test the beta version of EAB (2.2.0-rc2), please send an email into: sales.emea@brtchip.com and I can provide you the installer.

Best Regards,
BRT Community

360
Discussion - EVE / Re: BT817Q VERTEX2II y not display correctly
« on: June 15, 2021, 04:10:47 PM »
Hello,

Thank you for your question.

I've tried to recreate this issue in ESE but I am unable to see the behaviour you are noting.
Could you provide an example of the corruption you are seeing on the display?
During your test are you drawing anything else on the screen?

Can you also provide either the original image with the EAB settings used for conversion or the flash.bin file you are using?

Best Regards,
BRT Community

Pages: 1 ... 22 23 [24] 25 26 ... 50