mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik OKI M81C55 benutzen.


Autor: Bastler (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Guten morgen,
mir sind gerade ein paar "OKI M81C55" in die Hände geflogen. (STATIC RAM 
WITH I/O PORTS AND TIMER) Die haben 256x8 Ram, und außerdem 22 IO´s. (2 
x 8-Bit, +6). Lohnt es sich noch, irgendwas damit zu machen? Die sind ja 
schon ziemlich alt. Aber weil ich soo viele habe, würde ich die noch 
gerne nutzen. Zur not nur Relais schalten? Direkt am LPT könnte man sich 
ein paar IO´s mehr rausholen. (Erstmal ohne an eine "sinvolle nutzung" 
des Rams denken) Würde die "gemalte" Schaltung so funktionieren? Hab ich 
was vergessen? Ich würde es erstmal per Inpout32.dll + Vb.net versuchen. 
Irgendann evtl an ner Mcu / Net-IO, etc..
Ich will mich damit mal bissle mehr an Steuerungen waagen, wo es auf 
Timings ankommt, und hätte dann ne Libary gebaut. (Nicht lachen, ich 
lerne ja grad noch!) Daten-Ports am LPT sind Bidiretional, Lesen u. 
Setzen geht an jedem der verwendeten Pins. Schnell genug müsste der 
Parallelport + Inpout32.dll auch sein.

Müsste ja eigentlich klappen!!!??? - Oder lieber gleich in die Tonne 
damit?

Autor: Bastler (Gast)
Datum:
Angehängte Dateien:
  • preview image for 2.JPG
    2.JPG
    157 KB, 571 Downloads

Bewertung
0 lesenswert
nicht lesenswert
Und geht dann sowas auch?? (natürlich nicht am LPT!)
Gruß

Autor: Michael_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Interessantes Projekt! Die Schaltungen können funktionieren.
Bei 2.jpg würde ich noch einen Decoder (74LS138) zur Selektierung 
vorsetzen.
Damit können über 3 Leitungen bis zu 8 Chips angesteuert werden.

Autor: Bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael_ schrieb:
> Die Schaltungen können funktionieren.

Also hab ich keine wichtigen Pullups vergessen?
Oder muss irgend ein weiterer Pin auf Gnd / oder sonnst wo hin?

> Bei 2.jpg würde ich noch einen Decoder (74LS138) zur Selektierung
> vorsetzen.

176 IO´s an einem Punkt?
Ich dachte so an 2 bis 4 Chips höchstens. Trotzdem super Tipp, Danke!
Hab allerdings beim initialisieren / einstellen des Chips noch probleme!
Der Parallelport ist warscheinlich doch zu langsam.
Am Net-IO wärs ne feine Sache!
Gruß

Autor: Michael_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Steuerleitungen würde ich mit Pullup nach "H" versehen. Damit bei 
hochohmigen Prozessorpins der Baustein inaktiv bleibt.
Statt dem ls138 kannst du auch einen ls154 einsetzen, dann kann man 16 
Bausteine anschließen.
Die Bausteine sind aber für 2-4 Mhz-Cpu gemacht worden.
Damit könnte man ganz viele LED gtrennt ansteuern.

Autor: Bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael_ schrieb:
> Damit könnte man ganz viele LED gtrennt ansteuern.

Habe mir auch schon überlegt, das ganze für ne LED-Matrix zu nehmen,
und die Teile als Zeilentreiber einzusetzen.
Aber wäre eigentlich schade drum...

Ich bräuchte die eher für IO´s am Net-IO. Ich hoff ich bekomm ne 
komplette Routine/Libary fürn Avr zusammen, um damit die IO´s zu 
erweitern!

Geplant ist, die IC´s in ein neues 19"-Baugruppen-Träger-Kästchen, mit 
Steck-Karten zu setzen. Die hintere "Bus-Platine" wollte ich etwa so 
bauen, wie im 2.jpg. Also 2-4 IC´s auf einer hinteren Platte, von denen 
je 8 IO´s der auf einen "Steck-Karten-Sockel" gehen. Diese Steck-Karten 
werden dann mit je 8 Eingangs- oder Ausgangs-Treibern bestückt, z.B. 
ULN2003, etc. Das ganze soll gesteuert werden mit einem Net-IO, was 
ebenfalls in den Baugruppen-Träger reingesteckt wird. Mit den 
zusätlichen 6 Pins der OKI IC´s auf der hinteren Platine, kann ich evtl 
sogar erkennen lassen, was für ein Steck-Karten-Typ drinnen ist, und von 
der Avr-Software einstellen lassen, die OKI IO´s als Ein oder Ausgang 
laufen sollen.

Bin Leiterplatten-Herstellungs-mäßig ziemlich beschränkt ausgestattet, 
und fast auf 2,54 Loch und Streifenraster angewiesen. :-) Zum glück 
reichts für alles.

Autor: G. O. (aminox86)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, ich denke 'mal, dass keine der beiden Schaltungen wegen des 
ständig auf '0' gezogenen Resetpins vernünftig funktionieren wird.
Um mit dem Baustein überhaupt arbeiten zu können, müssen die internen 
Register zunächst in den Grundzustand versetzt werden, eben durch einen 
Resetimpuls.
Weiterhin ist beim 8155 zu beachten, dass er für den direkten Anschluss 
an den gemultiplexten Adress/Datenbus der Intelprozessoren gedacht ist, 
dh bei Verwendung dieses Bausteins kann das sonst übliche 
Adressauffangregister (Low-Byte) entfallen. Im konkreten Fall muss also 
das ALE-Signal auf zweckmäßige Weise emuliert werden, sonst kann der 
Baustein die Buspegel nicht richtig interpretieren. Das zum 8155 
gehörende Timingdiagramm sollte hierzu Auskunft geben können.
Unter VB wird wohl eine ziemliche Bit-Fummelei notwendig sein, ziemlich 
sportlich ;).

Autor: Bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Anstelle des NetIO´s nehm ich warscheinlich nen neuen Avr, und steruer 
das ganze per RS232, oder sonnst wie :-)

Michael_ schrieb:
> Die Steuerleitungen würde ich mit Pullup nach "H" versehen. Damit bei
> hochohmigen Prozessorpins der Baustein inaktiv bleibt.
> ...

Danke, Super!!!

Michael_ schrieb:
> Die Bausteine sind aber für 2-4 Mhz-Cpu gemacht worden.

Heißt das, dass die auch nur an einer 2-4 Mhz getackteten CPU laufen?
Muss ich dem IC nicht nur im richtigen Zeitpunkt das geben, was der 
braucht, bzw. das was ich will? (Laut Datanblatt-Timings)? Sorry wenn 
ich dumm fragen muss, das ist mein erstes Project dieser Art! Dann wäre 
ich ja zu einem neuem Avr gezwungen, der auf diesem Tackt rennt.

Ich schrieb:
> Ich will mich damit mal bissle mehr an Steuerungen waagen, wo es auf
> Timings ankommt, und hätte dann ne Libary gebaut.

Diesen Oki find ich dafür gut geeignet, bzw. kommt der mir "noch recht 
einfach" vor. Für meine Streifen-Raster-Zwecke außerdem Super geeignet!
Habt ihr noch paar Ideen?

Autor: Bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
G. O. schrieb:
> ...in den Grundzustand versetzt werden, eben durch einen
> Resetimpuls.

Da reicht es doch auch aus, diese Parallel zu schalten, oder täusch ich 
mich gerade!? Zumindest steht im Datenblatt nichts davon, dass nach dem 
Reset irgendwas besonderes folgen muss. (Außer neu Initialisieren / 
Einstellen)

G. O. schrieb:
> Weiterhin ist beim 8155 zu beachten, dass er für den direkten Anschluss
> an den gemultiplexten Adress/Datenbus der Intelprozessoren gedacht ist,
> dh bei Verwendung dieses Bausteins kann das sonst übliche
> Adressauffangregister (Low-Byte) entfallen. Im konkreten Fall muss also
> das ALE-Signal auf zweckmäßige Weise emuliert werden,

Reicht es, sich einfach an die Timings zu halten, und die CPU-IO´s für 
den gemultiplexten Adress/Datenbus immer wieder zwischen Ein- und 
Ausgang umzuschalten??? Ich kann doch einfach alles nach und nach Setzen 
und Lesen!??

G. O. schrieb:
> sonst kann der Baustein die Buspegel nicht richtig interpretieren.

wieso Pegel?

:-)

Autor: Bastler (Gast)
Datum:
Angehängte Dateien:
  • preview image for 3.JPG
    3.JPG
    65,1 KB, 277 Downloads

Bewertung
0 lesenswert
nicht lesenswert
Funktioniert das, mit dem 74LS138 und dem Reset-Pin? Ist nur 
Schematisch.
Die anderen 4 Ausgänge des 74LS138, und die restlichen Pins des AVR 
könnte man mit Sub-D 25 oder ähnlichem zum nächsten "Slave-Rack" führen 
/ bzw noch mehr ranhängen.

Autor: Bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich schrieb:
> Die anderen 4 Ausgänge des 74LS138, ... könnte man mit Sub-D 25 oder
> ähnlichem zum nächsten ...

Sind nur 3 Ausgänge  ;-)
und is ne blöde idee! Besser 3 IO´s vom Avr.

Bastler schrieb:
> G. O. schrieb:
>> sonst kann der Baustein die Buspegel nicht richtig interpretieren.
>
> wieso Pegel?

Meinst du, weil im Moment des lesens der ganze Port der CPU auf H ist, 
oder sowas ??

Autor: Bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh, sind doch 4 Ausgänge. Hab das grad komplett übersehen im 
Datenblatt... "Ah - Da is ja noch einer auf der anderen Seite!" cool
Trotzdem, besser 4 IO´s vom Avr.
Gruß

Autor: Michael_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dein Steuer MC kann höher getaktet sein, nur die Impulse dürfen nicht zu 
schnell sein. Zum Beispiel ein Wait einlegen zwischen Adressen und Daten 
anlegen. Ausprobieren.
Wenn du mehr als vier Bausteine einsetzen willst, wirst du den Datenbus 
über einen zusätzlichen Treiber puffern müssen.

Autor: G. O. (aminox86)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bastler schrieb:
> Bastler schrieb:
>
>> G. O. schrieb:
>
>>> sonst kann der Baustein die Buspegel nicht richtig interpretieren.
>
>>
>
>> wieso Pegel?
>
>
>
> Meinst du, weil im Moment des lesens der ganze Port der CPU auf H ist,
>
> oder sowas ??

Ich meine, dass wegen der internen Struktur des 8155 für die weitere 
Vorgehensweise wichtig ist, ob der Baustein an einem gemultiplexten Bus 
nach Intel-Art hängt, oder ob der 8155 direkt an Mikroprozessorports oä 
betrieben werden soll, so dass das Busprotokoll zwangsläufig emuliert 
werden muß.
Also, direkter Busanschluss oder Bus-Emulation?

Autor: Bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael_ schrieb:
> Wenn du mehr als vier Bausteine einsetzen willst, wirst du den Datenbus
> über einen zusätzlichen Treiber puffern müssen.

Kannst du mir kurz erklähren, wieso das so ist? :-) Und warum ab 4 ?? 
Ich konnte nix anständiges dazu im internet finden...

G. O. schrieb:
> Also, direkter Busanschluss oder Bus-Emulation?

Ich würde den IC direkt mit Mikroprozessorports verbinden, meine 
Vorgehensweise entspräche warscheinlich einer Emulation. Hätte für alle 
Funktionen des IC´s die einzelnen Adress/Datenbus Bits incl des 
ALE-Signals im richtigen Zeitpunkt gesetzt / und auch am Adress/Datenbus 
wieder gelesen. Hab ich direkt am Atmel denn ne andere (und vielleicht 
geschicktere) möglichkeit?

Die Suche nach dem gemultiplexten Adress/Datenbus der Intelprozessoren 
führt mich immer wieder zum PCI-Bus. Das hilft mir aber nicht sonderlich 
weiter... :-)

Bastler schrieb:
> Reicht es, sich einfach an die Timings zu halten, und die CPU-IO´s für
> den gemultiplexten Adress/Datenbus immer wieder zwischen Ein- und
> Ausgang umzuschalten??? Ich kann doch einfach alles nach und nach Setzen
> und Lesen!??

??

Autor: Michael_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Kannst du mir kurz erklähren, wieso das so ist? :-) Und warum ab 4 ??
>Ich konnte nix anständiges dazu im internet finden...
Die vier habe ich nur so angenommen. Früher war es üblich, bei IC die 
TTL-Last anzugeben.
Das heist auf der Treiberseite wie auf der Empfängerseite.
Heute ist es nicht mehr üblich, da es diese IC-Gräber nicht mehr so oft 
gibt.
Auch ein MC-Ausgang kann nur eine bestimmte Anzahl Eingänge treiben, 
ohne das ein Signal verfälscht ist.

Autor: Tim S. (freak_ts) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael_ schrieb:
> bei IC die TTL-Last

Achsoooooo!!! Wegen dem Innenwiderstand / etc und der Stromaufnahme der 
Pins.  :-) Hab schon einen Schrecken bekommen. OK
Echt super, Danke!!!

Autor: Jadeclaw (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bastler schrieb:
> Ich würde den IC direkt mit Mikroprozessorports verbinden, meine
> Vorgehensweise entspräche warscheinlich einer Emulation. Hätte für alle
> Funktionen des IC´s die einzelnen Adress/Datenbus Bits incl des
> ALE-Signals im richtigen Zeitpunkt gesetzt / und auch am Adress/Datenbus
> wieder gelesen. Hab ich direkt am Atmel denn ne andere (und vielleicht
> geschicktere) möglichkeit?

ATMega8515 und andere mit Datenbus für externen Datenspeicher, diese 
stellen die passenden Signale schon zur Verfügung.

Gruß
Jadeclaw.

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.