I want to start out by saying that I’ve used Arduinos before and the only one I have is being used for another purpose. But this particular question is display-centric. I’m asking here because it seems there’s some display experts who frequent the forum. I have a good amount of electronics and microcontroller experience but LCDs frequently give me problems.
I purchased a TFT (Serial SPI 3.5"TFT LCD Module Display 320x480 w/Capacitive Touch Panel,Tutorial | eBay) based on ILI9488. I’ve spent time looking through the datasheet but one thing that isn’t clear is if it’s acceptable for the /SS (or chip select) to be asserted and de-asserted for each byte transferred, even if there’s data bytes following a command. The datasheet seems to hint this is Ok, but in not very clear terms. Or, is it required that /SS remains asserted during the entirety of a command and the following data bytes? Someone who has used an ILI94xx driver may know this right off the top of their head.
A second question is regarding general communication trouble. I am able to alternate between the “display off” and “display on” command, or “all pixels off” and “all pixels on” commands and can clearly see the display become brighter and more dim as would be expected. However, I’m not able to make it do anything else. So I decided to try writing to a register and read it back to verify this works. I tried writing the CTRL (53h) and reading it back (54h). I get a 0 back regardless of what I write. This is frustrating because I can plainly see on my logic analyzer that everything is as it should be. Clearly I’m doing something incorrect.
The attached images shows the logic analyzer screenshot. D0 - D5 is as follows:
/SS (chip select)
In one image you can see I’m writing 82h to CTRL by using command 53h. In the other image you can see I’m attempting to read CTRL back with command 54h, but I get 02h during the dummy byte, and 0 for what should have been 82h.
I’ve also modified my code so the /SS remains low during the entirety of each command and data byte sequence, but this results in the same. This is frustrating because it seems it should work. Any advice appreciated.