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

Pages: [1] 2
1
Discussion - EVE / Re: EAB 2.5.0 generate legacy custom font L8 format
« on: February 24, 2022, 04:59:54 PM »
Hi,

i have the same result here with cmd_setfont2 and 48, with RAM_G+xxxxx it works also. Thank you for your effords....
That i use different glyphs in my font than ()./- etc, is intentional.
But what i noticed is that the same is not working with the setting "cmd_setfont". The spacing between the numbers is then zero because of the /* Widths */ in the metrix block. It is not shifted correctly to 48, the widths are then still beginning at position zero instead of 48 => on 48+ there are only zeros for the spacing (width).
So summary as far as i understood for legacy L8 font conversion with cropping UTF-8 file:
1. First character option must be set to minimum 48
2. Use setfont2, setfont has perhaps to be corrected in later EAB versions concerning "width" in the metrix block (see above)

Thank you

Torsten

2
Discussion - EVE / Re: EAB 2.5.0 generate legacy custom font L8 format
« on: February 23, 2022, 04:43:09 PM »
Hi,

Can you just confirm how you are loading the font in your application code?
Is this the same as the "*_L8.c" file?
=> I do it this way:
1. Put the rawh into a header as an array (metrixData22BoldLegacy and fontData22BoldASTCLegacy) and
2. load it via EVE_memWrite8 byte per byte into RAM_G + x

Code: [Select]
#define FONT_FILE_ADDRESS_22 (0x00 + 181936)
        uint32_t pos = FONT_FILE_ADDRESS;
....
....
// 3. Font
// Loading the font metrix data to address given from EAB
xFontLoadingAddress[2] = pos;
Serial.printf("Load metrix 3 Start: %u => 0x%02X\n", pos, pos);
for (i = 0; i < sizeof(metrixData22BoldLegacy); i++)
{
EVE_memWrite8(pos, metrixData22BoldLegacy[i]);
pos++;
}
Serial.printf("Load metrix 3 End: %u => 0x%02X\n", pos, pos);
// Loading the font bitmap data to address RAM_G + sizeof(metrixData28BoldLegacy)
Serial.printf("Load font bitmap 3 Start: %u => 0x%02X\n", pos, pos);
for (i = 0; i < sizeof(fontData22BoldASTCLegacy); i++)
{
EVE_memWrite8(pos, fontData22BoldASTCLegacy[i]);
pos++;
}
Serial.printf("Load font bitmap 3 End: %u => 0x%02X\n\n", pos, pos);

Could you also confirm how you are calling CMD_TEXT or CMD_NUMBER in your code?
=> Yes, i do it with an other custom font without "cutting" the letters via utf file and it works fine, but now my memory is limited so i tried the "cutting" method

Can I get you to try reconverting the font with the first character set as 48? Please also try the SETFONT2 option
=> will try

However when testing this I noticed that the following symbols did not convert correctly => Ok but they are all showing up correctly in the EAB font preview window...BTW which is not updated when you load a font and then a different font.

Thank you

3
Discussion - EVE / EAB 2.5.0 generate legacy custom font L8 format
« on: February 22, 2022, 09:42:47 PM »
Hi,

i am trying to get a working legacy L8 font with UTF-8File, CMD_SETFONT, First character: 1, RAM_G+ 181936.
=> Resulting command line is: fnt_cvt.exe -f legacy -C BT81X -i C:/blabla/isfdV11BoldPlus55.ttf -s 22 -d  181936 -c setfont -l 1 -g -u C:/blabla/isfdFont V4.txt -o C:/blabla/output -O
I am using this because i have no flash attached and i am only using a few glyphs and then the output for L8 ist relatively small.
When i use  the font in my application i only get "pixel dust/snow" or a solid block instead of numbers with CMD_NUMBER or CMD_TEXT. Other fonts are working fine.
BTW: I get the same result with the setting CMD_SETFONT2.
Going more into detail:
Resulting command line: fnt_cvt.exe -f legacy -C BT81X -i C:/blabla/isfdV11BoldPlus55.ttf -s 22 -d  181936 -c setfont -l 1 -g -u C:/blabla/isfdFont V4.txt -o C:/blabla/output -O
In the *_L8.c i then get:
Code: [Select]
#include "Common.h"

#define FONT_HANDLE       (1)
#define FONT_FILE_ADDRESS (RAM_G + 181936)
#define STRIDE            (28)
#define FONT_WIDTH        (28)
#define FONT_HEIGHT       (24)
#define FIRST_CHARACTER   (1)

void Load_Font_L8(EVE_HalContext * phost)
{
Gpu_CoCmd_Dlstart(phost);
App_WrCoCmd_Buffer(phost, CLEAR(1, 1, 1));
App_WrCoCmd_Buffer(phost, COLOR_RGB(255, 255, 255));
Gpu_Hal_LoadImageToMemory(phost, "../../../L8/isfdV11BoldPlus55_22_L8.raw", FONT_FILE_ADDRESS, LOAD);

App_WrCoCmd_Buffer(phost, BITMAP_HANDLE(FONT_HANDLE));
App_WrCoCmd_Buffer(phost, BITMAP_SOURCE(FONT_FILE_ADDRESS + 148 - STRIDE*FONT_HEIGHT*FIRST_CHARACTER));
App_WrCoCmd_Buffer(phost, BITMAP_LAYOUT(L8, STRIDE, FONT_HEIGHT));
App_WrCoCmd_Buffer(phost, BITMAP_SIZE(NEAREST, BORDER, BORDER, FONT_WIDTH, FONT_HEIGHT));
Gpu_CoCmd_SetFont(phost, FONT_HANDLE, FONT_FILE_ADDRESS);
Gpu_CoCmd_Text(phost, 50, 50, FONT_HANDLE, 0, "\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A");
App_WrCoCmd_Buffer(phost, DISPLAY());
Gpu_CoCmd_Swap(phost);
App_Flush_Co_Buffer(phost);
Gpu_Hal_WaitCmdfifo_empty(phost);
}
This output i am using in my code...
In the .rawh i find:
Code: [Select]
/* Widths */
0,16,14,16,16,16,16,16,16,16,8,16,28,17,20,20,28,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
/* Format */
3,0,0,0,
/* Stride */
28,0,0,0,
/* Max Width */
28,0,0,0,
/* Max Height */
24,0,0,0,
/* Raw Data Address in Decimal: <181412> */
164,196,2,0,

/* 148 Metric Block End ---  */

/*Bitmap Raw Data begin +++*/
/*The expected raw bitmap size is 11424 Bytes */
0,0,0,3,88,173,222,246,248,227,182,100,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,198,.......
For the "base" i get FONT_FILE_ADDRESS (RAM_G + 181936)

For BITMAP_SOURCE(FONT_FILE_ADDRESS + 148 - STRIDE*FONT_HEIGHT*FIRST_CHARACTER)); => I get the address for the first bitmap at 181412 which seemed to be smaller than the base address (Base: 181936 vs. Bitmap 181412). Is this correct ? I would think that bitmap source is Base+148 ?

With CMD_SETFONT2 the memory map looks a bit more plausible (especially the "Raw Data Address in Decimal") which here matches with the resulting memory map:
Command line: fnt_cvt.exe -f legacy -C BT81X -i C:/blabla/isfdV11BoldPlus55.ttf -s 22 -d  181936 -c setfont2 -l 1 -g -u C:/blabla/isfdFont V4.txt -o C:/blabla/output -O 4
Uploaded memory map of RAM_G with CMD_SETFONT2 looks like this:
Load metrix 3 Start: 181936 => 0x2C6B0
Load metrix 3 End: 182084 => 0x2C744
Load font bitmap 3 Start: 182084 => 0x2C744
Load font bitmap 3 End: 193508 => 0x2F3E4

_L8.rawh
Code: [Select]
/* Widths */
0,16,14,16,16,16,16,16,16,16,8,16,28,17,20,20,28,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
/* Format */
3,0,0,0,
/* Stride */
28,0,0,0,
/* Max Width */
28,0,0,0,
/* Max Height */
24,0,0,0,
/* Raw Data Address in Decimal: <182084> */
68,199,2,0,

/* 148 Metric Block End ---  */

/*Bitmap Raw Data begin +++*/
/*The expected raw bitmap size is 11424 Bytes */
0,0,0,3,88,173,222,246,248,227,182,100,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,198,.....

But still also "pixel snow"...

Find attached my font if you want to try...with the EAB settings above...

Thank you for your help

Torsten

4
Discussion - EVE / Re: Modifying RAM_DL on the fly
« on: February 16, 2022, 12:24:36 PM »
Thanks, this confirms my impression of how it is built and you are right, relying on an implementation detail is not desirable.

I read the application note and both techniques are indeed interesting.
However, as I am using a BT817, I went another route with the use of CMD_NEWLIST to place the VERTEX2F items into RAM_G and then call them from my display list with CMD_CALLLIST.
I thought that this would allow direct modification of the RAM_G content but still, no luck. Apparently, the content of the list is read from RAM_G when the swap is done, not at every raster scan, contrary to what is done for bitamps for instance.

But I went further and used CMD_NEWLIST twice: the first contains the VERTEX2F commands, while the second contains the rest of the display items along with CMD_CALLLIST
Then, at every step of my "animation", I modify the VERTEX2F values in RAM_G and create this display list:

Code: [Select]
CMD_DLSTART
CMD_CALLLIST(BaseListAddr)
DL_DISPLAY
CMD_SWAP

This is not as simple as I would have liked, but at least it works.

Hi,

I have questions concerning cmd_calllist or append a DL from RamG...
Is there a difference between calllist and append?
Will this do a copy of the content from RamG into the display list or is this just a reference?

Thank you

Torsten

5
Discussion - EVE / Re: BT818 PCLK settings
« on: February 03, 2022, 09:54:14 PM »
Hi Rudolph,
thanks for your reply.

I have only one slave device connected on SPI bus, the Rivendi TFT without shift levels, because teensy 4.0 works already at 3V3.
I don't use resistors but direct connections. Correct?

With teensy 4.0 board, I init the EVE3/EVE4 with spi bus speed at 12MHz, after it works at 30MHz (with VM816C board works very fine).

After I bit of work on my library, I have resolved some issues with EVE4 chips.

cmd_testcard() works fine now. widgets and primitives too.

Now my problem is with assets stored on flash ram. Expecially with animation frame cmd_animframe().

The assets (images all ASTC 4x4 and animations all ASTC 4x4) on VM816 board work perfectly, but the same assets with BT817 don't work correctly.

I have noticed that with big size images (approximately more then 700x250) and with big size animation (approximately 800x250 for example), the BT817 show white screen or 3 half images of the same frame for example.

I don't understand where the problem is.
The flash state is correctly set in full mode.

What can I try to do?

For last, I have modified your library to work with Arduino IDE and it reports the same issues.

Concerning SPI speeds...i do the initialisation of the eve chip with 4 Mhz no dma spi and then throttle up to 25Mhz and do the dma spi bursts, which now works fine. Had problems with the intervallTimer of the teensy which was not working for me...it feels a bit of an interference of dma spi and the timer...perhaps interrupt issues. Now i do everything in the loop(), no timers or teensy threads. It is now doing the entire calculations for the display content including sending the display list via spi in approx. 0.1 ms...which seems to me very fast...:)

6
Discussion - EVE / Re: BT818 PCLK settings
« on: February 03, 2022, 09:43:09 PM »
Hello,

On our development boards we utilize the Abracon LLC - "ABM8G-12.000MHZ-18-D2Y-T" 12Mhz 18pF crystal.

Best Regards,
BRT Community
Hi,

Ok...with this crystal, do i additional external capacitors?

At the moment i am clocking the BT818 chip with an external pwm 50/50 12Mhz signal from my teensy 4.1 and this works fine...but what i saw is that then i get an internal clock of about 69xyz Mhz instead of 72. And when i change my pwm to 12000001 i get 75+Mhz.
Problem was on my custom boards i did not get it to run with an external crystal, it was not starting to clock at all (due to wrong crystal/capacitors???). Only internally worked with a bit confusion results as described...so i changed to external clocking from my teensy...but i want to return to a crystal as recommended..so the value of the capacitors, if needed, would be very interesting..

Thank you

Torsten

7
Discussion - EVE / Line vs text or number
« on: January 20, 2022, 12:45:36 AM »
Hi,

just to be sure to be on the right track...

I can "create/move" lines/rects/points/etc. with a precision of 1/16 pixel with VERTEX2F. But this is not possible with CMD_TEXT, CMD_NUMBER, VERTEXII and a font. There is the precision of 1 pixel...?
Or is there a way to do text/numbers with the same precision, or i am completely wrong here?

Thank you for your help

Torsten

8
Discussion - EVE / Re: Rotating a text
« on: January 14, 2022, 07:08:34 PM »
I'm trying to write text at an angle of 15° and so I tried this set of commands:

Code: [Select]
BEGIN(BITMAPS)
CMD_LOADIDENTITY()
CMD_ROTATEAROUND(0, 0, 2731, 65536)
CMD_SETMATRIX()
CMD_TEXT(100, 100, 29, 0, "Test")
END()

But each letter is rotated individually, not the entire text by itself.

How can I achieve this rotation, so that the text looks like this:



Hi,

years ago i used a solution with CMD_SNAPSHOT2. <at startup I wrote the numbers/text i needed on the screen and then took a snapshot with the command and stored them as a bitmap in the memory. Then used the bitmap later. Not ideal but worked.
A better solution very appreciated :)....

Thank you

Torsten

9
Hi,

i have really a problem here. The BT81x should run default with 60 Mhz core clock an the new one with 72 MHz when i write:
EVE_cmdWrite(EVE_CLKSEL, 0x46); /* set clock to 72 MHz */

Then i do this:
EVE_memWrite32(REG_FREQUENCY, 72000000); to set it correct

I am setting up the chip and then check the speed with:
   // Write the EVE stats:
   uint32_t eveClockOld = EVE_memRead32(REG_CLOCK);
   delay(1000);
   uint32_t eveClockNew = EVE_memRead32(REG_CLOCK);
   Serial.print("EVE clock: ");
   Serial.println(eveClockNew - eveClockOld);
   delay(1000);
   uint32_t eveFramesOld = EVE_memRead32(REG_FRAMES);
   delay(1000);
   uint32_t eveFramesNew = EVE_memRead32(REG_FRAMES);
   Serial.print("EVE frames: ");
   Serial.println(eveFramesNew - eveFramesOld);

With the values set to:
EVE_cmdWrite(EVE_CLKSEL, 0x46)
EVE_cmd_pclkfreq(50500000L, 0)
EVE_memWrite8(REG_PCLK, 0x01)

i get this:
EVE PCLK Frequency: 50000000 => OK
EVE clock: 34668795 => would expect 72000000 or something here (looks like approx half of 72000000 Hz)
EVE frames: 85

With nothing written to EVE_CLKSEL (which should be default => 60 Mhz) I get:
EVE PCLK Frequency: 50000000 => OK
EVE clock: 28909452 => would expect 60000000 or something here (looks like approx half of 60000000 Hz)
EVE frames: 85

I am using no external crystal with the setting EVE_cmdWrite(EVE_CLKINT,0);   /* setup EVE for internal clock */ set.

So my question is what can be the reason for this or do i missed/messed up here something ?

Thank you for your help.

Torsten

10
Discussion - EVE / EVE main clock frequency
« on: April 28, 2021, 07:11:52 PM »
Hi,

i have questions concerning the main clock frequency of the EVE chip.

1. How to set up the chip to 72 Mhz (i use EVE_cmdWrite(EVE_CLKSEL, 0x46);) The manual is not so clear for me how to setup the bits to get 72 Mhz.
2. Is there a way to read out the actual main clock frequency ? Is this the EVE_memRead32(REG_CLOCK) register or is this the pixel clock output ?

Thank you very much

Torsten

11
Discussion - EVE / Re: Customized font for text via vertex2ii
« on: April 13, 2021, 11:45:01 AM »
Hi,

not sure how to download the attached pdf. It seems this is a ftp link but it always asks for a application to open.

Torsten

12
Discussion - EVE / Re: Customized font for text via vertex2ii
« on: April 12, 2021, 11:49:24 PM »
Hi,

ah ok thank you....so it is necessary to call the setfont2 command everytime before i want to use the font or is the handle persistent after i called the setfont2 command?

Thank you

Torsten

13
Discussion - EVE / Customized font for text via vertex2ii
« on: April 10, 2021, 11:05:14 PM »
Hi,

is it possible to create a custom font and use it in a display list via a vertex2ii command?
I have a font already created with the suggested tool and "imported" via header file, transferred it into the RAM_G and assigned a handle with CMD_SETFONT2....but when i use the handle in the vertex2ii it shows "something" which looks like a memory dump...

If yes, must i do this every time when i update the displaylist?
If yes a short displaylist example very welcome...

Thank you

Torsten

14
Hi Rudolph,

thank you very much for this detailed answer!  :) Explains a lot....
and be sure...i am looking A LOT into your great library....I am on teensy 4.1 and i am still trying to get DMA SPI ready.... to get things faster and have more processor time...
At the moment i am not sure to use direct display list or via command list to write onto the 81x

Torsten

15
Hi,
i am not sure if i understood the 81x concept right...

1. We have a display list/ command list where i can write to.
2. We can swap the display to show the content of the display list/command list
3. We have framerate of the display itself e.g 50 Hz

I read the chapter "Synchronization between MCU & Coprocessor Engine" but i must admit i did not understand it fully

How are these values "related, connected" ?
Will a swap start a new frame on the display ?
Are they not connected ?
Is the content shown/starts a new frame when the displaylist buffer is empty ?

I saw that there is an interrupt for INT_CMDEMPTY or
swap INT_SWAP => is this the swap i do via display list ?

I think a code example will be helpful here to understand the interrupt/syncronizing handling...

Thank you for your help

Torsten

Pages: [1] 2