FPGARelated.com
Forums

SDRAM question

Started by osquillar September 17, 2008
Hello all, I'm working with an microblaze system and I'm trying to
work with a Micron MT48LC16M16 memory and something strange happens,
It seem than I can read positions all position but if I try to write
in positions 00 and 01 nothing changes and if I write something in
positions 02 and 03 they seems to be written in position 00 and 01. It
happens the same with the rest of the memory.

Any idea?.

Regards
Check your address/data bit order and pinout.  Many Xilinx EDK modules
have the MSB on bit 0, while many realworld chips have the LSB on what
they call bit 0.
On Sep 17, 7:37=A0am, osquillar <ogm101...@hotmail.com> wrote:
> Hello all, I'm working with an microblaze system and I'm trying to > work with a Micron MT48LC16M16 memory and something strange happens, > It seem than I can read positions all position but if I try to write > in positions 00 and 01 nothing changes and if I write something in > positions 02 and 03 they seems to be written in position 00 and 01. It > happens the same with the rest of the memory. > > Any idea?. > > Regards
Are you using a development board or have you rolled your own? If you produced your own board, check the power pins for proper hookup. It's too wasy to have power not hooked up properly through your part and "accidentally" power the device through address or data lines biasing the protection diodes.
On 17 sep, 17:28, jetm...@hotmail.com wrote:
> Check your address/data bit order and pinout. =A0Many Xilinx EDK modules > have the MSB on bit 0, while many realworld chips have the LSB on what > they call bit 0.
Hello, yes I tried with the address bit order and same result. I have a flash sharing the same address and data bus and works fine.
On 17 sep, 23:20, John_H <newsgr...@johnhandwork.com> wrote:
> On Sep 17, 7:37=A0am, osquillar <ogm101...@hotmail.com> wrote: > > > Hello all, I'm working with an microblaze system and I'm trying to > > work with a Micron MT48LC16M16 memory and something strange happens, > > It seem than I can read positions all position but if I try to write > > in positions 00 and 01 nothing changes and if I write something in > > positions 02 and 03 they seems to be written in position 00 and 01. It > > happens the same with the rest of the memory. > > > Any idea?. > > > Regards > > Are you using a development board or have you rolled your own? > If you produced your own board, check the power pins for proper > hookup. =A0It's too wasy to have power not hooked up properly through > your part and "accidentally" power the device through address or data > lines biasing the protection diodes.
I rolled my own board. I checked the power and ground supply pins and all is correct. I use the gdb debugger for my application and opening the memory window I see that effect, writing in address 00 has no effect but writing in address 02 the datas seems to be written in address 00 and writing in address 06 the datas are written in address 04, and the value of the address 02 and 06 remains 0xffff. I'm using the mch_opb_sdram controller for this pourpose.
On Sep 17, 3:23=A0pm, osquillar <ogm101...@hotmail.com> wrote:
> On 17 sep, 23:20, John_H <newsgr...@johnhandwork.com> wrote: > > > > > > > On Sep 17, 7:37=A0am, osquillar <ogm101...@hotmail.com> wrote: > > > > Hello all, I'm working with an microblaze system and I'm trying to > > > work with a Micron MT48LC16M16 memory and something strange happens, > > > It seem than I can read positions all position but if I try to write > > > in positions 00 and 01 nothing changes and if I write something in > > > positions 02 and 03 they seems to be written in position 00 and 01. I=
t
> > > happens the same with the rest of the memory. > > > > Any idea?. > > > > Regards > > > Are you using a development board or have you rolled your own? > > If you produced your own board, check the power pins for proper > > hookup. =A0It's too wasy to have power not hooked up properly through > > your part and "accidentally" power the device through address or data > > lines biasing the protection diodes. > > I rolled my own board. I checked the power and ground supply pins and > all is correct. I use the gdb debugger for my application and opening > the memory window I see that effect, writing in address 00 has no > effect but writing in address 02 the datas seems to be written in > address 00 and writing in address 06 the datas are written in address > 04, and the value of the address 02 and 06 remains 0xffff. > I'm using the mch_opb_sdram controller for this pourpose.- Hide quoted te=
xt -
> > - Show quoted text -
Perhaps timing is an issue? Do you have the Tco for the address, the Tsu and Th of the memory, and the Tskew of the clock between the two devices? Are any of the address pins shorted to something else on the board? Are you sure? Have you written to all addresses or just the 5 (or so) you've mentioned so far?
On Sep 18, 1:08=A0am, John_H <newsgr...@johnhandwork.com> wrote:
> On Sep 17, 3:23=A0pm, osquillar <ogm101...@hotmail.com> wrote: > > > > > On 17 sep, 23:20, John_H <newsgr...@johnhandwork.com> wrote: > > > > On Sep 17, 7:37=A0am, osquillar <ogm101...@hotmail.com> wrote: > > > > > Hello all, I'm working with an microblaze system and I'm trying to > > > > work with a Micron MT48LC16M16 memory and something strange happens=
,
> > > > It seem than I can read positions all position but if I try to writ=
e
> > > > in positions 00 and 01 nothing changes and if I write something in > > > > positions 02 and 03 they seems to be written in position 00 and 01.=
It
> > > > happens the same with the rest of the memory. > > > > > Any idea?. > > > > > Regards > > > > Are you using a development board or have you rolled your own? > > > If you produced your own board, check the power pins for proper > > > hookup. =A0It's too wasy to have power not hooked up properly through > > > your part and "accidentally" power the device through address or data > > > lines biasing the protection diodes. > > > I rolled my own board. I checked the power and ground supply pins and > > all is correct. I use the gdb debugger for my application and opening > > the memory window I see that effect, writing in address 00 has no > > effect but writing in address 02 the datas seems to be written in > > address 00 and writing in address 06 the datas are written in address > > 04, and the value of the address 02 and 06 remains 0xffff. > > I'm using the mch_opb_sdram controller for this pourpose.- Hide quoted =
text -
> > > - Show quoted text - > > Perhaps timing is an issue? =A0Do you have the Tco for the address, the > Tsu and Th of the memory, and the Tskew of the clock between the two > devices? > > Are any of the address pins shorted to something else on the board? > Are you sure? > > Have you written to all addresses or just the 5 (or so) you've > mentioned so far?
Hello John.... for example... ADDRESS 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F INITIAL DATA 12 FF FA DE 32 25 25 17 14 25 DA 11 BC 67 FE A2 If I try to write in address 00 , 01, 02, etc ADDRESS 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F DATA WRITTEN 01 23 45 67 89 AB CD EF 11 22 33 44 55 66 77 88 If I read the result after writting. ADDRESS 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F DATA WRITTEN 45 67 FA DE CD EF 25 27 33 44 DA 11 77 88 FE A2 If you do this all along the memory the effect is the same. All the timing parameters are correct and I've checked with an oscilloscope the signals and seems to be correct also. Any idea?. Thanks
> Hello John.... > for example... > > ADDRESS =A0 =A0 =A0 =A000 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F > INITIAL DATA =A0 =A012 FF FA DE 32 25 25 17 14 25 DA 11 BC 67 FE A2 > > If I try to write in address 00 , 01, 02, etc > > ADDRESS =A0 =A0 =A0 =A000 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F > DATA WRITTEN 01 23 45 67 89 AB CD EF 11 22 33 44 55 66 77 88 > > If I read the result after writting. > > ADDRESS =A0 =A0 =A0 =A000 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F > DATA WRITTEN 45 67 FA DE CD EF 25 27 33 44 DA 11 77 88 FE A2 > > If you do this all along the memory the effect is the same. > All the timing parameters are correct and I've checked with an > oscilloscope the signals and seems to be correct also. > > Any idea?. > Thanks
What are the burst length and burst interleaving parameters for the SDRAM, and do you get the same behavior if you change them? Dave
On Sep 22, 9:32=A0pm, Dave <dhsch...@gmail.com> wrote:
> > Hello John.... > > for example... > > > ADDRESS =A0 =A0 =A0 =A000 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F > > INITIAL DATA =A0 =A012 FF FA DE 32 25 25 17 14 25 DA 11 BC 67 FE A2 > > > If I try to write in address 00 , 01, 02, etc > > > ADDRESS =A0 =A0 =A0 =A000 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F > > DATA WRITTEN 01 23 45 67 89 AB CD EF 11 22 33 44 55 66 77 88 > > > If I read the result after writting. > > > ADDRESS =A0 =A0 =A0 =A000 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F > > DATA WRITTEN 45 67 FA DE CD EF 25 27 33 44 DA 11 77 88 FE A2 > > > If you do this all along the memory the effect is the same. > > All the timing parameters are correct and I've checked with an > > oscilloscope the signals and seems to be correct also. > > > Any idea?. > > Thanks > > What are the burst length and burst interleaving parameters for the > SDRAM, and do you get the same behavior if you change them? > > Dave- Hide quoted text - > > - Show quoted text -
Hi... I make a mistake with the description ADDRESS 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F INITIAL DATA 12 58 FF FF 32 25 FF FF 14 25 FF FF BC 67 FF FF If I try to write in address 00 , 01, 02, etc ADDRESS 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F DATA WRITTEN 01 23 45 67 89 AB CD EF 11 22 33 44 55 66 77 88 If I read the result after writting. ADDRESS 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F DATA WRITTEN 45 67 FF FF CD EF FF FF 33 44 FF FF 77 88 FF FF The burst length is 2 Thanks
On Mon, 22 Sep 2008 11:51:29 -0700 (PDT), osquillar
<ogm101274@hotmail.com> wrote:


>> > > > Hello all, I'm working with an microblaze system and I'm trying to >> > > > work with a Micron MT48LC16M16 memory and something strange happens, >> > > > It seem than I can read positions all position but if I try to write >> > > > in positions 00 and 01 nothing changes and if I write something in >> > > > positions 02 and 03 they seems to be written in position 00 and 01. It >> > > > happens the same with the rest of the memory.
>ADDRESS 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F >DATA WRITTEN 01 23 45 67 89 AB CD EF 11 22 33 44 55 66 77 88 > >If I read the result after writting. > >ADDRESS 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F >DATA WRITTEN 45 67 FA DE CD EF 25 27 33 44 DA 11 77 88 FE A2
What result did you get in simulation? - Brian