Jerry Trantow
Guest
|
Posted:
Fri Dec 17, 2004 4:44 am Post subject:
5510 DSK SDRAM refresh |
|
|
I'm having some problems with a big buffer in the SDRAM of a 5510 DSK. I
put approx 6 seconds of 24 bit stereo 96K data out to the SDRAM so I can
pretrigger my data storage to compact flash. I have worked through the 64K
limitations and now it looks like I have a refresh problem.
I have code in the idle loop which fills the SDRAM with a test pattern and
another function which verifies the SDRAM (Verify_Big_Buffer()).
Simplest test case looks something like this.
Init_Big_Buffer();
ASSERT(TRUE == Verify_Big_Buffer()); // SDRAM is ok at this point.
Waste_msec(10000);
ASSERT(TRUE == Verify_Big_Buffer()); // This will fail.
If I burn 10 seconds, my buffer will not verify and when the memory location
that doesn't match will be random and usually off by a single bit. If I
reduce the time to be under 6 seconds, the buffer will verify, but won't
verify after a long disk operation of saving the entire buffer to CF.
If I stick an extra Verify_Big_Buffer() call between writing frames to the
CF, the code runs (slowly). My guess at this point is that the
Verify_Big_Buffer() is refreshing the SDRAM.
for (f=0;f<TOTAL_FRAMES;f++)
{
f_ptr=buffer_address(f);
VERIFY(FRAMESIZE == fwrite(f_ptr,2,FRAME_SIZE,fp));
ASSERT(TRUE == Verify_Big_Buffer()); // SDRAM won't verify at the
end without this verify. Refresh???
}
VERIFY(TRUE == Verify_Big_Buffer());
My hardware expert has looked at the .cdb and the autorefresh is supposed to
be enabled. He has also checked the register while it's running and it
looks to be programmed correctly. We took a look at the CS to the SDRAM and
it's only active when we talk to the SDRAM. We didn't see any of the ras or
cas lines, but it was the end of a long day and we'll have to check
tomorrow.
Any ideas would be appreciated. Thanks in Advance. |
|