RT1020 SEMC DBI

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

RT1020 SEMC DBI

Jump to solution
3,093 Views
CCandido
Contributor V

Hi,

I'm using RT1020-EVK as initial tests, now I'm drawing a custom board.
to use LCD,  I want to test the LCD driver function,

want to do a simple test now, before making the board.

Info:

RT1021DAG5

SSD1963 -  16bits parallel, 32K x 16bits.

help this registers SEMC DBI    (DMA memory-to-memory)

semc_dbi_config_t

sem_dbi_burst_len_t

semc_dbi_column_bit_num_t

thanks,

Carlos.

Labels (3)
Tags (1)
0 Kudos
1 Solution
2,469 Views
jeremyzhou
NXP Employee
NXP Employee

Hi Carlos Candido,

Thanks for your reply.
After reviewing your code, I find two errors below.
1. dbi_config.csxPinMux = 7; is not correct, please use the previous code.
dbi_config.csxPinMux = kSEMC_MUXCSX1;
2. SEMC_WE is not used to interface LCD, the section 24.5.3 illustrates how to employ pin to interface different device.
Please check them.

pastedImage_15.png


Have a great day,
TIC

-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

View solution in original post

0 Kudos
10 Replies
2,469 Views
jeremyzhou
NXP Employee
NXP Employee

Hi Carlos Candido,

Thank you for your interest in NXP Semiconductor products and for the opportunity to serve you.
Actually, I'm not clear with your question, whether you can clarify it.

Have a great day,
TIC

 

-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!

 

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

0 Kudos
2,469 Views
CCandido
Contributor V

Hi Jeremyzhou,

The current SDK does not have DBI initialization,   need to test SEMC DBI function ok.

my test not run.

#define DBI_BASE *((volatile uint16_t *)0x80000000U)   // to SSD1963 16bits bus

 

           init_sram();  //init sdram, io SEMC ok

PRINTF("\r\n SEMC DBI\r\n");
if (init_dbi( ) != kStatus_Success)   // my test

PRINTF("\r\n SEMC DBI Init Failed\r\n");
}

test value bus dbi pins:

while(1){

*((volatile uint16_t *)&DBI_BASE )   =     lc++;

delay_1_segunds;

}

//----------------------------------------------------------

status_t init_dbi( void){
semc_dbi_config_t dbi_config;
uint32_t clockFrq = EXAMPLE_SEMC_CLK_FREQ;
memset(&dbi_config, 0, sizeof(semc_dbi_config_t));

SEMC_GetDefaultConfig(&dbi_config);
SEMC_Init(SEMC, &dbi_config);

dbi_config.csxPinMux = kSEMC_MUXCSX1;  // I do not know which pin to cs DBI
dbi_config.address = 0x80000000;
dbi_config.memsize_kbytes = (64U * 1024U);
dbi_config.columnAddrBitNum = kSEMC_Dbi_Colum_12bit;
dbi_config.portSize = kSEMC_PortSize16Bit;
dbi_config.tCsxHold_Ns = 20;
dbi_config.tCsxInterval_Ns = 20;
dbi_config.tCsxSetup_Ns = 20;
dbi_config.tRdxHigh_Ns = 20;
dbi_config.tRdxLow_Ns = 20;
dbi_config.tRdxLow_Ns = 20;
dbi_config.tWexLow_Ns = 20;
return SEMC_ConfigureDBI(SEMC, &dbi_config, clockFrq);
}
//-------------------------------------------------------

now I just want to test the bus, and then make a custom board, RT1021.

thanks,

Carlos.

0 Kudos
2,469 Views
jeremyzhou
NXP Employee
NXP Employee

Hi Carlos Candido,

Thanks for your reply.
1. The MUX_CSX1 pin can be used as the DBI CSX pin.

pastedImage_1.png
2. According to your description, the init_dbi() doesn't work successful, it may be related to the hardware circuit, you'd better check it.
3. In further, you can use the logic analyzer or oscilloscope to visualize the wave of the SEMC pins during executing the init_dbi(), it'll make you find the issue out easily.

Have a great day,
TIC

 

-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!

 

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

0 Kudos
2,469 Views
CCandido
Contributor V

Hi Jeremyzhou,

test with DBI, I was not successful :smileylaugh:

see my code:  semc_dbi.zip

running test

if (init_dbi( ) != kStatus_Success){

while(1){
PRINTF("SEMC Init_dbi Failed\r\n"); <--- here ever
vTaskDelay(1000);
}

 

my case use 16bits data, CSx, WR, to bus LCD SSD1963.

I need to solve this before I make the new board,

thanks,

Carlos.

0 Kudos
2,469 Views
jeremyzhou
NXP Employee
NXP Employee

Hi Carlos Candido,,
Thanks for your reply.
As mentioned before, the issue may be related to the hardware circuit, so whether you can upload the schematic about the SSD1963 connection.
In further, whether you had already used the logic analyzer or oscilloscope for testing, if yes, please share the testing result.

Have a great day,
TIC

 

-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!

 

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

0 Kudos
2,469 Views
CCandido
Contributor V

Hi,

new test

init_dbi( )  = kStatus_Success

PIN WR, not pulsed, see wtth logic Analizer

mode SDRAM ok, WR Pulse ok,

see code source, to help

thanks,

Carlos.

0 Kudos
2,469 Views
jeremyzhou
NXP Employee
NXP Employee

Hi Carlos Candido,

Sorry for reply late, as I thought that your issue is resolved.
Back to your reply, how it going on.
Whether the return value of init_dbi( ) is still not the kStatus_Success.
In the previous reply, I suspect that the issue may be related to the hardware circuit, so whether you can upload the schematic about the SSD1963 connection.
In further, whether you had already used the logic analyzer or oscilloscope for testing, if yes, please share the testing result, thus I can learn the more information and dig much deeper.
Looking forward to your reply.

Have a great day,
TIC

 

-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!

 

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

0 Kudos
2,469 Views
CCandido
Contributor V

hi jeremyzhou,

problems not solded,

using only SDRAM, read and write ok, using only Logic Analyzer see WR pulse ok.

using only DBI code, using Logic Analyzer see WR/Data, not pulse when write value.

does not have this function in sdk.

my test with: MIMXRT1020-EVK

thanks,

Carlos.

0 Kudos
2,470 Views
jeremyzhou
NXP Employee
NXP Employee

Hi Carlos Candido,

Thanks for your reply.
After reviewing your code, I find two errors below.
1. dbi_config.csxPinMux = 7; is not correct, please use the previous code.
dbi_config.csxPinMux = kSEMC_MUXCSX1;
2. SEMC_WE is not used to interface LCD, the section 24.5.3 illustrates how to employ pin to interface different device.
Please check them.

pastedImage_15.png


Have a great day,
TIC

-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

0 Kudos
2,469 Views
CCandido
Contributor V

Hi jeremyzhou ,

Thank you for your help.

DBI_SHOW1.PNG

0 Kudos