EVE2-43G intialization difficulty

FTDI/Bridgetek EVE2 & EVE3 & EVE4 SPI TFT Series by Matrix Orbital

Moderator: Mods

Post Reply
PaulP
LCD?
Posts: 5
Joined: Thu Aug 08, 2019 7:23 am

EVE2-43G intialization difficulty

Post by PaulP »

I had good results with the EVE (801) 5" display previously, so for a new project decided to use the EVE2-43G, but having great problems getting it even to initialize. It appears dead. Is it just a problem with my initialization method, or do I have a DOA lemon?

I'm using the Matrix Orbital Eve2_81x.c "library", and initialization code cribbed from the "Eve-school" example. I'm driving it from a Teensy 3.2, and using its hardware SPI interface and the Arduino SPI library, as used in the example code.

It was installed fresh from its anti-static bag. It's being fed a clean 3.3V from a dedicated regulator, and drawing about 7 mA. The red power LED is on. SPI clock and MOSI signals are present on the board at the exposed pads on the connector. No MISO signals are present.

Actual intialization code is:

(in Arduino_HL.h)

Code: Select all

#define EveCS_PIN        10  // PB1
#define EveRST_PIN       8  // PB0
(these are correct, and the hardware SPI lines on pins 11-13 are correct too)

(in the main program file:)

Code: Select all

void setup()
{
  // Initializations.  Order is important
  GlobalInit();
  FT81x_Init();
 (...)}(...)
void GlobalInit(void)
{
  Serial.begin(115200);                  // Setup serial port for debug
  while (!Serial) {;}                    // wait for serial port to connect.
  
  // Matrix Orbital Eve display interface initialization
  pinMode(EveRST_PIN, OUTPUT);            // Pin setup as output for Eve PDN pin.
  digitalWrite(EveRST_PIN, LOW);          // Apply a resetish condition on Eve
  pinMode(EveCS_PIN, OUTPUT);     // SPI CS Initialization
  digitalWrite(EveCS_PIN, HIGH);  // Deselect Eve
  SPI.begin();                            // Enable SPI
(...)
(in Eve2_81x.c:)

Code: Select all

void FT81x_Init(void)
{  
  uint32_t Ready = false;
  sLog("Reseting");
  Eve_Reset(); // Hard reset of the Eve chip

  // Wakeup Eve
  HostCommand(HCMD_CLKEXT);
  delay(10);
  //HostCommand(HCMD_CLKSEL);
  delay(10);
  HostCommand(HCMD_ACTIVE);
  delay(300);

  sLog("Reading ID...");
  do
  {
    Ready = Cmd_READ_REG_ID();
  }while (!Ready);

  sLog("Eve now ACTIVE\n");         //
  
  Ready = rd32(REG_CHIP_ID);
the reset code is:

Code: Select all

  // Reset Eve
  digitalWrite(EveRST_PIN, LOW);                    // actually _RST , or PDN
  delay(100);                             // delay
  digitalWrite(EveRST_PIN, HIGH);                    // 
  delay(500);                            // delay -- should only require 20 ms if it's like the older EVE_80x
I put long delays in there just in case.
The sLog() function is a serial logger the prints strings to the serial port.
The routine never gets past the while(!ready) test, never prints "Eve now ACTIVE", and Ready is always zero.

Inspecting the SPI lines with a scope shows repeated sending of 0x30, 0x20, 0x00 on MOSI, but never any activity on MISO.

I tried SPI clock rates of 100 kbps (as used in the example code), 200 kbps, and 1Mbps.
I tried both polarities of the RST/_RST/PDN line to reset the device, with the same non-result.

I tried driving it with my known-good code for the EVE 801 display, but nothing.

Am I missing something, or do I have a dead display?

Daniel Divino
Matrix Orbital
Matrix Orbital
Posts: 247
Joined: Thu Sep 24, 2015 9:38 am

Re: EVE2-43G intialization difficulty

Post by Daniel Divino »

Hi Paul,

Welcome to the forums!

Out of curiosity, were you able to purchase a USB2SPI bridge adapter, or an Arduino Scoodo Shield? We can guarantee that our demos will run on our hardware, and we strongly advise purchasing either of these pieces to verify that your display is working.

Do you have a wire diagram depicting how your teensy has been connected to the display?

Cheers,
Daniel
Daniel Divino
Technical Support
Matrix Orbital

PaulP
LCD?
Posts: 5
Joined: Thu Aug 08, 2019 7:23 am

Re: EVE2-43G intialization difficulty

Post by PaulP »

Thanks Daniel.
Here's the schematic of my setup:
EVE2-Proto1.png
EVE2-Proto1.png (13.2 KiB) Viewed 8650 times
DC power at 5V comes in through the USB on the Teensy. Even though the Teensy can supply 3.3V from its on-board regulator, the 200 mA+ the display is likely to draw is pushing its capability, so that's why the additional regulator. The Teensy and its signal lines are all 3.3V.
The 20-pin connector on the right obviously is the FPC connector for the 3" long cable to the display. The diode is just insurance.

I used a USB-SPI adapter on my previous '801 project and, though it worked, frankly it was more trouble than it was worth -- it was simpler to get the SPI working from the microcontroller from the get-go, and I thought this one would be equally straightforward.

Daniel Divino
Matrix Orbital
Matrix Orbital
Posts: 247
Joined: Thu Sep 24, 2015 9:38 am

Re: EVE2-43G intialization difficulty

Post by Daniel Divino »

Hi Paul,

Your setup looks correct. That said, there could be other factors of your setup which may be affecting the display's operation. During testing here, we found that the FT81x is very stingy about how our traces were routed.

For your situation, I suggest using the USB2SPI as a method of verifying that your display works properly. It would also provide a working model for you to compare against.

Cheers,
Daniel
Daniel Divino
Technical Support
Matrix Orbital

PaulP
LCD?
Posts: 5
Joined: Thu Aug 08, 2019 7:23 am

Re: EVE2-43G intialization difficulty

Post by PaulP »

Thanks Daniel. It's (more or less) solved now. Here's the story:
After too much frustration with this I got the USB2SPI interface as you suggested. After the expected delays and frustration with Visual Studio I did get the examples running, showing the display works fine.
I put a logic analyzer on the SPI lines to the display, and compared the signals from the [example app/Windows/VisualStudio/USB2SPI] and [example app/Teensy/Arduino/hardware SPI].

It turns out that at the low SPI clock rates I was testing at (<1MHz) that the chip select line was being de-asserted one bit too soon. Some commands didn't care about that last bit and worked OK, but most didn't. I can't imagine that's a bug in the Arduino/Teensy SPI library, but putting an explicit delay of a few microseconds just before de-asserting CS at the end of the SPI transaction worked.

What's odd is that the delay is NOT needed on the old FT801, but is needed on the FT813.

This newer display is also much pickier about power quality. That's my problem, but it would be nice to be able to power the backlight separate from the logic power line.

Daniel Divino
Matrix Orbital
Matrix Orbital
Posts: 247
Joined: Thu Sep 24, 2015 9:38 am

Re: EVE2-43G intialization difficulty

Post by Daniel Divino »

Hi Paul,

I'm glad to hear that you were able to resolve your communication issues.

As for the power situation, we offer a way to power the back light separately from the logic on our new EVE3 boards. From the factory, the EVE3 is configured so that both the back light and logic use the same 3.3V rail, but by changing two resistors, you can source your own power to feed the back light separately.

Cheers,
Daniel
Daniel Divino
Technical Support
Matrix Orbital

PaulP
LCD?
Posts: 5
Joined: Thu Aug 08, 2019 7:23 am

Re: EVE2-43G intialization difficulty

Post by PaulP »

Thanks. Good to know the EVE3 can have alternate backlight power.
But looking at its schematic, it looks like the BL_VDD that would go on pins 17&18 is the actual raw backlight anode voltage (so, around 20V?), not 3.3V. This (it looks like) is a huge difference from the EVE2 function on the same pins, that accept 3.3V.

If I'm interpreting it correctly, it looks like the EVE3 is not plug-compatible with the EVE2: If I were to take an EVE3 display configured for external backlight power, and plug it into my device that uses an EVE2 configured for additional backlight power, it looks like the EVE3 will (try to) pump 20 volts onto the 3.3V rail?

Daniel Divino
Matrix Orbital
Matrix Orbital
Posts: 247
Joined: Thu Sep 24, 2015 9:38 am

Re: EVE2-43G intialization difficulty

Post by Daniel Divino »

Hi Paul,

You are correct. The BL_VDD pins on the EVE2 have a different functionality than the BL_VDD pins on the EVE3.

The EVE2 came with two sets of power and ground pins which were only capable of supplying 500mA each (1A) to the display. The BL_VDD lines were also part of the 3.3V rail, but these lines were left disconnected. If a customer wanted a custom EVE2 display with a brighter backlight, we would connect the BL_VDD lines to the 3.3V rail using a pair of 0Ohm resistors. This would allow an additional 1000mA to be supplied to the display (2A total).

What we found was that customers preferred to control the backlight driver themselves using their own voltage supply, and therefore, we changed the EVE3's backlight driver design, allowing users to supply their own voltage to the driver. The BL_VDD pins are left disconnected from the backlight driver by default to prevent the possibility of the 3.3V rail being pumped with a different voltage. If a customer wants to provide their own voltage to the backlight driver, they can do so by removing R1, and populating R4 with a 0Ohm resistor.

Cheers,
Daniel
Daniel Divino
Technical Support
Matrix Orbital

Post Reply