mikrocontroller.net

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


Autor: Michael A. (aim)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: gast (Gast)
Datum:

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

mfg Stefan

Autor: Michael A. (aim)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Bolle (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: gast (Gast)
Datum:

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

stefan

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

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

Gruß,
Dirk

Autor: Jens D. (jens) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oder SPI waehre da noch
bis hin zu einem ganz simpelem schibe register..

Gruss

Autor: Black (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
SPI ist doch schon schieberegister was kann man da noch versimpeln....

Autor: Alexander __ (bastlwastl)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Ratber (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Michael A. (aim)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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, .....

Autor: Michael A. (aim)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach ja und warscheinlich kommt noch ein EEPROM dazu, ...

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

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

Gruß,
Dirk

Autor: Michael A. (aim)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Peter Dannegger (peda)
Datum:

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


Peter

Autor: (geloescht) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
(Dieser Beitrag wurde geloescht)

Autor: Michael A. (aim)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.