74123 Multivibrator Test in IC-Testern

Im Gegensatz zu vielen anderen kommerziellen Testern implementiert der Retro Chip Tester bisher keinen Test für den 74123, einen „Dual Retriggerable One-Shot with Clear and Complementary Outputs“.

Meiner Meinung nach kann ein solcher Baustein nur dann sinnvoll getestet werden, wenn die notwendigen externen Komponenten auch beschaltet werden, was aber durchweg bei diesen Tests nicht der Fall ist.

Ich habe mir hierzu die Tests von zwei bekannten Testern angesehen: BeeProg2 und TL-866. Beide Tester geben vor diesen Baustein testen zu können und beide Tester verwenden Vektoren, um die Tests zu beschreiben:

Beim BeeProg2 sieht der Test wie folgt aus:

000HL0XG000HL0XV
110HL0XG110HL0XV
010HL0XG010HL0XV
111HL0XG111HL0XV
000HL0XG000HL0XV
101HL0XG101HL0XV

Der TL-866 verwendet ganz ähnliche Vektoren:

000HLLZG000HLLZV
110HLLZG110HLLZV
010HLLZG010HLLZV
111HLLZG111HLLZV
000HLLZG000HLLZV
101HLLZG101HLLZV

Der 74123 enthält zwei Multivibratoren, daher ist die Pinbelegung für den ersten Multivibrator:

Pin 1 = A1
Pin 2 = B1
Pin 3 = CLR1
Pin 4 = /Q1
Pin 13 = Q1
Pin 14 = Cext
Pin 15 = Rext/Cext

Um die Pins leichter identifizieren zu können, wurden die nicht relevanten Informationen aus den Tests entfernt:

BeeProg2:

000H--------L0X- # deaktiviert mit clear, Q1=L, /Q1=H
110H--------L0X- # deaktiviert mit clear, Q1=L, /Q1=H
010H--------L0X- # aktiviert mit clear, Q1=L, /Q1=H
111H--------L0X- # deaktiviert, Q1=L, /Q1=H
000H--------L0X- # deaktiviert mit clear, Q1=L, /Q1=H
101H--------L0X- # deaktiviert, Q1=L, /Q1=H

Cext ist GND
Rext/Cext ist undefiniert (MPU ist auf Eingang geschaltet)

Der Test des TL-866 ist vergleichbar, nur Rext/Cext ist „offen“ (und nicht auf GND):

000H--------LLZ-
110H--------LLZ-
010H--------LLZ-
111H--------LLZ-
000H--------LLZ-
101H--------LLZ-

Cext ist "offen" (MPU ist auf Eingang geschaltet)
Rext/Cext ist mit Pullup nach Vcc

Die Eingänge A1/B1/CLR werden als Enable verwendet. Ein Impuls wird ausgelöst, wenn A1=L, B1=H und CLR1=H… Nur genau diese Kombination ist nicht Teil der obigen Vektoren!

Wenn wir uns die Testvektoren genauer ansehen, stellen wir fest, dass entweder durch die gewählt A/B-Kombination der Baustein immer deaktiviert ist oder in dem einen Fall, wo A/B einen Impuls auslesen könnte, ist CLR aktiviert.

Dabei hat sich hier auch noch ein Fehler eingeschlichen, denn wäre im Schritt davor CLR nicht schon auf „0“ gelegt, würde tatsächlich (ungewollt) ein Impuls ausgelöst werden, da die Vektoren von links nach rechts ausgewertet werden und nachdem B angelegt wurde und bevor CLR auf „0“ gelegt wird, u.U. die Eingänge auf einen gültigen Zustand für einen Impuls haben könnten könnten.

Wie gehen die Tester mit den externen Komponenten um? Cext müsste mit einen Kondensator mit Rect/Cext verbunden werden, Rext mit einem Widerstand nach Vcc. Der Beeprog2 ist Rext/Cext undefiniert (vermutlich ist der Pin an der MPU auf Eingang geschaltet) und legt Cext auf GND, der TL-866 legt zumindest Rext/Cext mit einem Pullup auf Vcc und lässt Cext „offen“ (Pin an der MPU auf Eingang geschaltet).

Hier verhält sich der TL-866 bzgl. Rext/Cext korrekt, da ein Pullup als Rext verwendet wird, bzgl. Cext verhält sich der BeeProg2 korrekt, der Cext auf Masse legt. Wenn schon ohne externe Komponenten getestet wird, dann wäre eine Kombination aus beiden wünschenswert, also Cext auf GND und Rext/Cext auf „Z“, also per Pullup auf Vcc. Damit würde nur der Kondensator fehlen. Durch die fehlende Kapazität sollte der Impuls dann direkt (d.h. nach ein paar ns) ausgelöst werden. Auf jeden Fall zu schnell, um ihn detektieren zu können.

Die Hauptfunktion dieses ICs besteht darin, nach einer bestimmten Zeit einen Impuls auszulösen. Durch den Kondensator und den Widerstand wird die Zeit festgelegt. Die obigen Vektoren zeigen aber, dass weder ein Impuls abgegeben wird, dessen Zeit man messen könnte, noch der Baustein innerhalb seiner Spezifikation betrieben wird.

Einfach ausgedrückt: Es wird ein wenig an den Eingängen „herumgeklimpert“ und bei keiner Kombination wird ein Impuls ausgelöst, die beiden Ausgänge verändern bei keinem Test-Vektor ihren Zustand.

Mein Fazit: Die in diesen Testern implementieren 74123 Tests machen aus funktionaler Sicht keinen Sinn. Kommentare sind herzlich willkommen.

Update 5.11.2021

Ich bin von einem User auf den ELV-Tester aufmerksam gemacht worden. Dieser verwendet keine vektorbasierte Tests, sondern eine Pascal ähnliche Sprache. Zwar kann auch dieser Tester den 74123 nicht verlässlich testen, aber er löst zumindest einen Impuls aus auf den getestet wird. Danach muss der Zustand innerhalb einer gewissen Zeit wieder zurückfallen. Das ist nicht optimal, aber sehr viel besser als das, was die beiden o.g. Tester als Ergebnis liefern.

2 Antworten auf “74123 Multivibrator Test in IC-Testern”

  1. Albert van Bemmelen

    Adding another testboard that includes external caps and resistors to make it a real 74123 test still could be possible I guess?

    Antwort
    • Stephan Author des Beitrags

      Yes, that is possible but still you need to do a different kind of testing: the „vectors“ do not contain any timing information, the test engine cannot measure any time between two vectors. For each of these ICs a separate test has to be implemented (and you can only give a result acc. the used external components).

      Antwort

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.