PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Atmega 162 mit Externem RAM



Lucky1001
01.01.2011, 20:12
Hallo, ich habe erstmal nur eine allgemeine Frage zum Thema Atmega 162 mit externem Ram ( 62256 32K)

in der Bascom-Hilfe habe ich die Schaltung ( die ist auch soweit klar) dazu gefunden, und die Befehle
Dim as XRAM und CONFIG XRAM !
Ist es damit getan , muß ich der Variable nur den zusatz XRAM verpassen, und Bascom speichert dann selbstständig dort rein wie in den internen SRAM ? oder muß ich zusätzlich noch etwas beachten ?

bitte entschuldigt wenn das etwas blöd klingt, aber ich bin noch recht neu auf dem gebiet ;-)

Lucky1001
03.01.2011, 13:40
hat das etwa noch keiner gemacht ?

funkheld
07.01.2011, 09:28
...damit bastelt heut fast keiner mehr.
So ein Thema wollte ich auch mal anfangen, klappt nicht.

gruss

PicNick
07.01.2011, 11:36
Wenn ich die Bascom-Help über XRAM richtig verstehe, macht Bascom das speichern und lesen automatisch (wie ja auch bei ERAM).
d.h. insofern hast du nichts damit zu tun.

Die Sache mit den Waitstates je nach XRAM-Zugriffszeit solltes du aber schon beachten.

Lucky1001
09.01.2011, 18:55
...damit bastelt heut fast keiner mehr.
So ein Thema wollte ich auch mal anfangen, klappt nicht.

gruss

ich komme aber wohl nicht drum herum mit externem RAM zu arbeiten, da ich große Array variablen brauche, und da reicht der interne SRAM nicht aus.

ich hab jetzt mal die Schaltung so aufgebaut wie in der Bascom-hilfe beschrieben, und habe das Blockschaltbild mal in einen Stromlaufplan übersetzt.

bei dem Latch bin ich mir nicht ganz sicher, die Pinbelegung vom Latch ist im Datenblatt mit Pin2 = D0, Pin2 = D1 usw beschrieben. Ich habe allerding in meiner schaltung eine andere Reihenfolge und zwar Pin2 = D8, Pin3 = D7 usw. natürlich die Ausgansseite auch entsprechend gedreht so das es wider passt.
ich habe es nur so gemacht um die anordung der Bauteile einfacher zu gestalten.
Ist das dem Latch egal ? oder muß es wie im Datenblatt eingehalten werden ?

ich kann nähmlich nicht auf das RAM zugreifen, und beim versuch bleibt das programm stehen

Dnerb
09.01.2011, 19:18
Das mit dem Latch ist egal. So was habe ich auch mal gemacht, aber auf einem anderen System.

Leider habe ich mit externem Ram beim ATMega noch nie etwas gemacht, daher kann ich bei den weiteren Probs leider nicht helfen.

PicNick
10.01.2011, 08:32
Eigentlich ist es wurst, welchen Adress-Pin du wo anhängst.
Jede adresse hat 15 Bit, die eindeutig irgendeinen Speichplatz bezeichnen, und ob deine BYtes physisch aufsteigend oder durcheinander im Speicher liegen, ist egal. Genauso ist es mit den Daten-bits. Haupsache, z.b D3 kriegt beim Lesen das, was er beim Schreiben dort hingeschickt hat.

Programm bleibt stehen: Da es keine Rückmeldungen vom Speicher gibt, auf die man warten und dann hängenbleiben könnte, muss das einen anderen Grund haben. Ich les mir jetzt das mit dem XRAM beim 162-er im datasheet mal durch, ob es da irgendwelche weisheiten gibt.

Lucky1001
10.01.2011, 20:59
so ich habs geschafft, ich kann auf das RAM zugreifen O:)

hier mein code


$regfile = "M162def.dat"
$crystal = 1000000
$hwstack = 100
$swstack = 100
$framesize = 100


Config Com1 = 4800 , Synchrone = 0 , Parity = Even , Stopbits = 1 , Databits = 7 , Clockpol = 0
Config Com2 = 4800 , Synchrone = 0 , Parity = Even , Stopbits = 1 , Databits = 7 , Clockpol = 0


Config Print = Portb.1 , Mode = Set
Config Pinb.1 = Output

Config Print1 = Portb.0 , Mode = Set
Config Pinb.0 = Output
Open "COM2:" For Binary As #1


Dim Test(2) As Xram Word
Dim Bla As Xram String * 14
Do

Test(1) = 12345
Test(2) = 5555
Bla = "Hello XRAM ;-)"


If Test(1) = 12345 Then

Print #1 , Test(1)
Print #1 , Test(2)
Print #1 , Bla

End If
Waitms 1000
Loop


ich habe die einstellung für das RAM allerdings in Bascom gemacht, da ich mit $XRAMSTART and $XRAMSIZE nicht ganz klar gekommen bin, ich habe nicht ganz verstanden wie das mit den Adressbereichen zu machen ist 8-[ vielleicht kann das nochmal jemand etwas ausführlicher beschreiben, da ich es doch ganz gerne mit im Code hätte.

Einstellungen habe ich jetzt folgende:
XRAM=36KB, Harken bei ''External Access Enable, bei Waitstate keinen Harken !