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++;
}
}
}





