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.