Author Topic: BuyDisplay LCD with RA8875 and Teensy 4.1 - Black screen  (Read 683 times)

0 Members and 1 Guest are viewing this topic.

Offline ryanmillsTopic starter

  • Supporter
  • ****
  • Posts: 74
  • Country: us
BuyDisplay LCD with RA8875 and Teensy 4.1 - Black screen
« on: March 15, 2022, 09:21:12 pm »
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-spi
Screen Datasheet: https://www.buydisplay.com/download/manual/ER-TFTM050-3_Datasheet.pdf

Note: 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 Display
4.1 -> LCD
GND -> 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
Code: [Select]
#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);
}


 

Offline ryanmillsTopic starter

  • Supporter
  • ****
  • Posts: 74
  • Country: us
Re: BuyDisplay LCD with RA8875 and Teensy 4.1 - Black screen
« Reply #1 on: March 15, 2022, 11:16:33 pm »
A little update, I switched to an external PWM backlight control and that turns it on. Adding the RST pin on the 40 pin connection makes it work with the t4 library. I ran the benchmark and get results, however none of the examples draw correctly, if it draws anything its garbage and that is bizarre because the benchmark at least acts like its running all the tests without issue, you just can't see them. I'm guessing I damaged the display at some point, thou not sure how the SPI bus would work if I damaged the RA8875's outputs.
 

Online langwadt

  • Super Contributor
  • ***
  • Posts: 4751
  • Country: dk
Re: BuyDisplay LCD with RA8875 and Teensy 4.1 - Black screen
« Reply #2 on: March 15, 2022, 11:27:03 pm »
checked that all the solder jumpers are set correctly for the mode you are using?
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf