Audio paměť s RAM

   Tato konstrukce byl můj první a naštěstí také úspěšný pokus s pamětmi SRAM.

Princip zapojení

   K převodu zvuku do digitální formy slouží libovolný 8-bitový paralelní A/D převodník. Měl jsem zrovna doma ADC0804, který docela solidně zvládne vzorkovat až na 40kHz. Pořídit ho lze za asi 100KČ. Po převodu se na výstupu objeví 8-bitové slovo, které je přivedeno na datový vstup statické paměti RAM. Toto slovo se záporným impulsem na vývodu WR paměti zapíše na adresu nastavenou adresovými vývody A0-A16. Datová sběrnice paměti je při nahrávání nastaven na vysokou impedanci, aby se chovala jako vstup a výstup A/D převodníku je aktivní. Při přehrávání je naopak sběrnice paměti RAM aktivní a ve vysoké impedanci je výstup A/D převodníku, takže do obvodu nezasahuje. 8-bitová slova z výstupu se pak D/A převodníkem převádějí zpět na analogový signál.

   Vzorkovací / čtecí frekvence je generována obvodem 4046 a nastavuje se pomocí P1. Čítače 4040 postupně adresují jednotlivé buňky paměti. Po přehrání či nahrání celé paměti se na výstupu Q6 čítače IC3 nastaví log.1. To zablokuje generátor IC4, takže se přestanou generovat a ukládat další vzorky. Dále se rozsvítí LED dioda D2, která indikuje naplnění paměti. Další přehrávání se docílí stiskem tlačítka PLAY, které přes C10 vytvoří krátký kladný impuls, který resetuje čítače, čímž také přejde Q6 do úrovně log.0 a odblokuje generátor 4046.
    Pro nahrávání je třeba držet tlačítko REC, které jednak vyresetuje přes C9 čítače (stejně jako PLAY) a při jeho podržení nastaví zmiňovanou vysokou impedanci paměti RAM a také povolí generování zapisovacích pulsů pro RAM. Krátké zapisovací impulsy jsou generovány MKO IC7a a jsou generovány jen když je vstup A v log. 0, což odpovídá stisknutému tlačítku REC (nahrávání). Po rozepnutí tlačítka REC se přestane nahrávat a zbytek paměti se pouze přehraje (vedlejší efekt - pomocí logiky se toto těžko ošetřuje). V případě, kdy je na vstupu A log.1 je i na výstupu /Q log.1 (rozeplé tlačítko REC), což znamená, že paměť pracuje v čtecím režimu. Invertor IC6a zajišťuje, aby byl aktivní vždy jen jeden z obvodů (RAM nebo A/D převodník). Součástky R3 a C3 kolem převodníku slouží k nastavení frekvence jeho oscilátoru na asi 2MHz. Odpory R9 a R8 nastavují referenční napětí obvodu. Maximální vstupní napětí na V+ je rovno dvojnásobku napětí na Vref, takže na Vref pinu může být maximálně 2,5V. Operační zesilovač na vstupu slouží k nastavení vstupní citlivosti a impedančnímu přizpůsobení vstupu k převodníku a lze zde použít libovolný typ. Citlivost se nastavuje pomocí P2. Trimrem R11 je třeba nastavit takové napětí, aby zkreslení signálu bylo co nejnižší - to jest asi stejné napětí jako na vývodu Vref. Zapojení jsem zkoušel pouze na kontaktním poli a šum generovaný logikou, se mi podařilo odstranit několika elektrolyty a keramikami na různých místech v napájení.
    Při použití RAM jiné velikosti, se RAM podle počtu adresovacích vodičů připojí na více či méně výstupů čítačů. Pouze blokování z výstupu Q6 se připojí na první nevyužitý výstup - např. pro paměť 256kB, která má 18 adresovacích vývodů, bude pro adresování použit i vývod Q6, a tak se blokování generátoru připojí až na Q7 obvodu IC3. Další věcí je způsob připojení adresovacích vývodů k čítačům. Nesmí být vynechán žádný výstup čítače - např. nepřipojovat jeden adres. vývod na Q3 a další až na Q5 (způsobí to několikanásobné přehrávání úseku paměti). Vývody RAM naopak mohou být připojeny úplně chaoticky, tj. v libovolném pořadí, protože se RAM čte ve stejném pořadí, jako se do ní zapisuje. Toho lze využít pro snadnější návrh plošných spojů.
   Poznámka: Při experimentech s obvodem ADC0804 se mi už několikrát stalo, že se převodník bez příčiny "zakousl" a tekl přes něj proud asi 0,3A. Po odpojení a opětovném připojení napájení se však zase "rozjel" a fungoval normálně.

   Nejjednoduššími D/A převodníky jsou zapojení podle obrázků. Zapojeni vlevo je sice jednodušší, ale odpory musí být vždy dvojnásobné a tak by se musely hodnoty nějak poskládat z více rezistorů. Také je problém, že když bude spodní odpor R mít 1k tak horní musí mít už 256k, což není zrovna nejlepší. Odpory pro zapojení vpravo se dají sehnat poměrně snadno, ale zase jich je víc. Zem převodníku se musí spojit se zemí audio paměti. Pomocí P1 se reguluje hlasitost. Na výstup se připojí libovolný zesilovač, jehož napájení se nesmí brát z +5V logiky, jinak dojde ke kolísání napětí a při vysokém zesílení IC8 se objeví silné rušení. Pro vyšší kvalitu by šly použít i integrované převodníky, ale zapojení by se zbytečně komplikovalo. Na výstup převodníku, lze ještě zapojit RC filtr, který odstraní některé rušivé zvuky (přibližně vše nad vzorkovací frekvenci / 2).

Paměti SRAM

   Pro audio paměť je nutné použít statickou RAM (SRAM). Dynamické paměti (DRAM) potřebují data obnovovat, což je téměř nemožné provádět pomocí klasické logiky. SRAM se vyskytují často na síťových kartách, ale jen v menších velikostech (nejvíc asi 32kB). Použít jdou i paměti cache ze základních desek. Vždy je však třeba stáhnout katalogový list a ověřit si zapojení a jestli skutečně jde o SRAM. SRAM se dá taky docela levně koupit. Např. v EZK mají paměť 128kB jen za 57Kč. Při ucházející kvalitě 16 kHz se do ní vejde 8 sekund záznamu. V GME mají dokonce 512kB, ale už za 220Kč (docela přímo úměrné její kapacitě).

Poslední aktualizace: 20.6.2005