Hardware > Hardware (Classic 16-/32-Bit)
Einfach programmierbares Modul für ROM-Port?
Lynxman:
Welchen Atmega benutzt Du?
Wenn Du einen Atmega mit Speicherinterface benutzt, dann kennst Du evtl. schon das Problem das der Atmega erst mal sein internes SRAM beschreibt und danach dann Extern.
Wenn nicht, dann kann ich Dir ein paar Tipps geben, das hat mich nämlich mal fast Irre werden lassen bis ich es hinbekommen habe.
czietz:
Ich hatte an sowas wie einen ATmega16 gedacht, da ich es geschafft habe, mit 32 GPIOs auszukommen. Also kein externes Speicherinterface, sondern "bit banging" auf den I/O-Ports.
Auch wenn es also hier nicht relevant ist, würde ich gerne mehr über das von Dir erwähnte Problem erfahren.
Lynxman:
Beim Atmega16 musst Du ja quasi die Steuerleitungen, Adressen und Daten "von Hand" erzeugen und kannst damit auf den vollen Speicherbereich zugreifen. Das stellt kein Problem dar.
Bei den Atmegas mit Speicherinterface, z.B. Atmega162 kannst Du den externen Speicher ganz bequem wie das interne SRAM ansprechen, die Steuerleitungen, Adressen und Daten (multiplexen) macht der AVR dann selber.
Das Problem ist allerdings das die ersten x-Byte (größe SRAM) nicht nach aussen angesprochen werden.
Wenn man aber den ganzen externen Speicherbereich ansprechen will, muss man die A15 ausblenden (über ein Register) und die A15 "von Hand" setzen.
Man teilt also den Externen Speicher in 32KB Bänke auf die aus Sicht des µCom im Speicherbereich 8000 - FFFF liegen.
Wie schon geschrieben, Adressleitungen ab A15 muss man eben selber setzen.
Aber da der AVR sowieso nur bis 64KB extern Hardwareseitig unterstützt muss man bei >64KB sowieso das Bankswitching selber machen.
Die A15 kann man übrigens ganz einfach am entsprechenden Portpin anschließen.
Mit dem deaktivieren der A15 des Speicherinterrfaces ist dieser Pin ein ganz normaler I/O.
Etwas anders muss man bei den alten AT90S-Typen wie dem AT80S8515 vorgehen.
Da man hier die A15 nicht per Register deaktivieren kann, muss man einen zusätzlichen Portpin opfern an dem die A15 angeschlossen wird.
Programmiertechnisch dann das selbe, 8000 - FFFF und die Bänke "von Hand".
Das Speicherinterface zu benutzen spart ein wenig Platz im Flash ein und ist schneller.
Ist eben die Frage welche Optionen des µCom man braucht und ob man die Zeit (Programmgeschwindigkeit) hat das Speicherinterface "von Hand" zu implementieren.
Aber mit dem Atmega16 kann man auch 115200 Baud erreichen wenn man einen Flash beschreibt.
z.B. 29F010
czietz:
Uff, so, es ist vollbracht. Heute Nacht werde ich wohl von Leiterbahnen träumen. :D
Ich habe das Layout mal bei einem chinesischen Leiterplattenlieferanten eingekippt, den ich schon immer mal testen wollte. Nachteil: Aufgrund des chinesischen Neujahrfestes und der Lieferzeit werde ich erst in gut einem Monat wissen, ob es auch läuft. Aber ich kann solange ja mit dem Programm für den ATmega anfangen.
Da der Leiterplattenlieferant eine Mindestabnahmemenge hat und mich außerdem dort 10 Leiterplatten weniger kosten als eine einzelne in Deutschland gefertigte, werde ich Platinen übrig haben. Wenn das Modul tatsächlich so funktioniert, wie ich es mir ausgedacht hatte, kann ich mir vorstellen, die Platinen mehr oder weniger zum Selbstkostenpreis weiterzuverkaufen; Interesse vorausgesetzt. Ich werde berichten...
Lynxman:
Machs nicht so spannend!
Welcher China-Mann darf es denn fertig?
Screenshots vom Layout? :)
Welche FlashRoms setzt Du ein?
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln