Questions? Call us: +1 760-918-6722

INT028ATFT backlight control

Hello,

I am writing a software to control the INT028ATFT with my AtXMega controller and have a lot of functions done to interface the RA8872, but I have a little question about the control of the backlight. I see that there is 2 PWM output on the RA8872. Is there one of them that is controlling the backlight?

Kind Regards,

Replies

engineering_seacomp's picture
engineering_seacomp
May 1, 2020

Hi,

1) With the default jumper configuration, the PWM (duty cycle) is controlled by the RA8872.  See section 5-10 of http://www.displaytech-us.com/sites/default/files/driver-ic-data-sheet/RAiO-RA8872.pdf  You could change the duty cycle to whatever you want.

2) You could take full control of the PWM with your mico-controller. See H3 pin 10 for PWM.  You would short JP1 and open JP6.

I have provided the relevant portion of the schematic.  See BL_PWM and the datasheet for AME5142AEEYADJZ.

A) http://screencast.com/t/YDRrhUMXT3

B) http://screencast.com/t/ehFfd9h27

C) http://screencast.com/t/JZx1qyckk4T

mpeBalteau's picture
mpeBalteau
May 27, 2020

Thanks for the information, the backlight change is working weel, but I have another question.

At the start of the software, I set the data bus and the RS, CS, RD and WR pins as input, start a reset and then wait 2s delay to be sure all is initialized correctly before settings pins as output and communicating with the RA8872. When I write to RA8872 register and read it back, all seems correct except when I want to write graphical stuff.

Has I understood in the RA8872 datasheet, we need to initialize the ILI9341, but that’s done by the Atmega8L, I think.

When I write command and data, I made this :

CS = 0;

RS = 1;

DATA_BUS = cmd;

WR = 0;

WR = 1;

CS = 1;

CS = 0;

RS = 0;

DATA_BUS = data;

WR = 0;

WR = 1;

CS = 1;

I am trying to draw a rectangle by using these functions like this:

setMode(RA8872_MODE_GRAPHIC);

write_cmd_data(RA8872_TFCR, color);

set_geometric_coord(xLeft, xRight, yTop, yBottom);

drawSquare_NotLine = true;

fillCircleSquare = filled;

drawLineSquareStart = true;

write_cmd_data(RA8872_DCR, dcr);

wait_busy();

do

{

this->read_register(RA8872_DCR, &dcr);

} while (drawLineSquareProcessing);

But I have no rectangle displayed on the screen.

What I am doing wrong?

Kind Regards,