From: lusch on
I've got a problem with my DDR2 (MT47H32M16) on my Spartan3AN board. I
use MIG 2.3 controler. The burst lenght is 4. When I'm writing the
data like x"A1A1B2B2" or x"01010101" everything works. I'm reading the
data after data_valid is set and writing to internal registers. Then
I'm sending it to RS232.

Problem is when I want write data with zeros... like x"A100B2B2" or
x"01010001". Then data which I'm reading are wrong. For x"A100B2B2" A1
I can read but else data are wrong:/

I'm little confused why it happens..
From: Gabor on
On Mar 9, 2:04 pm, lusch <lukaszschodow...(a)gmail.com> wrote:
> I've got a problem with my DDR2 (MT47H32M16) on my Spartan3AN board. I
> use MIG 2.3 controler. The burst lenght is 4. When I'm writing the
> data like x"A1A1B2B2" or x"01010101" everything works. I'm reading the
> data after data_valid is set and writing to internal registers. Then
> I'm sending it to RS232.
>
> Problem is when I want write data with zeros... like x"A100B2B2" or
> x"01010001". Then data which I'm reading are wrong. For x"A100B2B2" A1
> I can read but else data are wrong:/
>
> I'm little confused why it happens..

My guess is that it's the RS-232 link dropping your zeroes, not
the memory controller. It's standard practice on serial links
to treat null characters (x"00") as nothing, and therefore drop
them. Make sure the software at the other end of your RS-232
link is set up to receive binary mode rather than ASCII text.

Regards,
Gabor
From: lusch on
On 9 Mar, 21:59, Gabor <ga...(a)alacron.com> wrote:

> My guess is that it's the RS-232 link dropping your zeroes, not
> the memory controller.  It's standard practice on serial links
> to treat null characters (x"00") as nothing, and therefore drop
> them.  Make sure the software at the other end of your RS-232
> link is set up to receive binary mode rather than ASCII text.
>
> Regards,
> Gabor

I receive data in serial terminal and I set hexadecimal rather than
ASCII so I see exactly byte to byte what I receive.

Thanks for replay.
Regards
From: Nial Stewart on
> I've got a problem with my DDR2 (MT47H32M16) on my Spartan3AN board. I
> use MIG 2.3 controler. The burst lenght is 4. When I'm writing the
> data like x"A1A1B2B2" or x"01010101" everything works. I'm reading the
> data after data_valid is set and writing to internal registers. Then
> I'm sending it to RS232.
>
> Problem is when I want write data with zeros... like x"A100B2B2" or
> x"01010001". Then data which I'm reading are wrong. For x"A100B2B2" A1
> I can read but else data are wrong:/
>
> I'm little confused why it happens..


Is this a custom board or a 3rd party eval board?

How confident are you about the terminations between the FPGA and memory?

What exactly do you get back when you write x"A100B2B2"?

What do you get back if you write all zeros?

Can you slow the transfer down (half speed?).

I'd be worried about signal integrity, but then the x"01010101" case would
suggest this might not be a problem. ?


Sounds like you're confident about the RS232 connection, if you weren't this
is the sort of thing my 1Pin Interface is useful for.

http://www.1pin-interface.com :-)




Nial


From: lusch on
Yes, the problem was in RS232 :) Actually I don't know why.
I wrote simple module to write data to RS232 from FPGA and problem
appeared when I'd like send "00"

Thanks for cooperation
Luka