Go Down

Topic: DUE + DIMM RAM module (Read 3082 times) previous topic - next topic


Jan 04, 2015, 07:05 pm Last Edit: Jan 04, 2015, 10:00 pm by EvIl_DeViL
as stated in the title: do you think it's even possible to think about interfacing a DIMM ram module http://en.wikipedia.org/wiki/DIMM with an arduino DUE?
maybe and SDR-66 or SDR-100...
they are 3.3v and a DUE should keep up with the refresh rate or manage an autorefresh.
I'm not even talking about indexing all the ram addresses.
talking about the nonECC 168 pin module, what is the minimum amount of pin I need to wire to address and interect with the smallest amount of ram?http://pinouts.ru/Memory/DimmSdram168Unbuf_pinout.shtml
maybe using a SIPO shift register buffer or so to save pins... this guy used them http://youtu.be/PrusYdAgc6c

I got inspired by this https://github.com/zrafa/30pin-simm-ram-arduino but here I spare only 4MB of 72 pin and they are only 5v so I should even convert every logic signal to work with a DUE

the biggest 30pin SIMM is 16MB (which is 2Mb) so I'd rather buy two of these http://www.rlx.sk/sk/storage-boards-memorystorage-boards-memory/2559-ramdisk-8mb-8mx8-8mbytes-with-8bit-parallel-access.html which are 8M

It would be great if I could index > 16MB on a 168 DIMM with a DUE...


The chip has lots of stuff for communicating with memory built into the hardware. However you will probably find that some of the lines required for proper interfacing have not been brought out to the Arduino headers. Even if they were, those headers are not the appropriate format for communicating at high speed with a memory (not all the lines are meandered to the identical length.)

Even if you find a (slow) way of communicating with all that memory, why do you need so much volatile storage? I would think that any SD card will give you a lot more memory without occupying lots of pins and it doesn't lose any data when the power resets.
"The problem is in the code you didn't post."


Jan 04, 2015, 07:16 pm Last Edit: Jan 04, 2015, 07:16 pm by MarkT
As far as I remember the SDRAM controller is only on the version of the chip that
comes with Atmel's development board and isn't available on any other package.
Check the datasheet for chapter and verse.

Identical length lines isn't a big problem with 66MHz SDRAM, compared to modern DDR3,
BTW!  Also you can underclock SDRAM happily.
[ I will NOT respond to personal messages, I WILL delete them, use the forum please ]


Jan 04, 2015, 07:57 pm Last Edit: Jan 05, 2015, 06:33 pm by EvIl_DeViL
@MorganS: directly interfacing with the SAM would be nice but if the lines aren't out I might bitbang and serial read/write chunk of data to the RAM via custom APIs...

I'm crazy... I'd like to put 2 image 2592x1944 (5MP) got from the OV5642. so I need 5038848 byte = 38.443359375 MB for each one. I need all the image because I'd like to put all this on a quadcopter and I'd like to avoid the jello-effect caused by the horizontal vibrations if interlacing is used. I could use the 8M module and read 5 chunk per time but I want to push everything to the limit!
I know: if I settle at 1080p -> 1920x1080 = 2073600 byte = 15.8203125 so each frame could fit in two 8M module.

That's the whole project and I want to see how close I can get.

@MarkT: I wish to see the Atmel dev board; I searched on the atmel site but couldn't find it... do you have a link? (I'm just curious)

Identical length lines isn't a big problem with 66MHz SDRAM, compared to modern DDR3,
BTW!  Also you can underclock SDRAM happily.
I like this ^. It also confirm what I studied around: the only SDRAM frequency limit is the chips discharge time which in my case (according to the datasheet) should be 66ns or a little more than 15mhz if my calculations are correct (1/0.000000066 = 15151515,15151515)

edit: looks like even cheap-o stuff uses sdr dimm ram module chips!!! http://youtu.be/1EuBRmfJLSk @19:37 in the upper part. and here the same module mounted over a ram bank http://old-pc-museum.narod.ru/olderfiles/1/64Mb_eliteMt_m12l64164a-8t_big.jpg and here is the datasheet.
Using shift registers or multiplexers creating a dimm memory controller with a DUE seems a possible thing theoretically... any info about power consumption? seems to be at least 2 watt per bank on full load...
edit2: seems also there's yet an external memory bus api for the DUE https://github.com/delsauce/ArduinoDueParallel which has been used just for the 8M ram module for the DUE http://forum.arduino.cc/index.php?topic=220918.0
edit3: I was thinking... what about this + this?


Anybody have any luck with this ?

Go Up