2024-09-05 09:39 PM
Hello everyone.
I want to connect 8 SRAMs (2MB) to STM32H755XIH3 and use them as 16MB work memory.
When connecting 8 memories (SRAMs) using FMC (devices more than the number of FMC_NE*), how should I connect and control them? If there are any similar cases, I would appreciate your advice.
I am currently considering it, but I have some conditions.
1. I will use Infenion's CY7C1061GE30-10BVJXIT (2MB) with dual chip enable for the SRAM.
2. Of the 4 NEs in the FMC, 2 will be used to connect other memories, so only 2 can be used for SRAM.
Thank you in advance.
Solved! Go to Solution.
2024-09-06 03:32 AM - edited 2024-09-06 05:08 AM
@kazutobi wrote:
The SRAM I'm trying to use has two chip enable terminals.
I was thinking of doing it without a decoder. I don't know if that's possible though.
Two chip enable is to enable the memory itself. You need to use one and fix the another. You need as @Tesla DeLorean said an address decoder like the old TTL "74138" to address 8 memories. Each 74138 output will drive a chip enable of a memory. The address decoder is driven by the Higher address lines.
This is an old concept. So for example this link: https://ece-research.unm.edu/jimp/310/slides/8086_memory2.html
2024-09-05 10:36 PM
I wonder WHY do you want to do that?
The PCB routing alone calls for trouble... 8 BGAs sharing more than 30 data address and data lines, then think of the IO capacitance of each IC.
No real help, but unless you have something very smart and specific on your mind, rather go for a bigger FMC SRAM, or use a HyperRam via OCTOSPI.
2024-09-06 02:02 AM - edited 2024-09-06 02:56 AM
Hello,
Too complicated solution. But why are you using 8 SRAM memories when you can do it with one of 16MB?
As said by @LCE the PCB will be complex as well as the signal integrity and the IO capacitance.
From my standpoint, forget about this solution. It will bring you head ache more than what it brings as "solutions" .
2024-09-06 02:26 AM
Hi LCE, SofLit,
Thank you very much for your reply.
I need high-speed access and would like to use memory with ECC function, and I need 16MByte, so I will use 8 SRAM (2Mbit).
I don't think there is any SRAM with a capacity of more than 2Mbit, but it may be that I just haven't found it yet.
Thank you in advance.
2024-09-06 02:33 AM
Sorry, that was a typo.
2Mbit--> 16Mbit
SRAM capacity is 16Mbit
2024-09-06 02:52 AM
Will you do the PCB layout, or do you want to annoy someone else? ;)
You will lose a lot of your envisioned "high speed access" simply by adding up the PCB trace and IO capacitance.
And unless you may use via in pad methods, you will create a lot of trace stubs, another thing that signal integrity will suffer from.
I'm using an Infineon 16 MB HyperRAM at 100 MHz via OCTOSPI of an STM32H733, I get a data rate both read and write > 50 MB / s.
I can't imagine that you will be able to reach that.
But I'll be happy if you will prove me wrong! :)
2024-09-06 02:57 AM - edited 2024-09-06 02:58 AM
I also add you may face IO current source issue as 8 memories will be driven in parallel.
Mostly the control lines: WR/ OE etc ..
2024-09-06 03:08 AM
Hello LCE
Thank you for your reply.
It was very helpful for you to share your experience.
I will reconsider this over the weekend.
2024-09-06 03:09 AM
You'd need to use 3 of the high order address bits to create a 3-to-8 decoder to generate chip selects for the individual memories.
2024-09-06 03:27 AM
Hello Tesla DeLorean
Thank you for your reply.
The SRAM I'm trying to use has two chip enable terminals.
I was thinking of doing it without a decoder. I don't know if that's possible though.