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.
Solved! Go to Solution.
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.
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.
-------------------------------------------------------------------------------
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.
-------------------------------------------------------------------------------
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.
Hi Carlos Candido,
Thanks for your reply.
1. The MUX_CSX1 pin can be used as the DBI CSX pin.
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.
-------------------------------------------------------------------------------
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.
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.
-------------------------------------------------------------------------------
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.
-------------------------------------------------------------------------------
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.
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.
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.
-------------------------------------------------------------------------------