i'm using a F103ZC to interface the external RAM IS61WV51216BLL. I used the AN 2784 as reference (Same RAM and same pin connection). For setup up of the FSMC i used the Example in the F1 SPL (for STM32F10E Eval Board). But it have following strange behaviour:
If i write the sequence '1, 2, 3, 4' to the RAM at offset 0 (0x68000000 + offset), i read back '2, 2, 4, 4' (I'm using the write and read-function provided in the SPL example -> 16 bit values).
To find out what's wrong i did some tests...
I found out, if i write only every second value (1, x, 2, x, 3, x, ...), i read back '1, 1, 2, 2, 3, 3, ...
I came to the conclusion, that writing to offset 0 (Byte0 and Byte1) also writes the 16 bit value to offset 1 (Byte2 and Byte3). Writing to offset 1 also writes the same value to offset 0.
So my question is, why writes the FSMC always two 16 Bit values to the SRAM? The example in the SPL is of no use, since it writes only ONE fixed value to the SRAM, so you can't spot the error.