Nochmal ordentlich Zeit ins Layout gesteckt aber heute bestellt:
Die SO20 Chips sind auch auf dem Weg. Mal schauen wie es sich löten lässt. Immerhin bin ich seit ~2008 an der Idee dran...
Nochmal ordentlich Zeit ins Layout gesteckt aber heute bestellt:
Die SO20 Chips sind auch auf dem Weg. Mal schauen wie es sich löten lässt. Immerhin bin ich seit ~2008 an der Idee dran...
*teaser*
Jetzt wird es ernst!
Sehr spät geworden, deswegen versuche ich mich kurz zu fassen.
Zuerst habe ich nur die LEDs zur Überprüfung der Spannungen eingelötet und diese off-cam am Bastelnetzteil via Schraubklemmen geprüft. Soweit so gut.
Dann hab ich mir das nächst beste Board geschnappt und das mit dem ATX2AT converter gestartet. Dabei habe ich alle einstellbaren Limits runtergedreht. 12V = 0A
Der Plan ist ja einen Computer auf Basis des ISA Bus zu machen. Sprich Spannungen wie ISA aber der Rest eigen. Oder im. Umkehrschluss; Wenn keine Pullup/Pulldown oder Chips drauf sind sollte die Platine keinen Stress auf nem ISA Bus machen. Hat geklappt - alle Spannungen da.
12V = 20mA = 1 LED. Passt.
Jetzt noch ein bisschen Fleißarbeit hinterher.
Ich hab Rev1 erstmal nur mit Resten bestückt, dabei sind mir aber die 100nF Kondensatoren für die Treiber aus gegangen...
Da ich auf 74HCT baue kann ich die aber nicht weg lassen, denn bei CMOS sind die dringend empfohlen.
Also schnell die VFD Anzeigenplatine abernten.
Da ich keins dieser fancy made-in-china Universalprüfdinger habe auf Risiko. Die Platine ist guter Qualität, also haben die hoffentlich auch gute Kondensatoren eingesetzt.
Nachdem alle R, C und LED verlötet waren nochmal der Stresstest am ungesicherten Bastelnetzteil; 5V und gefühlte unendlich Ampere drauf rotzen. Kein Kondensator ist explodiert - Schwein gehabt.
Als nächstes kommen nun die SMD Chips und noch ein paar Stift- und Sockelleisten drauf, dann kann schon eine CPU aus dem Tiefschlaf geholt werden.
Todo für die Rev 2 ist auf jeden Fall:
Die ganzen 3k3 Widerstände ebenfalls durch ein paar Arrays ersetzen, die Schraubklemmen für die Nebenspannungen weg (Routing und Symbole sind ok), die Footprints der Cerkos überarbeiten, die Footprints für die Stift- und Sockelleisten überarbeiten und die Platine etwas ansehnlicher gestalten.
Mal eben einen Computer bauen...
Jaja.
---
Die letzte Woche war geprägt von einer durchaus erheblichen Erkältung und von Rückschlägen.
Mein Workaround bezüglich der "sekundären" Signalerzeugung für Reset und Clock war Piggipack-Platinen zu machen. Diese mit Pfostensteckern und -buchsen auf der Platine zu verbinden damit ich beim routing der CPU keine Klimmzüge machen muss.
Der Pinabstand ROT ist 11 Beinchen á 2.54mm. Das war einfach-so gewählt aber dumm. Diese Pfostenbuchsen bekommt man easy in 10-Pin-Abstand - aber nicht in 11. Da musste ich also was tricksen, vor allem auf der linken Seite.
Auf der linken Seite ist die 3-Beiner-Platine (Clock) mit nur 3 Pins. Da es nur 3 sind ist das einbauen des Oscillators behindert, denn dann kippt die Platine oben links aus der Leiste wenn man den Osci einbaut.
Die Pins ORANGE sind ok (auch ohne zusammenfassen) weil die Platine für die Resetlogic 4 Beinchen hat.
Generell werde ich für REV2 die Pinreihen um 1 reduzieren und auch immer mindestens 4 Beinchen je Platine nutzen. Diese müssen aber so geschaltet werden, dass man beim vertauschen der Platinen nix grillt.
Ich wollte einen DIL8 Oscillator einsetzten. Aber alle die ich mal geerntet habe sind kaputt Also musste ich mir erstmal einen DIL8 -> DIL14 Adapter löten und diesen aufsetzten.
Bei der Suche auf einen funktionierenden Oscillator musste ich mir erstmal einen Testaufbau mit dem 2^14 Divider/Zähler (74*4060) basteln damit mein Billig-Oscilloscop den Oscillator erkennt. Das DSO138 kann max 200khz - deutlich zu wenig für 8mhz.
Den größten Zeitfresser hat mich aber diese kalte Lötstelle gekostet. Durch Try-and-Error kam ich irgendwann drauf das der Sockel ein Problem hat.
----------------------------------
Bei der Suche nach einem Oscillator bin ich auf einen 74*629 in meinem Fundus gestolpert. Ein VCO den ich sogar ans laufen bekomme habe. Den habe ich mir nun so zusammengebaut, dass ich mit der Ausgangsfrequenz und dem 74*4060 auf 1Hz runterkomme um die CPU mit maximaler langsamkeit zu betreiben.
Ah, und noch ein Fail hinterher:
Ich habe hatte einen TL7705A Voltagesupervisor im Fundus, der das Resetsignal erzeugt.
Finde ich nicht mehr.... Der TL7705A kann aber auch easy mit einer Drahtbrücke umgangen werden. Ist aber doof, da der 7705A einen entprellten RES-IN hat - auf diesen möchte ich nicht verzichten.
Also:
Erstmal auf eBay 2 DIL8 Oscillatoren und 10 TL7705A gekauft
Melde gehorsam: eine Siemens SAB80186A CPU in die ewigen Jagdgründe geschickt.
War heute bei meinem Arbeitgeber im Büro und habe die gehobene Ausstattung hier genutzt. Mehrere Oszilloskope mit 2 bis 4 Kanälen, Frequenzgeneratoren, gute Lötkolben, Lupen für auf die Nase etc.
Die SMDs habe ich ziemlich schnell gelötet bekommen. Die dünnen Spitzen die wir hier haben und die 5x Brille mit Beleuchtung haben da geholfen.
Danach habe ich mir einen PGA68 Sockel aus diversen DIL14 zusammengeschustert. Heiden arbeit und sieht richtig kacke aus. Das muss auf jeden Fall in Rev2 besser werden.
Die voltagesupervisor sind angekommen und ich konnte meine Reset-Platine vervollständigen.
Nachdem die Platine fertig war and Labornetzteil und langsam den Strom an der 5v Schiene hoch; 0.05A - passt. Ein paar Käfer und ne LED.
Dann die CPU rein und nochmal: 0,4A - passt.
Dann ans Eingemachte:
Frequenzgenerator auf 1khz (Quarze sind noch nicht da), CPU in den Sockel und los. Hm. Nix passiert. A0 bleibt Low, BHE bleibt Low, S0 bis S2 zucken nicht.
CPU raus und die 3 üblichen am Sockel geprüft; Spannung, Clock und Reset. Aha! Reset (aktiv Low) wird nicht high. Einen widerstand auf der Platine vergessen Der 7705A zieht Reset zwar runter, aber hochschieben muss ich ihn persönlich. Gemacht - tuts.
CPU wieder rein, und: siehe da mein Testpoint ALE zuckt einmal. DEN auch, aber DT/R nicht. Komisch.
Ok, ich habe ja leider keinerlei busdingens dran, sprich die CPU ließt die ganze Zeit 0000 0000 0000 0000 am Datenbus. Illegal opcode, es gibt keine Vektoren für den Interrupt (auch alles 0), Register sind alle im unbekannten Zustand und so weiter. Doof.
Fluchs das Handbuch gezückt und den Opcode für NOP gezückt. 10010000 - tschäk. NOP (NO oPeration) sorgt dafür, dass die CPU einmal alle Adressen durchzählt (also 0x0 bis 0xFFFFF) und dann, im Befehlszähler eine Adresse weiter springt. Heißt: ich müsste freudige Aktivität auf dem Adressbus mit dem Oszilloskop sehen.
Da ich keine backplane hier habe sehr quick und erheblich dirty meine ISA-Karte aangelötet
Aber nix ist. CPU wird warm, aber meine Adresspins bleiben stumm.
Nochmal ausmachen, anmachen und Reset festhalten. Reset los gelassen und *plopp* Labornetzteil in die 5A Sicherung gesprungen. Hä? CPU angefasst und Finger verbrannt. Nochmal angemacht und Amperemeter springt auf 1.2A.
Tjoar, schade. CPU endgültig tot.
Und die Ursache?
Vermutlich war die CPU schon halbtot. Jetzt ist sie ganz tot
Ein paar Tage sind vergangen und ich habe die Gedanken mal fliegen lassen bzw. was ganz anderes gemacht.
Dummerweise hats die CPU ins Jenseits geschickt. Das die CPU einen weg hatte kann sein - will ich aber nicht aus Ausrede nutzen. Und einen "echten" Intel 186 will ich nicht grillen.
Deswegen erstmal n Teststation bauen. Der schöne scorp hatte mir mal ein paar ISA Slots für zum rumlöten ausgelötet. Einer dieser ist nun mit abgeknipsten Widerstandsbeinchen verlängert und in ein Steckbrett gesteckt.
Jetzt werde ich mir erstmal die CPU-Karte ansehen und fucking jedes Signal von der CPU bis zum Bus prüfen. Juchu
Hättest du mal was gesagt ich habe ne ISA Risercard da die hättest du verwenden können...
Danke, aber eine ISA Risercard kann ich nicht brauchen.
Wie oben geschrieben brauche ich eine ISA Backplane, weil die Spannungen vom ISA-Stecker kommen. Siehe: https://de.wikipedia.org/wiki/…ia/Datei:ISA_Bus_pins.svg . B1, B3, B5 etc nutze ich zur Spannungsversorgung der Karte.
Du hättest dir halt das verlängern der Pins sparen kömmen, hättest an der Risercard messen können die ist doch 1zu1 verbunden...
Korrekt...
Hm. War trozdem geil 1h mit Lupe, mini-Schraubstock und krummem Rücken die Dinger an zu löten.
Ui. Ärger. Und zwar erheblichen
Ich bekomme das Board (bzw. eine gesteckte CPU) nicht ans laufen. Anbei ist ein Video vom CLK-OUT Signal der CPU. CLK-OUT ist 1/2 der CLK-IN Frequenz (1MHz Quarz steckt, also 500kHz auf CLK-OUT).
vid-20230413-070216016_IA0YHNQq.mp4
Kann mir jemand sagen was das für ein Verhalten ist? matze79 ? Hoom ? root_42 ? scorp ? Ich bei leider viel zu wenig Elektriker (elektronik-CAD mensch) um zu verstehen was passiert.
Der Schaltplan zu dem Signal sieht wie folgt aus: CPU-CLK-OUT -> Inverter1 (7404) -> Inverter2 (7404) -> Bus
Ich schiebe das Signal 2x durch einen Inverter damit ich einen Treiber zwischen der CPU und dem Bus habe. Und damit die Timings stimmen halt 2x invertieren.
---
Um mich auch ein wenig mit den Input/Outputs der CPU zu beschäftigen suche ich gerade Schematics bzw. Schaltpläne von Dingen mit 80186 CPU. Ich muss mir mal abgucken wie andere das damals gebaut haben. Gefunden habe ich bisher:
Hat jemand noch mehr Dinge wo ich nen 80186 Circuit sehe?
Gestern Abend wollte ich was posten, da hatte struuunz gerade mal eben den DR-Server neu gestartet. Und ich dachte die Scheiße geht von vorne los
Dann also heute morgen:
Nach ein bisschen Brainstormen ist mir eingefallen was Adrain (YT Adrian Digital Basement) immer betet: "The CPU need Power, Clock and Reset". Und ich brauche Ersatzteile.
Also mal ein paar 80186 mitgenommen. Dann habe ich mir meinen Clock-Gen vorgenommen und zusammengestaucht. Denn ich habe zu wenig Platz auf den Steckbrettern. Und es sah vorher scheiße aus.
Der 74*629 ist ein doppel VCO und der 74*4060 ein 14Bit Zähler. Im VCO mache ich Takt und im Zähler wird der runtergeholt. Da wo ich die Gabel drin steckt (Bit14 vom Zähler) kann ich runter bis auf 1Hz. Als nächstes das Netzteil einjustieren. Ich habe die tote CPU genommen und den Strom auf 0,5A begrenzt damit mir keine weitere CPU abraucht.
Wie man sehen kann habe ich die CPU ebenfalls an Kabeln hängen. Da ich (zu diesem Zeitpunkt) noch nicht weiß wo der Fehler liegt mache ich es freifliegend. Die CPU wird nur mit dem nötigsten angeschlossen und gemessen. Also ran an den Speck.
Wie man oben an der Bilderreihe sieht habe ich auf einer neuen CPU einen Stromgebraucht von 0.37A auf 5V. Ist ganz schön viel Energie-Leistung für nix an Rechen-Leistung Ich habe mich dann langsam rangetastet bis ich einmal CLK aus dem Taktgenerator und CLKOUT aus der CPU zusammen hatte. Denn dann ist auf dem Silizium was los. Interesanterweise ist CLKOUT aktiv auch wenn !RESET low ist. Wird im Datenblatt nicht explizit erwähnt macht aber Sinn.
Nachdem ich die CPU am zucken hatte, habe ich mir den Pin S0 vorgenommen. Der zeigt (mit S1 und S2) den Status der CPU an. "State decoder" ist da die richtige, kaum übersetzbare, Beschreibung. Das Osizilloskop hab ich auf Singleshot eingestellt und mal geguckt was passiert wenn !RESET high geht. Oha. S0 zuckt. Geilomat, CPU lebt. Natürlich nur kurz denn die bekommt nur Müll aufm Datenbus und schmiert dann ab. Wichtig zu wissen ist: Damit die CPU irgendwas macht braucht man HOLD (auf GND) und !RESET (auf VCC). Wenn HOLD schwebt ist essig mit CPU.
Bum. Und dann ernüchterung. Aus dem Taktgenerator kommt nur Müll, aus der CPU nur müll.
Was habe ich gemacht? Ich habe den Sockel auf der Platine dazwischen geschaltet. Sprich:
VCO -> CLK Platine -> CPU Sockel -> CPU (via Kabel)
Heißt also: Das Problem liegt entweder an der CLK Platine oder an der Karte/am Sockel
Gestern Abend wollte ich was posten, da hatte struuunz gerade mal eben den DR-Server neu gestartet. Und ich dachte die Scheiße geht von vorne los
sorry! kommt nicht mehr vor
Ja, Clock-Erzeugung ist … empfindlich. Das auf ein extra Board zu bauen bringt sehr viele Möglichkeiten, dass es irgendwelche Störungen gibt, das Grounding falsch zu machen, parasitäre Kapazitäten einzubauen, etc.
Also Analog/HF-Fehler, die nichts mit der digitalen Theorie zu tun haben.
Warum hängst du keinen 74LS138 an den Statusbus?
Weil es - außer der CPU und den nötigen Parasiten - nichts auf der Karte gibt.
Das ist ja - grob gesagt - ein SBC. Nur das die Karte nichts weiter hat außer die CPU und Signalverwurstel-Chip.
Die nächste Karte wird eine Art Port80 Karte mit 74*138 und ein paar Hexanzeigen die auch einen ArduinoNano Steckplatz hat. Dann kann man Status'se sehen und z.b. einen HOLD und Reset über den ArduinoNano schicken.
Heißt auch: ab dann muss ne Backplane ran.
AAAAAAARGH!
Ich werde wahnsinnig. Zuerst habe ich einen Kondensator am Ausgang des Oszillator entfernt den ich fälschlicherweise dort eingebaut hatte. Sowie dieser entfernt war funktionierte (ja, Vergangenheit!) zumindest die CPU im Sockel.
Der Adress und Datenbus war zwar still aber immerhin ging was an clockout und ALE etc.
Dann hab ich ein paar Chips durchprobiert (vor allem CMOS Varianten) und seit dem:
Tote Hose. Wieder Resonanzfrequenzen an clockout der CPU und kein erwachen mehr.
Ich werde wahnsinnig. Morgen löte ich erstmal die zweite Platine. Dann aber erstmal ohne Treiber/Latches (also ohne SMD geschisse) und teste von vorne an.
Das geht mir ja mal so richtig auf die Nüsse das Ding.
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!