Ardis wrote:
Can the SPI interface handle 320x240 with 16-bit color at 60 frames per second? If so, I'd rather use that than the 18-bit parallel RGB LCD I'm currently using.
nope, sadly not. SPI is way too slow for that.
the Datasheet for the ILI9341 mentions that the maximum speed of the SPI interface is 10MHz, so transferring a whole frame of data will take ~122.8ms (~8 FPS).
when it comes to graphics you just need large bandwidths which means wide data buses or very high transfer speeds.
so like said if you want to actually get 60 FPS you have to use atleast the 8-bit parallel interface at pretty high speeds, or the 16/18-bit one at half the speed of the 8-bit interface.
Ardis wrote:
I'm trying to avoid relying on things that are too modern like a MicroSD card. I intend to have a flash memory chip to hold the firmware since I have a GQ-4X programmer already.
that's a bit of a confusing statement, µSD cards are almost 30 years old at this point, and both very cheap and easy to interface. you yourself wanted to use SPI for the display which has an equally if not more modern LCD controller on it, so why draw the line at storage?
and yea i would recommend using Flash chips for the boot code of the system. and if you give the CPU access to the ~WE pin on them you can have the CPU reprogram its own boot ROM, which can be risky but also pretty convienent as you then don't need use an external program to update the ROM.
though still having some form of storage would be a good idea, being able to load, store, and transfer files conveniently between your system and a PC can be very useful for software development.
Ardis wrote:
There will be voltage regulators changing voltage on things due to no combination of parts I'm looking at settling on a single voltage, so I suspect I'll have voltage lines for 1.8V (or whatever the FPGA needs), 3.3V and 5V going through the board.
what other parts do you have planned that would require up to 3 different voltages?
basically all FPGAs i know of can run at 1.8V-3.3V, the ILI9341 specifically needs 3.3V,
cheap SRAM,
Flash/ROM chips are also available for 3.3V, and the 65xx have a voltage range of 1.8V-5V.
so unless i'm missing something, you should be able to just run the whole system with only 3.3V.
Some of the SRAM and flash memory I was looking at was 3.3V, but I probably won't use them to keep the voltage lines simpler. Again, the only part that is set in stone here is the 65C816 at its heart. I'm trying to come up with a list of parts that meets my needs before making any purchases for this project. I'm trying to steer things more to a split 1.8V/5V setup with only the FPGA video chip being on the 1.8V, but 5V parts get harder and harder to find as time goes on.
There's a few reasons I want to lean away from the MicroSD card. Part of it is that I want it to function like a 16-bit handheld from the mid-to-late-90s. You didn't have electronics with their firmware on a removable microSD card. Maybe some high end cameras had them as storage, but not firmware. The other reason I'm leaning away from MicroSD is cost. A flash memory chip with more than enough storage for what I think the firmware will look like is maybe a dollar. The smallest MicroSD card I can buy from a reputable dealer/manufacturer? $4 before you factor in additional complexity, and possibly hardware, needed to take that serial data and read it into parallel data for the 65C816. I'd rather just keep everything on parallel storage. Early prototypes will be on a flash chip either in a DIP package or on a DIP adapter so I can remove it from my breadboard and slot it into my programmer for quick rewrites. Once I move onto PCB prototypes, I intend to have headers for reprogramming the firmware flash chip and the video FPGA if I don't put them in ZIF sockets.
If the ILI9341 is too slow to handle 320x240@60 FPS with 15 or 16-bit color, then I'll have to find a different LCD driver chip, I would assume. It sounds like my options are either purchasing one with a different driver or purchasing the display and driver separately so I have a suitable one in my project.