If anyone is using an RA8875 chipset with a Teensy I could really use some advice, I am completely out of ideas and I don't know the RA8875 well enough to decode the commands on the SPI bus to tell where it's failing.
After about 10 hours of just trying to get that screen to turn on yesterday. I went back to it today with fresh eyes. I still can't see anything wrong and its not a very complex setup. I have been using the t4 library branch (link below), none of the examples seem to work for me, i just get a black screen 99.9% of the time. I made a slightly more involved script based on a number of forum posts I saw to try and connect with various configurations in case something needed to be explicitly turned on for this specific display. While my scope is decoding the serial and I can see the handshake, I dropped the SPI bus speed to be safe, no change. I'm trying a basic tft.print("test") and checking tft.readStatus(). If I understand correctly that should write "test" on the screen and status should return 1 or maybe 0x75 however nothing is written in the docs for what readStatus() should return. Disconnected I get 0 on the status, connected I get 255, and nothing on the screen. This morning I soldered heaver gauge wire directly to the pins in case its a current issue, no change. Before I was able to plug and unplug it, if the script was running to connect I could sometimes get it to display garbage if I plugged it in while the script was trying to connect. It would connect, as expect but nothing sent seemed to work correctly. It does not seem to do anything when the screen is already powered up and running. I double checked and metered the soldered jumper config on the display, looks to be correct for 4-wire SPI. I had tested it in 3 wire SPI as well with no change. It's worth noting I can see the current draw change with each call, however its super low, ~150ma driving both the 4.1 and the screen, when the backlight randomly did turned on it goes up anywhere from 400ma to 700ma. At this point I assume hardware failure but I just don't know how I could have damaged the pins. If anyone has suggestions or spots something I missed please let me know, I'm at my wits end.
Configuration: 4-Wire SPI Pin Header, 3.3V, No Touch, ER3300-1 Fontchip, No EXT SD reader
Screen Details: https://www.buydisplay.com/5-inch-tft-lcd-module-800x480-display-controller-i2c-serial-spiScreen Datasheet: https://www.buydisplay.com/download/manual/ER-TFTM050-3_Datasheet.pdfNote: Teensy 4.1 is running on bench power not USB, pad for USB->VIN is cut. Bench supply is at 3.4V, low but it seems to be working just fine for the teensy and slightly hot for the display. Bench current limit is set to 1.1amps.
PIN OUT Teensy 4.1 to Display4.1 -> LCDGND -> 1-2
3.3V -> 3-4
CS 10 -> 5 CS (has 10k pull-up)
MISO 12 -> 6 SDO (has 10k pull-up)
MOSI 11 -> 7 SDI (has 10k pull-up)
SCK 13 -> 8 SCLK
RA8875 Lib:
https://github.com/PaulStoffregen/RA8875/tree/RA8875_t4#include <SPI.h>
#include <RA8875.h>
//RA8875(CS,RST,MOSI,SCLK,MISO);
RA8875 tft = RA8875(10,255,11,13,12);
void setup()
{
Serial.begin(9600);
}
void loop()
{
// begin display: Choose from: RA8875_480x272, RA8875_800x480, RA8875_800x480ALT, Adafruit_480x272, Adafruit_800x480
// Low Speed: 4000000UL
uint32_t SPISPEED = 4000000UL;
uint8_t COLOR = 16;
Serial.println("RA8875_800x480");
tft.begin(RA8875_800x480, COLOR, SPISPEED, SPISPEED);
tft.displayOn(true);
tft.GPIOX(true);
tft.PWMout(1, 255);
delay(100);
tft.print("test1");
delay(100);
Serial.println(tft.readStatus());
delay(3000);
Serial.println("RA8875_800x480ALT");
tft.begin(RA8875_800x480ALT, COLOR, SPISPEED, SPISPEED);
tft.displayOn(true);
tft.GPIOX(true);
tft.PWMout(1, 255);
delay(100);
tft.print("test2");
delay(100);
Serial.println(tft.readStatus());
delay(3000);
Serial.println("Adafruit_800x480");
tft.begin(Adafruit_800x480, COLOR, SPISPEED, SPISPEED);
tft.displayOn(true);
tft.GPIOX(true);
tft.PWMout(1, 255);
delay(100);
tft.print("test3");
delay(100);
Serial.println(tft.readStatus());
delay(3000);
}

