|
|
AVR-Transistortestervon Markus Frejek
[Bearbeiten] GrundsätzlichesJeder Bastler kennt wohl dieses Problem: Man baut einen Transistor aus einem Gerät aus oder kramt einen aus der Bastelkiste. Wenn die Typenbezeichnung zu erkennen ist (und sie einem bekannt ist), ist ja alles in Ordnung. Oft ist dem aber nicht so, und dann geht das Übliche mal wieder los: Typ und Pinbelegung des Transistors aus dem Internet oder einem Buch heraussuchen. Das nervt auf Dauer natürlich ziemlich. Auch Transistoren im gleichen Gehäuse haben nicht immer die gleiche Pin-Belegung. Zum Beispiel hat ein 2N5551 eine andere Belegung als ein BC547, obwohl beide ein TO92 Gehäuse haben. Wenn bei einem Transistor die Bezeichnung nicht mehr zu erkennen ist (oder nicht mal Google was dazu weiß), wird es mit konventionellen Methoden richtig umständlich, den Transistortypen herauszufinden: Es könnte sich um NPN, PNP, N-oder P-Kanal-Mosfet, etc. handeln. Eventuell hat das Bauteil auch noch eine Schutzdiode intern. Das macht die Identifizierung noch schwieriger. Durchprobieren per Hand ist also ein recht zeitraubendes Unterfangen. Warum soll man das nicht per Mikrocontroller erledigen lassen? So ist dieser automatische Transistortester entstanden. Achtung, Attention, Uwaga !!! This project is intended only for non-commercial use. Any commercial productions require the express permission of the author. This also applies to the Polish language version. Dieses Projekt wird nur für nicht-kommerzielle Nutzung bestimmt. Jegliche kommerzielle Produktionen bedürfen der ausdrücklichen Genehmigung des Autors. Dies gilt auch für die polnische Sprache. Ten projekt przeznaczony jest jedynie do niekomercyjnego wykorzystania. Wszelkie produkcje komercyjne wymagają uzyskania zgody od autora. Dotyczy to również polskiej wersji językowej. [Bearbeiten] Features
Selbstleitende FETs (z. B. JFETs) werden mittlerweile auch unterstützt. Bei Leistungs-Thyristoren und -Triacs kann es
auch zu Problemen kommen, wenn der Teststrom (ca. 7 mA) unter dem Haltestrom liegt. MOSFETs und Transistoren wurden aber in meinen Tests immer korrekt erkannt. [Bearbeiten] HardwareEs empfiehlt sich, den Schaltplan in einem weiteren Browserfenster zu öffnen, um die folgenden Beschreibungen nachvollziehen zu können. Als Mikrocontroller wurde der ATMega8 gewählt. Er verfügt über mehr als genug Flash und RAM. Außerdem hat er genug Portpins und ist sehr preisgünstig. Der Transistortester wird mit einer 9V-Block-Batterie betrieben. Die 5V-Betriebsspannung für den AVR wird ganz konventionell mit einem 78L05 erzeugt. Am Port B des ATMega8 sind verschiedene Widerstände angeschlossen: Je Transistor-Pin ein großer (470 k) und ein kleiner (680Ω). Hiermit können zwei verschiedene Stromstärken auf den zu testenden Pin gegeben werden. Die Widerstände sind mit ADC0 , ADC1 und ADC2 verbunden. An diese Pins wird auch der zu testende Transistor angeschlossen. Der linke Teil der Schaltung (mit den 3 Transistoren) ist für die automatische Abschaltung zuständig. Dazu später mehr. An den ersten Pins von Port D ist das LCD angeschlossen. Es handelt sich dabei um ein 2x16 Zeichen Text-LCD mit HD44780-kompatiblem Controller. Es ist zu beachten, dass die Test-Eingänge keine Schutzbeschaltung haben. Eine Schutzbeschaltung würde vermutlich auch die Messergebnisse verfälschen. Es sollten also keinesfalls Bauteile, die noch in eine Schaltung eingebaut sind, getestet werden. Sonst könnte der ATMega8 beschädigt werden.
[Bearbeiten] TestablaufDer Test des Transistors funktioniert nach einem einfachen aber effektiven Prinzip:
Es werden zunächst mal alle sechs Kombinationsmöglichkeiten für die Pins durchprobiert.
Für jede Kombinationsmöglichkeit wird überprüft, ob zwischen dem + Pin und dem -Pin Durchgang herrscht. Hierfür wird mit den ADCs die Spannung am + Pin ermittelt. Falls Durchgang besteht und die abfallende Spannung im Bereich zwischen 0,2 V und 4 V liegt, wird von einer Diode zwischen den betreffenden Pins ausgegangen. Dieses Ergebnis wird gespeichert. Der Test wird dadurch natürlich nicht abgebrochen, da dieses Ergebnis auch bei einem Transistor eintreten kann und wird (ein Transistor hat zwei pn-Übergänge, also 2 Dioden). Falls kein Durchgang herrscht, wird der bisher frei gelassene Pin über 680Ω auf Masse gelegt. Falls jetzt Durchgang besteht, muss es sich
um einen pnp-Transistor oder p-Kanal-MOSFET handeln. In diesem Fall wird der Pin (es handelt sich dann um die Basis) über den 470 k Widerstand
auf Masse gelegt. Jetzt wird die Spannung zwischen dem +Pin und -Pin (Kollektor und Emitter) gemessen und zwischengespeichert. Wenn hingegen immer noch kein Durchgang zwischen dem positiven und negativen Pin herrscht, wird der anfangs frei gelassene Pin über 680Ω auf Plus gelegt.
Besteht nun Durchgang, handelt es sich um einen npn-Transistor, einen n-Kanal-MOSFET oder einen Thyristor/Triac. Der weitere Ablauf entspricht dem bei pnp.
Der anfangs frei gelassene Pin wird dann allerdings nochmal hochohmig geschaltet. Wenn das Bauteil dann immer noch leitet, ist es ein Thyristor oder Triac. Zur Messung der Gate-Schwellspannung von N-Kanal-Anreicherungs-Mosfets wird Source fest auf Masse gelegt. Drain wird über einen 680-Ohm-Widerstand gegen Plus gelegt und Gate wird über einen 470kOhm Widerstand gegen Plus gelegt.
Dann wartet der Tester, bis der Mosfet schaltet, also der Drain-Anschluss auf logisch 0 geht. Nun wird die am Gate anliegende Spannung gemessen. Das ist etwa die Gate-Schwellspannung. Für die Messung von Widerständen wird aus einem der internen Widerstände (680Ω oder 470kOhm) und dem Prüfling ein Spannungsteiler aufgebaut.
Die Spannung am Mittelpunkt des Teilers wird gemessen, einmal mit dem 680Ω und einmal mit dem 470kOhm-Widerstand. Daraus lässt sich der Widerstandswert des Prüflings berechnen. Bei einem 6-Ohm-Prüfling dagegen sind es 0,044V in der Mitte des Teilers, bei 8Ω sind es 0,058V. Hier steigt der Widerstandswert ebenfalls um 33%. Die Spannung in der Teilermitte erhöht sich aber nur um 0,014V, was den ADC-Wert um gerade mal 2 bis 3 erhöht. Übrigens wird jeder Prüflings-Widerstand sowohl mit dem 470kOhm-Widerstand als auch mit dem 680Ω-Widerstand vermessen. In der Auswertung wird dann das genauere Ergebnis verwendet, also das Ergebnis, bei dem die Teilerspannung näher am Optimalwert von 2,5V liegt. Der gesamte Messbereich liegt bei etwa 5Ω bis 910kOhm.
Im Bereich unter 20Ω ist die Messung sehr ungenau, Abweichungen von 10-20% können schon vorkommen. Die Messung von Kondensatoren ist von der Messung der restlichen Bauteile getrennt. Das bedeutet, dass sie eine eigenständige Messfunktion besitzt, die in allen 6 Pin-Kombinationen auf das Vorhandensein eines Kondensators prüft. Das ist nötig, weil sich die Messungen sonst gegenseitig stören würden. Das Vorhandensein eines Kondensators wird folgendermaßen geprüft:
Einer der beiden Pins wird fest auf Masse gelegt, der andere über 470kOhm auf Masse.
Das Ergebnis wird dann auf dem LCD dargestellt. Dann schaltet sich der Tester nach ca. 10 Sekunden automatisch ab. [Bearbeiten] Darstellung auf dem LCDDas ermittelte Testergebnis wird auf dem LCD dargestellt. In der ersten Zeile links wird der erkannte Bauteiltyp angezeigt. Folgende Bauteile werden bis jetzt erkannt:
Je nach Bauteil werden noch weitere Daten angezeigt:
Da bei den meisten JFETs Drain und Source gleichwertig sind, können diese Anschlüsse nicht erkannt werden. Es kann also vorkommen, dass Drain und Source bei JFETs vertauscht angezeigt werden. Eine Unterscheidung zwischen bipolaren Kondensatoren und gepolten Elkos war ursprünglich geplant. [Bearbeiten] Automatische AbschaltungAm einfachsten wäre es natürlich, den AVR nach Abschluss des Tests einfach in den Power-Down-Mode zu versetzen und einfach per Taster beim nächsten Test wieder aufzuwecken. Der AVR braucht in diesem Modus unter 0,3 µA. Da würde die Batterie fast ewig halten. Da der Tester aber stabile 5 V braucht, kommt man um einen Spannungsregler nicht herum. Hier haben wir auch schon das Problem: Der Spannungsregler läuft munter weiter, auch wenn der AVR schläft, und verbraucht dabei gar nicht so wenig Strom: Ein 78L05 braucht ca. 3 mA. Das würde die Batterie in gerade mal einer Woche leeren. Selbst der sparsame LP2950 braucht noch 75 µA. Da würde die Batterie auch nur neun Monate halten. Schon besser, aber alles andere als ideal. Es gibt aber noch eine bessere Möglichkeit: Den Strom mit einem pnp-Transistor in der Plus-Leitung (T3) schalten. Hiermit liegt der Standby-Strom bei gerade mal ~10 nA (0,01 µA oder 0,00001 mA). Eine 9 V Batterie mit 500 mAh wäre damit theoretisch erst nach über 5000 Jahren leer. Das sollte wohl reichen... Beschreibung dieser Schaltung: Die Widerstände R11 und R12 dienen zum Messen der Batteriespannung. Bei zu geringer Batteriespannung wird dann eine entsprechende Meldung ("Batterie leer") auf dem LCD angezeigt. In dem Thread zum Artikel wurde mehrfach der Wunsch geäußert, den Transistortester ohne die automatische Abschaltung aufzubauen. Stattdessen wird dann ein einfacher Schalter verwendet. Das spart eine ganze Menge Bauteile ein. Die Software muss dafür nicht geändert werden. Taster S1 ist optional, wenn die automatische Abschaltung nicht eingebaut wird.. Damit kann man einen neuen Testzyklus starten, ohne den Tester dafür aus- und wieder einschalten zu müssen. Wer das nicht benötigt, kann ihn einfach weglassen. Achtung: Der Taster ist natürlich nur optional, wenn der Tester ohne die automatische Abschaltung aufgebaut wird! [Bearbeiten] Infos zur SoftwareIn dem zum Download bereitstehenden Archiv ist eine fertig kompilierte Firmware-Version für den ATMega8 und eine kleinere für den ATMega48, sowie der komplette Quellcode enthalten. Die Version für den ATMega48 hat folgende Features nicht:
Für diese Features bietet der ATMega48 einfach nicht genug Platz. Für "Selbstkompilierer": Um zwischen der Version für den ATMega8 und ATMega48 zu wechseln, einfach in den Projektoptionen oder im Makefile den AVR-Typen entsprechend ändern. Über #ifdef-Blocks werden dann automatisch die (vom Platz her) nur auf dem ATMega8 möglichen Features aktiviert bzw. deaktiviert. Es wird aber dringend davon abgeraten, den Tester mit dem ATmega48 aufzubauen: Dieser Controller ist kaum billiger als der ATMega8, und die Firmware für diesen wird kaum noch weiter gepflegt, weil sie (verständlicherweise) ohnehin kaum verwendet wird; außerdem bietet der Controller auch für Programm-Verbesserungen gar keinen Platz mehr. Ich würde es schön finden, wenn ihr gefundene Fehler in der Software oder Verbesserungsvorschläge in den Forums-Thread zum Artikel schreibt. [Bearbeiten] FehlersucheFalls überhaupt nichts auf dem Display anzeigt wird, sollten folgende Dinge überprüft werden:
Sollte auf einem 2x16 Display nur eine Zeile als Klötzchen dargestellt werden und in der zweiten Zeile gar nichts, dann ist bei Anschluss mittels Adapterkabel die Verbindung komplett verdreht (Pin 1 der Platine also auf Pin 16 des LC-Displays). Es kann aber auch ein Fehler bei der Display-Initialisierung vorliegen (abweichend von HD44780). Das sind aber nur 2 von mehreren weiteren Möglichkeiten. Falls Bauteile nur mit einer bestimmten Reihenfolge der Anschlüsse an den Test-Pins richtig erkannt werden, ein Bauteil erkannt wird obwohl gar keins angeschlossen ist oder Daten wie der Verstärkungsfaktor bei verschiedenen Anschlussreihenfolgen stark voneinander abweichen, sollte die Platine auf Lötbrücken, schlechte Lötstellen o.ä. überprüft werden. Zwischen den Test-Pins sollten auch keine Flussmittelreste verbleiben. Flussmittel ist meist auch geringfügig leitfähig. Da die verwendeten Testströme sehr gering sind, kann auch der über das Flussmittel fließende Strom zu einer Verfälschung des Ergebnisses führen. [Bearbeiten] Links
[Bearbeiten] DownloadsHinweis: Die Entwicklung findet jetzt in einem SVN-Archiv statt. Dort finden sich auch Extras (z. B. Platinenlayouts). Wer sicher gehen will, eine aktuelle Version zu erhalten, sollte also entweder das Archiv auschecken oder den Snapshot herunterladen, der maximal einen Tag alt ist.
|