I have been doing some research on displays and I am trying to run a 7" RA8875 display in 16bit parallel mode from east rising they provide one example code for the 16 bit mode but i am not sure how to connect the wires. they show a diagram but its for their controller, and I don't see a place in the code to say where each pin is, and I am trying to avoid spi for the reason of conflicting with other devices and obtain a faster speed, I am using the adafruit grand central, which is exactly like the Arduino mega but with a much faster clock and more features.
After more digging in the example files I found where things are referenced but not 100% on the correct way to change. this first snippet shows the given wiring diagram
and in RA8875.h the six control pins for the display are referenced aswell has the DB pins bit in what appears to be as a group
sbit BL_ON=P3^4; //External backlight control signal when J15 Short and J16 Open
sbit rs=P1^1;
sbit cs=P1^0;
sbit wr=P1^2;
sbit rd=P1^3;
sbit next =P3^5; //next
#define DATA_BUS_L P0
#define DATA_BUS_H P2
So in short I guess it comes down to whats the proper way to change that to work for the Arduino IDE and is this code still compatible with just changing those definitions?
And one last note, the two files are not referenced to each other so I honestly do not understand the example clearly. The example I am looking at is the 8080 16-bit Interface+Capacitive Touch Panel+MicroSD Code I do not plan on using anything to do with mentioned SD card reader.
If you want to use Adafruit_RA8875 library, you need to get support for your unusual "Grand Central".
Then follow the supported wiring scheme.
I can guess that you would put the 16-bit data bus on a single 32-bit PORT.
And put control pins on random GPIO pins.
You do not need R1-R8 for ARM GPIO PORTs.
I have never looked at Adafruit_RA8875 code. That is your job.
Personally, I have used SPI with a RA8875. But never with Adafruit library.
SPI renders graphics at breakneck speed.
SPI will limit you for random pixel-by-pixel plotting.
But anything with lines, circles, text, rectangls, ... is handled by hardware.
Note that RA8875 has several hardware "features".
BuyDisplay has Arduino Adapter Shields that mate with MEGA2560 or DUE
You will have to check compatibility with your "Grand Central".
Google does not find things like "Grand Central" PORT pinout.
The "Grand Central" is exactly like the Mega 2560 pin out and all, just has upgraded specs and the GPIO runs at 3.3V instead of 5V.
So does this mean that if I am making a GUI just from shapes using the library I would not get any performance boost on FPS for the screen if ran in 16bit versus SPI?
Meaning 16 bit is only beneficial if I am trying to load an actual image and not, for say, vector shapes?
david_prentice:
SPI renders graphics at breakneck speed.
SPI will limit you for random pixel-by-pixel plotting.
But anything with lines, circles, text, rectangls, ... is handled by hardware.
The bottleneck in the MCU-TFT arrangement in the Arduino environment has the MCU as a weakness, since the libraries use it all the time. The current approach to libraries allows only minimalist communication between the MCU-memory and the screen chipdriver.
There are reductions in the MCU load when using devices such as FRAM or FLASH chips connected in parallel to the TFT chipdriver.
It is possible to obtain the full potential of 16-bit or SPI wiring, if and only if a specific harwdare-library duality is designed for a given chipdriver.
The work is not simple, you must have a lot of skill in handling homemade development boards. This project may give you an idea of what you need to get the full potential of 16-bit wiring:
PD: another option is to get a TFT with unconventional graphic capabilities; They are not cheap, but if you add all the time, acquisition of screens that do not leave you happy, acquisition of extra hardware ... you end up spending more money than you would have invested directly in the TFT "of your dreams".
Believe me I have gone through all kinds of screens that in the end have not allowed me to design my projects the way I want, namely: some touch screen failure, random behaviors that only occur when you have built the project and that result in dismantling it to see that it failed.
Getting faster with just a few library-level adjustments is not enough, you have to put your hand to the hardware.
you are asking for a second opinion for your "tripple trouble" issue.
Tripple trouble, because you have a display that is not widely used, a demo source for a different processor, and no directly matching connection board.
My first answer is: don't get discouraged, it can be done.
My second answer is: start with an easier route than building all by your own in a first step.
My third answer is: use SPI, as it is easier to use and to connect with, and is standard on all boards supported by the Arduino IDE (HW SPI).
My fourth answer is: search and start with an existing library that supports your display.
Starting with an existing library for RA8875 may work, but for correct colour presentation it should support your display.
David Prentice told you he has used the same display with SPI; follow his advice.
Before using/connecting any shield that seems to match, check pinout and supply pins and supply voltages, to avoid to damage your display or processor board!
I have used the Sumotoy library several years ago.
I made a Fork but I can't remember what things that I did. I would have to find the display and look at my GitHub Fork.
My Fork is NOT for public use.
I strongly recommend that you use the SPI interface. There are several libraries that support SPI. I doubt if you will find much support for 16-bit.
I am sure that EastRising examples will work on certain specific targets.
Try it and see. As I said, very few people use 16-bit. So you will be on your own.