hmm wie kommt man auf sowas ?
80186 Selbstbau-Computer -> Fortschritt in Kiloherztakten
-
-
Hauptschule nach 10. Klasse ohne Quali. Ist ne prägende Phase
-
Naja ich bitte dich darum das Wort nicht mehr im Forum zu verwenden.
Ist nicht böse gemeint aber es könnten sich da auch Leute dran stören.
-
ok
-
Natürlich noch was vergessen:
Da wir SRAM benutzen (55ns / 18MHZ) brauchen wir ja noch n Batteriepuffer. Dabei setze ich auf ne CR2032 und den ICL7673 - die beiden SRAM brauchen je 1uA im Standby, der ICL max 5uA. Bei 200mAh Batteriekapazität also entspannte 28.000 Stunden bzw. 3,2 Jahre. Da die Batteriekapazität den Drop von 3V auf 2V angibt, die SRAM aber mindestens 2,7V brauchen dritteln wir die Dauer und landen bei einem Jahr Datenerhaltung.Nun sind 2 Platinen fertig - aber wir können immernoch nichts damit machen. Denn wir bekommen keine Daten auf die SRAMs
-
Der 80186 (und 8086) sind Schummel-16bit-CPUs. Eigentlich ein 8 Bitter, der aber 2 getrennte 8-Bit Adress & Datenbusse hat. Einmal das Lowerbyte und das Higherbyte. Heißt: Die ALU gönnt sich erst Daten aus 0-7, wechselt dann in den "high" Modus und schiebt die nächsten 8 Bit nach. Befehle (wie z.b. NOP) die nur 8 Bit brauchen, nutzen in dem Fall das Higherbyte nicht.
Ach. Das ist interessant! (Satz ist mit dem Wort "Schummel" überhaupt erst verständlich und auch gleich viel weniger beleidigend ). Erklärt ziemlich gut, warum ein 8088/80188 so einfach funktionieren kann, danke!
Überhaupt alles mega interessant!
-
Korrekt.
Weniger beleidigend.Auch korrekt ist das mit den 80x88ern. Die sind viel einfacher an zu schließen, weil die nur 8 Bit haben. Kein rumgedrisse mit A0 und !BHE und daraus resultierend immer mit 2 Bausteinen. Dafür brauchen sie aber teils deutlich länger, weil ein 16bit Befehl (oder einer der mehr Daten benötigt) nur in 8Bit breite geladen werden kann - das zieht die Dauer der Ausführung halt deutlich in die Länge.
-
-
Und auch hier ein bisschen Fortschritt.
Die Arduinokarte ist zumindest rudimentär fertig.
Der Plan ist, dass der Mega2560 wie eine CPU agiert - sprich auf den ISA-Bus schreiben und lesen kann. Also ne Adresse anlegt und Daten sendet/empfängt.
Aber der Mega hat immernoch zu wenig pins. Für die Betrachtung beachten: Der Mega wird "kopfüber" auf die Platine gesteckt, sodass der Resetknopf zur component-side guckt - dafür das Loch, damit man den Knopf drücken kannIch muss nun herausfinden, ob die AnalogPins am Mega echte AnalogPins sind oder nicht - denn ich könnte noch so 10 digitale gebrauchen um etwas mehr als nur Daten Schreiben/Lesen zu können.
-
Schieberegister ?
Du brauchst eigentlich nur 3 Pins.Dann kannst du 74HC595 kaskadieren und damit beliebig rausschieben.
-
Die analog Pins kannst du als ganz normale i/o benutzen. Programmierbar wie die anderen ports.
Nachtrag: das gilt auch für andere Dinge wie UART, spi usw. Das sind in der Regel nur zusätzliche Funktionen die nur über diese bestimmten Anschlüsse machbar sind. Wenn du die jeweilige funktion nicht benötigt sind es Standard i/o.
-
Schieberegister ?
Du brauchst eigentlich nur 3 Pins.Dann kannst du 74HC595 kaskadieren und damit beliebig rausschieben.
Geile Idee
Für die Datenleitung ist das irr-Elefant, weil die Bidirektional ist. Aber die Adressgenerierung kann ich damit massiv entschlacken
-
Oh, das mit dem Arduino Mega klingt ganz wie etwas, was ich schon mal gemacht habe:
Using an ISA VGA card on an AVR \ VOGONS
Ich warne dich aber bereits vor: der Code ist gut genug, um eine Soundkarte, POST-Karte und Netzwerkkarte zu betreiben, aber nicht für eine Grafikkarte.
Das liegt vermutlich an falschen Timings, ich habe den Arduino-Code aber nicht mehr repariert sondern bin direkt auf einen STM32 gewechselt.
Hier spielt jedenfalls der Arduino Mega über eine OPL3-Karte Musik:
Externer Inhalt www.youtube.comInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.Die STM32 Platine konnte später immerhin auch vom Rechner (PCem) einen echten ISA-Bus nutzen:
Externer Inhalt www.youtube.comInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.Vielleicht kannst du dir vom Sourcecode was abgucken...
Spannendes Projekt hast du da vor!
Viel Erfolg
Manawyrm
-
Geil. Das mit dem Code schiebe ich jedoch an jemand anderen
Ich bin sozusagen der Hardwareentwickler - das schieben von 1en und 0llen überlasse ich der Softwareabteilung
---
Außerdem ist unser Computer nicht x86 basiert, dass heißt dieses Signalwürfeln für den ISA-Bus tuen wir uns nicht an. Siehe dazu vor allem die Seite 2 dieses Threads. Ich nutze mechanisch ISA weil man dafür Backplanes bekommt und alle möglichen Spannungen durch das Netztteil geliefert werden
-
Oh, das mit dem Arduino Mega klingt ganz wie etwas, was ich schon mal gemacht habe
Ja Adlib hat ja auch keinen nennenswerten Datenstrom.
Macht aber kein DMA oder ?
-
Ja, genau, kein DMA und schön langsam. Genau richtig für USB 1.1 😄
-
Schieberegister ?
Du brauchst eigentlich nur 3 Pins.Dann kannst du 74HC595 kaskadieren und damit beliebig rausschieben.
Geiler Typ Du bist!
Durch die Schieberegister als Adressdemultiplexer habe ich nun:
- Todesrouting entspannt zu easy business
- von 4 auf 2 Layer runtergekommen
- 50% an Chips gespart
- 100% aller "ISA"-Anschlüssen am Arduino - ohne irgendwelche Treiber dazwischen
- und immernoch 8 Arduino-Pins frei
Sehr geil!
Einziges Manko: Ich kann nicht im "Stealth Modus" die Adressen die auf dem Bus anliegen mitlesen.
Wenn Du eine Idee hast, matze79 , wie ich 21 Adressleitungen auf 8 Arduinos gemultiplext bekomme - immer her damit. Das mit den Registern war eine megageile Idee
-
du kannst auch Portexpander benutzen. Als Beispiel pcf8574
Damit bist du dann auch bidirektional unterwegs.
Gibt es auch als 16 Bit
https://www.reichelt.de/i-c-bus-i-o-erweiterung-16bit-pdip-28-mcp-23016-i-sp-p89338.html
Oder mit einem 8255. Der hat 3x8 programmierbare i/o. Das wäre dann auch Recht retro
-
Der 8255 hat leider nur 2 Ports. Und er braucht 8 Daten und diverse Steuerleitungen, sprich ich bräuchte 2 Stück - und circa 12 freie Leitungen am Mega.
Der Portexpander wiederrum braucht i2c, die Leitungen am Mega hab ich aber schon verwurstet.
---
Gibt es nicht einen Chip der ein "rückwärts Schieberegister" ist? Sprich der stumpf die anliegenden Daten ins serielle übersetzt?
Dann käme ich mit den 8 Pins hin
-
i2c machts halt komplizierter.
Es gibt auch Parallel zu Serial Register.
Dann kannst du alle Adressen abhören.
Benötigt halt noch mal 3 Pins.
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!