Die kranke Weihnachtsbastelei: Prozessortakt mit Poti stufenlos regeln von 1 bis 33 MHz

  • Ich habe mir die Moeglichkeit gewuenscht, die Geschwindigkeit meines DOS-486 stufenlos mit Potentiometer (Drehregler) einstellen zu koennen.

    Idealerweise von PC 8088/4.77 bis 486/66, um mit einem Rechner alle Games spielen zu koennen.


    Die Schaltung:


    Maximalprimitiv, koennte man sagen. Nicht mehr als man unbedingt braucht, um ein vorzeigbares 50:50 Rechtecksignal zu erzeugen.

    Da ich es nicht als erfreulich empfand, als vor vielen Jahren der Funkpeilwagen der Bundespest vor meiner Haustuer parkte, habe ich einen Einschleuseverstaerker geschlachtet und davon die Drosseln und das Gehaeuse recycelt.

    Leider schafft es die LSTTL-Reihe nur bis 20 MHz (40 ungeteilt), und deshalb habe ich AS-Chips verwendet.


    Der Aufbau (Gehaeuse offen):


    Unten rechts die F-Buchse habe ich ausgebohrt (6.5mm), da passt eine 6mm Poti-Achse wunderbar durch.

    Das Gewinde mit dem Cutter ein wenig abgeschnitzt. Das steckt gut fest, wenn mans reindrueckt.

    War ein wenig Fummelei das Ganze, aber lieber sauberes Signal als Peilwagen.


    Und hier in Funktion full speed 33MHz

    hier auf Minimalspeed (900kHz)


    Vom Display habe ich wohl den Chip angeschossen, sieht aus als waeren oberes horizontales und oberes rechtes vertikales Segment kurzgeschlossen.

    Habe aber bereits ein neues bestellt fuer 3 Euro, wird wohl im Januar kommen.


    Werde das Display auf 3 Stellen kuerzen und mitsamt dem Oszillator in ein ausgeweidetes CD-Laufwerk einbauen.

    Fotos davon gibts demnaechst in der Fortsetzung.

  • Das ist Aufgabe des Chipsatzes.

    Wenn es nicht mit dem vorgesehenen HT340 Chipsatz funktioniert, dann muss ich einen SiS Green Chipsatz nehmen. Die koennen lt Datenblatt/Programmierinformation bis zu 2MHz runtergetaktet werden.


    Edit: das ist das, was an diesen Chipsaetzen "green" ist... bevor die CPUs selbst Powermanagement bekamen.

  • Ich glaube auch nicht, dass das klappt. So flexibel sind die Teiler im Chipsatz nicht. Die Entwickler der Chipsätze haben nicht vorgesehen, dass da ein Takt von nur 4,77 MHz anliegt, selbst 8 MHz dürfte den Chips suspekt sein. Wahrscheinlich kannst du bei 900 KHz den ISA-Takt von Hand locker mitzählen... - wenn der Taktteiler im Chip überhaupt noch funktioniert. Ich verstehe auch nicht, was du mit einem 486er bei 4,77 MHz willst, der wird immer noch nicht Zyklengenau zu einem 8088 sein, sondern immer noch schneller, weil er eine viel bessere Chiparchitektur hat. Schon ein 80286 ist bei gleichem Takt schneller als ein 8086.


    Wahrscheinlich ist ein damit ausgestatteter PC sogar zu langsam, um Disketten zu lesen, weil ja auch der Floppycontroller mit an den Taktteilern hängt.


    Der Trend geht da einfach in Richtung Zweit-PC, in dem Fall dann ein XT. In eBay Kleinanzeigen ist eine ganz tolle Olivetti M24 SP drin, die wird dir aber auch deinen Wunsch nach Original-XT-Speed nicht erfüllen könnnen, denn da ist ein 8086 mit gigantischen 10 MHz drin. Aber die Maschine ist jeden Cent wert, ich hab ja auch eine.


    Trotzdem, eine nette Frequenzgenerator-Bastellei, kann man sicher für das eine oder andere gebrauchen, auch weils große Teile des hörbaren Spektrums abdeckt.

    1ST1

  • Zwischenbericht:


    Habe einen fliegenden Aufbau gemacht, um mal zu testen, wie der Rechner (Am486DX2 auf Headland HT340 Chipsatz) mit dem Ding klarkommt.



    Das Koaxkabel an den DIL-Quarzoszillatorensockel anzubringen, war schon ein wenig Fummelei mit exotischen Bastelteilen.

    In der ganzen Konstruktion gibt es zwar keine Termination, aber zwei Schottky-Dioden sind drin, um Ueber- und Unterschwinger zu begrenzen.




    Nachdem ich die Datentransferrate vom AHA-1542 auf 3.3MB/sec runtergesetzt habe, funktioniert Plattenzugriff bis zu eiinem Takt von 4.8MHz.

    Die Schwelle, ab wo von Platte gebootet werden kann, liegt offenbar irgendwo zwischen 8 und 10 MHz, darunter haengt der Rechner beim SCSI Inquire.

    Starten tut der Rechner jedenfalls auf 4.8 MHz, aber bereits der Speichertest ist arschlangsam :)

    Wenn man unter 3.3 MHz dreht, dann haengt Rechner.


    Auf 4.8 MHz gibt Norton 4.50 SI als Leistungsfaktor im Vergleich zum XT 2.0 an.

    Und der Prozessor entwickelt fast keine Waerme mehr... hat keinen Kuehlkoerper und mit dem Finger draufgefasst fuehlt er sich bei diesem Takt kaelter an als n 8088.

    Muss mal den 486/DX2 durch einen normalen ersetzen und dann nochmal gucken, inwieweit man auf XT speed kommen kann.


    Etwas geht also schon. Man kann bei laufendem Betrieb die Geschwindigkeit stufenlos tunen. ::pc::

    Aber leider nur bis ca. XT Niveau :S


    Fazit: bis jetzt Semi Success, Semi Fail...



    Der neue Counter fuers Speed-Display und die rotgetoente Frontplatte werden wohl erst naechstes Jahr eintreffen.

    Bis dahin wird noch diese nuetzliche Schaltung fuer den Einschub gebastelt, um das Problem mit den alten Adaptecs zu loesen, dass man das Bootlaufwerk nicht wechseln kann (Skizze, Reinzeichnung kommt noch):



    (Update folgt)

  • Könnte man mit so einem Teil auch den Systemtakt auf einem Board regeln, sagen wir ausgehend von 33 MHz auf 25/20/16/12/10 MHz - klassisch halt, wo sich das nicht per Jumper oder DIP-Switches festlegen lässt?


    PS: als mindestens von 33MHz auf 25MHz bspw

  • 1ST1

    Das will ich auch bald testen :)

    Und wenns da Schwierigkeiten geben sollte, waer auch nicht so schlimm. Muesste man dann eben den Takt hochdrehen, wenn man auf Diskette, CD oder Netz zugreifen will.


    Bezueglich des 486/66, da gehen die Meinungen auseinander. Das Ding wird bei 33 MHz furchtbar heiss, obwohl er von einem 40mm Serverluefter 12V 1A aus 7cm Entfernung angeblasen wird. AMD hat auf spaeteren 486/66 ja auch den Aufdruck "HEATSINK AND FAN REQD" angebracht, von daher gehe ich davon aus dass Kuehlkoerper und Luefter aus Sicht von AMD notwendig sind.


    escimo

    Wenn nur feste Frequenzen benoetigt werden, waere ein Clockgenerator sinnvoll.

    In den Boards dieser Aera ist der Avasem AV9107-04 verbreitet (siehe S. 389 im angehaengten PDF).


    Man kann dessen Frequency Select Eingaenge steuern.

    Das macht entweder der Chipsatz oder wird direkt von den Taktfrequenz-Jumpern gesteuert.

    Wenn Du also den Takt in einem solchen PC modden willst, pruefe erstmal, ob die Jumper direkt den Clockgen Chip ansteuern. Wenn ja, dann koenntest Du da einfach Schalter statt Jumper anbringen und den Takt nach Gusto im laufenden Betrieb umschalten.

  • Aus der Zeit gibt es eine CPU Versuchsbaureihe, die manchem hier gefallen könnte: läuft unter dem Suchstichwort AMULET. Zusammen mit Steve Furber sollte man da noch was dazu finden können.

    -- 1982 gab es keinen Raspberry Pi , aber Pi und Raspberries

  • Update:


    Diskette laeuft bis 8MHz, darunter Error (wohl DMA).

    Da mir die Programmierinfo fuer den H340 fehlt, kann ich nicht testen ob man das durch Aendern des DMA-Timings fixen koennte.

    IDE laeuft bis der Rechner haengt (beim Am486DX wenn man unter ~3.3 MHz runterdreht).


    Habe dann den Prozessor getauscht gegen i486-50.

    Peripherie laeuft genauso wie mit dem AMD-Prozessor, nur leider haengt nun der Rechner bereits bei unter 3.8MHz.


    Sollte mir wohl mal nen AMD einfachgetakteten 486 besorgen und mit dem testen.

    Rein subjektiv hat der Rechner bei 4.8 MHz nun ungefaehr den Geschwindigkeitseindruck "Ur-PC" .


    Fazit: Fuehlt sich gut an.

    Koennte m.E. hinhauen, dass man darauf Zaxxon fuer PC spielen kann.


    Werde den "Prozessor-Tuner" fertigmachen als 5.25 Einschub und dann den Rechner einrichten.

    Wenn er dann immer noch zu schnell sein sollte, kann man ja noch Cache ausschalten u.dgl, oder ein SiS Green PC Board testen.



    ThoralfAsmussen

    Taktlose CPU, interessante Idee. Eine Art "taktloser Chipsatz" waer hier die Loesung :)


    1ST1

    Nuja zum Olivetti M24, da gibts n paar Dinge... der Apparat war halt inkompatibel, zum Spielen so gut wie unbrauchbar.

    Die Hardware ist lebensgefaehrlich *schauder* und der Bildschirm ist eine spiegelnde, flimmernde Halbkugel *graus*.

    Und, betreffend die Optik, ich fand damals den Panafacom Duet-16 ansprechender als den Olivetti. Aber der war noch inkompatibler.

    Schliesslich kaufte ich mir nen langweiligen aber einigermassen kompatiblen Klon...


    Retro-PCs moechte ich heute aus Platzgruenden nur zwei: einen regelbaren 486 fuer DOS-Spiele und fuer DOS und Windows 4 einen Pentium Tualatin (im IBM-AT-Gehaeuse, an Stelle des weggeworfenen IBM-Mobo).

    Ja, ich gebs zu... als Frevler bin ich kein Kandidat fuer den ehrwuerdigen Verein zur Erhaltung... :roll:

  • Auf der M24 läuft eigentlich alles, außer manches hardware nahe Floppytool ud die 8088MPH Demo, die aber wirklich eine harte Nuss ist, wegen der IBM CGA-Karte, wo ein paar spezielle Tricks benutzt werden. Die M24 war der erste PC, der als richtig XT-kompatibel bezeichnet werden kann, der erste PC nicht von IBM auf dem Flightsim II und Lotus 1-2-3 problemlos lief.

    1ST1

  • Das kann ich jetzt nicht beurteilen.

    Freunde von mir hatten seinerzeit eine SW-Entwicklungsfirma und fluchten oft ueber die Inkompatibilitaet ihrer M24.

    Wenn ich mich richtig erinnere, lief z.B. TurboPascal nur in der ANSI-Version, aber nicht in der nativen PC-Version.

  • Hallo 6502,


    kurios, gestern Abend habe ich angefangen, einen Frequenzteiler in mein Midicom mit Intel 8085 einzubauen und heute finde ich Deine Weihnachtsbastelei!


    Das was Du da gebaut hast, ist genau das was ich eigentlich realisieren will. Mir fehlt aber mindestens das nötige Hochfrequenz Know How.

    Deswegen habe ich mit einem 74hc4420 angefangen, um zu sehen, wie weit runter ich komme mit der Frequenz. Für mein Projekt sollte der Prozessor, Speicher und die direkt angebundenen IO-Chips möglichst bis zum Stillstand runtergeregelt werden können.
    Beim Systemstart, Terminalbetrieb und beim Floppyzugriff darf es gern der Standardtakt von 3 Mhz sein.


    So wie ich Dich verstanden habe, gibt es bei Deinem 486 kein Problem, den Takt mitten im Betrieb auf ein zehntel der Ursprungstaktung zu drehen, oder? Die zentralen Komponenten passen sich dem Prozessortakt an.


    Was müsste ich an Deiner Schaltung anpassen, um von 2x3Mhz=6Mhz bis x kHz regeln zu können?


    Gruss Aquarius

  • Da würde ich LSTTL nehmen (weniger HF-Abstrahlung). HCT dürften auch gehen.

    Und die Werte vom RC-Oszillator verändern (vllt 100R und 100pF - probieren, was am besten passt. Entweder steckbar oder Trimmer/Poti.


    Die Frage des unterstmöglichen Takts hängt davon ab, ob alle Sachen statisch sind. Meiner ungenauen Erinnerung nach heisst es, dass der i8085 dynamisch ist (also innere Speicher DRAM und nicht SRAM). Er braucht also einen Mindesttakt zum Refresh des internen Speichers.

    Da würde ich einfach schauen, ab wie langsamgedreht der Rechner instabil wird.


    Das ist auch der Grund, warum ich einen Am486 suche, die sind, glaube ich, statisch. Vielleicht kann man die noch niedriger takten als den Intel :)

    Mit vollstatischem Prozessor, Peripherie und SRAM kann der Takt bis zu DC runtergesetzt werden (in der Praxis z.B. wichtig zum Stromsparen).


    Wegen der Abstrahlung empfielt sich, die Schaltung abzuschirmen, sobald es an den Dauerbetrieb geht.

  • Das was Du da gebaut hast, ist genau das was ich eigentlich realisieren will. Mir fehlt aber mindestens das nötige Hochfrequenz Know How.

    Deswegen habe ich mit einem 74hc4420 angefangen, um zu sehen, wie weit runter ich komme mit der Frequenz. Für mein Projekt sollte der Prozessor, Speicher und die direkt angebundenen IO-Chips möglichst bis zum Stillstand runtergeregelt werden können.
    Beim Systemstart, Terminalbetrieb und beim Floppyzugriff darf es gern der Standardtakt von 3 Mhz sein.

    Das wird mit einem 8085 nicht gehen - Das ist ein NMOS-Prozessor und der fängt ab einer gewissen minimalen Frequenz einfach an, Dinge zu vergessen und zu "spinnen". Laut Datenblatt soll er mit mindestens 1 MHz versorgt werden und läuft dann mit halbem Quarztakt - also 500kHz.

    Was du stattdessen machen kannst, um die CPU noch langsamer laufen zu lassen, ist den Prozessor mithilfe des HOLD-Signals zwischen Befehlen anzuhalten und entsprechend "die Handbremse anzuziehen" - Die Bussignale zwischen den HOLD-Zyklen sind dann allerdings genauso schnell wie ohne Handbremse.

  • Fazit: Fuehlt sich gut an.

    Koennte m.E. hinhauen, dass man darauf Zaxxon fuer PC spielen kann.

    Obwohl ich rein technisch von diesem Projekt nur "Bahnhof" verstehe, finde ich das Ganze doch wirklich sehr interessant ! :thumbup:

    Trotzdem muss ich mal an dieser Stelle fragen ob die erhältiche Software, Namen "MOSLO" nicht den selben Dienst erweisen könnte ? :nixwiss::grübel:

    Aber abgeshen davon finde ich, dass Jungs und Mädels wie Ihr, überhaupt solche Bastelprojekte macht :thumbup:

  • tofro

    1MHz und nicht langsamer? Das ist aber schade. Der 6502 ist auch NMOS, und statisch, mit dem ginge das...


    blinddarm

    Leider gehen nicht alle Spiele zusammen mit Moslo usw.

    Aber die Kombination mit Slowdown-Software interessiert mich auch.


    Wie bereits bei den Tests festgestellt, funktioniert das Wesentliche (ausser Floppy) auf dem Mobo meines 486 bis herunter zu 4.77 MHz.

    Will man den PC noch deutlich langsamer als PC/XT bekommen und feinregulieren, dann bietet sich an, mit Slowdown-Software eine Mindestgeschwindigkeit einzustellen, die dann durch Drehen des Potis nach Geschmack weiter verringert werden kann.

  • Ich bombardiere Euch mal mit Zitaten und Fragen:


    Laut Datenblatt soll er mit mindestens 1 MHz versorgt werden und läuft dann mit halbem Quarztakt - also 500kHz.

    Wo hast Du die Info her?


    Mein 8085 ist von Mitsubishi Typ M5L8085AP.


    Hier Infos aus der Herstellerdoku ab S.226:


    Zitat

    N-channel silicon-gate ED-MOS process

    Sagt das etwas über SRAM oder DRAM aus?


    Zitat

    Instruction cycle: M5L8085AP, S: 1.3 us (min)

    Heißt das 770 kHz Mindestfrequenz für den Prozessortakt oder ist das für die Frage der tiefsten möglichen Frequenz irrelevant?


    6502 Bei Deiner Schaltung sind wir in Fig.7 nehme ich an. Sind die Werte für R und C dann so zu konfigurieren?



    Die Frage des unterstmöglichen Takts hängt davon ab, ob alle Sachen statisch sind. Meiner ungenauen Erinnerung nach heisst es, dass der i8085 dynamisch ist (also innere Speicher DRAM und nicht SRAM). Er braucht also einen Mindesttakt zum Refresh des internen Speichers.

    Gelten die Register auch als "Speicher"? Ich sehe sonst keine Speichermöglichkeit.




    Mein angebundener Speicher sind Toshiba TC5564APL-15, was laut Datenblatt CMOS ist.

    Hält dieser RAM Speicher seinen Inhalt auch bei stehendem Prozessor?

    Fully static operation


    Ich denke mal schon, statisch bezieht sich darauf, dass er nicht dynamisch aufgefrischt werden muss.

    Was du stattdessen machen kannst, um die CPU noch langsamer laufen zu lassen, ist den Prozessor mithilfe des HOLD-Signals zwischen Befehlen anzuhalten und entsprechend "die Handbremse anzuziehen" - Die Bussignale zwischen den HOLD-Zyklen sind dann allerdings genauso schnell wie ohne Handbremse.

    Das wäre dann Plan B! Standgas plus Handbremse.

    Funktioniert HOLD immer? Oder kann das durch bestimmt Instruktionen gesperrt werden wie die normalen Interrupts?

  • Funktioniert HOLD immer? Oder kann das durch bestimmt Instruktionen gesperrt werden wie die normalen Interrupts?

    Funktioniert immer. Das Signal ist dazu gedacht, dass andere Chips den Bus übernehmen können. Die CPU macht den aktuellen Befehl noch zuende, und bleibt dann stehen - mit hochohmigen Ausgängen

  • Aquarius

    Die Oszillatorschaltung ist eine andere als die des 8085. Der 74AS00-Oszillator braucht da andere Werte, halt probieren.


    NMOS oder CMOS, das spielt keine Rolle. Statische und dynamische Speicher gibts in beiden Technologien.

    Statische Speicher sind Flipflops, dynamische bestehen aus Ladekondensatoren.


    Und da sind wir halt bei der grossen Unbekannten... wie langsam darf der Refresh sein?

    Die Reserven bei DRAM sind im allgemeinen gewaltig. In Experimenten zeigte sich, dass mitunter dynamische Speicher ihren Inhalt sekundenlang halten können.

    Die 8085er-Ladekondensatoren, welche die Register "im 8085 speichern",können ja jeden Takt refreshed werden, dürften also viel kleiner sein.

    Da bleibt nur testen, ausprobieren.

    Sollte es allerdings einen pinkompatiblem 8085-Klon geben, der statisch ist, würde das damit wohl gehen.

    Die NEC V-Chips z.B. sind statisch.


    Ansonsten eben eine im Prinzip ähnliche Hold-Schaltung bauen...

  • Vielen Dank für Eure Antworten. Da muss ich mich noch weiter reinfuchsen.

    Also wenn alle Stricke reißen, kann ich mich auf jeden Fall an der HOLD-Methode festhalten ;)


    Habe versucht die Frequenzteilerschaltung mit zwei 40 Pin Sockel unter dem 8085 "einzuschleusen".

    Pin 1 und 2 jeweils nach außen geführt, um das Signal des Quarzes raus und die neuen Frequenzgeteilten Signale in den 8085 reinzuführen.


    Hat so noch nicht funktioniert. Werde morgen mal das Oszi dranhängen und mir die Signale anschauen.

  • Die Frage des unterstmöglichen Takts (...)

    Das ist also der neue "weniger ist mehr"-Ansatz!? - O.K. Ich verstehe eh nur Bahnhof. Trotzdem interessant. Weitermachen! :thumbup:


    Aber sollten denn bei den "ausgewachsenen" Prozessoren der i486-Ära die internen Register nicht alle statisch, d.h. über Flip-Flops, realisiert sein? Ich kann mir nicht vorstellen, dass man da dynamischen Speicher (Ladekondensatoren) verbaut hat, schon allein wegen des internen Cache von 8kB nicht. Ist mir ein Rätsel, auch wo der Unterschied da beim Am486 sein soll. Mit diesem Detail habe ich mich einfach noch nicht befasst. :nixwiss:


    Eines der 486-Mainboard hier bei im PCD-4H (D756) hat zumindest von den Jumpern her die Möglichkeit 20-40 MHz Systemtakt über den von dir ( 6502) weiter oben angegebenen AV9107-05 sicherzustellen, weiterhin über das BIOS noch eine Einstellung zum "SPEED SELECT" von HIGH auf LOW. Beim D458 fehlt so ein Frequenzgenerator und anstelle wurde ein 33MHz Oszillator für den CPU-Takt verbaut. Da wäre es doch fast die einfachste Variante einen anderen Oszillator zu verlöten bspw. einen 25MHz oder einen Sockel, dann könnte man gleich flexibel wechseln. Nur an den Multi-Layer Boards löte ich nicht gern, eigentlich generell nicht. Mir fehlt da einfach noch die Übung. Wird schon. ::solder::

  • Als AMD ihren 486 rausbrachten, warben die meiner Erinnerung nach u.a. mit dem vollstatischen Aufbau, dass man den zum Stromsparen bis auf 0 runtertakten könne, was mit dem i486 nicht gehen solle.


    Der Cache im i486 ist ja statisch, aber die Register eben nicht. Kostete halt ein bisschen weniger in der Herstellung. Keine Ahnung warum die das so machen. Das bisschen Mehrkosten bei der Strukturgrösse dürfte gering sein.


    Den Quarzoszillator auszulöten, das habe ich bei Multiayerboards immer so gemacht: Die beiden Beinchen an einer Schmalseite angeheizt und wenn alles heiss genug (nicht zu früh, aber auch nicht zu lange rumbraten), dann das Teil ein wenig rausgehebelt. Dann die andere Schmalseite, immer abwechselnd. Am Ende lassen sich die Löchermeist einfach reinigen. Am besten an Schlachteplatinen üben, um ein Gefühl dafür zu bekommen.


    Aber beim Oszillatorchip... aua.

    Da gibts bei fehlendem multilayertauglichem Entlötwerkzeug nur Beinchen abknipsen.

    Aber leider ist der Chip nicht mehr erhältlich :(

    Und dann kommt noch die Lage auf dem schönen Soyo-SiS-Board dazu...


    Muss mur da noch was einfallen lassen, um mit diesem Board zu testen

    • Offizieller Beitrag

    Also wenn alle Stricke reißen, kann ich mich auf jeden Fall an der HOLD-Methode festhalten

    Der HOLD ist eigentlich mehr für DMAs und/oder Multiprocessor Systeme gedacht.


    Einfacher dürfte das READY Signal sein (WAIT beim Z80). Damit kannst du jeden Maschinenzyklus einzeln anhalten.

    Schau dir mal die Signalanzeige beim MFA an, da ist sowas eingebaut. Mit Single-Step und Adresstrigger.