This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

What happens to upper half of 32-bit data bus when reading 16-bit chip?

Hi guys, I am interested in exploring a scenario when Cortex M4 cpu performs a 16-bit static memory read when 32-bit memory is actually on the board.

The 16-bit memory chip is connected to lower half of the data bus, signals D0..D15 and there are two cycles required to read full 32-bit DWORD.

What actually happens to the D16..D31 data lines on the cpu during such 16-bit read cycles?

Are they left in high-impedance mode? Are they driven?

I would like to make my custom board with two variants: one with a single 16-bit flash memory and other with dual flash memory (two 16-bit chips in parallel).

Both flash chips share address bus, CE, OE, WE signals, they just handle lower or upper 16-bits of the 32-bit data bus, respectively.

If the CPU is handling 16-bit read transactions, the other flash chip connected to the upper half data bus will see the CE and OE and will try to drive the D16..D31.

And I wonder about the compatibility of the CPU configured for 16-bit mode on a board with both flash chips populated.

Will the CPU play nicely keeping D16..D31 in high impedance mode during 16-bit cycles or will it drive these pins somehow causing collisions?

0