Rozszerzanie pamięci dla 8051



Masz problem? Zapytaj na forum elektroda.pl

Poprzedni Następny
Wiadomość
Spis treści
From: "Funak" <funak_at_nospam_wp.pl>
Subject: Rozszerzanie pamięci dla 8051
Date: Sat, 24 Aug 2002 22:14:50 +0200


Witam!!!

Proste pytanie(nie dla mnie).

Mam procesor AT89C51.
Dołączam do niego pamięć RAM tak aby przestrzeń adresowa ROM-u
i RAM-u była łączna.(Przypuśćmy że ten mój CACHE 64kB)

I teraz:

Jeśli korzystam z wewn. pamięci programu, to zewnętrzna pamięć programu,
jest kontynuowana od adresu 0000h(w RAM), czy 1000h?

Jeżeli od 1000h to do tej niższej części mogę odwoływać się poprzez
dostęp tak jak do pamięci RAM, tak?
Ale nie ma napewno możliwości że w jakiś sposób instrukcje będą się
wykonywały z obszaru RAM 0000h..0FFFh?
Oprócz /EA oczywiście.

Jak z tą zewnętrzną pamięcią jest?
Interesuje mnie tylko połączenie RAM-u i użycie jako pamięci programu.

Ja rozumiem to tak:

Wewnętrzna pamięć programu jeśli mam włączoną to wykonuje instrukcje od
0000h..0FFFh, a resztę z mojego RAM-u od 1000h..FFFFh.
Tak, dobrze myśle?

Pozdrawiam

--
Funak
www: http://strony.wp.pl/wp/funak/index.htm - SWAG32 zawieszony do 5
września
GG-2949256





Poprzedni Następny
Wiadomość
Spis treści
From: "Jacek Bogusz" <jacek.bogusz_at_nospam_wp.pl>
Subject: Re: Rozszerzanie pamięci dla 8051
Date: Sat, 24 Aug 2002 22:47:56 +0200


Mam procesor AT89C51.
Dołączam do niego pamięć RAM tak aby przestrzeń adresowa ROM-u
i RAM-u była łączna.(Przypuśćmy że ten mój CACHE 64kB)

To nie jest możliwe w normalnej sytuacji - ROM i RAM mają bez "łączności" po
64kB jednak są to przestrzenie adresowe dostępne zupełnie innymi
instrukcjami.

Jeśli korzystam z wewn. pamięci programu, to zewnętrzna pamięć programu,
jest kontynuowana od adresu 0000h(w RAM), czy 1000h?

Nie, możesz ją całkowicie wyłączyć i korzystać tylko albo z zewnętrznej,
albo z wewnętrznej pamieci ROM. Rodzaj obsługiwanej pamięci ustala poziom
logiczny na wyprowadzeniu EA/VPP.

Jeżeli od 1000h to do tej niższej części mogę odwoływać się poprzez
dostęp tak jak do pamięci RAM, tak?

Nie mozesz, RAM i ROM są oddzielne chyba, że wymyślisz jakąś "sztuczkę".

Jak z tą zewnętrzną pamięcią jest?
Interesuje mnie tylko połączenie RAM-u i użycie jako pamięci programu.
Ja rozumiem to tak:
Wewnętrzna pamięć programu jeśli mam włączoną to wykonuje instrukcje od
0000h..0FFFh, a resztę z mojego RAM-u od 1000h..FFFFh.
Tak, dobrze myśle?

Nie. Wewnętrzna pamięć od 0... do iluś tam, zewnętrzna po "załączeniu"
również od 0 do 0xFFFF (?).

Jeśli chcesz stosować rozwiązanie z RAM jako pamięcią programu dobrze jest
mieć wszystko "na zewnątrz" i na przykład przełączać tylko tzw. banki
pamięci. Oczywiście RAM może funkcjonować jako ROM. Nie da się jednak
wykonywać programu zawartego w RAMie podłączonym w normalny sposób - musi on
być podłączony tak, jak ROM. Jest z tym trochę zabawy i trochę kombinowania
aby podłączyć RAM jak ROM, zapisać w nim program i wykonać. Życzę
powodzenia!

Jacek



Poprzedni Następny
Wiadomość
Spis treści
From: "Marek Dzwonnik" <mdz_at_nospam_message.pl>
Subject: Re: Rozszerzanie pamięci dla 8051
Date: Sun, 25 Aug 2002 00:06:03 +0200


Użytkownik "Jacek Bogusz" <jacek.bogusz_at_nospam_wp.pl> napisał w wiadomości
news:ak8rb6$uf8$1_at_nospam_absinth.dialog.net.pl...

Jeśli korzystam z wewn. pamięci programu, to zewnętrzna pamięć programu,
jest kontynuowana od adresu 0000h(w RAM), czy 1000h?

Nie, możesz ją całkowicie wyłączyć i korzystać tylko albo z zewnętrznej,
albo z wewnętrznej pamieci ROM. Rodzaj obsługiwanej pamięci ustala poziom
logiczny na wyprowadzeniu EA/VPP.

Nie.

Wg. "Mikrokomputery jednoukładowe rodziny MCS-51", A. Rydzewski, str.92:
<CYTAT>
"Odczytywanie z zewnętrznej pamięci programu jest wykonywane przez procesor
przy pobieraniu z pamięci programu kodu rozkazu , argumentu bezpośredniego
lub danej, spod adresu większego lub równego 4096 (1000H) w układach 8051 i
8751, oraz 8192(2000H) w 8052, oraz przy każdym pobraniu z pamięci programu
we wszystkich układach rodziny MSC-51 gdy na wejściu EA\ jest stan niski
TTL."
</CYTAT>


Wg. "Mikrokontrolery jednoukładowe rodziny 51" , T.Starecki, str.16:
<CYTAT>
"wyprowadzenie EA\ [ustawione] w stan wysoki. (...) Jeśli pojemność
wewnętrznej pamięci programu jest niewystarczająca, część programu moze być
umieszczona w dodatkowej pamięci zewnętrznej. Wówczas dopóki wartość
licznika rozkazów nie przekracza rozmiaru pamięci wewnętrznej pamięci
programu, rozkazy są pobierane z pamięci wewnętrznej. Przekroczenie przez
licznik rozkazów rozmiaru wewnętrznej pamięci programu powoduje pobieranie
rozkazów z zewnętrznej pamięci programu. Jeśli mikrokontroler (z wewn.
pamięcią programu lub bez niej) ma korzystać wyłącznie z zewn. pamięci
programu, wyprowadzenie EA\ musi być ustawione w stan niski."
</CYTAT>

MDz




Poprzedni Następny
Wiadomość
Spis treści
From: "Jacek Bogusz" <jacek.bogusz_at_nospam_wp.pl>
Subject: Re: Rozszerzanie pamięci dla 8051
Date: Sun, 25 Aug 2002 00:36:22 +0200



Użytkownik "Marek Dzwonnik" <mdz_at_nospam_message.pl> napisał w wiadomości
news:3d6802d0$1_at_nospam_news.home.net.pl...
Użytkownik "Jacek Bogusz" <jacek.bogusz_at_nospam_wp.pl> napisał w wiadomości
news:ak8rb6$uf8$1_at_nospam_absinth.dialog.net.pl...

Jeśli korzystam z wewn. pamięci programu, to zewnętrzna pamięć
programu,
jest kontynuowana od adresu 0000h(w RAM), czy 1000h?

Nie, możesz ją całkowicie wyłączyć i korzystać tylko albo z zewnętrznej,
albo z wewnętrznej pamieci ROM. Rodzaj obsługiwanej pamięci ustala
poziom
logiczny na wyprowadzeniu EA/VPP.

Nie.

A to jest cytat z "AT89S/LS8252. 8-bit Microcontroler with 8K Flash" (od
f-my ATMEL).

"EA/VPP. External Access Enable. EA must be strapped to GND in order to
enable the device to fetch code from external program memory locations
starting at 0000H up to FFFFH. Note, however, that if lock bit 1 is
programmed, EA will be internally latched on reset. EA should be strapped to
Vcc for internal program executions."

Coś to się kłóci z twoim cytatami, nieprawdaż? Może Atmel jednak robi to
troszkę inaczej?

Jacek



Poprzedni Następny
Wiadomość
Spis treści
From: "Andy" <anok_at_nospam_ceti.pl>
Subject: Re: Rozszerzanie pamięci dla 8051
Date: Sun, 25 Aug 2002 01:56:37 +0200


"Jacek Bogusz" <jacek.bogusz_at_nospam_wp.pl> wrote in message
news:ak91mc$3f2$1_at_nospam_absinth.dialog.net.pl...
...
A to jest cytat z "AT89S/LS8252. 8-bit Microcontroler with 8K Flash" (od
f-my ATMEL).

"EA/VPP. External Access Enable. EA must be strapped to GND in order to
enable the device to fetch code from external program memory locations
starting at 0000H up to FFFFH. Note, however, that if lock bit 1 is
programmed, EA will be internally latched on reset. EA should be strapped to
Vcc for internal program executions."

Coś to się kłóci z twoim cytatami, nieprawdaż? Może Atmel jednak robi to
troszkę inaczej?
.

zeby rozwiac wszelkie watpliwosci
robilem praktyczny uklad dokladnie na 89s8252
w wewnetrzym romie mam swoj bootloader
a w przestrzeni zewnetrznego romu mam flasha 29f010

procek chodzi z wenetrzenym romem ale jak wyskoczy poza
0x1FFF (8KB)
to wykonuje sie program z zewnetrznego flasha


Andrzej



Poprzedni Następny
Wiadomość
Spis treści
From: "Jacek Bogusz" <jacek.bogusz_at_nospam_wp.pl>
Subject: Re: Rozszerzanie pamięci dla 8051
Date: Sun, 25 Aug 2002 11:34:25 +0200


zeby rozwiac wszelkie watpliwosci
robilem praktyczny uklad dokladnie na 89s8252
w wewnetrzym romie mam swoj bootloader
a w przestrzeni zewnetrznego romu mam flasha 29f010
procek chodzi z wenetrzenym romem ale jak wyskoczy poza
0x1FFF (8KB)
to wykonuje sie program z zewnetrznego flasha
Andrzej

To jest bardzo ciekawa informacja :). Zawsze ograniczałem się do tych 8kB,
nie wiedziałem, że rozszerzenie jest aż takie proste! :)

Jacek



Poprzedni Następny
Wiadomość
Spis treści
From: "Marek Dzwonnik" <mdz_at_nospam_message.pl>
Subject: Re: Rozszerzanie pamięci dla 8051
Date: Sun, 25 Aug 2002 02:24:22 +0200


Użytkownik "Jacek Bogusz" <jacek.bogusz_at_nospam_wp.pl> napisał w wiadomości
news:ak91mc$3f2$1_at_nospam_absinth.dialog.net.pl...

A to jest cytat z "AT89S/LS8252. 8-bit Microcontroler with 8K Flash" (od
f-my ATMEL).

"EA/VPP. External Access Enable. EA must be strapped to GND in order to
enable the device to fetch code from external program memory locations
starting at 0000H up to FFFFH. Note, however, that if lock bit 1 is
programmed, EA will be internally latched on reset. EA should be strapped
to
Vcc for internal program executions."

Coś to się kłóci z twoim cytatami, nieprawdaż? Może Atmel jednak robi to
troszkę inaczej?

Wiem. Też się temu przyglądałem. Ale z treści karty katalogowej zrozumiałem,
że:

adresu 0000h aż do FFFFh (Czyli, jeżeli się nie poda EA\=0 to nie jest
dostępna pamięć zewn. od adresu 0000h)

Skąd (przy EA\=1) zostanie pobrany rozkaz o adresie 2000h? Czy stan PC
ulegnie zawinięciu mod 2000h ? Czy nastąpi pobranie z pamięci zewn? A może
pobranie rozkazu znikąd? IMHO nie zostało to jednoznacznie sprecyzowane.
Poza tym PDF zaczyna się od stwierdzenia: "Compatible with MCS-51T
Products", a coś takiego byłoby poważnym odstępstwem, jak sądzę jawnie
udokumentowanym. Bez rozpoznania walką chyba się nie obejdzie ;-)

MDz



Poprzedni Następny
Wiadomość
Spis treści
From: "Jacek Bogusz" <jacek.bogusz_at_nospam_wp.pl>
Subject: Re: Rozszerzanie pamięci dla 8051
Date: Sun, 25 Aug 2002 11:35:36 +0200


Post od Andy chyba rozwiewa moje wątpliowści. A swoją drogą ta
dokumentacja....

Jacek


Użytkownik "Marek Dzwonnik" <mdz_at_nospam_message.pl> napisał w wiadomości
news:3d68233a$1_at_nospam_news.home.net.pl...
Użytkownik "Jacek Bogusz" <jacek.bogusz_at_nospam_wp.pl> napisał w wiadomości
news:ak91mc$3f2$1_at_nospam_absinth.dialog.net.pl...

A to jest cytat z "AT89S/LS8252. 8-bit Microcontroler with 8K Flash" (od
f-my ATMEL).

"EA/VPP. External Access Enable. EA must be strapped to GND in order to
enable the device to fetch code from external program memory locations
starting at 0000H up to FFFFH. Note, however, that if lock bit 1 is
programmed, EA will be internally latched on reset. EA should be
strapped
to
Vcc for internal program executions."

Coś to się kłóci z twoim cytatami, nieprawdaż? Może Atmel jednak robi to
troszkę inaczej?

Wiem. Też się temu przyglądałem. Ale z treści karty katalogowej
zrozumiałem,
że:

* EA\=0 umożliwia pobieranie rozkazów z pamięci zewn. poczynając od
adresu 0000h aż do FFFFh (Czyli, jeżeli się nie poda EA\=0 to nie jest
dostępna pamięć zewn. od adresu 0000h)
* Trzeba ustawić EA\=1 jeżeli chce się wykonać kod z wewn. flash-a

Skąd (przy EA\=1) zostanie pobrany rozkaz o adresie 2000h? Czy stan PC
ulegnie zawinięciu mod 2000h ? Czy nastąpi pobranie z pamięci zewn? A może
pobranie rozkazu znikąd? IMHO nie zostało to jednoznacznie sprecyzowane.
Poza tym PDF zaczyna się od stwierdzenia: "Compatible with MCS-51T
Products", a coś takiego byłoby poważnym odstępstwem, jak sądzę jawnie
udokumentowanym. Bez rozpoznania walką chyba się nie obejdzie ;-)

MDz





Poprzedni Następny
Wiadomość
Spis treści
From: "Johnny" <jdolin_at_nospam_optimus.waw.pl>
Subject: =?iso-8859-2?Q?Re:_Rozszerzanie_pami=EAci_dla_8051?=
Date: Sun, 25 Aug 2002 23:10:15 +0200


"Jacek Bogusz" <jacek.bogusz_at_nospam_wp.pl> wrote in message
news:ak8rb6$uf8$1_at_nospam_absinth.dialog.net.pl...
Mam procesor AT89C51.
Dołączam do niego pamięć RAM tak aby przestrzeń adresowa ROM-u
i RAM-u była łączna.(Przypuśćmy że ten mój CACHE 64kB)

To nie jest możliwe w normalnej sytuacji - ROM i RAM mają bez "łączności"
po
64kB jednak są to przestrzenie adresowe dostępne zupełnie innymi
instrukcjami.

No wlasnie, albo rybka, albo akwarium. '51-ka to przedstawiciel rodziny
harwardzkiej, a w niej zalozono rozdzielenie przestrzeni adresowej danych i
programu. Procesor wprawdzie nie wykonuje programu na danych :-)), ale jak
widac czasami pojawiaja sie inne problemy.

Jeśli korzystam z wewn. pamięci programu, to zewnętrzna pamięć programu,
jest kontynuowana od adresu 0000h(w RAM), czy 1000h?

Nie, możesz ją całkowicie wyłączyć i korzystać tylko albo z zewnętrznej,
albo z wewnętrznej pamieci ROM. Rodzaj obsługiwanej pamięci ustala poziom
logiczny na wyprowadzeniu EA/VPP.

Nie, nie. Jesli przekroczysz adres 07FFh, to 1000h jest automatycznie brany
z pamieci zewnetrznej. Ale taki na przyklad ADuC812 ma tu buga (moze go juz
usunieto).

Jeżeli od 1000h to do tej niższej części mogę odwoływać się poprzez
dostęp tak jak do pamięci RAM, tak?

Nie mozesz, RAM i ROM są oddzielne chyba, że wymyślisz jakąś "sztuczkę".

CS na 0, WE na 1, OE na PSEN. Tylko jak wpisac dane do takiego RAMu? :-))
Faktycznie trzeba pokombinowac. Najprosciej chyba zanegowanego PSENa na
bramke OR na jedno wejscie, na drugie proste WR (bezposrednio z procesora).
Wyjscie bramki na WE RAMu. Pozostale wejscia RAMu: CS na 0, OE na PSEN.
Chyba zebym sie gdzies pomylil. Ale uwaga. Taki RAM od tej chwili dziala
tylko jako pamiec programu (ROM zewnetrzny) z mozliwoscia zapisu np.
instrukcja MOVX. Jesli bys chcial nie daj boze jeszcze czytac go jak
normalny RAM, wtedy musisz jeszcze cos zakombinowac z RD, ale czy zapanujesz
nad tym? :-))


Jak z tą zewnętrzną pamięcią jest?
Interesuje mnie tylko połączenie RAM-u i użycie jako pamięci programu.

Wiec nie musisz kombinowac z RD.
Pozdrawiam
JD


Poprzedni Następny
Wiadomość
Spis treści
From: "Funak" <funak_at_nospam_wp.pl>
Subject: Re: Rozszerzanie pamięci dla 8051
Date: Mon, 26 Aug 2002 04:50:43 +0200


Witam!!!

| > > Jeżeli od 1000h to do tej niższej części mogę odwoływać się poprzez
| > > dostęp tak jak do pamięci RAM, tak?
| >
| > Nie mozesz, RAM i ROM są oddzielne chyba, że wymyślisz jakąś "sztuczkę".
|
| CS na 0, WE na 1, OE na PSEN. Tylko jak wpisac dane do takiego RAMu? :-))
| Faktycznie trzeba pokombinowac. Najprosciej chyba zanegowanego PSENa na
| bramke OR na jedno wejscie, na drugie proste WR (bezposrednio z
procesora).
| Wyjscie bramki na WE RAMu. Pozostale wejscia RAMu: CS na 0, OE na PSEN.
| Chyba zebym sie gdzies pomylil. Ale uwaga. Taki RAM od tej chwili dziala
| tylko jako pamiec programu (ROM zewnetrzny) z mozliwoscia zapisu np.
| instrukcja MOVX. Jesli bys chcial nie daj boze jeszcze czytac go jak
| normalny RAM, wtedy musisz jeszcze cos zakombinowac z RD, ale czy
zapanujesz
| nad tym? :-))
|
|
| > > Jak z tą zewnętrzną pamięcią jest?
| > > Interesuje mnie tylko połączenie RAM-u i użycie jako pamięci programu.
|
| Wiec nie musisz kombinowac z RD.

Podziwiam odpowiedzi. W książce Mikrokomputery jednoukładowe rodziny MSC-51
Andrzej Rydzewski jest to dobrze opisane, jak za pomocą AND-a można zrobić
tak z RAM-em.
Tylko okazało sie, że brak u mnie tych stron i przez to się pytam.
A że to jest, to sprawdziłem po spisie treści, a tam:
3.1.3. Wspólna zewnętrzna pamięć programu i danych. str 96.

POzdrawiam

--
Funak
www: http://strony.wp.pl/wp/funak/index.htm - SWAG32 zawieszony do 5
września
GG-2949256



Poprzedni Następny
Wiadomość
Spis treści
From: zielpro_at_nospam_cavern.pl (ziel)
Subject: =?iso-8859-2?Q?RE:_Rozszerzanie_pami=EAci_dla_8051?=
Date: 26 Aug 2002 20:24:38 +0200


Podziwiam odpowiedzi. W książce Mikrokomputery
jednoukładowe rodziny MSC-51
Andrzej Rydzewski jest to dobrze opisane, jak za
pomocą AND-a można zrobić
tak z RAM-em.
Tylko okazało sie, że brak u mnie tych stron i
przez to się pytam.
A że to jest, to sprawdziłem po spisie treści, a tam:
3.1.3. Wspólna zewnętrzna pamięć programu i
danych. str 96.
Bo to są dwa oddzielne zagadnienia.
Jedno - co robi procesor kiedy skończy mu się wbudowana
pamięć programu a nie było
rozkazu skoku w pętli ;-)
Drugie - jak podłączyć zewnętrzną pamięć programu i pamięć
danych.
Zaletą '51 w stosunku do motki jest możliwość posiadania
jednocześnie
64kB programu i drugie 64kB danych, w motkach wszystko
zawierało się w
jednym obszarze 64kB. Piszę w czasie przeszłym bo już dano
nie zaglądałem
do 68XX oraz 65XX a pewnie nie stali w miejscu i coś
wymyślili.
pzdr
Artur
PS
A chcesz podłączyć sobie zewnętrzną pamięć danych i zew.
pam. programu?

--
Archiwum grupy: http://niusy.onet.pl/pl.misc.elektronika


Poprzedni Następny
Wiadomość
Spis treści
From: "Funak" <funak_at_nospam_wp.pl>
Subject: Re: Rozszerzanie pamięci dla 8051
Date: Tue, 27 Aug 2002 00:04:19 +0200


Witam!!!

|A chcesz podłączyć sobie zewnętrzną pamięć danych i zew.
| pam. programu?

Moje zadanie jest proste. Po to chcę użyć jednej pamięci RAM, abym mógł, za
pomocą
programu zapisanego w Flash-ROM AT89C51 odebrać z portu szeregowego, wybrany
soft, załadować do pamięci i wywołać jako dużą procedurę.
Potrzebuję tego do szybkiej obsługi przyszłego uniwersalnego
testera-programatora układów logicznych, tj: uC, EEPROM I2C, EEPROM
Microwire, Flash-EPROM itd. TAkie różne,
np. testowanie układu scalonego, podłączanie różnych sterowników itp.
Coś , co będzie wszystko w jednym i dla poprawienia wydajności dla każdego
układu
ładowany soft.

Wiadomo, mógłbym zrobić to inaczej, jakieś sterowniki pamieci RAM itd.
Po co sobie komplikować życie, jak można skorzystać z gotowych rozwiązań.
A wewnętrzną pamięć ROM wykorzystać jako bootloader + funkcje pomocnicze,
coś w
rodzaju mikro systemu operacyjnego.

POzdrawiam

--
Funak
www: http://strony.wp.pl/wp/funak/index.htm - SWAG32 zawieszony do 5
września
GG-2949256



Poprzedni Następny
Wiadomość
Spis treści
From: zielpro_at_nospam_cavern.pl (ziel)
Subject: =?iso-8859-2?Q?RE:_Rozszerzanie_pami=EAci_dla_8051?=
Date: 27 Aug 2002 16:11:44 +0200


Moje zadanie jest proste. Po to chcę użyć jednej
pamięci RAM, abym mógł, za
pomocą
programu zapisanego w Flash-ROM AT89C51 odebrać z
portu szeregowego, wybrany
soft, załadować do pamięci i wywołać jako dużą procedurę.
Potrzebuję tego do szybkiej obsługi przyszłego
uniwersalnego
testera-programatora układów logicznych, tj: uC,
EEPROM I2C, EEPROM
Microwire, Flash-EPROM itd. TAkie różne,
np. testowanie układu scalonego, podłączanie
różnych sterowników itp.
Coś , co będzie wszystko w jednym i dla
poprawienia wydajności dla każdego
układu
ładowany soft.
To może najprościej będzie wczytany program zapisać do RAM
i po weryfikacji jakimś małym hebelkiem podłączyć RAM jako
pamięć programu i nacisnąć przycisk RESET?
Mało eleganckie rozwiązanie, ale proste.
Lepszym rozwiązaniem w/g mnie byłoby zrobić to
na ATmega128 - duża pamięć programu pozwalającą na
zapamiętanie konfiguracji
wielu różnych scalaków prosty system ISP pozwalający na
załadowanie
programu z innym zestawem definicji u.s. 4kB RAM do
przechowywania
tablic wyników badania, dużo wyprowadzeń pozwalających nawet
na badanie
układów w obudowach 40 pin.
Wiesz co? Zapomnij o swoim układzie, ten na ATmega128 jest
fajniejszy,
a do tego można mu dołożyć duży wyświetlacz graficzny, żeby
on-line
obserwować przebiegi, odpowiedzi itp.
;-)
pzdr
Artur

--
Archiwum grupy: http://niusy.onet.pl/pl.misc.elektronika


Poprzedni Następny
Wiadomość
Spis treści
From: "Funak" <funak_at_nospam_wp.pl>
Subject: Re: Rozszerzanie pamięci dla 8051
Date: Tue, 27 Aug 2002 23:38:03 +0200


Witam!!!

| To może najprościej będzie wczytany program zapisać do RAM
| i po weryfikacji jakimś małym hebelkiem podłączyć RAM jako
| pamięć programu i nacisnąć przycisk RESET?
| Mało eleganckie rozwiązanie, ale proste.
| Lepszym rozwiązaniem w/g mnie byłoby zrobić to
| na ATmega128 - duża pamięć programu pozwalającą na
| zapamiętanie konfiguracji
| wielu różnych scalaków prosty system ISP pozwalający na
| załadowanie
| programu z innym zestawem definicji u.s. 4kB RAM do
| przechowywania
| tablic wyników badania, dużo wyprowadzeń pozwalających nawet
| na badanie
| układów w obudowach 40 pin.
| Wiesz co? Zapomnij o swoim układzie, ten na ATmega128 jest
| fajniejszy,
| a do tego można mu dołożyć duży wyświetlacz graficzny, żeby
| on-line
| obserwować przebiegi, odpowiedzi itp.

Wiesz co?
To może i dobry pomysł!!!
Ale, jak zawsze są ale.

częstotliwości transferu danych.
buforujące. Bezpiecznie i tanio w razie zwarć w testowanym układzie.

Chodzi mi po głowie AT89S8252-24PI. Jest to chyba z rdzeniem '51 ?
I ma ISP. Tylko że 8kB Flash-ROM i 2kB EEPROM.( i DIP40)
Może to będzie? Zobaczę.

Pozdrawiam

--
Funak
www: http://strony.wp.pl/wp/funak/index.htm - SWAG32 zawieszony do 5
września
GG-2949256




Poprzedni Następny
Wiadomość
Spis treści
From: zielpro_at_nospam_cavern.pl (ziel)
Subject: =?iso-8859-2?Q?RE:_Rozszerzanie_pami=EAci_dla_8051?=
Date: 28 Aug 2002 22:42:42 +0200


Chodzi mi po głowie AT89S8252-24PI. Jest to chyba
z rdzeniem '51 ?
I ma ISP. Tylko że 8kB Flash-ROM i 2kB EEPROM.( i DIP40)
Może to będzie? Zobaczę.
I słusznie Ci chodzi. ;-)
Jak raz zaprogramujesz sobie procka w układzie, to później
na inne bez ISP nawet nie spojrzysz. ;-)

Ewentualnie możesz użyć jakiegoś AVR, jest AVRStudio do
pisania w asm
razem z symulatorem, jest C w GCC lub dość tanim CodeVision,
albo...
Bascom, też tani tylko z powodów niezrozumiałych dość mocno
tępiony
przez asemblerowców i piszących w C.
pzdr
Artur
PS
Gdybyś się zdecydował na ATmega, a masz problemy z jego
obudową
to pisz na prv.

--
Archiwum grupy: http://niusy.onet.pl/pl.misc.elektronika


Poprzedni Następny
Wiadomość
Spis treści
From: "Marek Dzwonnik" <mdz_at_nospam_message.pl>
Subject: Re: Rozszerzanie pamięci dla 8051
Date: Sat, 24 Aug 2002 23:09:22 +0200


Użytkownik "Funak" <funak_at_nospam_wp.pl> napisał w wiadomości
news:ak8qrb$jhv$3_at_nospam_news.tpi.pl...
Witam!!!

Proste pytanie(nie dla mnie).

Mam procesor AT89C51.
Dołączam do niego pamięć RAM tak aby przestrzeń adresowa ROM-u
i RAM-u była łączna.(Przypuśćmy że ten mój CACHE 64kB)

A ściślej łączysz przestrzeń pamięci programu (CODE) i zewn. pamięci danych
(XDATA). Nie mieszaj tych pojęć z fizycznymi typami pamięci. Program wcale
nie musi siedzieć w ROMie (tak jak u ciebie), natomiast w obszarze XDATA
można również podłączyć kawałek EPROMu np. z tablicami stałych dostępnych
przez MOVX. Tyle, że oczywiście nic się do tego fragmentu pamięci danych nie
da zapisać.

Czyli jak rozumiem sterujesz RAM sygnałami
RAMRD\ = RD\ * PSEN\
oraz
RAMWR\ = WR\
dzięki czemu ten sam kawałek RAMu jest widoczny zarówno w obszarze CODE
(przez PSEN\) jak i XDATA (przez RD\ lub WR\)

Jeśli korzystam z wewn. pamięci programu, to zewnętrzna pamięć programu,
jest kontynuowana od adresu 0000h(w RAM), czy 1000h?

ZTCP: Podanie EA\=1 powoduje że wewn. flash nakrywa zewn. pamięć
programu. Odwołania powyżej obszaru zajętego przez flash są zawsze kierowane
do pamięci zewnętrznej. Czyli:
EA\=1 -> 0000...0FFF - wewn flash, 1000...FFFF - pamięć zewn. aktywowana
przez PSEN\
EA\=0 -> 0000...FFFF - pamięć zewn. aktywowana przez PSEN\

O ile oczywiście podłączyłeś zewn. pamięć bezpośrednio do linii adresowych a
nie przez jakiś układ zarządzający pamięcią zdolny do zrobienia
przeadresowania :-)

Jeżeli od 1000h to do tej niższej części mogę odwoływać się poprzez
dostęp tak jak do pamięci RAM, tak?
Tak. Z punktu widzenia procesora dostęp do obszaru CODE (przez PSEN\) i
obszaru XDATA (przez RD\ i WR\) służy do czego innego i jest realizowany w
inny sposób.
Sygnał PSEN\ jest aktywny podczas pobrania kodu rozkazu oraz bajtu danych
z obszaru CODE za pomocą MOVC
Sygnały RD\ lub WR\ są aktywowane podczas odczytu/zapisu danych z/do
obszaru XDATA za pomocą rozkazu MOVX

Ale nie ma napewno możliwości że w jakiś sposób instrukcje będą się
wykonywały z obszaru RAM 0000h..0FFFh?
Oprócz /EA oczywiście.

Nie ma. Przy EA\ = 0 ten obszar jest zasłonięty przez wewn. flash a tym
samym niedostępny dla operacji pobrania kodu rozkazu.

Ja rozumiem to tak:
Wewnętrzna pamięć programu jeśli mam włączoną to wykonuje instrukcje od
0000h..0FFFh, a resztę z mojego RAM-u od 1000h..FFFFh.
Tak, dobrze myśle?

Tak. Zgadza się

--
Marek Dzwonnik mdz_at_nospam_message.pl
GG: #2061027 (zwykle jako 'dostępny-niewidoczny')




Poprzedni Następny
Wiadomość
Spis treści
From: "Funak" <funak_at_nospam_wp.pl>
Subject: Re: Rozszerzanie pamięci dla 8051
Date: Sun, 25 Aug 2002 16:58:47 +0200


Witam!!!

| > Wewnętrzna pamięć programu jeśli mam włączoną to wykonuje instrukcje od
| > 0000h..0FFFh, a resztę z mojego RAM-u od 1000h..FFFFh.
| > Tak, dobrze myśle?
|
| Tak. Zgadza się

Dzięki wam wszystkim!!!

Pozdrawiam

--
Funak
www: http://strony.wp.pl/wp/funak/index.htm - SWAG32 zawieszony do 5
września
GG-2949256