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 ... 18 19 [20] 21 22 ... 27
286
The RAM_CMD circular buffer will automatically wrap around IF you fill it by writing to REG_CMDB_WRITE.

If instead you write directly to the FIFO by writing to RAM_CMD plus offset, then no, it will not wrap around.

This is not correct, writing to RAM_CMD + offset *does* automatically wrap around.
My library is not even using REG_CMDB_WRITE and I am using DMA to write the display lists.
This would fail pretty fast if the command FIFO would not wrap around.

The one that does not wrap around is the MEDIAFIFO.


287
Yes, the command FIFO will automatically loop around.

288
Discussion - EVE / Re: Capacitive touch screen calibration
« on: June 12, 2020, 03:22:53 PM »
I am storing the calibration values as constants in my code and I have a whole bunch of them in my example code.
Switching between different displays of the same type usually works well enough but I have no experience
on product level amounts of the same type of display.

And yes, the calibration requires some precision.
I am using a special stylus to calibrate my capacitive touch screens.

Regarding the points during calibration, Matrix Orbital added a manual calibration function to their library
that does not use EVEs CMD_CALIBRATE:
https://github.com/MatrixOrbital/EVE2-Library Calibrate_Manual()

I picked that up and adapted if for my library as well:
https://github.com/RudolphRiedel/FT800-FT813/blob/4.x/EVE_commands.c EVE_calibrate_manual()

This is needed for the more exotic displays like EVE3-38 with 480x116 for which EVEs own calibration does not work since the dots are partly displayed off-screen.
So you could even customize the positions of the dots with this function.

289
Discussion - EVE / Re: How to draw a colorful text with CMD_TEXT
« on: June 10, 2020, 10:35:33 AM »
Apart from that you do not need BEGIN(BITMAPS) for a CMD_TEXT, using COLOR_RGB before CMD_TEXT is exactly the way to do it.

And I just tried it, using BEGIN(BITMAPS) does not break it.

Code: [Select]
//EVE_cmd_dl(DL_BEGIN | EVE_BITMAPS);
EVE_cmd_dl(DL_COLOR_RGB | BLACK);
EVE_cmd_text(100,200,28,0,"Black");
EVE_cmd_dl(DL_COLOR_RGB | RED);
EVE_cmd_text(100,220,28,0,"Red");
EVE_cmd_dl(DL_COLOR_RGB | GREEN);
EVE_cmd_text(100,240,28,0,"Green");
//EVE_cmd_dl(DL_END);

With or without the BEGIN/END pair I get the same result, three lines of text in black, red and green.

Yes, this also works with custom UTF-8 fonts from FLASH, I just tried that as well.

290
Discussion - EVE / Re: How to inflate large image
« on: June 08, 2020, 11:50:38 AM »
In short, you feed the data into the FIFO in packets smaller than the FIFO size and execute it by writing REG_CMD_WRITE.
The same applies to CMD_LOADIMAGE.

Check out EVE_cmd_inflate() here:
https://github.com/RudolphRiedel/FT800-FT813

I do have support code for STM32 in place, check EVE_target.h line 593.
I do not have a native example for STM32 though as I am  not using these myself.

291
Since the inflate command can not know how much memory will be required to store the result of inflation, EVE writes back the last memory location used in a unconventional place.  In the "EVE School" example from Matrix Orbital, you can see this in action on the last line of the LoadJPG() function in "process.c".

https://github.com/MatrixOrbital/EVE-School

Well, the question was about CMD_INFLATE, not CMD_LOADIMAGE.
And you are using CMD_GETPTR after CMD_LOADIMAGE in your example.

The Programming Guides up to 1.2 for BT81x state for CMD_GETPTR:
"Get the End Memory Address of Data Inflated by CMD_INFLATE"

For CMD_LOADIMAGE we have CMD_GETPROPS - although this is kind of useless.
The pointer returned is the start-address which we already fed as parameter into CMD_LOADIMAGE.
And width and height are not helpfull without the format of the decoded image.


I just gave it a quick try with a FT813 and CMD_GETPTR does not work for CMD_LOADIMAGE.

EVE_cmd_inflate(MEM_LOGO, logo, sizeof(logo));
test_pointer1 = EVE_cmd_getptr();
EVE_cmd_loadimage(MEM_PIC1, EVE_OPT_NODL, pic, sizeof(pic));
test_pointer2 = EVE_cmd_getptr();

EVE_cmd_dl(DL_COLOR_RGB | BLACK);
EVE_cmd_number(120, 300, 28, EVE_OPT_RIGHTX, test_pointer1);
EVE_cmd_number(120, 330, 28, EVE_OPT_RIGHTX, test_pointer2);

This prints the same number twice and it is the end-address of the deflated logo image.
Hmm, well, it actually is the first address after the deflated data.



292
I can confirm that cmd_flashupdate works in both basic and full modes, the programmers guide will be updated to reflect this.

Thank you for clarifying this.

293
So, how does the processor know when it is the end of our stream of bytes?

From what I understand this is a property of the ZLIB compression that is used.
At the end of the data is a checksum and the decompression if finished when the checksum checks out.

Interesting, I was not aware of this.
And I just tested it, you can throw EVE completely off the roof with editing a single byte in a compressed picture.
I never observed this as an issue though.

294
There are three options for the FLASH regarding an EVE3 from Matrix Orbital.
No chip populated, 32MBit or 128MBit.
Have you soldered a 16MBit chip to your EVE3? If so, which one?

CMD_FLASHERASE uses the chip-erase command of the FLASH, this takes a while and there is no feedback
during the time the chip is busy.

W25Q32JVSSIQ  32MBit 10s ... 50s
W25Q128JVSIQ 128MBit 40s ... 200s

You could use CMD_FLASHUPDATE instead and write a buffer filled with 0xff over and over again.
But this will take a lot longer than CMD_FLASHERASE since the data is read first by EVE.
Also erasing a sector will take 45ms ... 400ms and the W25Q32JV has 1024 sectors,
that is 46s ... 410s for the smaller chip and that does not take reading and writing the data into account.

Or if the idea is to allow a user to update the content of the FLASH from like a sd-card, use CMD_FLASHUPDATE with your new data directly.
And perhaps overwrite the remaining sectors to the end of the FLASH with 0xff in case the provided image file is shorter than the storage space of the chip.

However, it is not clear if CMD_FLASHUPDATE even works in BASIC mode as this command is missing from the table on page 17 of the programming manual.
It should work at least in FULL mode but clearing the first sector with CMD_FLASHUPDATE should only be possible in BASIC mode.
I asked that before but have no answer to this so far.


Looks like EVE may be missing a CMD_FLASHCLEAR command to erase a single sector of 4096 bytes.

295
Discussion - EVE / Re: Pin Connection from CTP Controller IC to Panel
« on: June 03, 2020, 12:36:35 PM »
Isn't that the "norm" that the panels integrate the touch controller?
At least I have not found a panel yet that has the rasterizer for capacitive touch attached but no touch-controller.
I could provide dozens of examples with touch controller.
Please provide one example of a display with capacitive touch without touch controller.

The reason for this would be that the lines to measure the capacitance need to be a lot more sensitive and therefore are much more prone to faults, adding a connector would make the connections a lot longer, add the resistance from the connector and would require a much bigger connector.
Usually the touch controllers on the displays are even shielded with a small metal plate that also provides stiffness.

Adding a 6 to 12 pin connector for the I2C connection of the touch-controller is something entirely different.

I built a unit with a couple of touch-buttons for a customer and went with a touch-controller chip on a separate board due to mechanical restrictions.
And to keep the story short, I would not do it this way anymore.

296
Discussion - EVE / Re: Pin Connection from CTP Controller IC to Panel
« on: June 02, 2020, 11:44:24 AM »
These touch controllers measure the capacitance of points on a grid.
The datasheet has example circuits.

If you just would like to know how this works, checking out a microcontroller with an integrated touch controller
might offer more insight.
Many controllers from Microchip for example feature a "Peripheral Touch Controller" or PTC that can be used
in a variety of ways.
One such a controller out of many would be the ATSAMC21.

297
Discussion - EVE / Re: Problem with my custom BT815 circuit
« on: May 25, 2020, 09:48:04 AM »
Sorry to say so, but your schematic is nearly unreadable.
Using labels for GND would help and not drawing signals thru the symbols.

298
Discussion - EVE / Re: List of QSPI FLASH Chips for BT81x
« on: May 16, 2020, 08:08:19 PM »
Okay, for science!  :)
I just replaced the W25Q32JVSSIQ-ND on an EVE3-43G with a socket for 208 mil SOIC chips.

The first chip I have in there is the W25Q128JVSIQ-ND and it is doing just fine.

If you have other chips to test, I can try to get them and test them as well.

299
Discussion - EVE / EVE Asset Builder
« on: May 16, 2020, 07:36:35 PM »
I found more issues with EAB 1.4.0 beside the UTF-8 ones that are already under investigation.

The release notes state:
- Add the "Verify" function in flash utility

And yes, there is a checkmark-button for this in the EAB GUI.
However, when you activate the option and click "UPDATE", you only get the default output of "ProgFlash.exe"
in the Log window:
Welcome to BT81X Flash Programming Utility v1.0
Copyright(c) Bridgetek Pte Ltd All Rights Reserved

Usage: ProgFlash [command] [argument]

module       Select Program Module [ FT4222 (default) | MPSSE ]
chip         Select Program EVE Chip [ BT815 | BT816 | BT815A ]
erase        Erase all of flash
newblob      Install blob <file_name> in flash
write        Write <file_name> to flash (assumes flash is already erased)
update       Write <file_name> to flash, erasing if necessary
read         Read all of flash into <filename>

As if the "ProgFlash.exe" is supposed to have a verify command but the version shipped with the EAB package does not.
The "ProgFlash.exe" from EAB 1.2 has the exact same output, the newer version is 512 bytes longer though.
And I have not found a verify command in the .exe but the list above is missing the "detect" command.

Regarding "detect", it does work as a command from the command-line but fails from the GUI.
And the GUI suggests that there is a parameter to avoid measuring the writing speed, I wonder if that is there and what is.


When I use ProgFlash to erase a chip this is what happens:
---
D:\Chip_Test>ProgFlash module MPSSE erase
 Information on channel number 0:
 Flags=0x2
 Type=0x8
 ID=0x4036014
 LocId=0x422
 SerialNumber=
 Description=Single RS232-HS
 ftHandle=0x0

handle=0x7197f0 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

Switch flash status to FULL. Result: SUCCESS
Erasing Flash...
Progress ERASE 1
Progress ERASE 90
Switch flash status to BASIC. Result: SUCCESS
Progress ERASE 100
Erase Flash successfully
---

Why does it switch the flash to FULL in order to erase it?
There is no need to this, the chip-erase command will not work any faster.
What it does however is making it impossible to erase chips with EAB that do not work with the "unified.blob".
For example AT25SF641-SUB-T and AT25QF128A-SHB-T from Adesto.


On a side-note, what is a BT815A?

And why does EAB come with a "unified.blob", a "BT815.blob" and a "BT816.blob" now?
Which really is the same file with three different names.


- Replace 'numpy' by 'tinynumpy' to reduce distribution package size

No numpy to be found anywhere in the EVE Asset Builder installation.


300
Discussion - EVE / Re: BT816 : flash reading fail
« on: May 13, 2020, 05:27:18 PM »
I'm using a VM816C50A-D board connected to our device.

Hrm, and what happens when you connect the board to USB and use EAB to Erase/Write/Read the FLASH?

Pages: 1 ... 18 19 [20] 21 22 ... 27