Dave,
Thanks for the response, I gave your settings a try but they did not work.
The GHI website states that the display is a ER-TFT070-4. I looked up the data sheet for the display and its controller, which is an OTA7001A. Looking at its datasheet, I applied the settings for both a 800x600 and 800x480 display and still no luck (source code below).
I then powered the board from a +12VDC, 1.5A wall adapter. The voltages on the development board and the LCD connector are correct at VCC=+3.3VDC and +5V=+5.0VDC. I also used a 200MHz scope to look at VSYNC, HSYNC, CLK and a few data lines. The signals are present as excpected.
I also inspected all of the components under a microscope and the solder looks good and the flex cables are seated properly.
At this point, I’m at a loss. The display is completely dark, I don’t even know if the backlight is coming on. I’m not sure the display is a ER-TFT070-4 with a OTA7001A. Here’s the source code I’m using:
private static void Main()
{
//Initialize the GPIO for the 'heartbeat' LED
GpioPin LED = GpioController.GetDefault().OpenPin(G400D.GpioPin.PD12);
LED.SetDriveMode(GpioPinDriveMode.Output);
DisplayController DisplayController = DisplayController.GetDefault();
//Configuration settings for the OTA7001A controller @ 800x480
ParallelDisplayControllerSettings Settings = new ParallelDisplayControllerSettings
{
Width = 800,
Height = 480,
DataFormat = DisplayDataFormat.Rgb565,
PixelClockRate = 30_000_000,
PixelPolarity = false,
OutputEnablePolarity = true,
OutputEnableIsFixed = false,
HorizontalFrontPorch = 40,
HorizontalBackPorch = 88,
HorizontalSyncPulseWidth = 48,
HorizontalSyncPolarity = false,
VerticalFrontPorch = 13,
VerticalBackPorch = 32,
VerticalSyncPulseWidth = 3,
VerticalSyncPolarity = false
};
/*
//Configuration settings for the OTA7001A controller @ 800x600
ParallelDisplayControllerSettings Settings = new ParallelDisplayControllerSettings
{
Width = 800,
Height = 600,
DataFormat = DisplayDataFormat.Rgb565,
PixelClockRate = 40_000_000,
PixelPolarity = false,
OutputEnablePolarity = true,
OutputEnableIsFixed = false,
HorizontalFrontPorch = 112,
HorizontalBackPorch = 88,
HorizontalSyncPulseWidth = 48,
HorizontalSyncPolarity = false,
VerticalFrontPorch = 21,
VerticalBackPorch = 39,
VerticalSyncPulseWidth = 3,
VerticalSyncPolarity = false
};
*/
//Apply the settings
DisplayController.ApplySettings(Settings);
// Some needed objects
Graphics Screen = Graphics.FromHdc(DisplayController.Hdc);
Pen ScreenPen = new Pen(Color.White);
// Start Drawing (to memory)
Screen.Clear(Color.Black);
Screen.DrawEllipse(ScreenPen, 100, 100, 50, 50);
// Flush the memory to the display. This is a very fast operation.
Screen.Flush();
// Heartbeat
while (true)
{
LED.Write(GpioPinValue.High);
Thread.Sleep(200);
LED.Write(GpioPinValue.Low);
Thread.Sleep(100);
LED.Write(GpioPinValue.High);
Thread.Sleep(200);
LED.Write(GpioPinValue.Low);
Thread.Sleep(500);
}
}