honey_the_codewitch
Active member
Display controllers like the ST7789 and ST7735 and I think some other controller families have a strange facility they use for reading the frame buffer back off of the device (almost necessary for realistically alpha blending and anti-aliasing)
They basically use the MOSI line as a MISO line as well (usually called SDA in the datasheet for the controller). On the ESP32 family it just works automagically as long as you set the MISO and MOSI lines to the same pin #. On the Teensy you can't do that, because you can't set the pins of the SPI connections.
So my question is, what's the recommended way of doing SDA reads off of such a device?
One thought I had was detaching the pinMatrix? from the SPI if possible, and setting its mode to INPUT and then bitbanging the reads. I'll do it if possible, and if I had to, but obviously this isn't a first resort for a number of reasons, including the lack of DMA capability.
Is there a recommended way of doing this?
I really dislike that the controllers do this. It has caused complications on most platforms I've done it with, the ESP32 being the "easiest" that I've found, because they sort of baked the capability in.
Sorry, I don't have code for this. I can provide ESP32 code, but that's it.
They basically use the MOSI line as a MISO line as well (usually called SDA in the datasheet for the controller). On the ESP32 family it just works automagically as long as you set the MISO and MOSI lines to the same pin #. On the Teensy you can't do that, because you can't set the pins of the SPI connections.
So my question is, what's the recommended way of doing SDA reads off of such a device?
One thought I had was detaching the pinMatrix? from the SPI if possible, and setting its mode to INPUT and then bitbanging the reads. I'll do it if possible, and if I had to, but obviously this isn't a first resort for a number of reasons, including the lack of DMA capability.
Is there a recommended way of doing this?
I really dislike that the controllers do this. It has caused complications on most platforms I've done it with, the ESP32 being the "easiest" that I've found, because they sort of baked the capability in.
Sorry, I don't have code for this. I can provide ESP32 code, but that's it.