Připojení vnějších pamětí Vyřešeno

...

Moderátoři: Marfy, Mods_junior, Mods_senior, HW spec team

kimi999
Level 4
Level 4
Příspěvky: 1103
Registrován: duben 11
Pohlaví: Muž
Stav:
Offline

Připojení vnějších pamětí

Příspěvekod kimi999 » 04 bře 2012 14:49

Zdravím,

potřeboval bych pomoct popř. odkázat na nějakou jinou stránku nebo fórum kde bych vyřešil svůj problém. Mám projekt do školy se zadáním.
:idea:
"Připojte k procesoru 8051 2KB vnějších pamětí programu a 512x8b vnější paměti dat. K dispozici pro paměť programu paměťové moduly s kapacitou 8KB a pro paměť dat paměťové moduly s kapacitou 4Kx4b."

Děkuji za každý tip a nápovědu. :smile:

Reklama
Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7398
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Připojení vnějších pamětí

Příspěvekod faraon » 04 bře 2012 15:49

Vše co potřebuješ je třeba na tomhle schématu: http://www.pjrc.com/tech/8051/board3/dev3_sch.gif

Podle požadované velikosti připojených pamětí zapojíš potřebný počet adresových vodičů, a pokud ti nějaké adresní vstupy pamětí zůstanou nezapojené, vždy je připoj na nulu!!! Jinak budou chytat rušení jako antény a nestačíš se divit co to provádí za podivnosti :lol:
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)

kimi999
Level 4
Level 4
Příspěvky: 1103
Registrován: duben 11
Pohlaví: Muž
Stav:
Offline

Re: Připojení vnějších pamětí

Příspěvekod kimi999 » 04 bře 2012 16:24

To jsem si myslel že to nějak chápu, ale jak si mi poslal tohle schéma tak jsem pochopil jen to, že tomu vůbec nerozumím... :D :D
Každopádně díky, nějak to snad dám dohromady.

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7398
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Připojení vnějších pamětí

Příspěvekod faraon » 04 bře 2012 22:05

Tak hrozné to zase není, navíc to najdeš v každé knížce o 8051. Tady je podobné schéma dost zjednodušeně: http://www.maxim-ic.com/images/appnotes/89/550Fig01.gif

Horní byte adresy se vysílá z portu P2, dolní byte se vysílá po portu P0, a musíš ho uložit do latche, protože na tom samém portu se budou také vysílat nebo číst i data. Zápis do latche (obvod 74373 nebo podobný, myslím že to byl 74573 se stejnou funkcí ale jinak zapojenými vývody) obstarává signál ALE (Address Latch Enable). Probíhá to takhle:

1. ALE=0 - na porty se zapíše adresa v paměti.
2. ALE=1 - otevře se latch a ten načte spodní byte adresy.
3. ALE=0 - latch drží zadanou hodnotu a posílá jí druhou stranou na adresní vodiče paměti/pamětí.

Dál se může stát několik různých věcí. Pokud chceš číst instrukci programu z externí ROM, mikrokontrolér to provede stažením vývodu /PSEN (Program Store ENable) na nulu. Ten je připojený na řídící vstup paměti /OE (Output Enable), který povoluje výstup dat z ROMky. Takže:

4. /PSEN=1 - doteď se nedělo nic, v čipu paměti multiplexery vybraly správnou buňku kterou jsi adresoval.
5. /PSEN=0 - paměť posílá obsah buňky na datovou sběrnici a mikrokontrolér čte přicházející data.
6. /PSEN=1 - paměť se zavírá a sběrnice uvolňuje.

Pokud chceš použít výhradně programovou externí paměť už od adresy 0000H, musíš to mikrokontroléru oznámit připojením vývodu /EA na opačnou polaritu než je běžné, ale nepamatuji si jestli je to +5V nebo 0V. V opačném případě se používá vestavěná paměť a z externí se čte až při překročení velikosti té vnitřní.

Harwardská architektura má prostor pro program a data oddělené paměti, takže pro datovou paměť máme dva další signály, /RD a /WR. To lomítko (nebo čára nad ve schématech) naznačuje že jsou invertované, to znamená že stejně jako /PSEN něco provádějí když je na nich nula, a naopak nečinné jsou při jedničce.
Takže budeme číst z RAM:

4. /RD=1 - stejně jako u ROM.
5. /RD=0 - RAM posílá na datovou sběrnici obsah vybrané buňky a mikrokontrolér ho čte na P0.
6. /RD=1 - sběrnice se uvolňuje.

A teď si do RAM něco zapíšeme:

4. /WR=1 - mikrokontrolér posílá z P0 na datovou sběrnici nějaký byte zatímco paměť si nastavuje adresu buňky.
5. /WR=0 - pamět otevírá vstup a do zvolené buňky zapisuje data.
6. /WR=1 - sběrnice se uvolňuje, mikrokontrolér přestává vysílat data a chystá se načíst další instrukci.

Přesné časování najdeš v diagramech ve datasheetu výrobce, ale pro základní zapojení ti stačí vědět tohle.

Pro paměť programu máš čip 8KB, ze kterého využiješ jen první 2KB, takže budeš adresovat 11 vodiči (A0 až A10). Zbylé dva - A11 a A12 musíš zapojit na nulu, aby nechytaly falešné signály a neadresovaly náhodou jinou část paměti, než tu ve které je program.
Takže A0 až A7 zapojíš na vývod z latche, a A8 až A10 na P2.0 až P2.2.

Podobně to bude s pamětí dat, tam máš sice 4K, ale potřebuješ jen prvních půl kila, takže si vystačíš s devíti vodiči z dvanácti. Takže A0 až A7 z obou čtyřbitových pamětí zapojíš na latch stejně jako u té ROMky (jestli si dobře vzpomínám, tak by měl výkonově utáhnout čtyři vstupy, ty vystačíš se třemi), a A8 na P0.0.
A protože ty paměti jsou jen čtyřbitové, tak musíš pro osm bitů použít dva, a zapojit jeden třeba na vývody P2.0 až P2.3 a druhý na P2.4 až P2.7, ale na konkrétním přiřazení zrovna tady vůbec nesejde, protože co si kam zapíšeš to odtamtud zase přečteš, takže si ty dráty můžeš natahat úplně libovolně napřeskáčku, jak se ti hodí. To se dá velmi výhodně použít při návrhu tištěného spoje, kde se dá velmi zjednodušit!

Jestli si dobře vzpomínám, tak pro použití externích pamětí musíš ty dva porty nastavit programově na jedničky, ale přesně už to nevím, je to deset let co jsem si s tímhle hrál, takže se omlouvám za případné chyby či nepřesnosti. Na závěr zapojení vývodů 8051: http://www.computer-solutions.co.uk/inf ... P%2040.PNG
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)

kimi999
Level 4
Level 4
Příspěvky: 1103
Registrován: duben 11
Pohlaví: Muž
Stav:
Offline

Re: Připojení vnějších pamětí

Příspěvekod kimi999 » 04 bře 2012 22:12

Jj tak teď tomu začínám rozumět, díky moc že ses s tím takto rozepsal, snad dostanu jednou možnost ti to nějak vrátit. :smile:

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7398
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Připojení vnějších pamětí

Příspěvekod faraon » 04 bře 2012 22:22

Ještě jsem zapomněl zdůraznit že volné adresní vstupy těch pamětí A9 a A10 musíš samozřejmě také uzemnit, protože pro ně platí totéž co pro ROM. Obvody CMOS jsou prostě velmi citlivé, mimo jiné i na sahání holýma rukama :evil:

O jednom zajímavém zapojení 8051 si můžeš přečíst tady: http://www.bezstarosti.cz/jungle/schizo ... ofreny.htm
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)

kimi999
Level 4
Level 4
Příspěvky: 1103
Registrován: duben 11
Pohlaví: Muž
Stav:
Offline

Re: Připojení vnějších pamětí  Vyřešeno

Příspěvekod kimi999 » 04 bře 2012 22:29

Jelikož to má být pouze řešení na papíře tak na to sahat nebudu :-)


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Doplnění RAM paměti Příloha(y)
    od bugicek7lpCZ » 09 zář 2024 20:23 » v Rady s výběrem hw a sestavením PC
    25
    7707
    od bugicek7lpCZ Zobrazit poslední příspěvek
    07 říj 2024 19:04
  • Výběr desky a pamětí
    od MariTopHigh » 02 lis 2024 07:57 » v Rady s výběrem hw a sestavením PC
    5
    2549
    od MariTopHigh Zobrazit poslední příspěvek
    02 lis 2024 23:00
  • Deska a paměti pro 9900X
    od Hromotluk » 05 úno 2025 09:09 » v Rady s výběrem hw a sestavením PC
    8
    3402
    od Hromotluk Zobrazit poslední příspěvek
    09 úno 2025 20:22
  • Výběr internetové připojení
    od Fargotroniac » 04 čer 2025 13:11 » v Sítě - hardware
    19
    4243
    od Fargotroniac Zobrazit poslední příspěvek
    09 čer 2025 13:19
  • PC při připojení HDD nejde nabootovat Příloha(y)
    od warcraftan » 23 dub 2025 20:45 » v Problémy s hardwarem
    24
    5149
    od šulda Zobrazit poslední příspěvek
    24 dub 2025 17:54

Zpět na “Vše ostatní (hw)”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 4 hosti