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?