we configured sdr sdram as per LPC3250 .s file. and .s file configured for 32 bit sdr sdram and we configured it as 16 bit. when we are writing data into sdr sdram it is writing data into that address location like shown below address data 0x80000000 0x1111 0x80000002 0x2222 0x80000004 0x3333 0x80000006 0x4444 0x80000008 0x5555 0x8000000A 0x6666 0x8000000C 0x7777
when we are reading data from sdram, it is reading data from alternate location like below address data 0x80000000 0x1111 0x80000002 0x1111 0x80000004 0x3333 0x80000006 0x3333 0x80000008 0x5555 0x8000000A 0x5555 0x8000000C 0x7777
and what is the problem
Not all configuration parameters relating to the SDRAM can be set within uVision.
Have you checked the address SDRAM0_MODE_REG (and the others in that block)? The address read from is used to provide configuration information to the SDRAM.
I just want to clarify one doubt, that how the LPC3250 is generating ACTIVE command.
What we have understood that when we read/write memory in sdram then EMC present in LPC3250 generates the ACTIVE command. If it so then how the row address for the ACTIVE command is generated by the LPC3250.
please let us know whether what we are thinking is correct or not. If it is not correct then how the ACTIVE command is generated.
I cannot say with absolute certainty, but I believe that the LPC3250 looks after the ACTIVE command.
The EMC (as detailed in chapter 7 of the User manual - UM10326) looks after just about everything. If it didn't then using SDRAM might be pretty awkward.
I had troubles setting it up (which was mainly down to my not understanding/appreciating all the detail) but once set up correctly it's use was transparent.
hi, sir i have one query ,why mode register value shifting by 12 bits left(please refer AN10935). and why con't we load it directly without shifting.
Thanks & regards Madhu krishna .G
"...why mode register value shifting by 12 bits left(please refer AN10935)."
You need to ask NXP that one.
"and why con't we load it directly without shifting."
You could, but it probably wouldn't work.
The general rule is: do what the manuals tell you to do.
So while accessing memory also do we have to do this 12 bit shifting
"So while accessing memory also do we have to do this 12 bit shifting"
What? Why would you think that? If you had to do that you'd have serious problems running code from it!