AnsweredAssumed Answered

STM32F2xx FSMC address bus assignment

Question asked by peelo.frank on May 23, 2014
Latest reply on May 23, 2014 by peelo.frank
One thing I have not been able to find in the datasheet: if the FSMC is being used to access 16-bit memory, what does A0 do?

I'm a bit confused about this.

If BCR.MWID is 00 => 8-bit data width, you have to address individual bytes. So the STM32F is able to access bytes, which means A0 is the least significant bit of the byte address. So it's 0 for even byte addresses (e.g. A000 0000) and 1 for odd byte addresses (A000 0001).

So if 16-bit memory was attached, and MWID=01 => 16-bit accesses, A0 would not be needed, and A1 would be the least significant address line. A1 would be 0 for even word addresses (A000 0000), 1 for odd word addresses (A000 0002). At least, this was the case on a previous MCU (from another manufacturer) that I used before.

Am I right to expect this, or does the address bus get shifted 1 bit up when BCR.MWID = 01, so A0 becomes the lsb of a word address instead of byte?

Outcomes