Robotrontechnik-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Mitglieder || Home || Statistik || Kalender || Admins Willkommen Gast! RSS

Robotrontechnik-Forum » Technische Diskussionen » Tischrechner TR20 defekt ROM/CPU? » Themenansicht

Autor Thread - Seiten: -1-
000
28.12.2012, 10:33 Uhr
TTL-Grab



Hallo ihr Bastler und Tüftler,

ich habe mir irgendwann mal auf dem Flohmarkt einen TR20 mitgenommen, der sich natürlich als defekt herausgestellt hat. Am Anfang haben noch ein paar zufällige Ziffer aufgeleuchtet, die wurden mit jedem Einschalten immer weniger, dann passiert irgendwann garnichts mehr.

Nun habe ich mich mal frohen Mutes auf das Ding gestürzt. Folgendes:

1.) ROMs ausgelesen. die sahen auf den ersten Blick garnicht so schlimm aus (also nicht übermäßig viele gesetzte Bits), auf den 2. Blick allerdings schon. Hier die ersten 32 Bytes:


Quellcode:
8d 00 00 8d 00 00 8d 00 00 8d 00 00 8d 00 00 8d
12 7d 31 f0 8c 16 e6 00 f0 e6 03 e0 7c 09 e6 02

Da ist ein UC8860 drin. Ich habe die nie programmiert, daher kenne ich mich mit dem nicht so aus, aber wenn er Z8-kompatibel ist, dann ist der ROM-Inhalt da schon mal Mist.

Die ersten 12 Bytes sind beim Z8 nämlich die Interrupt-Vektoren und nach RESET springt er auf 0ch. Dort steht hier 8d 00 00 (jp 0), was ja schonmal Quatsch ist, denn auf 0 steht ja eine Adresse und kein Code. Aber selbst als Code interpretiert steht dort wieder ein jp 0.

Möglicherweise ist das beim UC8860 ja auch anders. Weiß das jemand?
Oder hat schon mal einer die ROMs ausgelesen und könnte mir mal die Images zukommen lassen?

2.) Die CPU selbst hat offensichtlich auch eine Macke. Kurzzeitige Aktivitäten auf den Adress- und Datenleitungen nach dem Einschalten bleiben aus, nachdem man ca. 30s rumgespielt hat. Nach Abkühlen mit Kältespray geht es wieder ein paar Sekunden.

Tja, nun hoffe ich, dass einer von euch irgendwo ein ROM-Image rumliegen hat, damit ich den Fehler erstmal klären kann

Gruss Micha
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
28.12.2012, 10:46 Uhr
DL
Default Group and Edit


die externen Vectoren liegen IMHO auch hier auf %800,%803,%806,%809,%80c,%80f, Start ab %812
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
28.12.2012, 11:27 Uhr
paulotto



externe ROMs und damit das Programm werden beim 8860 immer beginnend ab %800 benutzt. Die Interruptvektoren sind hier 3Byte lang, weil hier ja echte Sprungbefehle mit 3 Byte Länge abgelegt werden müssen und nicht wie bei interner Verarbeit ab Adresse 0 nur die eigentliche Adresse mit 2 Byte. Das Programm geht so voll i.O.

Gruß,

Klaus
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
28.12.2012, 12:18 Uhr
TTL-Grab



Ich danke euch, dann ist das ja schon mal geklärt.

Dann muss ich also "nur" noch irgendwo einen UC8860 auftreiben.

Viele Grüße
Micha
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
28.12.2012, 23:45 Uhr
TTL-Grab



Noch eine Frage an die Spezialisten:

Der 8860 wird ja durch 8V an RESET auf den externen ROM umgeschaltet. Wenn das eine Eigenschaft aller CPUs dieser Serie ist, dann müsste der 8810 oder 8830 ja auch als Ersatz für den 8860 funktionieren? Oder irre ich mich da und es sind da noch andere relevante Unterschiede zwischen den Typen?

Gruss Micha

Dieser Beitrag wurde am 29.12.2012 um 00:14 Uhr von TTL-Grab editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
29.12.2012, 09:00 Uhr
DL
Default Group and Edit


Mit dem höheren Pegel wird ein ROM-Bereich mit einer Testroutine aufgerufen, beim 8860 ist es gewollt, beim 8810 gibt es dies auch, bin mir aber nicht sicher ob da auch die Interruptvektoren mit auf die externen Speicherplätze umgeleitet werden. Beim 8830 wird diese Testroutine bereits bei normalen Pegel durchlaufen, wie der auf höheren Pegel am Reset reagiert, kann ich allerdings auch nicht sagen.
Dieser Beitrag wurde am 29.12.2012 um 09:02 Uhr von DL editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
29.12.2012, 12:14 Uhr
paulotto



wie Detlef schon schrieb, funktioniert das mit jedem 881x. Nur der 883 arbeitet mit normalem Reset. Die 886x sind im Prinzip 881x mit defektem ROM.

Gruß,

Klaus
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
29.12.2012, 17:47 Uhr
TTL-Grab



Das ist schade.
Ich habe die Möglichkeit, von einem netten Forenmitglied entweder einen 8830 oder einen 8861 zu bekommen. Beim 8861 müsste ich dann einen externen Takt einspeisen, da der TR20 den internen Oszillator des 8860 nutzt. Wenn das mit dem 8830 auch funktioniert hätte, bliebe mir das erspart.

Gruss Micha
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
29.12.2012, 18:08 Uhr
DL
Default Group and Edit


musst du mal gucken, wie der Reset gemacht ist, eventuell lässt sich da was ohne größeren Aufwand ändern, meist ist es nur ein Transistor gegen Masse und über Widerstand auf 8V geklemmt, den dann einfach auf 5V gelegt und es sollte mit dem 8830 gehen.
Dieser Beitrag wurde am 29.12.2012 um 18:09 Uhr von DL editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
009
29.12.2012, 18:27 Uhr
TTL-Grab



RESET=8V schaltet beim 8860 (und nach Klaus auch beim 8810) auf den externen ROM um und dieses Verhalten brauche ich ja, denn die Software steckt beim TR20 in 2x 2716 drin. Wenn sich der 8830 in dieser Hinsicht anders verhält, werde ich ihn wohl wirklich nicht nehmen können.

GrussMicha
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
010
29.12.2012, 18:34 Uhr
DL
Default Group and Edit


mal simpel ausgedrückt tut der 8830 das bei 5V, was der 8810/8860 bei 8V tut
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
011
29.12.2012, 18:53 Uhr
TTL-Grab



Oha, das ist ja ein ganz neuer Aspekt. Den RESET-Pin von 8V auf 5V umzumodeln ist ja nun gar keine Hürde.

Da taucht aber für mich eine Verständnisfrage auf:

8810/(8860): /RESET=L: Reset-Zustand, =H: int. ROM, =8V: ext. ROM
8830: /RESET=L: Reset, =H: ext. ROM

D.h., der 8830 nutzt sowieso immer den externen ROM, von dem aus der interne Interpreter aufgerufen werden kann, oder auch nicht, wenn man es nicht will?
Du merkst, ich habe mich mit den 88xx vorher nie beschäftigt.

Gruss Micha
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
012
29.12.2012, 19:54 Uhr
felge1966
Default Group and Edit


Hallo Micha,

Bist du dir sicher, daß der U8860 wirklich hin ist.
Ich würde dir mal eine Überprüfung der beiden 2716 empfehlen, sofern du den Inhalt findest. Immerhin war ja der Datenerhalt der 2716 mit so 10 bis 15 Jahren genannt.
Somit könnten sie schon Alzheimer haben.

Gruß Jörg
--
http://felgentreu.spdns.org/bilder/jacob120.gif
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
013
29.12.2012, 22:32 Uhr
DL
Default Group and Edit



Zitat:
TTL-Grab schrieb
8810/(8860): /RESET=L: Reset-Zustand, =H: int. ROM, =8V: ext. ROM
8830: /RESET=L: Reset, =H: ext. ROM


grob gesehen ist es schon so...
Der 8830 läuft immer im internen ROM los, testet auf externen und spring diesen dann an.
Dort sollen ja Basicprogramme und/oder externe Routinen zu finden sein.

Der 8810 sollte ja eigentlich das Programm intern haben (welches auch extern erweitert werden kann) und über den Reset = 8V nur für den Service externe Testroutinen aufrufen

Der 8860 läuft im Prinzip nur auf der Serviceroutine (wobei allerdings immer einige Programmtechnische Wackler drin sind, mit denen man sich aussperren kann)

Empfehle mal Kieser/Bankel Einchipmikrorechner als schwere Bettlektüre
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
014
30.12.2012, 22:32 Uhr
TTL-Grab



Ich hatte jetzt endlich wieder Zeit mal genauer zu messen: Die CPU scheint wirklich hinüber zu sein.

Die Pins, die ja eigendlich als Eingänge d0..d7 funktionieren sollen, sind entweder defekt oder als Ausgang geschaltet, d0..d2 auf high, d3..d7 auf low. Dadurch erreichen d3..d7 nie einen höheren Pegel als ca. 1.5V.
Außerdem erwärmt sie sich auf ca. 51 Grad (mit IR-Thermometer gemessen), auch ohne gesteckte ROMs. Alle anderen an diesen Pins noch angeschlossenen ICs (8282, 8286) sind ok.

Und beim näheren Betrachten des ROM-Inhaltes fiel mir beim 2.ROM auf, dass die Inhalte von 00-7f und 80-ff, 100-17f und 180-1ff usw. jeweils identisch sind.
Mal schnell mit dem Ohmmeter gemessen: A7 3kOhm gegen Masse, der ist also richtig defekt.

Also, falls einer von euch das Image hat, bitte melden. Ansonsten werde ich wohl warten müssen, bis mir mal wieder so ein Rechner zufliegt

Viele Grüße
Micha
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
015
30.12.2012, 22:53 Uhr
u808



Sind die roms beim TR20 gesteckt oder eingelötet?
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
016
30.12.2012, 23:18 Uhr
TTL-Grab



Die sind leider nicht gesteckt.
Außerdem läßt sich das Gehäuse nur sehr schwer öffnen. Da ist zwar eine Schraube unten in der Mitte, Ober- und Unterteil sind aber durch richtig kräftige Nasen zusammengeschnappt und da sind auch keine Schlitze um da irgendwas gewaltfrei zurückbiegen zu können. Zum Glück ist das Plaste nicht spröde, da zerbricht oder reißt wenigstens nichts. Keine Ahnung, was sich die Konstrukteure dabei gedacht haben, wahrscheinlich wollten sie mal "modern" sein. Oder es gab Geld für den Neurervorschlag, 4 Schrauben einzusparen.

Gruss Micha
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
017
31.12.2012, 09:17 Uhr
u808



Das ist ja schade,
meiner ist noch OVP, den wollte ich eigentlich nicht ruinieren.

Vielleicht konntest du ja mal ein Bild einstellen wo die Position der Plastiknasen zu erkennen ist, das würde die Demontage für nachahmer evtl. vereinfachen.

So interessenhalber wäre ich an ein Platinenfoto interessiert.

Viele Grüße
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
018
31.12.2012, 11:48 Uhr
TTL-Grab



Ja, das werde ich tun, aber erst nächstes Jahr
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
019
05.01.2013, 14:33 Uhr
TTL-Grab



So, ich glaube, den ROM-Inhalt habe ich gerettet.

Ich habe den Pegel von A7 mal während des Auslesens gemessen, schließlich hat A7 ja eine Macke. Und tatsächlich, es waren nur ca. 1.2V.
Wenn nun blos das A7-Pin durch irgendeine Schweinerei niederohmig geworden war, aber die interne Logik noch funktioniert, dann bestände ja immerhin die Möglichkeit, da noch irgendwas rauszulesen. Mehr als ein endgültiges Rauchwölkchen kann es ja da nicht geben.
Also habe ich A7 hart auf Pin24 (+5V) gelegt, um so möglicherweise an die 2. Hälfte der Daten zu gelangen. Gelesen, und tatsächlich, es hat funktioniert, die Daten waren anders.
Jetzt schon etwas aufgeregt, die beiden files (high und low) in 128-Byte-Häppchen zerhackt, geeignet miteinander verquickt, wieder zusammengefügt und dann durch den Reassembler geschoben: und siehe da, diesmal sieht es richtig gut aus. Alles macht einen logischen Eindruck, keinerlei Diskrepanzen innerhalb des Codes, keine jp/call mitten in Befehle rein, wie vor der Operation.

Jetzt bin ich wieder frohen Mutes. Dass einzelne Bits gekippt sind, ist ja trotzdem möglich, das wird sich rausstellen. Ich habe jetzt auch noch einen 8830 auf einer Platine gefunden. Bevor ich die alte CPU runterlöte, werde ich dann noch ein paar Fotos machen.

Gruss Micha

Dieser Beitrag wurde am 05.01.2013 um 14:35 Uhr von TTL-Grab editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
020
05.01.2013, 21:26 Uhr
TTL-Grab



So, Rechner läuft wieder, die Mühen waren also nicht umsonst.
Wie DL schrieb, 8830 rein und /RESET auf 5V und los lief er und war nicht mehr zu bremsen.
Ich habe mal alles durchgetestet, auch Drucker, es scheint keine Probleme zu geben. Was ja dann bedeutet, dass die ROM-Files ok sind. Also wenn die dann jemand haben will, einfach melden.

Gruss Micha
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
021
05.01.2013, 22:14 Uhr
holm

Avatar von holm

Cool, gut gemacht.
Mir ist so ein Ding leider noch nicht über den Weg gelaufen, habe hier auch das erste Mal drüber gelesen..

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: -1-     [ Technische Diskussionen ]  



Robotrontechnik-Forum

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek