Zewnętrzna pamięć operacyjna dla AVR [Bascom]

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
Jasam
Użytkownik
Posty: 422
Rejestracja: 27 mar 2007, 21:09

Zewnętrzna pamięć operacyjna dla AVR [Bascom]

Post autor: Jasam » 28 lip 2008, 19:27

Koledzy... Wynikła mi potrzeba podłączenia do Atmegi8 około 32 kilobajtów zewnętrznego Ramu. Jak to zrobić i obsługiwać z Bascoma? Nie widzę tu żadnych szczególnych materiałów na ten temat. Jakie układy pamięci podłączyć i jak, żeby ten RAM był tak samo szybki jak ten wbudowany RAM procesora? Jak wygląda obsługa z Bascoma? Będę wdzięczny za każdą pomoc.

K_o_n_r_a_d
Użytkownik
Posty: 123
Rejestracja: 29 lip 2005, 10:21
Lokalizacja: Lublin

Post autor: K_o_n_r_a_d » 28 lip 2008, 21:45

Do ATmegi8 nie podłączysz pamięci działającej tak szybko, bo atmega8 nie obsługuje sprzętowo pamięci dodatkowej. Nie da się i nie ma znaczenia czy w Bascomie czy w asemblerze. Oczywiście możesz podłączyć dowolną pamięć, szeregową, równoległą, jaką znajdziesz i programowo ją obsłużyć, ale to będzie znacznie wolniej i nie w taki sposób jak zwykłe zmienne.

Jasam
Użytkownik
Posty: 422
Rejestracja: 27 mar 2007, 21:09

Post autor: Jasam » 29 lip 2008, 7:41

A czy jest możliwość do któregoś z AVRów podłączyć zewnętrzny RAM? Jeśli tak do do jakiego i w jaki sposób?

Awatar użytkownika
radzio
Użytkownik
Posty: 573
Rejestracja: 07 gru 2004, 23:06
Lokalizacja: Sosnowiec
Kontakt:

Post autor: radzio » 29 lip 2008, 8:03

ATmega162, ATmega8515, ATmega128...
A jak podłączyć RAM to chyba w dokumentacji jest opisane.

Jasam
Użytkownik
Posty: 422
Rejestracja: 27 mar 2007, 21:09

Post autor: Jasam » 29 lip 2008, 8:09

Kurczę. Do żadnego mniejszego uP nie można w ten sposób podłączyć RAMu? Bo nie potrzebuję aż tak potężnego AVRa, a tylko dużo RAMu. Jeśli jednak nie ma innej możliwości to będę musiał wykorzystać chyba atmege8515. Jeśliby ktoś wiedział jeszcze coś to niech pisze...

K_o_n_r_a_d
Użytkownik
Posty: 123
Rejestracja: 29 lip 2005, 10:21
Lokalizacja: Lublin

Post autor: K_o_n_r_a_d » 29 lip 2008, 8:09

Tutaj jest wszystko:
http://atmel.com/dyn/resources/prod_doc ... oc2513.pdf
od strony 26. To i pomoc do Bascoma i zrobisz wszystko :)

Do czego konkretnie potrzebujesz tego? Może jest sens zrobić programowy dostęp do pamięci i wtedy już dowolnego mógłbyś użyć.
No ale przy tych cenach nie wiem czy się opłaci bawić.

Jasam
Użytkownik
Posty: 422
Rejestracja: 27 mar 2007, 21:09

Post autor: Jasam » 29 lip 2008, 8:12

Za datasheeta dziękuje. Sam też potrafię sciągnąć lub znaleść hah. Teraz pytam czy nie ma takiej mozliwośći w którymś z mniejszych procków.

[ Dodano: 2008-07-29, 09:13 ]
Programowo nie uda się raczej bo jest potrzebny bardzo szybki dostęp do tej pamięci. Równie szybki jak w wbudowanym RAMie.

Awatar użytkownika
radzio
Użytkownik
Posty: 573
Rejestracja: 07 gru 2004, 23:06
Lokalizacja: Sosnowiec
Kontakt:

Post autor: radzio » 29 lip 2008, 8:24

Jasam pisze:Programowo nie uda się raczej bo jest potrzebny bardzo szybki dostęp do tej pamięci. Równie szybki jak w wbudowanym RAMie.
No to się nie da. Zawsze będzie wolniejszy.

Jasam
Użytkownik
Posty: 422
Rejestracja: 27 mar 2007, 21:09

Post autor: Jasam » 29 lip 2008, 8:27

Więc będę musiał pokombinować jakoś inaczej. W każdym razie dzięki za zainteresowanie.

Awatar użytkownika
radzio
Użytkownik
Posty: 573
Rejestracja: 07 gru 2004, 23:06
Lokalizacja: Sosnowiec
Kontakt:

Post autor: radzio » 29 lip 2008, 8:30

No to może napisz co chcesz osiągnąć. Może jakieś rozwiązanie wspólnie znajdziemy. Szybki ma być zapis,odczyt czy obydwie czynności?

Jasam
Użytkownik
Posty: 422
Rejestracja: 27 mar 2007, 21:09

Post autor: Jasam » 29 lip 2008, 10:02

Zapis i odczyt powinien być jak najszybszy. I potrzebuję conajmniej 32 kilobajty takiej pamięci.

Awatar użytkownika
GrzesiekG
Użytkownik
Posty: 160
Rejestracja: 11 sie 2006, 8:06
Lokalizacja: Annopol
Kontakt:

Post autor: GrzesiekG » 29 lip 2008, 19:19

Witam!
Główny problem to cykle maszynowe, jakie musi wykonać uP aby dostać się do pamięci (wystawienie "starszej" połowy adresu do jednego rejestru, zatrzaśnięcie w latch młodszego adresu i dopiero odczyt z pamięci). Wbudowany (wewnętrzny ram) rządzi się innymi prawami, bo jest dosłownie scalony z jednostką sterującą. AVRki są w technologii RISC i wykonują instrukcje podczas jednego taktu zegara ("0" i "1"). Jeśli chcesz przy użyciu Megi8 wysterować 23 linie (8 na dane i 15 na adresy) to na pewno musisz użyć chociaż jednego/dwóch zatrzasków. Nie wiem jak jest w Bascomie, bo od dawna nie piszę (tak szczerze to prawie nigdy nie pisałem :razz: ), ale w ASM jest łatwo (napewno szybciej niż w Bascomie, bo ten, mój drogi kolego operuje na wewn. RAM i w dodatku robi to niezdarnie, a w asm to TY decydujesz co i jak zrobić).
Jak widzisz, temat jak morze, więc proszę wyjaśnij nam szerzej w czym problem (czyt. do czego Ci potrzebne 32kB), a na forum EdW zawsze otrzymasz odpowiedz (no prawie zawsze :mrgreen: )
PZDR

Awatar użytkownika
gwozdex
Użytkownik
Posty: 879
Rejestracja: 24 lut 2006, 10:04
Lokalizacja: Czechowice-Dziedzice
Kontakt:

Post autor: gwozdex » 31 lip 2008, 2:08

Witam! Mam pełną wersję BASCOMA (1.11.9.1) i w helpie natrafiłem na informację ze są produkowane układy mogace pracować jako zewnętrzny RAM. Nie jestem teraz do końca pewen ale są to bardzo szybkie układy- w każdym razie na pewno jest podany producent tych układów więc jak tylko wrócę do domu to sprawdzę i poinformuję kolegów jak to wygląda.
Jeśli chodzi o obslugę to chyba tylko określasz miejsce umieszczenia zmikennej w pamięci zewnętrznej, a reszta odbywa się "normalnie":

Kod: Zaznacz cały

dim nazwa_zmiennej as XRAM

K_o_n_r_a_d
Użytkownik
Posty: 123
Rejestracja: 29 lip 2005, 10:21
Lokalizacja: Lublin

Post autor: K_o_n_r_a_d » 31 lip 2008, 6:48

Właśnie o tym pisaliśmy jako o zewnętrznej pamięci obsługiwanej sprzętowo. Ale nie każdy AVR potrafi obsługiwać taką pamięć sprzętowo (programowo każdy) :)

Jasam
Użytkownik
Posty: 422
Rejestracja: 27 mar 2007, 21:09

Post autor: Jasam » 31 lip 2008, 7:24

Mile widziane każde sprawdzone informacje.

ODPOWIEDZ