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
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?
>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?
Du kannst I2C auch per Software machen.Da kannst Du die Ports frei wählen. Ist auch je nach Programmiersprache relativ easy. stefan
Hi, einfachste alternative waere per SPI sich I/O's zuschaffen. Gruß, Dirk
oder SPI waehre da noch bis hin zu einem ganz simpelem schibe register.. Gruss
SPI ist doch schon schieberegister was kann man da noch versimpeln....
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.
@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.
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
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, .....
Hi, vielleicht koennte man auch ein CPLD benutzen ueber Memory Mapped I/O. Dadurch wuerde schon das Latch entfallen. Gruß, Dirk
>>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?
Was spricht dagegen, das Ethernet auch über den Memory-Bus laufen zu lassen ? Peter
>>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?
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.