Hello guys,
I have a question that I think it has been asked many times, but still I haven't found a clear answer.
I do have an LCD with 40pins with 800x480 resolution. I chose the RA8875 as a driver for the lcd. My only use of RA8875 is to transfer a buffer of 16bit pixels to the display. (only using drawPixels() function).
So, I have a total of 800x480x2 bytes (750KB) to send to the LCD. For memory limitations, the gui library fill a buffer of 800x40x2 bytes (62.5KB) and then send it via RA8875 to the display. Which means that the microcontroller has to send 12 frames, each frame has 62.5KB plus the active window (XL, XR, YT, YB) and the memory cursor ( x, y ) which sums up to 50 extra bytes for each frame.
I am working on atsame70 microprocessor and I managed to increase the frequency to 30MHz. The whole 750KB + 50x12B (600 bytes) takes about 780ms (it is a rough estimate), so the lcd appear to be slow relatively for hmi screen.
The questions here are is RA8875 cabable of going faster practically? Is the serial communication a bottleneck in this situation or the RA8875 chip? Can I pump up the frequency a little farther by changing the pll clock configurations and the pixel clock configuration or even change the 20MHz oscillator on the board? If the RA8875 is a bottleneck, is there better alternatives out there for my situation or should I change it to parallel communication?
Any input from you is highly appreciated,
Thank you in advance.
Adafruit RA8875 - does it go faster?
Moderators: adafruit_support_bill, adafruit
Please be positive and constructive with your questions and comments.
-
- Posts: 4
- Joined: Fri Dec 17, 2021 8:45 am
Re: Adafruit RA8875 - does it go faster?
Hello everyone,
I did some analysis of the frame rate timings.
I test Adafruit Ra8875 with 800x480 pixels in both 8-bit color depth and 16-bit color depth.
When I drawPixels, it takes about 105ms in 8bit mode and it takes about 187ms in 16bit mode. The rest of 700ms came from the GUI Library rendering the next frame (I think I can solve it with enabling caching in the microprocessor).
I achieved these results with SPI Clock Frequency about 35MHz. The same question here, can I speed up the frequency a little bit further? or is that the maximum?
Thank you,
Bader
I did some analysis of the frame rate timings.
I test Adafruit Ra8875 with 800x480 pixels in both 8-bit color depth and 16-bit color depth.
When I drawPixels, it takes about 105ms in 8bit mode and it takes about 187ms in 16bit mode. The rest of 700ms came from the GUI Library rendering the next frame (I think I can solve it with enabling caching in the microprocessor).
I achieved these results with SPI Clock Frequency about 35MHz. The same question here, can I speed up the frequency a little bit further? or is that the maximum?
Thank you,
Bader
- XRAD
- Posts: 753
- Joined: Sat Nov 19, 2016 3:28 pm
Re: Adafruit RA8875 - does it go faster?
Just curious what you are trying to display....
I have used ARM cortex m4 180mhz w/RA8875 on a 4.3" 40 pin screen (admittedly 1/2 of your pixels) running fractal sketches and they are amazingly fast renderings.....the adafruit example GROOP/draw lines sketch is done in 2-3 seconds(if that much...)
I have used ARM cortex m4 180mhz w/RA8875 on a 4.3" 40 pin screen (admittedly 1/2 of your pixels) running fractal sketches and they are amazingly fast renderings.....the adafruit example GROOP/draw lines sketch is done in 2-3 seconds(if that much...)
-
- Posts: 4
- Joined: Fri Dec 17, 2021 8:45 am
Re: Adafruit RA8875 - does it go faster?
Hi XRAD,
I simply have an array of pixels that I want to draw them on the LCD, not using the rendering engine of the RA8875. I think using the engine will be faster but I don't know how to integrate to its engine functions (drawLine, drawRectangle, ..etc) with the LVGL Library. LVGL only gives you only an array of pixels and you flush them to the LCD.
I simply have an array of pixels that I want to draw them on the LCD, not using the rendering engine of the RA8875. I think using the engine will be faster but I don't know how to integrate to its engine functions (drawLine, drawRectangle, ..etc) with the LVGL Library. LVGL only gives you only an array of pixels and you flush them to the LCD.
Please be positive and constructive with your questions and comments.