hat das etwa noch keiner gemacht ?
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
hat das etwa noch keiner gemacht ?
...damit bastelt heut fast keiner mehr.
So ein Thema wollte ich auch mal anfangen, klappt nicht.
gruss
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.
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
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.Zitat von funkheld
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
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.
Das Gegenteil von "gut" ist "gut gemeint"!
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.
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
so ich habs geschafft, ich kann auf das RAM zugreifen
hier mein code
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 vielleicht kann das nochmal jemand etwas ausführlicher beschreiben, da ich es doch ganz gerne mit im Code hätte.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
Einstellungen habe ich jetzt folgende:
XRAM=36KB, Harken bei ''External Access Enable, bei Waitstate keinen Harken !
Lesezeichen