I've spent about two weeks coming up to speed and getting my EVE display to actually display anything. I made this progress by progressively adding complexity: get MCU powered, get its clock right, get SPI working with my o-scope, figure out how to control the backlight via EVE, and finally into graphics. I did this by following the FT81X Programmers Guide and the Crystalfontz Arduino demo, even though my target MCU is not Arduino. (I thought I'd include all that so any other total newbies such as myself might have a rough roadmap to follow.)
My question is: Why bother with the circular nature of the RAM_CMD buffer? It seems laborious to track my location so I don't overflow the buffer address. What I'm doing instead is at the beginning of each display list writing both REG_CMD_READ and REG_CMD_WRITE to 0. It seems to me the only benefit of a circular buffer is so that it can be written to and read from simultaneously, with the read chasing the write. But best I can tell the read only happens when I write the final written byte address into REG_CMD_WRITE register at the end of my list.
(Or maybe in writing out this question I have answered it myself: I can do that end REG_CMD_WRITE command to get the reading to start, and then immediately continue on writing into RAM_CMD from my current location. This would speed things up such that I am reading and writing simultaneously.)
My question is: Why bother with the circular nature of the RAM_CMD buffer? It seems laborious to track my location so I don't overflow the buffer address. What I'm doing instead is at the beginning of each display list writing both REG_CMD_READ and REG_CMD_WRITE to 0. It seems to me the only benefit of a circular buffer is so that it can be written to and read from simultaneously, with the read chasing the write. But best I can tell the read only happens when I write the final written byte address into REG_CMD_WRITE register at the end of my list.
(Or maybe in writing out this question I have answered it myself: I can do that end REG_CMD_WRITE command to get the reading to start, and then immediately continue on writing into RAM_CMD from my current location. This would speed things up such that I am reading and writing simultaneously.)
Looking for additional LCD resources? Check out our LCD blog for the latest developments in LCD technology.