Guten Abend, zuerst zu meinem Projekt, ich möchte einen PC mit Linux und XAMPP (Simuliert einen Webserver) in mein Netzwerk einbinden, so das ich über meinen Laptop, Handy oder mein Tablet, mich über LAN / WLAN auf den Server zugreife, dort ist eine Webseite auf der ich Lampen, Steckdosen und und und schalten kann, dann kommt eine Interfacesteuerung die die geänderten Daten über den Parallelport ausgibt, der Parallelport wir an einen Mikrocontroller (8051 / AT89S8253) der als Puffer dient und die Daten die reinkommen Stackt, bzw wenn der Steuercontroller nicht beschäftigt ist die Daten an ihn weitergibt. Jetzt habe ich das ganze über den PCF8574 machen wollen, der jedoch 1,20Euro kostet, habe jedoch eine "Spende" von ner Firma bekommen, die nen Stapel von den 8255 sonst weggeworfen hätte, und jetz würde ich den gerne als Porterweiterung verwenden, ist zwar Pin Verschwendung, was aber nicht schlimm ist. Jetzt geht es zu den Fragen: So wie ich das Datenblatt jetzt verstanden habe, kann ich einen Ausgangsport nur als Ein- oder Ausgang verwenden, kann man das nicht irgendwie umgehen, wenn ich jetzt z.B. 6 Pins brauche die als Ausgang fungieren sollen, jedoch 1 Pin benötige um den Status abzufragen, also als Eingang. Kann ich mehrere 8255er Parallel schalten, also die Adressbits, den Eingang vom Datenbus, die Lese- Schreibfunktionsbits, und dann über das CS-bit den 8255er auswählen, dessen Port ich ändern möchte. Wenn man mehrere Parallel anschließen kann, wie viele sind dann etwa das Maximum? Die Auswahl mache ich über einen (oder mehreren) Dekaden-Zähler(n) und einem "Auswahlbit" die über Dioden als eine UND-Verknüpfung verbunden sind. Ich bedanke mich mal bei euch für eure schnellen Antworten =) Gruß Fabi
Fabian schrieb: > Parallel schalten, also die Adressbits, den > Eingang vom Datenbus, die Lese- Schreibfunktionsbits, und dann über das > CS-bit den 8255er auswählen Das ist der Sinn von CS. >>> Geht!
Fabian schrieb: > So wie ich das Datenblatt jetzt verstanden habe, kann ich einen > Ausgangsport nur als Ein- oder Ausgang verwenden, kann man das nicht > irgendwie umgehen, Nein.
>Jetzt geht es zu den Fragen: >So wie ich das Datenblatt jetzt verstanden habe, kann ich einen >Ausgangsport nur als Ein- oder Ausgang verwenden, kann man das nicht >irgendwie umgehen, PORTA und PORTB geht nur im ganzen entweder als Eingänge oder Ausgänge. PORTC kann man getrennt zur Hälfte auf Eingang/Ausgang schalten. >Kann ich mehrere 8255er Parallel schalten, also die Adressbits, den >Eingang vom Datenbus, die Lese- Schreibfunktionsbits, und dann über das >CS-bit den 8255er auswählen, dessen Port ich ändern möchte. Ja. >Wenn man mehrere Parallel anschließen kann, wie viele sind dann etwa das >Maximum? Was dein uC an Leitungen treiben kann.
Okey, danke für die schnellen Antworten, gibt es eventuel eine andere Möglichkeit als das über Dioden laufen zulassen, also das ich das trotzdem über einen Dekadenzähler laufen lassen ohne die Dioden zu verwenden? Wenn ich einen CS auf High setze, kann ich dann an dem Eingangsport werte anlegen und die werden dann am Jeweiligen Port ausgegeben oder muss ich eine Flanke geben um das der Wert vom Eingangsport auf den Ausgangsport zu übergeben?
Hallo, die Frage die sich stellt, wie willst du den 8255 über 8051 ansprechen / adressieren? Die 8255 passt mehr in ein Konzept mit Neumann Architektur, die 8051 hat die Harward Architektur. Willst du die 8255 ins Adressraum von 8051 integrieren oder vollkommen über die IO-Ports von 8051 ansprechen? mfG
oswlad schrieb: > Hallo, > die Frage die sich stellt, wie willst du den 8255 über 8051 ansprechen / > adressieren? Die 8255 passt mehr in ein Konzept mit Neumann Architektur, > die 8051 hat die Harward Architektur. Willst du die 8255 ins Adressraum > von 8051 integrieren oder vollkommen über die IO-Ports von 8051 > ansprechen? > > mfG Das ist doch wohl geistiger Dünnschiss oder?
Also, an die Erweiterungsports, die vom 8255 weggehen, da kommen "Module" dran wie z.B. ne Platine mit 8 SSR zum Steuern von Steckdosen / Lampen und der Wert der an einen Port A B C des 8255ers wird ja gespeichert, das heißt ich kann einmal einen Wert anlegen und dieser wird im EEPROM des Steuercontrollers hinterlegt und dann an dem Port des 8255 hinterlegt. Angeschlossen wird der 8255 an dem Controller, das heißt 1 Port wird an den 8255 Datenbuss gelegt und dann die benötigten Pins des Controller auf die Steuer Pins, der CS wird über einen Dekadenzähler angesteuert, das heißt der Dekadenzähler mit 10 Ausgängen wird angeschlossen, das D0 an den Controller geht und dan dem Controller sagt er ist durchgelaufen, der Pin 10 geht auf den Reset des Dekadenzählers, dann gibt es noch den Clock, der die CS immer weiter schaltet bis zum jeweiligen 8255er, der angesprochen werden soll, dann gibt es ein bestätigungs Pin vom Controller, der soll sobald der richtige 8255er ausgewählt wurde eine Flanke setzen, diese flanke bewirkt, das an dem gewählten 8255er des CS seine Flanke bekommt (Dioden Logikschaltung)... Ich habe schon einen 8255 über nen 8051er angesteuert zum testen und es hatte ohne Probleme funktioniert... Oder habe ich deine Frage jetzt falsch verstanden?
zp3ui schrieb: > > Das ist doch wohl geistiger Dünnschiss oder? ...schließlich ist davon abhängig wie man die CS-Funktion realisiert, aber wenn es für dich eine Art Dünnschiss ist, dann erkläre es mir du detailliert wie du das realisieren würdest?
>Die 8255 passt mehr in ein Konzept mit Neumann Architektur,
Quatsch, der hängt einfach nur am Datenbus, und fertig.
Ausserdem kann man statt dem 8255 auch einfach (günstige) Latches
und/oder Bus-Transc. nehmen.
Fabian schrieb: > > > Oder habe ich deine Frage jetzt falsch verstanden? schon in Ordnung, so kann es auch funktionieren, aber worauf ich gedacht habe, sind die Kontrollpins der 8255: /RD, /WR, A0, A1, /CS - die könnten auch über IO-Ports von µcontroller angesprochen werden, d.h. du steuerst vollkommen über die IO-Pins vom µC, dann könntest du die /CS Leitungen von mehreren 8255 auf einzelne IO-Pins anschließen und sie so selektieren. ...oder, habe ich jetzt dein Vorhaben falsch verstanden? :-)
Es gibt noch mehr "Modes", PortA läßt sich als 8-Bit In/Out Bus Port verwenden, gesteuert durch Port C Leitungen als Strobe und Ack. Port A und B lassen sich auch als direktionale Ports verwenden, wiederum gesteuert duch Port C Leitungen (wieder Strobes und Acks) Die Ports lassen sich im Fluge umschalten. Meine Lieblingsanwendung war immer der Bidirektionale 8-Bit In/Out Trennport A, gesteuert durch Leitungen des Port C, und übrigbleibende Leitungen auf Port C und B nach Belieben eingestellt auf In oder Out. Handbuch zum 8255 ist etwas umfangreich, das Original von Intel gefällt mir am besten, ist aber etwas "vom Alter" her abgegriffen... Grüße, Mike
Ich hab auch noch einen Stapel von den Dingern. Die Firma hat dir keinen Gefallen getan mit dem verschenken. 8255 haben als NMOS-Chips den Nachteil, daß fast kein Strom aus den Ausgängen kommt (200uA), sie können auch nur ganz wenig Strom (1.7mA) nach Masse ableiten, und auch Intersil's 82C55 sind mit 2.5mA nicht so viel besser. Du tust dir mit den Chips also keinen Gefallen, quasi alles was du anschliessen willst, schon simple LEDs, erfordern extrene extra Verstärker per Transistor oder zusätzlichem IC.
@ Oswald Auf deinen Post komme ich gleich zurück, ich mache gleich eine Skizze um es besser erklären zu können, hab bitte einen Moment Geduld... Mike schrieb: > Die Ports lassen sich im Fluge umschalten. Wie meinst du das? Ich möchte gerne ein Modul erstellen, dort kommt eine Funkfernbedienung dran, die Funksteckdosen steuern kann (Hab ich schon eins gebaut) diese Fernbedinung hat 4 Gruppen A, B, C und D für jede Gruppe gibt es 3 Steckdosen, die man Ein- oder Ausschalten kann, ich möchte das, wie schon bei meinem erstellten Projekt die Gruppen und Taster über einen Dekadenzähler auswählen (der schaltet einen 4066er), ich brauche aber auch einen Pin, der als Haltepunkt dient, also das der Controller weiß das er wieder am Anfang ist, also habe ich an einem Port Ein- uns Ausgangs Informationen, kann ich dann einfach wenn ich den Port als Ausgang verwendet habe ihn zum abfragen ändern zu einem Eingang und dann das Endebit abfragen???
MaWin schrieb: > Die Firma hat dir keinen > Gefallen getan mit dem verschenken. Naja, LEDs die ich hab leuchten auch mit 1,7mA also nicht so tragisch, es geht mir ja nur um die Kostengünstige Porterweiterung, aber das was ich machen möchte funktioniert damit...
Mal das Bild als Beispiel gesehen!!! Also der Pin O.K. ist auf 5V gesetzt, die Zahlen 1 bis 9 sind die Ausgänge vom Dekadenzähler, immer 1 Pin ist auf high gesetzt und die anderen sind auf low gesetzt, solange der O.K. Pin auf Masse gesetzt ist kann an keinem CS jemals ein high erreicht werden, immer wenn der O.K. Pin High gesetzt wird, dann bekommt der CS-pin, "auf" den der Dekadenzähler zeigt eine Positive Flanke, somit brauche ich jetzt nur noch 3 Pins (O.K. , Zur überprüfung ob es am Anfang ist , Takt für den Dekadenzähler)... Das Bild ist jetzt nur ein Beispiel, also zum erklären, also im allgemeinen und nicht nur auf den 8255 bezogen. Der 8255er Soll nur die Werte Speichern die ihm gegeben wurden und diese solange ausgeben bis man sie wieder ändert, mehr soll der 8255er nicht machen...
So wie ich das mit dem Bild gezeigt habe steuere ich z.B. auch die Funkfernbedienung, läuft super ohne Probleme....
Hi >Das Bild ist jetzt nur ein Beispiel, also zum erklären, also im >allgemeinen und nicht nur auf den 8255 bezogen. Dafür wurden schon seit Urzeiten 74xy138 verwendet. Das Ganze hat schon etwas. So wie einen Mercedes mit Holzvergaser zu betreiben. MfG Spess
Ich nehme an, 20 Dioden und 10 Widerstände gab's auch geschenkt, einen CD4028/74HC145/74HC32 jedoch nicht...
Ja, den kenne ich, der ist schon nicht schlecht, jedoch sind 2 Dioden und nen Widerstand billiger wie der =P und Widerstände wie auch Dioden habe ich zu genüge und muss dafür kein Geld ausgeben, trotzdem danke ach und Dekadenzähler (4017) habe ich auch mal nen ganzen Stapel bekommen und muss mir keine kaufen, warum soll ich denn bitte was kaufen, wenns kostenlos vorhanden ist grins
@Fabian aber es reicht nicht die IC nur über CS anzusprechen, ganz abgesehen davon dass die CS-Leitung aktiv LOW ist. Du musst über die Leitungen A0 und A1 definieren auf welche Ports (A, B, oder C) du zugreifen willst, schreibend (/WR) oder lesend (/RD)und nicht vergessen ganz am Anfang die IC zu konfigurieren (MODE 0, 1, oder 2).
>warum soll ich denn bitte was kaufen, wenns >kostenlos vorhanden ist grins Hör auf zu grinsen und sieh in das Datenblat zum 8255 wie die Signale aussehen müssen damit der arbeitet wie gewollt. Wenn du das nicht raffst dann lass es sein. Immer diese Trolle hier:(
>Ich nehme an, 20 Dioden und 10 Widerstände gab's auch geschenkt
Er hat doch nur 9 /CS zu erzeugt !
Da steht bestimmt auch ein höherer Sinn dahinter.
Wahrscheinlich kommt zu den Dioden bald noch 'ne Nonode dazu.
Oder sowas wir triple tristate, wer weiß schon.
1. Initialisieren 2. Adresse Anlegen an A0 und A1 3. Daten an den Bus anlegen 4. Flanke setzen (CS) 5. Daten werden an dem ausgewählten Port ausgegeben und "latched" also bleiben solange an dem Port bis der Port geändert wird Und zu dem Bild, das war nur ein Beispiel, ich habe wie schon erwähnt, das jetzt nur mal für das Verständnis so aufgezeichnet, wer lesen kann ist im Vorteil!!! Dem 8255 ist es Wort wörtlich scheiß egal was am Adresseingang, am Datenbus oder an den Lese Schreib Pins anliegt, solange er seine benötigte Flanke nicht bekommt, also kann man einige Parallel anschließen, solange der CS der angeschlossenen 8255er einzeln angesteuert wird... Achja, oben zu der Liste, man muss ihm halt sagen ob gelesen oder geschrieben werden soll, also für die, denen jetz gleich wieder einer geht, man man muss ihm sagen ob er die Daten vom Datenbus an einen Port geben soll oder ob er die Daten von einem Port an den Datenbus geben soll...
Hm, gut. Du weisst also was du willst und wie es geht... Wie war noch mal die eigentliche Frage??
Fabian schrieb: > So wie ich das Datenblatt jetzt verstanden habe, kann ich einen > Ausgangsport nur als Ein- oder Ausgang verwenden, kann man das nicht > irgendwie umgehen, wenn ich jetzt z.B. 6 Pins brauche die als Ausgang > fungieren sollen, jedoch 1 Pin benötige um den Status abzufragen, also > als Eingang. Die frage ob man einzelne Pins eines Ports als Ein- und Ausgangs verwenden kann oder ob man ihn nur Als ein oder Ausgangs Port verwenden kann, die Frage wurde zwar durch das Datenblatt beantwortet, aber Mike schrieb: > Die Ports lassen sich im Fluge umschalten. Dazu habe ich eine Frage geäußert die noch nicht beantwortet wurde... Wie genau ist das gemeint? Dann noch diese Frage: Fabian schrieb: > Kann ich mehrere 8255er Parallel schalten, also die Adressbits, den > Eingang vom Datenbus, die Lese- Schreibfunktionsbits, und dann über das > CS-bit den 8255er auswählen, dessen Port ich ändern möchte. > > Wenn man mehrere Parallel anschließen kann, wie viele sind dann etwa das > Maximum? Diese Frage wurde aber beantwortet, Danke!
ok, dann vielleicht noch ein letztes Wort wie ich es machen würde: die 8255 wie einen externen Datenspeicher ansprechen. Für die Selektierung mehrerer IC-s würde ich eine 74LS138 verwenden und die Adressleitungen A2-A5 zum Select heranziehen. mfG
>4. Flanke setzen (CS) >wörtlich scheiß egal was am Adresseingang, am >Datenbus oder an den Lese Schreib Pins anliegt, solange er seine >benötigte Flanke nicht bekommt, Falsch. der benötigt Pegel, nicht Flanke. (CS <> \CS) >Achja, oben zu der Liste, man muss ihm halt sagen ob gelesen oder >geschrieben werden soll, Toll.
Okey, vielleicht habe ich in meinem letzten Beitrag die Frage ein bisschen grob formuliert, man wählt ja aus ob "gelesen" oder "geschrieben" wird, bleibt der Wert, der an einem Port ausgegeben wurde beim "Lesevorgang" erhalten bleibt, also wenn man an Port A den Wert anlegt 10011100 dann will man das Bit XXXXXXX0 abfragen ob es ne 1 geworden ist, bleiben die X erhalten oder ändern die sich?
MCUA schrieb: > Falsch. > der benötigt Pegel, nicht Flanke. > (CS <> \CS) Meinetwegen, jedoch ist das keine Antwort auf meine Frage...
Wegen 1,20 machst Du solche Klimmzüge? Ist nicht wahr, oder? Oder hast Du solch riesige Stückzahlen? Überleg es Dir noch mal.
Ich bin ein armer Schüler, wenn kein Geld da ist, dann wird es schwer etwas zu kaufen, auch wenn es nicht ganz so teuer ist, also tut mir Leid, das ich keinen Geld-Scheißer habe, wenn ihr doch so viel Geld habt, dann gebt es mir doch, ansonsten beschwert euch nicht darüber das es auch Menschen gibt, die gerne etwas machen was ihnen Spaß macht und sich auch einer "Herausforderung" entgegenstellen und auch mal den umständlichen Weg gehen, weil der leichte doch leider nicht immer möglich ist... Aber echt danke, das wenn man etwas fragt nur angenörgelt wird und und und, echt traurig was aus der Menschheit, bzw. aus einigen Menschen geworden ist... Sorry wegen Off-Topic...
Ach und es sind nicht nur 1,20 Euro, ich brauche 20 Ports, also wären das 24 Euro, das ist schon mal mehr...
>Aber echt danke, das wenn man etwas fragt nur angenörgelt wird und und >und, echt traurig was aus der Menschheit, bzw. aus einigen Menschen >geworden ist. Man nun piss dir mal nicht ins Hemd. Anschliessen, ausprobieren. So hat man das früher gemacht. Das geht auch heute noch. Leuten die Gürtel und Hosenträger benutzen kann man sowieso nichts recht machen.
Fabian schrieb: > Jetzt habe ich das ganze über den PCF8574 machen wollen, der jedoch > 1,20Euro kostet Deshalb nimmt man besser 74HC165 (8 Eingänge) bzw. 74HC595 (8 Ausgänge). CSD: 0,18€ bzw. 0,20€ Dann gibt es auch keine Beschränkung bezüglich Kaskadierung. Die PCF8574/A gehen ja nur bis max 16 Stück. Fabian schrieb: > habe jedoch eine "Spende" von ner Firma bekommen, die > nen Stapel von den 8255 sonst weggeworfen hätte Richtig, die kann man nur noch wegschmeißen, selbst für Bastler taugen die nichts. Und wenn es wirklich 8255 sind, also keine 82C55, dann fressen die richtig Strom (200mA). Peter
>Richtig, die kann man nur noch wegschmeißen Nanana! Könnte ja sein daß man mal welche braucht als Ersatzteil für den Multitech Microprofessor http://mycorner.no-ip.org/z80/mpf1/mpf_board.jpg http://mycorner.no-ip.org/z80/index.html
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.