This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

LAUNCHXL-F28379D: Question about EMIF1 - 16-bit 256Mb SDRAM

Part Number: LAUNCHXL-F28379D
Other Parts Discussed in Thread: C2000WARE

Hello. I'm using LAUNCHXL-F28379D and I built a small memory board that can connect to LAUNCHXL-F28379D through J9. After I connect the memory board to LaunchPad, I did a quick memory write/read test and it gives me weird results. All the even address memory is not working correctly. It feels like this issue is caused by address line GPIO38/EM1A0. Then, I did two tests as follow:

1. I write to 0x8000 0000 and 0x8000 0001, I expected A0 should be different in these two cases, but they are both low.

2. I configure GPIO38 as an output GPIO and output high, I can measure high on the memory chip. This proves the connection is Ok.

Can someone please help me with this issue? I attached my main.c source file and the memory browser screenshot. Thanks.

Best regards.

Yang


/**
* main.c
*/

#include "F28x_Project.h"

extern void LaunchXL_F28379D_CPU1_Init(void);

volatile Uint16 *emif_pointer = (Uint16 *)0x80000000;
Uint32 emif_bias = 0;
Uint16 write_data = 0;
Uint16 read_data = 0;
Uint32 failed_count = 0;

void main(void)
{
InitSysCtrl();
LaunchXL_F28379D_CPU1_Init();

PieCtrlRegs.PIECTRL.bit.ENPIE = 1; // Enable the PIE block
IER = M_INT1 | M_INT3 | M_INT9;
EINT;

while(1)
{
failed_count = 0;
write_data = 0;
write_read = 0;
for(emif_bias=0;emif_bias<0x10000000;emif_bias++)
{
*(emif_pointer+emif_bias) = write_data;
write_data++;
}
write_data=0;
write_read = 1;
for(emif_bias=0;emif_bias<0x10000000;emif_bias++)
{
read_data = *(emif_pointer+emif_bias);
if(read_data!=write_data)
failed_count++;
write_data++;
}
}
}