Forum: Mikrocontroller und Digitale Elektronik [Projekt] A80186 Computer selber gebaut


von Robert W. (dreamteam)


Lesenswert?

Hallo liebe Forengemeinde,

ich habe mich mal angemeldet, wenn ich auch seit circa einem halben Jahr 
mitlese.

Ich bin 26, Maschinenbaustudent, und bin eigentlich immer am Schrauben. 
Entweder an meinem fast-Oldtimer oder mit meinem Vater zusammen an 
irgendeinem Heim-Projekt. Mein Dad hat seinerzeit Informatik studiert, 
und seine Diplomarbeit auf einem selbtgebauten 8086 Computer, mit 
20Zeiliger 7Seg. Anzeige, geschrieben.

Ich habe vor einer Zeit auf dem Flohmarkt ein paar alte Chips, unter 
anderem den 80186 gefunden und mit Vattern den Plan geschmiedet sowas 
nocheinmal zu bauen. Meine Erfahrungen in der digitalen Welt sind eher 
gering (7 Seg. Anzeige ansteuern klappt durchaus) und Vatters Lötkünste 
gehen nur noch mit div. Lupen vorran; also bilden wir das DreamTeam :)

Was haben wir (bzw. ich als treibende Kraft) geplant:

Einen Sandwitchcomputer:
- CPU Platine
- Memory
- I/O
- Display

Das Display haben wir in den vergangenen Wochen zum laufen bekommen. Es 
ist ein EDT 240x128 mit T6963C Controller. Wir steuern es per BitWhacker 
an:
http://www.youtube.com/watch?v=Q_4ew8RoLeQ

Der Plan, ist auch weiterhin, mit dem BitWhacker zu arbeiten. Er soll so 
lange die ersten Bit Code in das BootRom vom 80186 schreiben, bis wir 
den Schirm und eine Tastatur stand-alone betreiben können. Vattern sagt, 
das es danach nur noch fleißarbeit ist.

Da ich selber noch nie einen Rechner gebaut habe, und Vatters geschichte 
24 Jahre zurück liegt, habe ich mich angemeldet um Tipps und Erfahrungen 
anderer zu sammeln, bevor wir irgendwo vor die Pumpe laufen.

Bis bald,
Robert + Vattern

P.S: Über Sinn oder Unsinn braucht nicht diskutiert zu werden ;) Es geht 
sich nur darum "weil wir es können". Wofür der gebaute Computer 
eingesetzt werden soll, steht noch in den Sternen.

von nocheinGast (Gast)


Lesenswert?

Klingt interessant ;) Aber weißt du, wieso keine Antworten kommen? Du 
hast keine Frage gestellt...

von Anja (Gast)


Lesenswert?

Robert Winkens schrieb:
> Tipps und Erfahrungen anderer zu sammeln,

Solange kein Systemkonzept vorliegt kann man auch nicht meckern.
Ich selbst hatte damals (TM) enorme Schwierigkeiten das I/O-Timing trotz 
Waitstates für die Peripherie bei 12 MHz Systemtakt für Worst Case 
Auslegung korrekt hinzubiegen. (Setup und Hold times).

Gruß Anja

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Es ist vermutlich nicht die dümmste Idee, am Anfang etwas in der Art der 
BIOS Aufrufe der IBM PC zu mimicken, z.B. Int 10 für Videozeugs. Das 
ganze basiert ja auf den Soft Interrupts, die eure Prozessorfamilie 
prima unterstützt.
Wenn ihr alles richtig macht, könnte irgendwann sogar mal FreeDOS oder 
so überlegenswert sein. Viel Spass.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Eventuell wäre so ein Projekt interessanter: 
Beitrag "AVR-ChipBasic2 - BASIC-Computer mit ATMega 644"

Es sei den es geht dir hauptsächlich ums löten, Problem ist doch du hast 
ein paar alte Chips "gefunden", ob die überhaupt jemals nochmal das tun 
und nicht ggf. aus defekten Geräten stammen kann keiner sagen. Da 
"Erfahrene" und/oder Mitstreiter zu finden bei solch alten Schinken ist 
auch eher zweifelhaft.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Matthias Sch. schrieb:
> Es ist vermutlich nicht die dümmste Idee, am Anfang etwas in der Art der
> BIOS Aufrufe der IBM PC zu mimicken

Da das BIOS des PC im Quelltext aufzutreiben* ist, dürfte es sogar 
möglich sein, das als Grundgerüst komplett zu übernehmen.


*) IBM hatte das damals im Technical Reference Manual abgedruckt, das 
war deswegen ein ziemlicher Wälzer.
http://www.minuszerodegrees.net/manuals/IBM_5155_5160_Technical_Reference_6280089_MAR86.pdf

von Robert W. (dreamteam)


Lesenswert?

Guten morgen zusammen,

das im Moment es kaum Antworten geben wird, denke ich mir. :)

Es geht immer nur Häppchenweise vorran, da der Alltag für und beide ja 
auch noch existent ist.

Ich beschäftige mich derzeit mit der Planung und Verlötung der CPU 
Platine und die dafür nötigen Grundkenntnisse. Also Sachen wie Latches, 
Treiber, Quarz, Bussignale u.s.w.

Ich habe mich entschlossen, den Bus des Rechners auf zwei 40Pol. IDE 
Kabel zu legen. Die Kabel kosten nichts und sind Standartware. Wenn ich 
mehr als 3 Abgriffe brauche kann ich bei Conrad und co. die Stecker 
nachbestellen, die man an die Kabel klemmen kann.


Eine Frage steht mir aber derzeit im Kopf rum:

Brauche ich unbedingt Treiberbausteine? Vater meint, dass der Prozessor 
genügend Ampere für circa 10 TTL Bausteine liefert. Sprich, das der 
Datenbus parralel an 10 Teilnehmer (Speicher, Bildschirm) angeschlossen 
werden kann.

Da wir viele Speicherbausteine haben, würden wir die Treiber nur auf 
dieser Einsetzten, damit die Signale lokal auf der Speicherplatine 
verstärkt werden.

An den Treiber an sich soll es nicht liegen, von denen habe genügend, es 
würde nur die CPU-Platine deutlich weniger dicht bepackt lassen.

Grüße :)

von (prx) A. K. (prx)


Lesenswert?

Robert Winkens schrieb:
> Brauche ich unbedingt Treiberbausteine?

Das hängt von der Länge des Busses und der kapazitiven Last ab. Bei 10cm 
und überschaubarer Anzahl Anschlüsse pro Leitung ist es egal. Bei einem 
50cm IDE-Kabel sollte man jedoch mit zur Leitung passenden Abschlüssen 
arbeiten, sonst können hässliche Reflexionen die Signale durcheinander 
bringen. Und dafür sind leistungsstarke Treiber auf allen Karten am Bus 
nötig.

Der Wert von 10 Inputs pro Output gilt für die Strombelastung alter 
TTLs, die konnten nicht mehr Strom. Bei MOS Bausteinen spielt weniger 
der Strom als vielmehr die Verzögerung durch kapazitive Last eine Rolle. 
Sowohl Pins wie Leitungslänge stellen eine solche Last dar. Daumenregel: 
10pF pro gesockeltem Pin und 100pF pro Meter.

Bitte dran denken, dass die Leitungen auf den Karten mitzählen, wenn 
direkt am Bus hängend. Das beispielsweise ist ein Grund, weshalb man bei 
Bussystemen nicht nur die Ausgänge einer Karte mit Treibern versieht, 
sondern auch die Eingänge.

M.a.W: Die Sache mit den IDE-Kabeln ist vielleicht keine so gute Idee. 
Selber quetschen auf einige Zentimeter Länge pro Abschnitt dürfte 
summarum billiger sein, als lange IDE-Kabel mit Bustreibern und 
-abschlüssen.

von Robert W. (dreamteam)


Lesenswert?

A. K. schrieb:
> Robert Winkens schrieb:
>> Brauche ich unbedingt Treiberbausteine?
>
> Das hängt von der Länge des Busses und der kapazitiven Last ab. Bei 10cm
> und überschaubarer Anzahl Anschlüsse pro Leitung ist es egal. Bei einem
> 50cm IDE-Kabel sollte man jedoch mit zur Leitung passenden Abschlüssen
> arbeiten, sonst können hässliche Reflexionen die Signale durcheinander
> bringen. Und dafür sind leistungsstarke Treiber auf allen Karten am Bus
> nötig.

Ist das der selbe Effekt wie bei den alten SCSI Karten bzw. BNC-Netzen? 
Dort musste auch immer ein Widerstand bzw. ein Abschlussstecker auf das 
Ende.


> M.a.W: Die Sache mit den IDE-Kabeln ist vielleicht keine so gute Idee.
> Selber quetschen auf einige Zentimeter Länge pro Abschnitt dürfte
> summarum billiger sein, als lange IDE-Kabel mit Bustreibern und
> -abschlüssen.

Du meinst also, das Flachbandkabel á Meter zu kaufen, und das Busskabel 
so kurz wie möglich zu halten, um genannte Reflektionen zu minimieren? 
Würde ich dann nur Treiber an der CPU Platine benötigen?

Grüße

von (prx) A. K. (prx)


Lesenswert?

Robert Winkens schrieb:
> Ist das der selbe Effekt wie bei den alten SCSI Karten bzw. BNC-Netzen?
> Dort musste auch immer ein Widerstand bzw. ein Abschlussstecker auf das
> Ende.

Ja. Und zwar an beide Enden.

> Du meinst also, das Flachbandkabel á Meter zu kaufen, und das Busskabel
> so kurz wie möglich zu halten, um genannte Reflektionen zu minimieren?

Ja.

> Würde ich dann nur Treiber an der CPU Platine benötigen?

Beim bidirektionalen Datenbus bringt es nichts, nur die CPU-Karte mit 
Treibern zu versehen, die anderen Karten aber nicht. Da gilt also 
alles-oder-nichts, entweder überall oder nirgends.

Bei unidirektionalen Leitungen ist es eine Frage der summierten Länge, 
der Anzahl angeschlossener Bausteine und dem benötigten Zeitverhalten, 
ob man an der Quelle Treiber benötigt oder nicht.

von Robert W. (dreamteam)


Lesenswert?

Jap, das mit dem Bidirektional viel mir auch gerade ein, ich konnte aber 
nicht mehr editieren. :D Macht ja wirklich keinen Sinn, nur einem 
Teilnehmer Treiber zu verpassen.

Vielen dank schonmal dafür. Dann werde ich auf die Alles-Methode 
zurückgreifen und überall Treiber verwenden. Wenn auch Löt-, Schalt- und 
Prüfaufwendiger erspare ich mir hier die Fehlerquelle der Reflektionen.

bzgl. der Zeiten:
Ich weiß, das ab einer bestimmten Taktfrequenz die Reaktionszeiten der 
Bausteine eine Rolle spielen. Ich dachte an die Try-and-Error Methode; 
sprich mit kleinen Quarzen an zu fangen und so lange den Takt erhöhen, 
bis der Rechner nicht mehr bootet.

Grüße

von (prx) A. K. (prx)


Lesenswert?

Zu Bussen und Abschlüssen: Wellenwiderstand

von Spess53 (Gast)


Lesenswert?

Hi

>Zu Bussen und Abschlüssen: Wellenwiderstand

Mach mal nicht die Pferde scheu. Ich kenne noch die alten Boards mit 
80286 drauf und 12MHz Takt.

@ Robert Winkens (dreamteam)

Fall du Zugriff auf ältere Jahrgänge der Zeitschrift Funkamateur hast: 
1989/90 gab es eine mehrteilige Bauanleitung eines XT-Rechners. War zwar 
mit dem 8086 aber der 80186 ist ja nicht weit weg davon.

MfG Spess

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Im von mir hier Beitrag "Re: [Projekt] A80186 Computer selber gebaut" 
verlinkten "Technical Reference Manual" des IBM PC ist auch dessen 
Schaltplan enthalten.

Weitere Varianten (XT, AT, XT/286 etc.) finden sich hier: 
http://ibm-pc.org/manuals/ibm/ibm.htm

von Anja (Gast)


Lesenswert?

Robert Winkens schrieb:
> Da wir viele Speicherbausteine haben,

Ich weiß ja nicht was Ihr vor habt aber 2 RAM und 2 EPROM/FLASH 
Bausteine sollten bei heutigen Speicherdichten für mehrere Personenjahre 
Code reichen.

Das hätte dann den Vorteil daß man einen lokalen High-Speed Bus für den 
Prozessor und den Speicher ohne Waitstates generieren kann.

Den Peripheriebus braucht man meist eh nur 8 Bit-weise und mit 
Waitstates.
Da kann man dan auch locker einen Treiber spendieren.

Speicher hat meist nur eine seeehr begrenzte Treiberfähigkeit im 
Vergleich zum Prozessor.

Gruß Anja

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Anja schrieb:
> Den Peripheriebus braucht man meist eh nur 8 Bit-weise und mit
> Waitstates.
> Da kann man dan auch locker einen Treiber spendieren.

Muss man irgendwo eh machen, weil der 80186 einen gemultiplexten 
Adress/Datenbus hat, den man an einer Stelle auffusseln muss. Wenn man 
da kräftige Bustreiber a la 374 oder 574 nimmt, hat man genügend Fan-Out 
um ca. 50 TTL Bausteine zu treiben. Nimmt man dann statischen RAM in den 
heute verfügbaren Grössen, und einen Flash fürs 'BIOS' ist man 
eigentlich schon fertig (o.k., es fehlt noch ne Tastatur, zugegeben). 
Dann noch ein paar ISA Slots und die Kiste läuft, hehehe.

Rufus Τ. Firefly schrieb:
> Im von mir hier Beitrag "Re: [Projekt] A80186 Computer selber gebaut"
> verlinkten "Technical Reference Manual" des IBM PC ist auch dessen
> Schaltplan enthalten.

Cooles Handbuch, ich habs mir natürlich geladen, danke für den Link. 
Habe hier übrigens noch einen 286er auf Europakarte im PC-104 Standard. 
Vllt. schmeisse ich den mal mit FreeDOS an, denn das dumme Ding hat DR 
DOS im EPROM.

von Anja (Gast)


Lesenswert?

Matthias Sch. schrieb:
> hat man genügend Fan-Out
> um ca. 50 TTL Bausteine zu treiben.

Aber nur für die Adressen.
Das Problem sind die 2-4mA die die RAM-Bausteine an den Datenleitungen 
maximal treiben können.
Auf jeden Fall lohnt es sich mehrere sinnvolle Konfigurationen vom 
Timing und Treiberverhalten durchzuspielen und dann die beste für den 
Anwendungsfall herauszusuchen. Ein wildes drauflosbasteln führt nacher 
bei der Integration zu langen Gesichtern.

Gruß Anja

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Anja schrieb:
> Auf jeden Fall lohnt es sich mehrere sinnvolle Konfigurationen vom
> Timing und Treiberverhalten durchzuspielen

Anja, wir reden hier von maximal 16 MHz CPU Takt :-) Ich hab sogar nur 8 
MHz Rechner mit dem 80186 gefunden. Wenn da noch 2 Stück '245 als 
Datenbustreiber dran sind, geht das alles ohne Probleme.

von Soul E. (Gast)


Lesenswert?

In den alten c't- und mc-Ausgaben gab es genug derartige Projekte. Ich 
erinnere mich an den DPAC-88, das war ein kleines 8088-System mit zwei 
ISA-Slots.

Die rictig alten c't-Hefte kosten auf DVD 15 Euro.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Matthias Sch. schrieb:
> Wenn man da kräftige Bustreiber a la 374 oder 574 nimmt

Bustreiber im eigentlichen Sinne sind das aber nicht. Da verwendet man 
doch besser 541 bzw. bei Datenleitungen 245.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Ich zitiere mal aus dem TI Datenblatt:
"These 8-bit registers feature 3-state outputs designed specifically for 
driving highly capacitive or relatively low-impedance loads. The 
high-impedance 3-state and increased high-logic-level drive provide 
these registers with the capability of being connected directly to and 
driving the bus lines in a bus-organized system without need for 
interface or pullup components.These devices are particularly attractive 
for implementing    buffer registers, I/O ports, bidirectional bus 
drivers, and working registers."
Da es flanken- (374) oder pegelgetriggerte (373) Latches sind, eignen 
sie sich direkt, um den Adress- vom Datenbus zu trennen. Und richtig 
Dampf machen sie eben auch.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Wir reden da etwas aneinander vorbei. Sofern ein Latch in der 
jeweiligen Anwendung sinnvoll ist, kann es natürlich einen Bus treiben, 
aber man wird keine Latches verwenden, um einen bidirektionalen 
Datenbus anzusteuern.

von Robert W. (dreamteam)


Lesenswert?

Hallo zusammen,

um die Diskussion mal in "meine" Richtung zu lenken, lege ich mal den 
Plan auf, den wir uns vorhin für die CPU-Platine ausgedacht haben.

Wir nutzen 2x 40PIN um mit der Außenwelt zu kommunizieren.
Hier ist die Steckerbelegung mal als .xls zu lesen:
https://dl.dropbox.com/u/39031888/Bussystem%20v1.xls

Der Plan dahinter steht, per BitWhacker, nach vollendeter Verlötung, die 
Funktion der CPU-Platine zu prüfen. Um ein, absolut rudimentäres, 
Programm ablaufen lassen zu können, haben wir alle dafür benötigen 
Signale auf einen 40Pol. geschaltet.

Folgende Bausteine werden wir auf der CPU Platine verwenden:
A80186
TL7705 Rest- und Spannungprüferbaustein
SN74AL573 Latch
SN74AS244 Treiber
ggf. noch AND, OR oder Inverter um Signale passend zu machen. Aber das 
sehen wir, wenn Adress und Datenbuss erstmal vefügbar sind.

von Anja (Gast)


Lesenswert?

Matthias Sch. schrieb:
> Anja, wir reden hier von maximal 16 MHz CPU Takt :-) Ich hab sogar nur 8
> MHz Rechner mit dem 80186 gefunden. Wenn da noch 2 Stück '245 als
> Datenbustreiber dran sind, geht das alles ohne Probleme.

Einfaches Rechenbeispiel:
EPROM mit max. 100ns Zugriffszeit. (Reichelt 27C2001-100)
2*74LS245 Datenbustreiber mit max. 40ns tpg (Datenblatt TI)
Summe max. 180ns Zykluszeit

Speicherzugriff ohne Waitstates beim 80C186 und 12.5 MHz (25MHz Quarz) = 
2 Takte = 160 ns. -> mindestens 1 Waitstate notwendig.
Und das ganze ist noch ohne Adressdecodierung + Setup und Hold times 
gerechnet.
Bei Speicher lokal auf dem CPU-Board fallen die 2*40 ns weg. -> 0 
Waitstates.

Ich weiß: es gibt auch schnellere Treiber. Allerdings braucht man dann 
schon bei wesentlich kürzeren Leitungen Leitungsterminierungen, falls 
diese flankensensitiv sind, bzw. Maßnahmen gegen Übersprechen.

Gruß Anja

von (prx) A. K. (prx)


Lesenswert?

Robert Winkens schrieb:
> Wir nutzen 2x 40PIN um mit der Außenwelt zu kommunizieren.
> Hier ist die Steckerbelegung mal als .xls zu lesen:

Ohne jede Masse auf den beiden Bussen?

Solange man noch die Wahl hat: Hochfrequente Signale (Takt) zwischen 
Leitungen legen, die Übersprechstörungen nicht übel nehmen.

Zum 74AS: Je schneller der Treiber, desto grösser die Probleme mit 
Leitungen.

von Robert W. (dreamteam)


Lesenswert?

Jap, Ground ist hinzugefügt! Danke für den Hinweis!

Das Risiko des Übersprechens werden wir eingehen. Der Prozessor kommt 
mit max. 10MHZ daher, das heißt der Bus wird nicht annähernd so schnell 
befeuert werden.

Wie oben schon beschrieben, wollen wir auch erst mit ganz kleinen 
Frequenzen anfangen und uns dann an die Funktionsgrenze (CPU oder 
Bussystem steigt aus) herantasten. Das ist natürlich die 
Holzhammermethode. Steigt die Kiste bei 2MHZ CPU Takt aus, werden wir eh 
alles neu machen müssen.

von (prx) A. K. (prx)


Lesenswert?

Robert Winkens schrieb:
> Das Risiko des Übersprechens werden wir eingehen. Der Prozessor kommt
> mit max. 10MHZ daher, das heißt der Bus wird nicht annähernd so schnell
> befeuert werden.

Aber das Taktsignal CLKout. Darauf wollte ich raus.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Anja schrieb:
> Einfaches Rechenbeispiel:
> EPROM mit max. 100ns Zugriffszeit. (Reichelt 27C2001-100)
> 2*74LS245 Datenbustreiber mit max. 40ns tpg (Datenblatt TI)
> Summe max. 180ns Zykluszeit

Anja, ich will mich nicht streiten, aber kein Mensch nimmt heute noch 
EPROM. Hab gerade mal ein paar Flashbausteine rausgesucht, und da gibts 
ohne jede Beschaffungsprobleme Zugriffszeiten von 55 oder 70ns.
Ich hab mir hier vor einiger Zeit ein DSP Board mit dem historischen 
TMS32C025 (100ns Cycle) gebaut und die beiden 128k Static RAMs mit 55ns 
werden da ohne jeden Waitstate direkt vom TMS angesteuert.

von Robert W. (dreamteam)


Lesenswert?

A. K. schrieb:
> Robert Winkens schrieb:
>> Das Risiko des Übersprechens werden wir eingehen. Der Prozessor kommt
>> mit max. 10MHZ daher, das heißt der Bus wird nicht annähernd so schnell
>> befeuert werden.
>
> Aber das Taktsignal CLKout. Darauf wollte ich raus.

Du hast natürich recht! Jetzt weißt Du warum ich/wir hier das Projekt 
vorstellen.

Auch absolut richtig, CLKOUT bekommt seine Sonderstellung auf Bus2.

Danke für den Hinweis.

von Viktor N. (Gast)


Lesenswert?

Ich habe anno '82 einen 8086 gebaut. Mit 4MHz getaktet. Damals erschien 
die Rechenleistung derart gigantisch, dass eine schnellere Taktfrequenz 
nicht mal in Betracht gezogen wurde. Als Vorlage diente das iAPX86 
Manual von Intel. Es lief mit einem 8x40 LCD, mit Hex-Editor fuer das 
RAM. Wenn denn ein Programm, sprich Firmware mal lief wurde der 
Programmteil ins EPROM programmiert. Compiler gab's noch nicht, der ASM 
von Intel war viel zu teuer. Also von Hand mit dem iAPX86 Instruction 
Manual die Opcodes heraussuchen, Adressen einsetzen und per Hexschalten 
eingeben. Alles auf Papier. Irgendwann im '85 gab's dann einen IBM PC 
Clone fuer 5000Fr. Mit 8088. Das war's dann fur mein Projekt.

Wenn ich was helfen kann...

von Robert W. (dreamteam)


Lesenswert?

Hallo ihr,

ich habe anbei mal den fertigen Schaltplan für die CPU Platine gehängt.

Verwendendete Bauteile sind:
-A80186 CPU
-TL7705 Spannungsüberwachung
-EC3A24B Spannungsversorgung
-2 Mäuseklaviere um (noch) nicht genutzte Eingänge auf LOW zu ziehen
-Restettaster

Ob ich den CLKOUT wirklich auf den Bus lege, weiß ich noch nicht. Ich 
wüsste nicht welcher Baustein das bräuchte.

Die erste Platine, die ich bereits angefangen habe zu verdraten, werde 
ich nochmal neu machen, wenn da auch ein paar Stunden arbeit über den 
Jordan gehen.

Als nächstes entsteht die zweite Platine, welche die AD-Signale 
auftrennt und Treibt. Deswegen werden diese PINs, und ihre Steuerpins, 
auf den Übertragungsbus übertragen.

Der Plan hat sich folgendermaßen verändert:
Die CPU-Platine besteht aus zwei Platinen. Steuerung und div. Schalter 
unten, Adress- und Datenbus oben. Von da aus geht es dann mit 3 
Bussystemen (Spannung, Adress+Daten und Steuerung) zu den nächsten 
Platinen. Eventuell packe ich das Boot-ROM noch direkt auf die zweite 
Schicht der CPU-Platine.

Schaltplan:
https://www.dropbox.com/s/p27j7v5jkrea40c/Schaltplan.pdf
Bestückungsplan:
https://www.dropbox.com/s/pq9xyysstkwjvoq/Best%C3%BCckungsplan2.pdf

Wenn jemand einen groben Fehler findet, oder Tipps zum bessermachen hat, 
immer her damit.

Grüße,
wir Zwei

von (prx) A. K. (prx)


Lesenswert?

Je ein Blockkondensator direkt an den CC/GND-Paaren der CPU wär schon 
sinnvoll.

Inputs wie INTx, DRQx und HOLD einzeln per Widerstand auf inaktiv 
setzen, sofern das nicht in der CPU der Fall ist.

von Helmut L. (helmi1)


Lesenswert?

Reset vom TL7705 zur CPU braucht einen Pullupwiderstand.

von Svenska (Gast)


Lesenswert?

Hallo,

MS-DOS ist grundsätzlich portabel programmiert und braucht nur eine 
8086-kompatible CPU und ein paar KB RAM ohne Löcher. Die Struktur ist 
ähnlich wie bei CP/M mit BIOS (IO.SYS), BDOS (MSDOS.SYS) und CCP 
(COMMAND.COM), wobei nur IO.SYS an die Hardware angepasst werden muss. 
Es gab z.B. ein sehr gut dokumentiertes SDK von Microsoft, um MS-DOS 
3.30 auf einen eigenen Rechner zu portieren.

Damit erspart ihr euch ein aufwändiges BIOS und müsst euer System nicht 
IBM-kompatibel machen. Dafür funktionieren Programme, die 
BIOS-Funktionen oder direkte Hardwarezugriffe machen, nicht.

Wenn ihr euch für das Bussystem auf IDE-Kabel eingeschossen habt, dann 
benutzt 80-polige Kabel. Da sind zusätzliche Masseleitungen drin, um 
Übersprechen zu verhindern. Messt die aber vorher durch, oder legt eure 
Masseleitungen an die gleiche Stelle wie bei IDE. :-)

Gruß,
Svenska

von (prx) A. K. (prx)


Lesenswert?

Was ist denn das schlecht erkennbare Gewusel an AD7/BHE?

von (prx) A. K. (prx)


Lesenswert?

A. K. schrieb:
> Inputs wie INTx, DRQx und HOLD einzeln per Widerstand auf inaktiv
> setzen, sofern das nicht in der CPU der Fall ist.

PS: Die DIP-Switches sind dann überflüssig. Wenn Leitungen verwendet 
werden, dann arbeitet der betreffende Ausgang eben gegen den Widerstand, 
aber bei 10K tut dem das nicht weh.

von Robert W. (dreamteam)


Lesenswert?

A. K. schrieb:
> Je ein Blockkondensator direkt an den CC/GND-Paaren der CPU wär schon
> sinnvoll.

Jup, richtig. Wie groß soll ich den wählen?

> Inputs wie INTx, DRQx und HOLD einzeln per Widerstand auf inaktiv
> setzen, sofern das nicht in der CPU der Fall ist.

Ich ziehe, wie im Schaltplan zu sehen, je 4 Eingänge mit einem 10K auf 
LOW. Vater sagte, das es reicht. Sollt ich den Widerstand kleiner 
wählen?

Helmut Lenzen schrieb:
> Reset vom TL7705 zur CPU braucht einen Pullupwiderstand.

RESIN (Aktive Low) bekommt mit dem Widerstand "10K-4" sein PullUp.

Svenska schrieb:
> Wenn ihr euch für das Bussystem auf IDE-Kabel eingeschossen habt, dann
> benutzt 80-polige Kabel. Da sind zusätzliche Masseleitungen drin, um
> Übersprechen zu verhindern. Messt die aber vorher durch, oder legt eure
> Masseleitungen an die gleiche Stelle wie bei IDE. :-)
Vorher haben wir das mit dem Übersprechen und Kabeln schon besprochen.

Mein Plan war zuerst 08/15 IDE-Kabel zu nehmen. Den Plan haben wir 
verworfen, weil so ein IDE-Kabel immerhin ja 50cm lang ist. Also kaufen 
wir uns IDE-Kabel am Strang und machen die Leitungen so kurz wie möglich 
indem ich auf den Strang die Stecker passend drauf klipse. Das 
übersprechen möglich ist, wissen wir. Wir erachten das Risiko aber als 
soweit gering, als das wir keine Masse zwischen jedem Kabel brauchen.

In Vaters Ur-Rechner lagen diese dünnen Lackdräte zu 100derten auf einen 
großen Platine übereinander, und es passierte nichts. Ich werde das 
ähnlich, wenn auch unprofessionell, machen.

A. K. schrieb:
> Was ist denn das schlecht erkennbare Gewusel an AD7/BHE?

Da war ein Bauteil zu viel, was nicht angeschlossen war. Es ist 
entfernt.

A. K. schrieb:
> A. K. schrieb:
>> Inputs wie INTx, DRQx und HOLD einzeln per Widerstand auf inaktiv
>> setzen, sofern das nicht in der CPU der Fall ist.
>
> PS: Die DIP-Switches sind dann überflüssig. Wenn Leitungen verwendet
> werden, dann arbeitet der betreffende Ausgang eben gegen den Widerstand,
> aber bei 10K tut dem das nicht weh.

Ein guter Tipp! Wie hoch währe die Belastung des Ausgangs, wenn dort ein 
10K und die CPU dran hängt? Ich würde ungerne einen 8Fach Treiber für 
den TimerIn0 verschwenden, wenn auf irgend einer Platine dieser genutzt 
werden soll.

EDIT: Ich sehe gerade, das der 0.1uF Kondensator am 7705 falsch herum 
angeschlossen ist. :)

Vielen dank für eure Hilfe/Beiträge
Grüße,
Vater&Sohn

von (prx) A. K. (prx)


Lesenswert?

Robert Winkens schrieb:
> Jup, richtig. Wie groß soll ich den wählen?

Die üblichen 100nF Kerkos.

> Ein guter Tipp! Wie hoch währe die Belastung des Ausgangs, wenn dort ein
> 10K und die CPU dran hängt?

5V/10K = 500µA. Damit dürfte jeder dran hängende Ausgang zurecht kommen.

von MCUA (Gast)


Lesenswert?

>Das Risiko des Übersprechens werden wir eingehen. Der Prozessor kommt
>mit max. 10MHZ daher, das heißt der Bus wird nicht annähernd so schnell
>befeuert werden.
Massgebend sind aber die Flanken, nicht die Geschwindigkeit.
Zwischen oft schaltenden Leitungen (RD, WR, CLK usw / zw. Daten u 
Adressen) sollte GND liegen.
Für Busdriver (ohne kann mans vergessen, es sei denn es wird extrem 
langsam) gibt es vom '245 viele Varianten u. Technologien ua ABT.

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
Noch kein Account? Hier anmelden.