Teensy 3.2 not working with RA8875 display

grease_lighting

Well-known member
I'm working on a new project that uses an RA8875 display and am having problems with the display not functioning. It is a 5-inch Buydisplay.com ER-TFTM050 that uses the GSL1680 touch screen which is working. The display is all white, the RESET pin is tied high. I've used this display in a previous project that uses a Teensy 3.5, the Teensy 3.6 also functions in that project. I tried installing the Teensy 3.2 in that project as it uses pins common to the T3.5 for the display and it does not work. The display is still white screen, but the touch panel functions.

Today I made some socket extenders so the SD Card end of the T3.5 clears components on my (new project) PCB and tried it with the TFTM050 display and it is working.

I'm using whatever drivers are in the IDE package ARDUINO 1.8.5 running with Teensyduino 1.40. Any ideas?

Thank You for your help.
 
Hard to say.

For example how is it wired up? Is it configured to run on 3,3v or 5v. What software?
I just hooked up one that was the lower resolution. RA8875_480x272
And it is working

I ran the rotation example sketch and I edited the: tft.begin(RA8875_480x272, 16, 30000000);

I put it to a low SPI speed first now up to 30mhz, now 40 and still running...

I also have pin 9 reset hooked up reset pin on the parallel connector up to pin 9 on teensy

Note: hooked up to breadboard with current code...

IMG_1305.jpg
 
The display is wired as a 5v unit.

The circuitry is on two (2) different PCBs with traces no longer than 4-inches.

Screen resolution set for 480x800.

Since the T32 and T35 have a common sub set of pins, I am using the same software to check out both boards. HERE. Post #6 in the link.

I am merely am swapping the Teensies (in a socket) and re-compiling the same board specific code with the appropriate setting for processor. No need to edit pin numbers for a given board. The T35 always works on both PCBs while the T32 does not work on either PCB. I have even placed the power jumper on the tft display and run with a T36 full speed. So I'm guessing it is something wrong with the driver supplied with the IDE.
 
If your code is still what you pointed to: That has:
Code:
#define RA8875_CS         9     //  not connected
  #define RA8875_RESET      25                 
  #define RA8875_INT        7     //  not connected
  #define RA8875_MISO 8           //  miso on pin#8 (alt)
  #define RA8875_MOSI 11          //  mosi on pin#11
  #define RA8875_SCK 14           //  sclk on pin #14 (alt)
  #define RA8875_WAIT 24
  #define RA8875_BL_PWM 29
  #define GSL1680_WAKE 28
  #define GSL1680_INT   30  
  
  
  #define RA8875_CTP_SDA 34
  #define RA8875_CTP_SCL 33

  RA8875 tft = RA8875(RA8875_CS, RA8875_RESET);

...
void setup()
{
...
  SPI.setSCK(RA8875_SCK);     //  use alternate SPI pins
  SPI.setMISO(RA8875_MISO);
  SPI.setMOSI(RA8875_MOSI);
  tft.begin(RA8875_800x480);

The comment says that the CS pin is not connected? Probably won't work as the CS on an SPI device needs to be low when SPI is talking to that device and if that SPI buss talks to anything else it needs to be high when you are talking to different device.

Pin 25 on T3.2 for Reset? Common pin? On T3.2 that is a bottom surface mount pin, on T3.5 that is 3 pins down from pin 12 (i.e. off the end of where a 3.2 would go). So gain if Reset is floating, it may or may not work depending on if that signal is just floating. I had issues with some Buydisplay ones that did not work for me unless I used the Reset pin... But again warning I only use these displays to test things out.

Note: the normal way that I use alternate pins is with the constructor, which is setup to handle it:
Code:
RA8875 tft = RA8875(RA8875_CS,RA8875_RESET, RA8875_MOSI, RA8875_SCK, RA8875_MISO);
These pins default to 11, 13, 12 in the constructor and depending on how ::begin is implemented, maybe overwrites your outside setting.
 
Back
Top