Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

FMC for STM32 in muxed mode

Status
Not open for further replies.

IWe Ivan Govnov

Newbie level 6
Joined
Nov 28, 2020
Messages
13
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
128
Please help me with operation of the FMC module in STM32F407VE. It is necessary to connect external RAM memory; since FMC module in this microcontroller uses the address bus and data bus in muxed mode, its need to demultiplex this signals. For this purpose the nADV (nL) signal is used. This signal must route to external latches.
It is assumed to use RAM type IS61LV25616AL or something similar. Datasheet is here:
https://datasheet.lcsc.com/lcsc/180...ilicon-Solution-IS61LV25616AL-10TL_C16001.pdf
My questions:
1) Timing diagrams are shown only for accessing NOR FLASH in the Reference Manual (RM0090). It can be expected that in general timing diagrams should be the same for PSRAM (RM0090, see page 1547). However, it is not very clear on which edge the address bus should be latched. I suppose that address bus should be latched on rising edge; precisely during time between the falling and rising edges of the nADV (nL) signal the transients on traces must end and then the FMC module samples the data (for read mode). If this true, the two 74HC574 chip can be used to latch address.
By the way this IC is rather slow. Delay between input and output can be over 200 ns with a 2 V supply, and 45 ns with a 4.5 V supply. Although my circuit will operate on a 3.3 V supply, the delay will still remain big enough. Maybe I should look for something faster?
2) Since the data bus is 16-bit width FMC will use split access to call 32-bit data (RM0090, see page 1533). I wonder what consequences I should expect in this case besides the increase in the data access time compared to the data access time in the internal memory. Also is it true that good practice not to make calls to external memory from interrupt routines, and as a last resort - to use the __DSB () instruction?
3) The data line would be in a high-Z state for a short time in the multiplexed mode, as well as during byte-by-byte access. Should I pull these lines to the ground or power with 1…10k resistors?
 

Fastest timing in mux FSMC mode is achieved with a transparent latch rather than a FF, e.g. 74LVC573 with inverter for NADV. This way, address appears at the output before rising NADV edge and you don't need extra delay before NWE.

32 bit accesses are translated by the FSMC controller transparently, no problem with interrupts or DMA.

Generally no need for PU/PD resistors.
 
Thanks a lot! But what about 74LVC574?
Let's compare 74LVC574 and 74LVC573.

Propagation delay is:
1) for 74LVC573 (LE to Qn) -- 8,5 ns (pg. 6)
2) for 74LVC574 (CP to Qn) -- 9 ns (pg. 7)

May be 74LVC574 is more reasonable choice? It's should be considered that inverter for schematic with 74LVC573 is make some delay. Of coarse this delay is negligible in this case. By the way this inverter is extra component.
 

The important point is the usage of a transparent latch instead of a FF. If you use 574, you need to configure delay between NADV rising edge and NWE falling edge, otherwise you get wrong writes.
 
Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top