Motorola M68332EVS Evaluation Kit schwächelt

  • Hallo!


    Vor ein paar Tagen lief mir eine besonders schöne Platine zu: ein M68332-Evaluation-Kit von Motorola aus dem Jahr 1989. Das war wohl die erste Motorola-Embedded-CPU aus der 68k-Reihe. Das Kit besteht aus einem Base Board mit Spannungsversorgung, Sockeln für nachrüstbare SRAMs (2* 32kB) und EPROMs (2* 32kB/64kB), einem Sockel für eine 6888x-FPU, Adapter für Oszi oder Logic Analyzer sowie den Buchsen für die Seriellschnittstellen. Das steckbare CPU-Modul enthält lediglich diese sowie 64kB RAM und 64kB EPROM. Letzteres ist leider eingelötet und enthält die typische Motorola-Basis-Software MxxxBug, hier also M332Bug.



    Doku findet sich auf der Web-Seite von Motorola  Freescale NXP, nur leider die für eine spätere Version mit anderen Steckbrücken sowie anderer Address Map. Aber so was kann einen 68k-Archäologen fast nicht erschüttern :)

    Diese Platine soll sich nach dem Einschalten mit 9600Baud und 8N1 melden. Das Problem: sie macht das vielleicht. Mein Exemplar läßt sich zunächst etwas bitten. Mehrere manuelle Resets sind nötig, bis seriell was rauskommt. Und das ist nicht das, was ich erwarte, denn die Seriellgeschwindigkeit ist zufallsgetrieben. Beim ersten Anlauf kam nach dem 4. oder 5. Reset der lesbare Text, aber mit 4800Baud. Nach dem nächsten Reset/Einschalten kamen nur noch Hiroglyphen. Ich versuchte es mit zwei Rechnern, drei unterschiedlichen seriellen Schnittstellen und mit allen verfügbaren Seriellgeschwindigkeiten, nur las ich nie wieder was Brauchbares. Ein ähnliches Problem hat übrigens ein Teil meiner MVME177, also 68060 und nur die mit 60MHz und nicht die mit 50MHz. Ob das Problem dieselbe Ursache hat, weiß ich noch nicht.

    Hier beim 68332 ergab sich für mich der Verdacht, daß es eine Temperaturabhängigkeit geben könnte. Weil gerade kein Kältespray vorhanden war, wanderte die ganze Platine für 1Stunde in den Kühlschrank zwischen den Käse und das Joghurt. Et voila, während der ersten 30Sekunden nach dem Einschalten kam gar nichts serielles heraus, aber dann mit 9600Baud und das richtige. Weitere 30Sekunden später kamen nach dem nächsten Reset/Einschalten wieder nur Hiroglyphen, d.h. die Seriellgeschwindigkeit stimmte nicht mehr und war auf einen untypischen Wert verbogen.

    Nach etlichen Minuten nicht erfolgreicher Versuche besuchte die Platine nochmals den Kühlschrank. Danach brauchte die Platine erneut ein paar Anläufe, bis die Bootmeldung mit 9600Baud erschien. Nur diesmal habe ich auf weitere Neustarts verzichtet und ein paar wichtige Kleinigkeiten erledigt, z.B. Übertragung der EPROM- und RAM-Inhalte via S-Records auf den Wirtsrechner, damit ich das unabhängig von der zickigen Hardware anschauen kann. Einmal "eingerastet" läuft das Board.

    Annahme: die Takterzeugung sowie die Einstellung der Seriellgeschwindigkeit ist beim 68332 etwas "merkwürdig". Der CPU-Kern läuft zwar mit rund 16 oder 20MHz, aber der Takt kommt aus einem externen 32kHz-Quarz und einer internen PLL. Der Serielltakt kann völlig frei eingestellt werden, d.h. besonders gerne falsch und mit mehr als der für V.24 zulässigen 3% Abweichung.

    Was passiert dort? Kennt jemand die Fiesheiten des 68332-Chips? Oder kennt jemand die Fallen der M332Bug-Software? Der gesamte Aufbau ist ein Evaluation Board, d.h. da haben sich die Entwickler besonders viel Mühe gegeben eine zuverlässige Lösung zu bauen, denn das Board war Werbung für den Chip.

    Wenn ich die Hardware betrachte, sehe ich ausschließlich kleine keramische Kondensatoren, kein Tantal und insbesondere keinen Elko. Also dürfte in diesem Bereich kein Verschleiß zu erwarten sein. Ich erkenne den 32,768kHz-Quarz, der die PLL "antreibt". Kann der temperaturabhängig verschleißen? Zwischendrin sind natürlich etliche SMD-Widerstände, auch im Bereich um den Quarz. Könnten die derart temperaturabhängig verschleißen, daß der Quarz erst gar nicht, dann mit falscher Frequenz anläuft? Oder kann der Quarz im laufenden Betrieb mit leicht(!) steigender Temperatur seine Frequenz ändern?




    Hier
    https://www.nxp.com/docs/en/ap…on-note/M68331_332TUT.pdf
    findet sich ab Seite 8 interessanter Text, der hier eine Rolle spielen könnte. Ich kann's nur nicht interpretieren. Dieses Dokument entstand mit den Erfahrungen der Platinengeneration, die vor mir liegt. Vielleicht steht auf Seite 48 unter 5.2.2.1 und 5.2.3 im Prinzip mein Fall. Nur gab's bei Motorola seinerzeit noch keine Langzeiterfahrung über Jahrzehnte.

    Letzte Beobachtung nach etlichen Stunden Dauerbetrieb ohne Neustart oder Ausschalten: es läuft mit 9600Baud. Sogar ein Reset ändert nichts daran. Aber ein kurzes Aus- und Einschalten bringt die Takterzeugung aus dem Tritt. Also scheint es an einem Phänomen zu liegen, das einmalig nach dem Einschalten vorkommt.

    Aus "ganz tief unten drin in den Registern" vom 68332-Chip: wenn die Seriellgeschwindigkeit mit 9600Baud funktioniert, sehe ich im Baud Rate Register den Wert, der für die 16,78MHz-CPU-Variante vorgesehen ist. D.h. ich habe nicht den 20,97MHz-Chip vor mir. Blöd ist, daß ich diesen Wert nicht nachschauen kann, wenn er vermutlich falsch ist.

    Gibt's Ideen? Soll ich zuerst den SMD-Quarz tauschen?

    Gruß, Ralf

  • Den Elkos auf dem Base Board weise ich keine große Bedeutung zu, weil ich dieses für meine Tests aus einem Labornetzteil speiste. 5V und <200mA bringen dieses nicht an seine Grenzen. Der kleinere axiale, schwarze und der stehende, blaue Elko sind im 5V-Zweig hinter der Einspeisung und sollen wohl billige Steckernetzteile "kompensieren". Weiter links unten ist ein noch ein stehender, blauer, der im +15V-Zweig hinter dem Astec-DC-DC-Wandler liegt. Diese 15V liegen zwar an den Slots an, werden aber von diesem CPU-Modul nicht benötigt. Der kleinere schwarze Elko nebenan hat gar keine Bedeutung. Auch die gelben, axialen Kondensatoren zwischen den Slotsteckern machen sich erst bemerkbar, wenn sie einen Kurzschluß produzieren, denn die Leiterbahnen auf der zweilagigen Platine halte ich für die knapp 150mA der CPU-Platine für mehr als ausreichend.


    Auf der CPU-Karte ist auf der Oberseite ein Tantal mit 10uF/16V direkt an den 5V. Auf der Unterseite sitzt ausschließlich das keramische Hühnerfutter.


    Die Reset-Erzeugung findet alleine auf dem CPU-Modul statt, ist tatsächlich "magical" und an die PLL gekoppelt. Aber was soll dort verschleißen? Der Quarz vielleicht ... Verschmutzung, Wasserschaden o.ä. ist auszuschließen, denn das alles sieht aus wie neu. Einen ESD-Schaden kann ich dagegen nicht ausschließen. Die Platine schlummerte vermutlich seit den frühen 1990er Jahren irgendwo in einer Ecke. Seinerzeit, so hörte ich, steckten EPROMs in den Sockeln, weil ein Software-Projekt damit entwickelt wurde.


    Gruß, Ralf

  • Guten Tag

    RalfK


    Ich nehme an, die Unterlagen hast du auch schon studiert, worin die Kommunikation beschrieben wird, wie sieht der Clock aus /Timing aus, entspricht dieser den Spezifikationen




    da ich noch kein free pdf fand,

    daher auch vorläufig nur Screens


    Dort ist auch dein gezeigte Board beschrieben,

  • Ich würde mal den 32kHz Quarz verdächtigen. Evtl. schwingt der nicht oder falsch an. Soweit ich mich erinnere, wird der erst durch Software freigegeben. Aber Achtung: dieser hört oft schon beim Messen mit einem Oszi-Tastkopf auf zu Schwingen.