Part Number: TMS320F28388D Tool/software: Hi Experts, My customer is using SDRAM IS42R86400F on F28388D. They are writing data and read back to check if the SDRAM is running normally. However, they find the data read back is incorrect starting from the 1025kb, as shown in the following picture. If they write and read manually in the expression window, the data read back is correct. The error only happens when they write and read via a loop. Any idea what might be the issue here? Here are their settings: CMD setting: SDRAM : origin = 0x80000000, length = 0x02000000 //512Mb, 8M*16bit*4banks buffer defination #pragma DATA_SECTION(".sdram_data"); __attribute__((far)) volatile uint32_t extSDRAMBuf[MEM_BUFFER_PAGE][MEM_BUFFER_SIZE]; mapfile: SDRAM 80000000 02000000 02000000 00000000 RWIX And also the syscfg file emif11.$name = "myEMIF10"; emif11.useCase = "CUSTOM"; emif11.enableCS2 = false; emif11.enableCS3 = false; emif11.enableCS4 = false; emif11.cs0Narrow = "EMIF_SYNC_NARROW_MODE_TRUE"; emif11.useInterfacePins = ["EMIF1_A0","EMIF1_A1","EMIF1_A10","EMIF1_A11","EMIF1_A12","EMIF1_A2","EMIF1_A3","EMIF1_A4","EMIF1_A5","EMIF1_A6","EMIF1_A7","EMIF1_A8","EMIF1_A9","EMIF1_BA0","EMIF1_BA1","EMIF1_CAS","EMIF1_CLK","EMIF1_CS0n","EMIF1_D0","EMIF1_D1","EMIF1_D10","EMIF1_D11","EMIF1_D12","EMIF1_D13","EMIF1_D14","EMIF1_D15","EMIF1_D2","EMIF1_D3","EMIF1_D4","EMIF1_D5","EMIF1_D6","EMIF1_D7","EMIF1_D8","EMIF1_D9","EMIF1_DQM0","EMIF1_DQM1","EMIF1_RAS","EMIF1_SDCKE","EMIF1_WEn"]; emif11.cs0CAWidth = "EMIF_SYNC_COLUMN_WIDTH_10"; emif11.cs0AddrMSB = "EM1A12"; emif11.selController = "EMIF_CONTROLLER_CPU1_G"; emif11.enableSyncSelfrefresh = true; emif11.cs0Refresh = 750; emif11.cs0tRFC = 6; emif11.cs0tRP = 2; emif11.cs0tRAS = 5; emif11.cs0tWR = 2; emif11.cs0tRRD = 2; emif11.emif1.$assign = "EMIF1"; emif11.emif1.emif1_cs0nPin.$assign = "GPIO32"; emif11.emif1.emif1_sdckePin.$assign = "GPIO29"; emif11.emif1.emif1_clkPin.$assign = "GPIO30"; emif11.emif1.emif1_wenPin.$assign = "GPIO31"; emif11.emif1.emif1_casPin.$assign = "GPIO86"; emif11.emif1.emif1_rasPin.$assign = "GPIO87"; emif11.emif1.emif1_dqm0Pin.$assign = "GPIO88"; emif11.emif1.emif1_dqm1Pin.$assign = "GPIO89"; emif11.emif1.emif1_ba0Pin.$assign = "GPIO33"; emif11.emif1.emif1_ba1Pin.$assign = "GPIO34"; emif11.emif1.emif1_a0Pin.$assign = "GPIO35"; emif11.emif1.emif1_a1Pin.$assign = "GPIO39"; emif11.emif1.emif1_a2Pin.$assign = "GPIO40"; emif11.emif1.emif1_a3Pin.$assign = "GPIO38"; emif11.emif1.emif1_a4Pin.$assign = "GPIO44"; emif11.emif1.emif1_a5Pin.$assign = "GPIO45"; emif11.emif1.emif1_a6Pin.$assign = "GPIO46"; emif11.emif1.emif1_a7Pin.$assign = "GPIO47"; emif11.emif1.emif1_a8Pin.$assign = "GPIO48"; emif11.emif1.emif1_a9Pin.$assign = "GPIO49"; emif11.emif1.emif1_a10Pin.$assign = "GPIO50"; emif11.emif1.emif1_a11Pin.$assign = "GPIO51"; emif11.emif1.emif1_a12Pin.$assign = "GPIO52"; emif11.emif1.emif1_d0Pin.$assign = "GPIO85"; emif11.emif1.emif1_d1Pin.$assign = "GPIO83"; emif11.emif1.emif1_d2Pin.$assign = "GPIO82"; emif11.emif1.emif1_d3Pin.$assign = "GPIO81"; emif11.emif1.emif1_d4Pin.$assign = "GPIO80"; emif11.emif1.emif1_d5Pin.$assign = "GPIO79"; emif11.emif1.emif1_d6Pin.$assign = "GPIO78"; emif11.emif1.emif1_d7Pin.$assign = "GPIO77"; emif11.emif1.emif1_d8Pin.$assign = "GPIO76"; emif11.emif1.emif1_d9Pin.$assign = "GPIO75"; emif11.emif1.emif1_d10Pin.$assign = "GPIO74"; emif11.emif1.emif1_d11Pin.$assign = "GPIO73"; emif11.emif1.emif1_d12Pin.$assignAllowConflicts = "GPIO72"; emif11.emif1.emif1_d13Pin.$assign = "GPIO71"; emif11.emif1.emif1_d14Pin.$assign = "GPIO70"; emif11.emif1.emif1_d15Pin.$assign = "GPIO69"; emif11.ba0Qual.padConfig = "PULLUP"; emif11.ba1Qual.padConfig = "PULLUP"; emif11.d0Qual.padConfig = "PULLUP"; emif11.d1Qual.padConfig = "PULLUP"; emif11.d10Qual.padConfig = "PULLUP"; emif11.d11Qual.padConfig = "PULLUP"; emif11.d12Qual.padConfig = "PULLUP"; emif11.d13Qual.padConfig = "PULLUP"; emif11.d14Qual.padConfig = "PULLUP"; emif11.d15Qual.padConfig = "PULLUP"; emif11.d2Qual.padConfig = "PULLUP"; emif11.d3Qual.padConfig = "PULLUP"; emif11.d4Qual.padConfig = "PULLUP"; emif11.d5Qual.padConfig = "PULLUP"; emif11.d6Qual.padConfig = "PULLUP"; emif11.d7Qual.padConfig = "PULLUP"; emif11.d8Qual.padConfig = "PULLUP"; emif11.d9Qual.padConfig = "PULLUP"; emif11.dqm0Qual.padConfig = "PULLUP"; emif11.dqm1Qual.padConfig = "PULLUP";
↧