Forum: Mikrocontroller und Digitale Elektronik Zu wenige Portpins Atmel Mega 128


von Michael A. (aim)


Lesenswert?

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

von gast (Gast)


Lesenswert?

Hallo
wie währe es mit I2C.Zb ein PCF8574 bietet 8 Ein- oder Ausgänge.

mfg Stefan

von Michael A. (aim)


Lesenswert?

I2C?

Das währen doch die Pins SDA/SCL oder?

Wenn die nicht bereits belegt währen, ..... :-(
(Sind nähmlich auch noch Int0/1 und die sind in verwendung)

Gibts ev. noch andere Möglichkeiten?

von Bolle (Gast)


Lesenswert?

>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?

von gast (Gast)


Lesenswert?

Du kannst I2C auch per Software machen.Da kannst Du die Ports
frei wählen.
Ist auch je nach Programmiersprache relativ easy.

stefan

von Dirk (Gast)


Lesenswert?

Hi,

einfachste alternative waere per SPI sich I/O's zuschaffen.

Gruß,
Dirk

von Jens D. (jens) Benutzerseite


Lesenswert?

oder SPI waehre da noch
bis hin zu einem ganz simpelem schibe register..

Gruss

von Black (Gast)


Lesenswert?

SPI ist doch schon schieberegister was kann man da noch versimpeln....

von Alexander _. (bastlwastl)


Lesenswert?

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.

von Ratber (Gast)


Lesenswert?

@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.

von Peter D. (peda)


Lesenswert?

Kann ich irgendwie nicht glauben, daß der Mega128 zu wenig Pins haben
soll.

Zeig dochmal Deinen Schaltplan (png, jpg oder pdf), dann kann man
bestimmt helfen.


Peter

von Michael A. (aim)


Angehängte Dateien:

Lesenswert?

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, .....

von Michael A. (aim)


Lesenswert?

Ach ja und warscheinlich kommt noch ein EEPROM dazu, ...

von Dirk (Gast)


Lesenswert?

Hi,

vielleicht koennte man auch ein CPLD benutzen ueber Memory Mapped I/O.
Dadurch wuerde schon das Latch entfallen.

Gruß,
Dirk

von Michael A. (aim)


Lesenswert?

>>vielleicht koennte man auch ein CPLD benutzen ueber Memory Mapped
I/O.

Möglich.
Habe damit nur leider (noch) keine Erfahrungen. Gibt es da irgendwo
gute Informationen zu?

von Peter D. (peda)


Lesenswert?

Was spricht dagegen, das Ethernet auch über den Memory-Bus laufen zu
lassen ?


Peter

von (geloescht) (Gast)


Lesenswert?

(Dieser Beitrag wurde geloescht)

von Michael A. (aim)


Lesenswert?

>>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?

von A.K. (Gast)


Lesenswert?

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?

von Peter D. (peda)


Lesenswert?

"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

von thomas (Gast)


Lesenswert?

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

von jens (Gast)


Lesenswert?

hi,

es gibt auch I2C-LCDs oder auch nur I2C-LCD-Adapter
http://www.channaa.com/html/i2c_lcd_adapter.html
damit kannst du dein LCD am vorhandenen I2C-Bus anschliessen!!

Gruß
jens

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
Noch kein Account? Hier anmelden.