hallo zusammen, würde gerne wisse wie ich folgendes problem am besten lösen kann. arbeite mit µC und dieser hat zwar 40 pins aber wegen speicherplatz mangel muss ich ein externen ram dranhängen. das problem ist das dieses nvsram 15 adressierungs, 8 dta in/out und noch 3 weitere pins hat. also 26 pins die ich an mein µC hängen muss aber ich habe nicht soviele pins am µC frei. habe gehört das man mit einem port von bit 0-7 und hilfe von ic´s dieses problem lösen kann.kann mir jemand erklären wie das funktionieren soll??? und was diese ic´s machen? was , wie ich machen muss, kenne mich da überhaupt nicht aus. danke jetzt schon Olaf
Hängt vom MC ab. Hat er einen externen Bus, dann einfach ein popeliges Latch dran und per Adressdekodierung den Speicher und externe IOs ausdekodieren.
ich hab mal folgendes gebastelt: ATmega162 +externer SRAM +LCD für das lcd hab ich keine zusätzlichen leitungfen gebraucht, da man in µC die Pins, die für die high-byte adresse benötigt werden, freigeben kann. Also habe ich immer, wenn ich das LCD ansprechen wollte, die pins freigegeben, das LCD angesteuert und danach die pins wieder zurückgeschaltet. Was du meinst sind aber vermutlich schieberegister bzw latches bzw port-expander was die einzelnen teile machen, kannst du im netz nachlesen, deshlab nur zu nem latch etwas: das ist ein chip mit normalerweise 8 eingängen und 8 ausgängen. dann gibt es noch einen pin, mit dem man bestimmt ob die werte, die an den eingängen liegen, direkt zu den ausgängen gegeben werden sollen oder ob der aktuelle wert der ausgänge bestehen bleiben soll.
hallo, <von Chef: <Hat er einen externen Bus, dann einfach ein popeliges Latch dran und <per Adressdekodierung den Speicher und externe IOs ausdekodieren. was meinst du mit externen bus? was meinst du mit deiner aussage <"einfach ein popeliges Latch dran und per Adressdekodierung den <Speicher und externe IOs ausdekodieren." meinst du das ich mit hilfe von programmiercode die pins dann umändern kann z.B. schreiben in data oder adressierungsport? habe angefangen µC zu programmieren und zwar ein PIC18xxx es macht viel spass und jetzt ist mir da eine idee gekommen aber elektrotechnisch bin ich überhaupt nicht informiert, wie man merkt.also bitte ich euch mir das bischen näher zu bringen. das mit dem latch werde ich mir gleich durchlesen. Michael F. schrieb: <das ist ein chip mit normalerweise 8 eingängen und 8 ausgängen. dann <gibt es noch einen pin, mit dem man bestimmt ob die werte, die an den <eingängen liegen, direkt zu den ausgängen gegeben werden sollen oder <ob der aktuelle wert der ausgänge bestehen bleiben soll. inwiefern bringt mich das weiter? ich muss doch zuerst die adresse durch geben wo die daten gespeichert werden sollen (hi und low byte) dann die hilfs bits zum schreiben setzen und dann meine daten ins register schreiben. danke euch OLAF
"was meinst du mit externen bus?" Nun z.B. alle 8051 und einige AVRs (ATMega162) im DIP-40 haben einen externen SRAM-Bus, d.h. dort angeschlossener SRAM kann direkt wie interner SRAM angesprochen werden. Das ist besonders vorteilhaft, wenn man in C programmiert (was man bei größerem SRAM also größeren Programmen immer tun sollte). Und da ist es typisch, das die Adressen gemultiplext werden, um Pins zu sparen. Wie man dazu das Adreßlatch anschließen muß, steht im Datenblatt. Ob die PICs sowas auch können, weiß ich nicht. Ist das nicht der Fall, dann muß man sich spezielle Transferroutinen schreiben, die einzelne Bytes oder Blöcke vom internen SRAM in den externen SRAM kopieren und umgekehrt. Das macht natürlich die Verwaltung des zusätzlichen SRAMs wesentlich komplizierter und vor allem langsamer. Hat man keinen Memory-Bus, dann hängt es davon ab, wie oft und wie schnell man auf den externen SRAM zugreifen will. Am sparsamsten ist die Anbindung über SPI, d.h. die Adresse schiebt man in ein oder zwei 74HC164 und die Daten in einen 74HC299. Dann kommt man mit nur 5 Leitungen aus (SPI + /WR + /CE). Wenn Du das NVSRAM verwenden willst, um Daten dauerhaft zu speichern, wird das sehr kompliziert. Ohne spezielle Schaltungskniffe werden unweigerlich Daten während des Aus- und Einschaltens zerstört. EEPROMs und Flash haben deshalb eine Software-Data-Protection, ich weiß nicht ob die NVSRAMs sowas auch haben. Peter
@Olaf: In was programmierst Du und wieviel SRAM benötigst Du? Vielleicht wäre ja ein anderer µC eine einfachere Lösung. MfG Andi
ich programmiere mit assembler und möchte ein 32k sram benutzen. habe gerade im data sheet nach geschaut und habe nichts gefunden mit memory bus, serielle wie i2c usw. sind vorhanden. das wäre ja schön ein zu haben der einfach komunizieren könnte wie Peter gesagt hat: <.........DIP-40 haben einen externen SRAM-Bus, d.h. dort <angeschlossener SRAM kann direkt wie interner SRAM angesprochen <werden. aber der code für den rest meines vorhabens steht schon fast und das wieder alles neu zu programmieren für ein anderen µC wäre schlimmer. bin mir nicht sicher deshalb poste ich mal die beschreibung zu diesen PIC, vielleicht habe ich was übersehen? OLAF
Ohne die PIC - Familie näher zu kennen, fällt mir auf deinem geposteten JPG der PSP - Parallel Slave Port auf. Könnte das nicht die Lösung deines Problems sein ?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.