Hi all,
Currently my customers are testing Write/Read access of external SRAM. So there were the following problems.
There is no problem when testing with the following code.(The read data matches the written data)
for ( i = sram_start; i < sram_end; i++ )
{
char *addr = ( char * )i;
*addr = w_data; /* 1byte write */
r_data = *addr; /* 1byte read */
}
However, when I execute the test after initializing the memory to 0 with the following code, sometimes I can not write normally.
memset( addr, 0x00, sram_end - (unsigned long)addr + 1 );
The test writes 0x5A in the entire area of the SRAM.
This is the waveform when writing was successfully performed.
This is the waveform when writing can not be performed correctly.
When failing, the data at write becomes 0.
Let me know why this will happen?
Additional Information:
- There is no regularity in the address where problem occurs.
- Even if the EMIF clock is slowed down(90MHz --> 60MHz), the problem is reproduced.
- This problem occurs randomly. Sometimes it happens soon, but sometimes it does not happen for a while.
Best regards,
Sasaki