Image Noise issue with RA8875 library

Status
Not open for further replies.

sandalhat

Well-known member
Hello all,

I'm pretty new to this area of interest but I'm having a lot of fun so far! I am trying to get my EastRising/BuyDisplay ER-TFTM050-3 display up and running but I'm having some trouble. I knew there would be some issues since I did some research before embarking on this adventure but unfortunately I'm not yet finding anything on my particular issue. Maybe I'm not describing it correctly with my search terms. I'm hoping to share what's going on and see if anyone has any tips on where the issue might be coming from.

I'm not sure if this is relevant but I bought the 5V version of this display despite the warnings on Sumotoy's wiki (based on an instance where a customer ordered a 5V version of the display and the regulator was not populated). I would prefer to run it at 5V, but the information was available in case the regulator wasn't populated I figured I could convert it to 3.3v easily by changing the state of the jumpers. As it turns out the regulator is present and the display therefore is being powered at 5V.

The issue is that I'm getting some constant "noise" or corruption of some sort on the display at all times. The noise starts off really bad and improves over time to what I'm sharing in my images. In other words it's really never quite usable. The noise is almost not at all present on around 55% to 60% of the screen from left to right, but the rest of the display is significantly affected. Here are the images:
Noise1.jpgNoise2.jpg

I contacted BuyDisplay about the issue and they suggested it might either be supply voltage or display initialization. I had already tried 4 or 5 different power supplies. Two of the supplies did not source enough current and I observed that the failure modes did not seem similar to my noise issue. Since the other (and possibly more murky) issue was initialization, their suggestion was to use the library on the product page:

http://www.buydisplay.com/default/5-inch-tft-lcd-module-800x480-display-controller-i2c-serial-spi (scroll towards the bottom of the page to see the library/examples).

Using their library the noise issue is completely gone (might be worth noting that the rest of the performance is exactly the same - no speed increase or decrease is visible between the two but I have not done any benchmarks). I have started digging into the differences between their library and the one I'm hoping to use - Sumotoy's. I found a difference in the initStrings values for the various registers but changing the values to those from the buydisplay RA8875Registers.h did not improve the issue. I am trying to follow what happens on initialization but I'm quickly realizing I won't be able to easily track this issue down. Does anyone have any suggestions on what might be the source of the problem?

Another bit of relevant information is that I've tested this on an Arduino Uno (not the intended MCU for the project but I wanted more data and a simple setup) and a Teensy 3.2 (the intended MCU for the project). The Teensy setup uses a CD74HC buffer chip even though there is nothing else on the SPI bus for this testing.

Thanks in advance for any information anyone can provide!
 
Success! I was on the right track before but I didn't realize 2 of the registers are stored elsewhere (the only ones that needed to change - values at position 0 and 1). BuyDisplay/EastRising must have made a recent change that hasn't yet been incorporated into Sumotoy's library. Here are the details:

The commented lines that begin "commented to match BD registers" are part of the RA8875-0.70b11 library and I have commented them to easily revert since I didn't know if my change would work.

The subsequent lines with "(replaced above commented line with test registers)" are my additions where the registers come from the latest BuyDisplay library available at http://www.buydisplay.com/default/5-inch-tft-lcd-module-800x480-display-controller-i2c-serial-spi

RA8875Registers.h lines 31 through 42 (after adding my 2 commented lines):
Code:
const static uint8_t initStrings[3][15] = {
	//{0x07,0x03,0x03,0x27,0x00,0x05,0x04,0x03,0xEF,0x00,0x05,0x00,0x0E,0x00,0x02},//0 -> 320x240 (0A)
	{0x07,0x03,0x82,0x3B,0x00,0x01,0x00,0x05,0x0F,0x01,0x02,0x00,0x07,0x00,0x09},//1 -> 480x272 (10)   -> 0
	//{0x07,0x03,0x01,0x4F,0x05,0x0F,0x01,0x00,0xDF,0x01,0x0A,0x00,0x0E,0x00,0x01},//2 -> 640x480
	//commented to match BD registers {0x07,0x03,0x81,0x63,0x00,0x03,0x03,0x0B,0xDF,0x01,0x1F,0x00,0x16,0x00,0x01},//3 -> 800x480        -> 1
	{0x10,0x02,0x81,0x63,0x00,0x03,0x03,0x0B,0xDF,0x01,0x1F,0x00,0x16,0x00,0x01},//3 -> 800x480        -> 1 (replaced above commented line with test registers)
	//commented to match BD registers {0x07,0x03,0x81,0x63,0x00,0x03,0x03,0x0B,0xDF,0x01,0x1F,0x00,0x16,0x00,0x01} //4 -> 800x480_ALT    -> 2
	{0x10,0x02,0x81,0x63,0x00,0x03,0x03,0x0B,0xDF,0x01,0x1F,0x00,0x16,0x00,0x01},//4 -> 800x480_ALT    -> 2 (replaced above commented line with test registers)
	//0    1    2    3    4    5    6    7    8    9    10   11   12   13   14
	};

RA8875Registers.h lines 60 through 69 (after adding my 2 commented lines):
Code:
	//PostBurner PLL parameters --------------------------------------------------------------
	const static uint8_t sysClockPar[3][2] = {
	//{0x0B,0x01},//0 -> 320x240		->
	{0x0B,0x01},//1 -> 480x272		    -> 0
	//{0x0B,0x01},//2 -> 640x480			
	//commented to match BDregisters {0x0B,0x01},//3 -> 800x480			-> 1
	{0x10,0x02},//3 -> 800x480			-> 1 (replaced commented line above with test registers)
	//commented to match BDregisters {0x0B,0x01} //4 -> 800x480_ALT		-> 2
	{0x10,0x02} //4 -> 800x480_ALT		-> 2 (replaced commented line above with test registers)
	};

I hope that this will help someone and maybe Sumotoy will see this and be able to make some sense of it.
 
Status
Not open for further replies.
Back
Top