I've recently started using some STM32 chips in projects, and they're pretty great! So I've been trying to add some better UIs with small TFT screens that use the ILI9341 driver chip.
I got a few dozen with 3 of the 'IM' interface select pins broken out, so I'm trying to write a library for the 8-bit parallel interface. I figure, on a Cortex-M4 it's going to be a lot quicker than the SPI which is favored by most of the Arduino/ATMega examples I've found. Thing is, I'm not getting any real 'signs of life' from these screens, and it's turning out to be hard to debug. I've gotten one of these screens working with an Arduino Pro Mini/Adafruit library combination and I made some FPC connector breakout boards to verify that I'm getting the same results with several of them, so I don't think it's an issue of faulty screens.
So here's what I'm doing. Like most of the example libraries I see, I'm implementing some basic read/write bus methods, and then issuing a series of command/data pulses. I don't see any activity on the screens, so I've started trying to read their ID information with the 0xDA, 0xDB, 0xDC commands. Those each return a consistent '0xFE / 0x00', which seems weird. And the 'D0' pin isn't disconnected - I get this same result using both the DB[8:1] and DB[17:10] buses for communication (with the 8 pins that aren't in use grounded,) although it looks like DB[17:10] is recommended for the 8-bit configuration where the IM0/1/2 pins = 1/0/0, which is data pins 8-15 on my model. I attached the, uh...documentation...for that.
I've also attached the code that I'm trying, including how I get my delay timings in case that's way off. I've tried issuing the 'read ID' commands at several points in the 'beginDisplay' code, from right after the reset pulse to the end of the method, with the same results. Appreciate any advice!