cancel
Showing results for 
Search instead for 
Did you mean: 

STM32F427 External 32 bit Dual Port Ram

john239955_st
Associate III
Posted on February 05, 2014 at 17:20

I have looked at using the STM32F427 to drive a 32 bit Universal Bus, similar to VME.

I need CAN, SPI, USB etc, therefore the STM32 looks a good choice.

I am finding difficulty in getting information on the FMC bus that will Read and Write to a 32 bit external SRAM (DPR), I need 32 bit data bus, about 10 Address lines, a WR, RD CE0, CE1 and Wait. I have checked out the MicroXplore this only sets a 32 bit SDRAM and a 8 bit and 16 bit bus all the docs imply this is available.

I would prefer to ensure this can be implemented before doing down a board/software design route. 

Thank you for your help ... Regards  John W

#poor-quality-of-documentation
18 REPLIES 18
warcatz
Associate II
Posted on February 05, 2014 at 18:01

FMC have a 32bits data bus BUT it's for SDRAM ;)

FSMC is for use SRAM , PSRAM , etc , and this one have a 16bits data bus.

It's in page 1517 and down from the reference manual.

Regards.

john239955_st
Associate III
Posted on February 05, 2014 at 18:27

Thanks...

I currently use a Renesas M32/87 for a 16 bit bus but now require 32 bits.

I will keep on looking.

Thanks for your help.

Kind Regards  John W.

john239955_st
Associate III
Posted on February 06, 2014 at 12:59

Re: User Manual RM0090 Flexible Mem Controller.

Table 260 Non Multiplexed I/O PSRAM/SRAM seems to imply that the FMC can set A[25:0]  D31[31:0] with CS, OE, WR, etc NBL[n] appears to address 4   8 bit memory devices and say 2 x 16 bit memory by gating.

Fig. 455 .... 458 gives Read/Write timing for a 32 bit bus.

also 37.5.6 - FMC_BCR1..4 allows bits 5:4 - MWID to set to a external 32 bit device and the bits 3:2 - MTYP allows SRAM to be set.

I would be grateful if any can advise if the external device has a maximum bus width of 16 or 32 bits as there seems to be some conflict in the manual.

Thanks for your help - Regards - John W.

Posted on February 06, 2014 at 13:35

Where do you see the conflict in documentation?

JW

john239955_st
Associate III
Posted on February 06, 2014 at 14:43

Thanks for the reply.

37.5.2  Table 262  [SRAM and ROM] is only a 16 bit data size.

Am I missing something.

Thanks John W.

john239955_st
Associate III
Posted on February 06, 2014 at 15:14

Thanks JW.

I guess your are saying that a 32 bit bus should work ?

Quite an expenpensive road with hardware/software and PCB design if I only get 16 bits.

Thanks for your help .... from JW

Posted on February 06, 2014 at 15:34

> I guess your are saying that a 32 bit bus should work ?

Yeeeeah....

> Quite an expenpensive road with hardware/software and PCB design if I only get 16 bits.

This is why I didn't want to say that ''yes'' above too loudly... No first-hand experience, you see (except that experience with poor documentation :( ).

So here's a plan: get a '429 DISCOVERY (you get a nice albeit for your purposes useless TV bundled ;) ), strap it up to a logic analyzer and write some code to read/write 32-bit SRAM. There will be no memory to read from/write to, but all the signals except read data will be there.

You still might have doubts whether the '427's FMC works the same way. I don't know of a ready-made '427 board. Maybe somebody here does some. Maybe the '429 from the DISCO could be swapped for a '427, I didn't check but there's quite some compatibility in the STM32 pinouts. Or, design yours, being inspired perhaps by the DISCO, adding perhaps a memory or two - and get it manufactured by the cheapest pool service you can get. I believe you could get below $100 not counting your work.

Looking forward to you reporting back with the findings... ;)

JW

chen
Associate II
Posted on February 06, 2014 at 15:49

Hi

''I have looked at using the STM32F427 to drive a 32 bit Universal Bus, similar to VME.''

Things have changed so much since the days of VME bus.

In VME days, you chose a processor and then all the peripherals around it. VME was pretty much an extension of the processor bus.

No a days an embedded processor is pretty much the whole system. There is no need to expose the address and data bus to the processor pins.

Sorry - this is not much help!

Another route to try :

Use another processor which is better suited :

http://www.st.com/web/en/catalog/mmc/FM169/SC1156

These look like they are really stepping up the processing power!

Sorry I have no experience of these, just a thought.