AVR Transistortester

Wechseln zu: Navigation, Suche

Einleitung[Bearbeiten]

Original Entwurf: http://www.mikrocontroller.net/articles/AVR-Transistortester

Weiterentwickelt von Karl-Heinz Kübbeler

Ich habe das Transistortester Projekt von Markus Frejek weitergeführt und speziell die Software weiterentwickelt. Aufgrund der verbesserten Eigenschaften wurde schon der Name Komponententester vorgeschlagen. Ich selbst sehe aber immer noch die herausragende Eigenschaft in der automatischen Bestimmung von Transistortyp und Eigenschaft, wie sie von Markus Frejek entwickelt wurde.

Hier möchte ich die wichtigsten Eigenschaften aufführen

  • Arbeitet mit ATmega8, ATmega168 und ATmega328 Prozessoren.
  • Anzeige der Meßergebnisse auf ein 2x16 Zeichen LCD.
  • Ein-Tastenbedienung mit automatischer Abschaltung.
  • Das Gerät besitzt drei universelle Meßports (Test Pin).
  • Automatische Erkennung von NPN, PNP, N- und P-Kanal MOSFET, JFET, Dioden und Kleinsignal Thyristor und TRIAC.
  • Automatische Erkennung der Pin-Belegung der Bauteile, die Bauelemente können beliebig angeschlossen werden.
  • Messung des Stromverstärkungsfaktors und der Basis-Emitter Spannung für bipolare Transistoren, auch für Darlingtontransistoren.
  • Automatische Erkennung eine Schutzdiode für bipolare Transistoren und MOSFETs.
  • Bei bipolaren Transistoren mit Schutzdiode wird ein parasitärer Transistor erkannt (NPNp = NPN + parasitär PNP).
  • Bis zu zwei Widerstände werden in einer Messung mit einer Auflösung von bis zu 0,1 Ohm gemessen, wobei der Meßbereich bis über 50 MOhm reicht. Widerstandswerte unter 10 Ohm werden für den ATmega168/328 mit der ESR-Meßmethode mit einer Auflösung von 0.01 Ohm angezeigt.
  • Ein angeschlossener Kondensator kann gemessen werden im Bereich 35pF bis 100mF mit einer Auflösung von bis zu 1 pF.
  • Widerstände und Kondensatoren werden mit ihren Symbolen dargestellt, umgeben von den gefundenen Anschlußpin Nummern.
  • Die Widerstands und Kondensator-Werte werden mit bis zu vier Dezimalstellen in der richtigen Dimension angezeigt.
  • Bis zu zwei Dioden werden ebenfalls mit ihrer Symboldarstellung flußrichtungsrichtig angezeigt, umgeben von den Anschlußpin Nummern und der zusätzlichen Angabe der Flußspannung.
  • Bei einzelnen Dioden wird zusätzlich der Kapazitätswert und ab Version 1.08k auch der Strom in Sperr-Richtung gemessen.
  • Für ATmega168/328 ist eine Kalibration der Nullkapazität, des Nullwiderstandes und weiterer Parameter im Selbsttest-Zweig möglich.
  • Für ATmega168/328 können auch Induktivitäten von etwa 0.01mH bis über 20H erkannt und gemessen werden.
  • Für ATmega168/328 ist eine ESR-Messung (Equivalent Series Resistance) für Kondensatoren über 0.18 µF mit einer Auflösung von 0.01 Ohm integriert.
  • für ATmega168/328 wird für Kondensatoren über 5 nF der Spannungsverlust Vloss nach einem Ladepuls untersucht. Damit läßt sich die Güte der Kondensatoren abschätzen.
  • für ATmega328 sind mit einer Menüfunktion, die mit einem längeren Tastendruck (> 0.5 s) aufgerufen werden kann, weitere Funktionen aus einer Liste möglich. Ein kurzer Tastendruck zeigt die nächste Funktion. Ein längerer Tastendruck startet die angezeigte Funktion. Nachfolgend die Liste der bisher eingebauten Zusatzfunktionen:
  • Frequenzmessung an dem PD4 Pin, der aber auch für den LCD-Anschluß benutzt wird. Der Pin wird für die Messung auf Eingang umgeschaltet. Die anliegende Frequenz wird zunächst für 1 Sekunde ausgezählt. Wenn die Frequenz unter 25 kHz liegt, wird auch eine mittlere Periode gemessen und daraus eine Frequenz berechnet mit einer Auflösung von bis zu 0.001 mHz.
  • Spannungsmessung am PC3 Pin, wenn dieser nicht für die serielle Ausgabe benutzt wird. Bei ATmega328 mit 32 Pins (PLCC) kann aber auch der ADC6 oder ADC7 Pin benutzt werden. Da ein 10:1 Teiler am Eingang benutzt wird, können Spannungen bis zu 50V gemessen werden. Mit einer Erweiterung der Schaltung (DC-DC Konverter) können auch Zenerdioden gemessen werden.
  • Frequenzerzeugung am TP2 Port. Über den am PB2 Pin angeschlossenen 680 Ohm Widerstand kann ein Signal mit einer aus einer Liste einstellbaren Frequenz von 1 Hz bis 2 MHz am TP2 Port ausgegeben werden. Der TP1 Port ist dabei auf Masse geschaltet.
  • Pulsweitenmodulation mit fester Frequenz und einstellbarer Pulsweite auf dem TP2 Port. Der Zähler 1 wird für diese Funktion als 10-Bit Zähler benutzt. Der TP1 Port ist auf Masse geschaltet. Die Pulsweite kann durch kurzen Tastendruck um 1% und durch längeren Tastendruck um 10% erhöht werden.
  • Mit einer separaten Kapazitäts- und ESR-Messung können an TP1 und TP3 angeschlossene Kondensatoren mit einer Kapazität von etwa 2µF bis 50mF meist auch in der Schaltung gemessen werden. Hierbei sollte aber immer sichergestellt sein, daß die Kondensatoren keine Restladung mehr haben.

Die zusätzlichen Funktionen sind zeitbegrenzt wie die Dialogfunktion selbst auch, wenn die POWER_OFF Option in der Konfigurationsdatei (Makefile) eingeschaltet ist. Ausführlichere Informationen mit Meßbeispielen kann man in den pdf-Dokumentationen in deutscher und englischer Sprache nachlesen.

Software[Bearbeiten]

Die Software wurde basierend auf der Arbeit von Markus F. weiterentwickelt. Der Teil für die Kondensatormessung wurde komplett neu geschrieben und auch die Widerstandsmessung wurde erheblich überarbeitet. Bei Schwierigkeiten und Problemen sollte man mich über E-mail oder über den Diskussionsteil (thread) benachrichtigen. Nur wenn ich von Problemen weiß, kann ich hoffentlich Abhilfe schaffen.

Weitere Einzelheiten sowie Beschreibung der einzelnen Meßverfahren und Beispiel-Ergebnisse habe ich in der pdf-Dokumentation (deutsche und englische Version) beschrieben. Hier findet man auch Hinweise zum Konfigurieren der Software mit Makefile Parametern und Optionen. Die Kommentare im Quellcode sind in englischer Sprache. Neu eingebaut in der Software ist eine Selbsttest-Funktion, in der die Funktion des Testers gemessen wird. In diesen Selbsttest ist auch ein Kalibrationsteil integriert.

Hardware[Bearbeiten]

Im Prinzip ist die neue Software so zu konfigurieren, daß sie auf der bereits von Markus F. vorgestellten Hardware ohne Änderungen läuft.

Sinnvoll sind dennoch einige Änderungen:

  • Der Prozessor sollte auf einen 8 MHz Taktfrequenz umgestellt werden, am besten mit einem externen Quarz. Dazu müssen die fuses des ATmega geändert werden.
  • Ein "pull up" Widerstand von etwa 27 kOhm sollte von Pin 13 (PD7) des ATmega nach VCC nachgerüstet werden.
  • Der 100 nF Kondensator am Pin 21 (AREF) kann entweder ganz entfernt werden oder besser durch einen 1 nF Kondensator ersetzt werden.
  • Wenn die elektronische Einschaltung des Testers Probleme macht, sollte wenigstens der C2 Kondensator an der Basis von Transistor T1 auf 10 nF reduziert werden und ggf. auch der Widerstand R7 auf 3,3 kOhm reduziert werden. Das komplette Schaltbild und Einzelheiten dazu findet man in der PDF Dokumentation.

Die Gründe und die Einzelheiten für diese Änderungen sowie weitere Hinweise für einen Neuaufbau sind im Hardware-Kapitel meiner pdf-Dokumentation beschrieben. Empfohlen wird ein ATmega168 Prozessor oder auch ein ATmega328 Prozessor, weil der ADC mit der Autoscale Funktion im Bedarfsfall von der 5V Referenz (VCC) auf die interne Referenz-Spannung umgeschaltet wird. Die interne Referenz hat für der ATmega8 eine Spannung von 2,56V, für die anderen Prozessoren aber 1,1 Volt. Mit 1,1 V kann eine bessere Auflösung des ADC für gemessene Spannungen unter 1 Volt erreicht werden. Man kann den ATmega8 ohne Hardwareänderung gegen einen ATmega168 oder ATmega328 austauschen! Hier ist der Teil der Schaltung, der für die Messung erforderlich ist.

Die Elektronik für die Batterieversorgung und die automatische Abschaltung fehlt in diesem Schaltbild.
Schaltbild ohne Stromversorgung

Die rot markierten Bauteile sind nicht unbedingt erforderlich, können aber zu einer Verbesserung der Messgenauigkeit beitragen. Die grün markierten Bauteile sind gegenüber dem ersten Entwurf von Markus F. geändert. Die Eagle Dateien von Asko B. für drei Varianten sind im Thread zu finden bei der Adresse: http://www.mikrocontroller.net/topic/248078?page=4#2891344

Hier ist der Artikel der 1. Transistortester Version von Markus F. zu finden: http://www.mikrocontroller.net/articles/AVR-Transistortester

Diskussionen zur neuen Version[Bearbeiten]

Der Thread mit meinen älteren Software-Versionen und einigen Problemfällen sowie Hardware-Vorschlägen ist unter http://www.mikrocontroller.net/topic/248078#new zu finden.

Downloads[Bearbeiten]

Alle Versionen von der Software und der Doku sind im SVN gespeichert. Die Benutzer können über den svnbrowser http://www.mikrocontroller.net/svnbrowser/transistortester/ das gewählte Verzeichnis als "GNU tarball" runterladen. Beim Aufruf des svnbrowsers steht dazu unter der Datei/Verzeichnis Liste der Eintrag "Download GNU tarball". Zum Auspacken der heruntergeladenen transistortester*.tar.gz Datei benötigen Windows Benutzer eine geeignete Software wie das Freeware Paket 7-Zip. Nach dem Auspacken hat man den vorher mit dem svnbrowser ausgewählten Verzeichnisbaum auf seinem eigenen Rechner. Ein direkter Zugriff auf die Dateien mit dem svnbrowser ist nicht möglich!

Eine andere Methode auf den Inhalt des svn Archivs zuzugreifen besteht mit der Installation des TortoiseSVN Plugins für den Windows Explorer. Damit ist dann der Zugriff über svn://mikrocontroller.net/transistortester direkt auf das Archiv mit dem Browser möglich.

Linux Benutzer können auch direkt über svn auf das Archiv zugreifen.

Downloads (english)[Bearbeiten]

All versions of the software and documentation are saved in the SVN archive. Users can download a "GNU tarball" of the previous selected directory with the svnbrowser http://www.mikrocontroller.net/svnbrowser/transistortester/. Windows users need a additional tool like the freeware 7-Zip to unpack the downloaded transistortester*.tar.gz file. After unpacking you have a copy of the selected directory at your own computer. The direct access is not possible with the svnbrowser!

Another way to get access to the SVN data is to install the TortoiseSVN plugin for the windows explorer. After installing you can access the data with svn://mikrocontroller.net/transistortester .

Linux users can also access the data with svn directly.

Ordnerstruktur und Beschreibung der Pfade im SVN
Ordner/directory Dateien/files Beschreibung/description
Doku Enthält die Dokumentation als PDF und als pdflatex-Quelltext
trunk Letzter Entwicklungsstand der Dokumentation inclusive Bilder und Diagrammen
trunk/pdftex/german enthält die deutschen Texte, Makefile und pdf-Dokumentation der Entwicklerversion
trunk/pdftex/english contains the english text, Makefile and pdf documentation of the developer version
trunk/pdftex/russian contains the russian text, Makefile and pdf documentation of the developer version
tags changelog.txt Hier sollte jede Änderung mit Versionsnummer eingetragen werden
tags/german Aktuelle PDF Dokumentation in deutsch
tags/english Actual PDF Documentation in English
tags/russian Actual PDF Documentation in russian language
tags/old/german PDF Dokumentationen zu früheren Softwareversionen
tags/old/english PDF Documentation for earlier software versions
Hardware Hardware Beschreibung
strip_grid Verzeichnis für eine Streifenleiterplatine
strip_grid/ttester_strip_grid.diy Beispiel einer Streifenleiterplatine, DIYLC-Datei
strip_grid/TTester_strip.pdf Ergebnis der Streifenleiterplatine im PDF Format
strip_grid/LiesMich.txt Kurzdokumentation für Streifenleiter-Platine
strip_grid/ReadMe.txt Short documentation for the strip grid board
Markus Entwurf von Markus R. mit LED-Dimmer im Eagle 6.4.0 Format
Software Software für AVR-GCC 4.5.3
trunk Aktueller Software-Entwicklungszweig
trunk/default Makefile und Programmierdaten für ATmega168 mit Standard-Layout
trunk/mega168_1.9V Makefile und Daten für ATmega168 mit Knopfzellenbetrieb (FiFi)
trunk/mega168_3.3V Makefile und Daten für ATmega168 mit LiPo-Akkubetrieb (FiFi)
trunk/mega328 Makefile und Daten für ATmega328 mit Standard-Layout (ab Version 1.08k)
trunk/mega328_1.9V Makefile und Daten für ATmega328 mit Knopfzellenbetrieb (Funkamateur)
trunk/mega328_3.3V Makefile und Daten für ATmega328 mit LiPo-Akkubetrieb (Funkamateur)
trunk/mega168_strip_grid Makefile und Daten für ATmega168 für Streifenleiter-Platine
trunk/mega328_strip_grid Makefile und Daten für ATmega328 für Streifenleiter-Platine (ab Version 1.08k)
trunk/mega328_strip_grid_dogm Makefile und Daten für ATmega328 für Streifenleiter-Platine mit DOG-M Display
trunk/mega8 Makefile und Daten für ATmega8. Ab Version 1.00k ist der Selbsttest für den ATmega8 nicht mehr konfigurierbar.
tags Fertige Software Versionen als ZIP gepackt
changelog.txt Hier sollte jede Änderung mit Versionsnummer eingetragen werden
Markus Alternative Software von Markus R., bitte README beachten! Die Software wurde aufgeräumt und ist viel besser strukturiert, läuft aber nur auf einem ATmega168 oder ATmega328. Die Software läuft nur auf dem Standard-Layout.