Zu wenige Portpins Atmel Mega 128

OP #222632
Hallo!

Ich bin gerade dabei eine kleine Schaltung zu entwerfen. Dabei bin ich
aber an die grenzen der vorhandenen Portpins meines Atmel Mega 128
gestoßen.

Gibt es einfache Möglichkeiten mit 3 freien Portpins ein LCD und eine
Matrixtastatur oder zumindest 4 Taster anzuschließen?

Danke euch schon mal.

gruß
AiM
Gast
>Gibts ev. noch andere Möglichkeiten?

Vielleicht kannst Du bei den schon in Benutzung befindlichen Portpins
Resourcen freimachen (z. B. Ausgabepins auch zur Eingabe nutzen)?  Was
hast Du denn sonst alles an Deinem Mega128 dranhängen?
Tag

Ich bin zwar neu hier aber eventuell kann ich weiterhelfen.

Wie wäre es mit einem Mux / Demux?
(Multiplexer / Demultiplexer)

Damit kann man Viele Eingänge Zusammenfassen oder wenige Ausgänge
Auffächern.

Da alles einen Nachteil hat, hat diese Metode auch einen.

Sie Verlangsamt die Port's und ist ist nicht immer einsetzbar.
Gast
@Michael


Anderer Ansatz:

Ports sortieren nach Funktion.

zb. alle Ports die einfach nur etwas Schalten und nicht "Megaschnell"
sein müssen zusammen über ein Schieberegister Schalten.
Selbst da kommste noch auf einige Mhz. wenn es ein muß.

I2C ist auch sehr gut.

Ich hab LCD und Tastatur (Auch Relais) meist am I2C (Relais auch per
Schieberegister) hängen,so spar ich ne Menge Pinns ein.

Überlegs mal.
Oder gib mal Info was explizit an deinem Controller hängt.
OP
Also: am Controller hängen:

*USB-I/O mit USBN9604
*RTL1890 (Netzwerk)
*MMC-Karte über SPI
*8Kx8 Bit Static RAM
*RS485 Netzwerk über RX/TX
*8Bit D-Latch Bus Driver
* 3 LEDs & 3 Transistoren

Habe den Schaltplan mal Angeängt.
Ist aber noch nicht Fertig, es fehlen noch div. Spannungsversorungen,
Kondensatoren, .....
Angehängte Dateien:
OP
>>Was spricht dagegen, das Ethernet auch über den Memory-Bus laufen zu
lassen ?

Du meinst also AD0-7 mit PA0-7 verbinden und dadurch die Ports PF0-7 am
AVR frei zu bekommen?

Und wie soll man dann Verhindern, dass Ethernet und Memory-Bus sich
gegenseitig stören?
So weit ich weiß ist der RTL1890 nicht Tri State Fähig?
Gast
Beim RTL1890 sind wohl ein paar Ziffern verdreht und es handelt sich um
den üblichen RTL8019. Wobei der als ISA-Bus-Device natürlich sehr wohl
Tristate-fähig ist - wie sollte das auf dem ISA (oder PC104) Bus denn
sonst funktionieren?
"Du meinst also AD0-7 mit PA0-7 verbinden und dadurch die Ports PF0-7
am
AVR frei zu bekommen?"

Nicht nur die, sondern auch die Adressen und /WR, /RD-Leitungen.
Nur Chip-Select muß auf eine andere Adresse als SRAM und USB gelegt
werden.

Der Datenbus ist ja bidirektional und damit muß er auch tristate
können, anders geht es nicht. Nur Read-Only-ICs (z.B. ADCs) dürfen auch
nicht tristate sein.

Ich kenne den RTL8019 nicht, ich verwende den LAN91C96 und der geht
prima als memory mapped IO. Und wenn man keinen externen SRAM hat,
braucht man nicht mal ein Adreßlatch, das hat der intern.


Peter
Gast
Hi,

ich hatte ein ähnliches Problem. Ich habe die Datenleitungen des GLCD
und die Matrixtastatur parallel an einen Port gehängt(das ist ja dann
sowas wie ein Zeitmultiplex).

Gruß

ts

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.