Pamięć 62256 nie działa z ATMEGA162

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
Awatar użytkownika
Tranzystor
Użytkownik
Posty: 889
Rejestracja: 28 sie 2005, 19:19
Lokalizacja: Świętochłowice
Kontakt:

Pamięć 62256 nie działa z ATMEGA162

Post autor: Tranzystor » 31 mar 2007, 8:26

Witam,
podłączyłem dodatkową pamięć RAM 32kB do mikroprocesora ATMEGA162. Wszystko działa, ale chciałem się przekonać czy mikroprocesor faktycznie korzysta z pamięci zewnętrznej, chcąc to sprawdzić wyciągnołem pamięć. Okazało się, że urządzenie dalej działa tak samo. W programie pisze mi, że zmienne których używam są poza adresem 1024. Mimo to zmienne te nie są przechowywane w pamięci zewnętrznej. Z jakiego powodu może mi nie działać pamięć?? Wszystko jest podłączone do siebie tak jak powinno, posiadam pamięć CXK58256. W programie napisałem:
$xramstart = &H400
$xramsize = &H8000

Dim A As Xram Byte

Próbowałem też użyć $default Xram, ale bezskutecznie. Bardzo byłbym wdzięczny za pomoc.

Pozdrawiam

ZbeeGin

Post autor: ZbeeGin » 31 mar 2007, 9:05

1. W opcjach kompilatora mogłeś zapomnieć zaznaczyć "External Access Enable" lub użyć dyrektywy $XA. Może też być konieczne włączenie opóźnień przez włączenie "Enable Waitstate" lub dyrektywą $WAITSTATE.
2. Nic nie wiemy jak podłączyłeś pamięć, być może nie jest ona adresowana poprawnie.
3. Pamięć XRAM rozpoczyna się minimum od adresu &H500 w konfiguracji standardowej, a od adresu &H460 w trybie kompatybilnym z Mega161. Zatem wartość w $XRAMSTART jest za niska.

Awatar użytkownika
Tranzystor
Użytkownik
Posty: 889
Rejestracja: 28 sie 2005, 19:19
Lokalizacja: Świętochłowice
Kontakt:

Post autor: Tranzystor » 31 mar 2007, 9:25

Jesteś wielki ;)
Zapomniałem, że adresowanie pamięci zaczyna się od &H500. Co ja bym bez Ciebie zrobił?

Dzięki wielkie za pomoc, Pozdrawiam :)

ODPOWIEDZ