Vollständige Version anzeigen : Off Topic AtMega 103
Import-Script
01.01.2002, 18:41
Off Topic <BR>---------- <BR>Ich habe mal ne Frage zu einen At Mega 103, ich weiß das dies nicht das Richtige Board ist. <BR>Aber ich weiß mir keinen anderen Rat mehr, ich finde auch kein Deutsches Board zu diesen Thema. <BR> <BR>Ich möchte einen Atmel AVR At Mega 103 Programmieren, das ist ein 128Kbyte Programmierbarer Flash Proz. In der Docu habe ich gelesen das die Architektur dieses Proz. 64 x 16 ist, in der Docu steht das der Speicherbereich von 0000 bis FFFF ? nur das versteh ich nicht genau ? warum 64 x 16 ich denke der Proz. Ist ein 8bit Proz. ? <BR> <BR>Die pdf Datei kann man sich hier saugen <A HREF="http://www.atmel.com/atmel/acrobat/doc0945.pdf" TARGET="_top">http://www.atmel.com/atmel/acrobat/doc0945.pdf</A> <BR> <BR>Und genau darum muss ich wissen wo ich in meinen Compiler den Anfang eines Externen Speicher deklarieren muss. <BR> <BR>Kann mir dabei einer helfen ? <BR> <BR> <BR>Heinz
Import-Script
01.01.2002, 21:59
Hi <BR> <BR>Die AVR's sind 8Bit "RISC"-Controller. Für einen Befehl benötigt er aber 16Bit. D.h. das pro Adresse (also von 0x0000 bis 0xffff) jeweils 16Bit oder 2 Byte pro Speicherstelle vorhanden sind. Du kannst externen Speicher ganz normal deklarieren wie du ihn aus den Adressleitung eben im Adressraum von 0x0000 bis 0xffff eingeblendet hast. Der externe Speicher hat aber nur 8Bit pro Adresse. Du kannst auch keinen externen Programmspeicher an den ATMEGA anschließen. Das geht bei keinem mir bekannten AVR. Extern kann immer nur Datenspeicher (RAM) angeschlossen werden und der ist dann nur 8 Bit breit also direkt max. 64kB oder unbegrenzt mit Bankswitching.
Import-Script
01.01.2002, 23:51
Danke Matthias für deine schnelle Antwort, <BR> <BR>Ich würde dich gerne noch was fragen ? <BR> <BR> <BR>Soweit habe ich das schon verstanden, jetzt ist mir auch klar warum PonyProg (nehme ich zum updaten) 128kbyte zu Verfügung stellt, da ja die 128kb gebrannt werden müssen. Und Intern stellt der AVR 2 Speicherplätze pro Speicherplatz zu Verführung. <BR> <BR> <BR>Ich möchte Externen Speicher an meinen AVR anschließen(SRAM), also müsste ich doch bei 64Kbyte Externen Speicher sagen, das er ab Adresse 10000 liegt, da der Interne Adressbereich ja wie bekanntlich von 0000 bis FFFF liegt.? Ist das so richtig ? <BR> <BR>Define <BR> XDATA = $10000, $1FFFF; <BR> <BR>Nur wenn ich das so mache, sagt mein Compiler <BR>Fehlermeldung Error: XData exceeds adress space <BR> <BR> <BR>Schreibe ich jetzt das der Externe Speicher bei <BR>Define <BR> XDATA = $0000, $FFFF; <BR> <BR>liegt, dann bekomme ich die Fehlermeldung <BR>Error: Xdata is in conflict with top of iData <BR> <BR> <BR>Warum schreibt ihr immer 0x0000 oder 0xFFFF <BR>Wofür steht das (0x) wenn ein Adressbereich von 0000 bis FFFF angesagt wird.? <BR> <BR> <BR>Danke für Antworten <BR> <BR>Heinz
Import-Script
02.01.2002, 01:40
Hi! <BR> <BR>Der externe RAM hat mit dem internen Programmspeicher überhaupt nichts zu tun. Der externe Speicher beginnt immer dort, wo der interne RAM aufhört. Davor wiederum befinden sich die 32 Register und 64 Ports. Da der 103 intern 4k RAM hat müßte der externe RAM nach Adam Riese von 0x1060 bis 0x1105F (0x hat die gleiche Bedeutung wie $) adressierbar sein. <BR> <BR>MfG <BR> <BR>Jürgen
Import-Script
02.01.2002, 11:49
Hi <BR> <BR>Diese Adressen sehen aber etwas komisch aus. Der interne RAM hat also 4kB (hab ich jetzt nicht überprüft) Also geht er von 0x0000 bis 0x0fff. Der externe Speicher beginnt damit also bei 0x1000 und geht bis 0xffff. Damit sind von 64k extern 60k verfügbar. Das 0x steht in C für hexadezimale Schreibweise. Ob $ das gleiche ist wie 0x weiß ich nicht. Der SDCC aktzeptiert auf jeden Fall kein $ als Kennzeichner für Hex-schreibweise.
Import-Script
02.01.2002, 13:22
Danke, für eure Hilfe, <BR> <BR> <BR>Jetzt bliche auch ich durch ;-) <BR> <BR>Ich sehe in meinen Emulator dass das Interne SRAM von $0000 bis $1000 geht !!! <BR>Also fängt mein Externes SRAM ab $1000 ab <BR> <BR> <BR>Jungs, ihr seit Spitze.!! <BR> <BR>Vielen Dank für eure Hilfe. <BR> <BR> <BR>Heinz
Import-Script
02.01.2002, 19:33
Hallo nochmal! <BR> <BR>Bei mir fängt der interne Speicher bei 0x60 an, weil von 0x00 bis 0x1F sind die 32 Prozessor-Register und von 0x20 bis 0x5F die Ports. Vielleicht ist der Mega aber etwas anders organisiert, was mich allerdings sehr wundern würde. Oder die unteren 96 Adressen werden von Deinem Emulator ausgeblendet. Wenn Du Probleme mit Zeigern bekommst, probier einfach 96 zu addieren. <BR> <BR>Gruß <BR> <BR>Jürgen
Import-Script
11.02.2002, 17:17
wenn du ein AVR Board suchst schau mal unter www.mikrocontroller.net
vBulletin® v3.6.8, Copyright ©2000-2010, Jelsoft Enterprises Ltd.