Řešil jsem otázku, jak uložit velký objem dat (záznamník fotek z CMOS kamery) a zjistil jsem, že Jesper Hansen to už za mne vyřešil. Jeho projekt popisuje připojení DRAM 512kB*8.

Důvod proč jsem chtěl připojit DRAM je ten, že je jich obvykle dostatek. Pokud nějakou nemáte, tak se podívejte raději pořádně do šuplíku po nějakém paměťovém modulu do PC, kde jsou hezky vedle sebe. A v nouzi nejvyšší zlikvidujte nějakou starou nepoužívanou VGA kartu.
Další důvod byl ten, že jsem potřeboval nízkou spotřebu. SRAM paměti mají obvykle dost vysokou spotřebu, pokud nejde o nějaký typ se Stand-by režimem. Paměť DRAM požaduje proud jen, když se něco děje, jinak má spotřebu nízkou. Při nízké frekvenci refresh (nepředpokládám, že by zde byl čtenář, který by chtěl připojit paměť a nevěděl co tento termín znamená, proto nezabíhám do podrobností) je spotřeba minimální, Jesper měl 2-3 mA. Pozor však na pomalou refresh, pokud budete používat zařízení za vyšších teplot (typicky třeba v automobilu na slunci může být uvnitř teplota až 60C).
Třetím důvodem je malý počet připojovacích vodičů, protože DRAM mají multilexovaná data a adresu, na rozdil od SRAM.
A čtvrtý, poslední důvod je ten, že jsem chtěl mít v zásobě nějaké řešení, které bych mohl potřebovat do masovější výroby, a tam se hodí DRAM, protože je výrazně levnější než SRAM.

Dále již Jesper:
Měl jsem spoustu Hitatchi M5M44800 DRAM pamětí, které jsem dostal skoro zadarmo, tak jsem se rozhodl to zkusit s jednou z nich. Jde o 512k DRAM x 8 bit. Využívá refresh cyklus 1024 (každý max 16 ms), a umožňuje CBR refresh dat (CAS-before-RAS).
Použitý procesor je At90S8515. Refresh je ošetřen periodickým přerušením přes Timer1. Počet je nastaven na -125 a předdělička na hodnotu fClk/1024 (8 MHz), to dává přerušení každých 16 ms. Při každém přerušení, se provede 1024 krát cyklus obnovy, a při každé iteraci se dělá CBR refresh. Cyklus trvá celkem cca 1,6 ms, na celou realizaci. To znamená, že obnova spotřebuje asi 10% času procesoru. Mohlo by to být horší .
Situace je trochu horší, když začneme studovat RD / WR cyklus. Vzhledem k tomu, že musíte provádět multiplexing adresy a dat, při každém přístupu, tak čtení z paměti trvá asi 3,6 us, a zápis trvá 3 us. Takže to znamená, že je možné číst a zapisovat do paměti s rychlostí asi 300 kB / sec.
Ale vzhledem k tomu, že přístup do 512kB paměti je lineární, tak to není tak zlé.

Jesperův projekt, včetně zdrojového programu v C, je k dispozici zde.

Zdrojový kód: