Forum: Projekte & Code Transistortester mit AVR


von Markus F. (5volt) Benutzerseite


Lesenswert?

Hallo,
hier mal ein Projekt von mir: Ein automatischer Transistortester, 
gesteuert von einem ATMega8. Ich habe da auch einen Artikel dazu 
erstellt:
http://www.mikrocontroller.net/articles/AVR-Transistortester
Dieses Gerät erkennt Transistoren, Anreicherungs-MOSFETs, 
Dioden-Netzwerke und kleine Thyristoren und Triacs automatisch. Bei 
Transistoren wird auch noch der Verstärkungsfaktor angezeigt.
Der Tester ermittelt auch automatisch die Anschlüsse des Transistors.
Ist ein recht nützliches Gerät, finde ich. Transistoren mit unbekannten 
Pin-Belegungen und unbekannter Funktionstüchtigkeit hat man immer 
wieder.
Ich habe das Gerät mit vielen Transistoren und MOSFETs erfolgreich 
getestet (genauer: alle, die ich versucht habe wurden auch korrekt 
erkannt), darunter auch Leistungstypen wie 2N3773 oder IRFP450.
Verarmungs-FETs werden aber noch nicht unterstützt.
Mich würden mal eure Meinungen und eventuelle Verbesserungsvorschläge 
dazu interessieren.

: Gesperrt durch Admin
von Martin S. (Gast)


Lesenswert?

Super Projekt, ich bin begeistert. Hier gab es zwar schon mal so einen 
Tester, aber ich glaube deiner unterstützt mehr Bauteile. (Daumen hoch)

Da ich so etwas schon öfter benötigt habe werde ich es nachbauen. 
Allerdings ein wenig modifiziert:
Die Stomversorgung würde ich einfach über einen (rastenden) Schalter an 
den Spannungsregler legen. Dies hat (für mich ) folgende Vorteile:

1. viel weniger Bauteile (es entfallen ja etliche Bauteile)
2. kleine Lochrasterplatine reicht (ist ja nicht viel drauf)
3. die automatische Abschaltung entfällt (sonst fragt man sich: wo war 
noch gleich "B"?)
4. die Ruhestromaufnahme ist 0mA (o.k.dein Wert ist eigentlich auch 0 :)

O.K. das ist nur meine persönliche Meinung. Der Tester gehört in jede 
aufgeräumte Werkstatt.

Vielen Dank für dieses Projekt

Gruß
Martin

von Benedikt K. (benedikt)


Lesenswert?

Ich werde das Teil auch mal nachbauen, denn die Schaltung vereint im 
Prinzip ja 3 Schaltungen:
- Bauteil identifizieren
- Belegung rausfinden
- Testen

Und es wurde sogar an nahezu alle Transistoren gedacht (wie die mit der 
Diode Emitter->Kollektor).

@ Markus
Hast du damit zufällig schonmal einen HOT gemessen (z.B. BU508 oder 
ähnliche)? Diese besitzen nämlich oft einen Widerstand zwischen Basis 
und Emitter, meist um die 100 Ohm.
Das gleich gilt für viele größere Thyristoren.

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

Markus F. wrote:
> Mich würden mal eure Meinungen

Schön.

> und eventuelle Verbesserungsvorschläge
> dazu interessieren.

Der Mega8 ist gesockelt? Da die Eingänge, besonders PC0 - PC2, keine 
Schutzschaltung haben, würde ich das machen um ihn wenn notwendig 
tauschen zu können. Alternativ natürlich eine Schutzschaltung 
(Widerstand und BAV99 pro Pin). Ob die deiner Messmethode(n) stören 
würde habe ich mir nicht angesehen.

von Markus F. (5volt) Benutzerseite


Lesenswert?

> Hast du damit zufällig schonmal einen HOT gemessen (z.B. BU508 oder
> ähnliche)? Diese besitzen nämlich oft einen Widerstand zwischen Basis
> und Emitter, meist um die 100 Ohm.

Nein, das habe ich noch nicht versucht. Ich schätze aber, dass ein HOT 
nicht vernünftig erkannt wird. Darlingtons wie den BD675 habe ich aber 
schon mal gemessen. Die Belegung wird korrekt erkannt, allerdings kann 
der Verstärkungsfaktor nicht richtig gemessen werden (wegen der internen 
Widerstände von B nach E).

Leistungsthyristoren können damit prinzipiell nicht getestet werden, 
weil der maximale Teststrom bei gut 7mA liegt. Das liegt unter dem 
Haltestrom vieler Thyristoren. Das Bauteil wird dann fälschlicherweise 
als NPN-Transistor erkannt. Man könnte mit drei weiteren Widerständen 
noch einen weiteren Strombereich für den Test einbauen (z.B. 120 Ohm für 
ca. 40mA).
Das dürfte für die meisten Thyristoren und Triacs als Haltestrom 
reichen. Damit steigt aber auch das Risiko, empfindliche Bauteile zu 
beschädigen.

Das mit der automatischen Abschaltung habe ich eingebaut, um die 
Bedienung möglichst komfortabel zu machen: Transistor anschließen, Knopf 
drücken, Ergebnis ablesen. Aber ich gebe euch Recht, für dieses Gimmick 
ist es schon ein ziemlicher Aufwand.

=> Hannes Jaeger:
Ja, in meinem Aufbau ist der Mega8 gesockelt. Eine Schutzschaltung wäre 
noch eine Ergänzung. Allerdings sollte man an PC0...2 keine zusätzlichen 
Widerstände anschließen (diese Pins werden während des Tests auch ab und 
zu auf Ausgang geschaltet). Widerstände würden das Messergebnis 
verfälschen. Denkbar wären aber z.B. eine Surpressordiode und eine 
32mA-Sicherung an jedem Pin.
Eigentlich sollten aber sowieso keine eingebauten Transistoren getestet 
werden (nur dann besteht die Gefahr einer Beschädigung). Zumindest der 
Verstärkungsfaktor kann da nämlich nicht vernünftig ermittelt werden. 
Dann könnten auch Kollektor und Emitter falsch erkannt werden.

von Peter D. (peda)


Lesenswert?

Warum benutzt Du nicht einfach 3* R6-Batterien und keinen 
Spannungsregler?
Dann brauchst Du keine extra Abschaltschaltung.

Stabil muß die Spannung nicht sein, es wird ja das Verhältnis 
Kollektorstrom zu Basisstrom gemessen.


Peter

von Benedikt K. (benedikt)


Lesenswert?

Ich bin gerade dabei die Schaltung aufzubauen:
In dem Schaltplan sind ein paar Fehler/Unschönheiten:
- Du hast D0-3 anstelle von D4-7 am LCD angeschlossen
- An den Reset Pin sollte man entweder einen C gegen Masse, 10k gegen 5V 
oder beides anschließen
- Wenn du einen Widerstand zwischen GND und CONTR vom LCD einbaust, wird 
der Kontrast besser. Das Display das du verwendet hast, sieht aus wie 
das Mini Display von Pollin: Das hat normalerweise einen super Kontrast, 
bei dir ist es allerdings ziemlich übersteuert. Häng mal etwa 2k in die 
CONTR Leitung. Andere LCDs benötigen etwa 100-1k.
- Ein paar 100nF in der Schaltung würden auch nicht stören.

von Paul Baumann (Gast)


Lesenswert?

So einen ähnliche Apparat hatte Bernhard schon entwickelt.
Beitrag "einfacher Transistortester (Assembler) ATmega8"
Den habe ich nachgebaut und er funktioniert auch prima.

MfG Paul

von Markus F. (5volt) Benutzerseite


Lesenswert?

> Du hast D0-3 anstelle von D4-7 am LCD angeschlossen
Ja, stimmt. Das habe ich übersehen. Es müssen natürlich D4...7 sein, da 
habe ich mich vertan
> An den Reset Pin sollte man entweder einen C gegen Masse, 10k gegen 5V
> oder beides anschließen
Auch richtig. Habe ich in meinem Aufbau nicht gemacht, könnte ich aber 
nochmal nachrüsten.
Der Kontrast des Displays ist übrigens nicht so viel zu hoch wie es im 
Foto aussieht. Und es ist wirklich das LCD von Pollin für 1,95€.

Einen 100nF von Vcc nach GND habe ich auch eingebaut, aber im Schaltplan 
vergessen (ist sowieso mein erster Schaltplan in Eagle...)

Ich werde die genannten Dinge mal ändern und dann einen neuen Schaltplan 
reinstellen.

Mit der "Batterie-leer-Erkennung" gibt es sowieso ein paar Probleme 
(habe ich gerade bei einem Test mit einem Netzgerät bemerkt).
Das ist eben mal wieder das Übliche:
Man baut eine Funktion ein und testet sie. Wenn sie dann läuft ist es ja 
prima.
Dann ändert man an dem Programm noch etwas und plötzlich gibt es bei 
Dingen Probleme, die vorher 1A geklappt haben. Kennt hier wohl jeder...

von Markus F. (5volt) Benutzerseite


Lesenswert?

So, ich habe den Schaltplan jetzt verbessert. Das Problem mit der 
"Batterie leer"-Anzeige ist auch gelöst. Ich habe die neuen Dateien zu 
dem Artikel reingestellt.

> Warum benutzt Du nicht einfach 3* R6-Batterien und keinen
> Spannungsregler?
Viele Mosfets brauchen z.B. mindestens 4V am Gate um halbwegs zu 
schalten.
Außerdem ist sonst der Teststrom nicht konstant, was den Test von 
Thyristoren u.ä. noch unzuverlässiger macht (der Teststrom fällt 
natürlich, wenn die Betriebsspannung sinkt). So toll wäre das nicht.

von Thomas H. (pcexperte) Benutzerseite


Angehängte Dateien:

Lesenswert?

@Alle

Ich habe mir mal eine Platine entworfen für den Transistortester, ich 
habe diese Platine so ausgelegt das ich auch ein kleines OLED Display 
einsetzen kann. Wenn Markus F. die Erlaubnis geben würde könnte man auch 
Bausätze für alle anbieten die selber keine Platinen herstellen können.

Kontakt über das Forum oder thomas [at] heldt [punkt] eu

@Markus F.
ich hatte dich mal angeschrieben wegen der Idee mit den Bausätzen bitte 
melde dich doch einfach mal, danke.

Gruß
Thomas

von Markus F. (5volt) Benutzerseite


Lesenswert?

=> Thomas H:
Ich habe dir eine Mail zu der Sache mit den Bausätzen geschickt.

Und noch etwas: Könnte jemand, der den Transistortester schon aufgebaut 
hat, einmal versuchen, damit einen P-Kanal-(Anreicherungs)MOSFET zu 
testen? Das müsste eigentlich funktionieren, ich habe aber leider keinen 
einzigen da, um es ausprobiern zu können.

Eine Testfunktion für Verarmungs-MOSFETs und JFETs werde ich wohl auch 
noch einbauen. Erstmal muss ich mir aber solche Bauteile besorgen (ich 
habe eine ganze Menge verschiedene NPN-Transistoren und 
N-Kanal-Anreicherungs-MOSFETs, aber JFETs und so habe ich kaum).

von Benedikt K. (benedikt)


Lesenswert?

Markus F. wrote:

> Und noch etwas: Könnte jemand, der den Transistortester schon aufgebaut
> hat, einmal versuchen, damit einen P-Kanal-(Anreicherungs)MOSFET zu
> testen? Das müsste eigentlich funktionieren, ich habe aber leider keinen
> einzigen da, um es ausprobiern zu können.

Habs mal eben ausprobiert: Funktioniert: P-Kanal Mosfet
Bisher hat das Gerät alles richtig erkannt. Die ganz gemeinen Sachen 
habe ich allerdings noch nicht ausprobiert...

> Eine Testfunktion für Verarmungs-MOSFETs und JFETs werde ich wohl auch
> noch einbauen.

Wie willst du die messen?
Die brauchen ja normalerweise eine negative Spannung, damit diese 
sperren.
Da dies ja nicht geht, müsste man den Sourceanschluss positiver legen 
als das Gate, aber wiederum negativer als Drain (zumindest beim Mosfet, 
beim JFET ist das egal).
JFETs und Verarmungs-MOSFETs könnte man dadurch unterscheiden, dass das 
Gate beim JFET leitet sobald es positiv wird, während beim N-Verarmungs 
MOSFET das Gate hochohmig ist. Dafür hat letzteres die Source-Drain 
Diode.

Mir ist aber gerade noch eine andere Idee eingefallen:
Und zwar könnte man mit ein paar Tricks die Schwellspannung von Mosfets 
messen:
Ich gehe jetzt mal von einem normalen N-Kanal Mosfet aus:
Man legt Source auf GND, Drain über den 680 Ohm Widerstand an 5V und 
Gate zunächst auch auf GND.
Anschließend schaltet man das Gate über den 470k Widerstand an 5V und 
misst  den Logikpegel an Drain. Sobald dieser auf Low geht, schaltet man 
das Gate hochohmig. Dann hat man nämlich gerade den Schaltpunkt 
erreicht. Nun misst man die Spannung am Gate.
Das ganze wird zwar alles andere als genau, da man das RC Glied 470k-GS 
Kapazität (die man über die Ladezeit auch noch mitmessen könnte) als DA 
Wandler missbraucht, aber es wäre ohne Hardwareerweiterung möglich.

von Markus F. (5volt) Benutzerseite


Lesenswert?

> Wie willst du die messen?
> Die brauchen ja normalerweise eine negative Spannung, damit diese
> sperren.

Da hatte ich schon eine Idee:
Der AVR hat ja interne 10k Pullup-Widerstände. Dann baut man eben 
zunächst an Gate und Drain damit zwei Spannungsteiler: 10k nach Plus und 
680 Ohm nach Masse. Das ergibt dann so 0,36V. Drain kommt auf Plus. Wenn 
man einen Verarmungs-MOSFET oder JFET angeschlossen hat, werden Drain 
und Source "aufeinander zu", also in Richtung 5V gezogen. Man misst 
jetzt die Spannung an Source und speichert sie zwischen.
Dann legt man das Gate fest auf Masse und misst erneut die 
Sourcespannung. Wenn dieser Wert kleiner ist als der vorherige, bedeutet 
das, dass weniger Strom von Drain nach Source fließt. Es müsste sich 
dann also um einen Verarmungs-MOSFET oder JFET handeln.

Okay, man kann mit dieser Methode nicht prüfen, ob der FET ordnungsgemäß 
vollständig sperrt, weil die negative Spannung am Gate eben maximal 5V 
beträgt, in der Praxis wohl eher 1-2V. Die negative Gate-Sourcespannung 
sinkt ja immer weiter, wenn der FET zu sperren beginnt, da Source immer 
weiter gegen Masse geht.

=> Benedikt:
Die Messung der Gate-Schwellspannung ist auch eine gute Idee. Sehr genau 
wird es mit den AVR-internen ADCs wohl nicht, aber als Schätzeisen 
reicht es.

Platz für Erweiterungen ist noch genug: Von den 8kB Flash des Mega8 sind 
erst ca. 3,7kB belegt.

von Norgan (Gast)


Lesenswert?

> Der AVR hat ja interne 10k Pullup-Widerstände.

Eher so um die 80k bis 120k.

von Benedikt K. (benedikt)


Lesenswert?

Laut mega8 Datenblatt 20-50k.
Im Gegensatz zu den alten AVRs ist der ziemlich konstant (Seite 262: Pin 
Pull-up Figure 143. I/O Pin Pull-up Resistor Current vs. Input Voltage 
(VCC = 5V))
Der Verlauf ist nahezu eine perfekte Gerade.
Im Vergleich dazu: AT90S2131, Seite 80: Figure 68. Pull-up Resistor 
Current vs. Input Voltage)
Da sah die Kurve noch sehr viel Mosfet artiger aus, also mit steigendem 
Strom zunehmend in die Sättigung gehend.

von Markus F. (5volt) Benutzerseite


Lesenswert?

> Laut mega8 Datenblatt 20-50k.
Ja, stimmt (habe selbst nochmal nachgesehen). Ich hatte irgendwie 10k in 
Erinnerung.
Ist natürlich nicht so toll, weil man fast keine Spannung mehr kriegt, 
wenn man den mit einem 680Ohm Widerstand zu einem Spannungsteiler 
schaltet.
Ich werde mal versuchen, ob es trotzdem irgendwie klappt damit JFETs und 
Verarmungs-MOSFETs zu messen. Dann ist es aber auch langsam gut mit 
unterstützten Bauteilen. Je mehr Bauteile unterstützt werden, desto 
wahrscheinlicher wied auch eine Falscherkennung.

von Markus F. (5volt) Benutzerseite


Lesenswert?

Ich habe gerade nochmal eine neue Version der Firmware zu dem Artikel 
reingestellt.
In der neuen Version werden Thyristoren und Triacs deutlich 
zuverlässiger erkannt (vorher habe ich da irgendwie Mist gebaut...). 
Kleine Thyristoren sollten jetzt einwandfrei erkannt werden. Bei mir 
klappt es auch mit einem Leistungs-Triac (BT136), das ist aber eher 
Glückssache.

Außerdem wurden öfter mal die Schutzdioden von MOSFETs nicht erkannt. 
Das klappt jetzt auch.
Dann fehlen eigentlich nur noch Verarmungs-MOSFETs und JFETs (wenn 
möglich). Und vielleicht noch Gimmicks wie die Messung der 
Gate-Schwellspannung, Gatekapazität, Basis-Emitter-Spannung,...
Platz wäre noch genug da, der Controller ist erst knapp halb voll.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Würde das ganze auch noch in einen Mega48 reinpassen?

von Benedikt K. (benedikt)


Lesenswert?

Momentan noch. Der mega48 hat vermutlich aber keine Zukunft mit all den 
geplanten Erweiterungen:

AVR Memory Usage
----------------
Device: atmega48

Program:    3526 bytes (86.1% Full)
(.text + .data + .bootloader)

Data:        348 bytes (68.0% Full)
(.data + .bss + .noinit)

Der viele RAM geht momentan anscheinend für die LCD Strings drauf, die 
man in den Flash packen könnte.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Benedikt K. wrote:
> Data:        348 bytes (68.0% Full)
> (.data + .bss + .noinit)
>
> Der viele RAM geht momentan anscheinend für die LCD Strings drauf, die
> man in den Flash packen könnte.
Oder ins EEPROM oder wird das anderweitig verwendet? Hintergrund ist 
einfach der, ich hab noch nen paar Mega48 im TQFP hier rumliegen und 
würde mir dann ggf ne MiniVersion davon mal basteln (habe zufällig auch 
das Mini LCD von Pollin bestellt, ist echt niedlich). Welche Optimierung 
hast du den gewählt?

von Benedikt K. (benedikt)


Lesenswert?

Läubi .. wrote:

> Oder ins EEPROM oder wird das anderweitig verwendet?

So wie ich das sehe ist das noch komplett frei.

> Welche Optimierung hast du den gewählt?

Os. Mit O2 sind es knapp über 90%.

von Stefan (Gast)


Lesenswert?

Hallo,
ich wüsste gerne mit welchem Takt der Atmel läuft ?
Interner Takt ist klar aber dann ?

Vielen Dank Stefan

von Benedikt K. (benedikt)


Lesenswert?

Das dürften 1MHz sein wenn ich die Fusebits richtig interpretiere.

von Stefan (Gast)


Lesenswert?

Super.

Danke Stefan

von Markus F. (5volt) Benutzerseite


Lesenswert?

Ja, die ganzen Strings für das LCD könnte man auch ins EEPROM packen. 
Würde schon einiges sparen.
Allerdings hat ein Mega48 auch nur ein 256B EEPROM, das könnte knapp 
werden, besonders bei eventuellen Erweiterungen. Da bräuchte man dann 
schon wieder zwei Versionen der Firmware, eine die alle Strings im 
EEPROM hat (für Mega8, der hat 512B EEPROM) und eine die zusätzlich noch 
welche im Flash hat (für Mega48). Versuchen könnte ich es aber mal.


=> Stefan:
Ja, der AVR läuft auf internem Oszillator mit 1MHz.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Oder man legt prinzipell erstmal bis zu 256 bytes im EEPRom ab dann 
gehts (erstmal) für beide. Mach dir aber nicht zuviele Gedanken deswegen 
im Zweifel muß ich mir nochmal nen Mega88 besorgen, hatte nur Gedacht 
wen der Mega8 eh nur zur Hälfte voll ist könnte man ja auch den etwas 
günstigeren 48er hernehmen. Wenn irgenwelche Zeiten gemessen Werden 
sollen wäre aber ein externer Quarz auch schon ne Überlegung wert...

von Benedikt K. (benedikt)


Angehängte Dateien:

Lesenswert?

Ich habe mal die Gate Threashold Spannungsmessung mal eingebaut.
Das funktioniert erstaunlich gut, die Werte sind sehr gut 
reproduzierbar. Nur bei sehr kleinen Mosfets (BS170 usw.) springen sie 
um etwa +/-100mV, da die RC Zeitkonstante sehr klein ist. Hier könnte es 
helfen, den AVR schneller laufen zu lassen.
Ebenso sind die Werte sehr großen Toleranzen unterworfen, da die 
Schwelle der Ports nicht wirklich konstant ist. Zur Unterscheidung eines 
Logiklevel und eines normalen Mosfets sollte es aber durchaus 
ausreichen.
Man sieht auch deutlich den Einfluss der Millerkapazität:
Solange die rote Drainspannung konstant bleibt, ist die Gatesource 
Spannung eine e-Funktion. Sobald die Drainspannung aber zu sinken 
beginnt, geht die Kurvenform eher in Richtung Gerade. Am Ende der Kurve 
sieht man deutlich wo das Laden der Gatekapazität abgeschaltet wird und 
die ADC Messung anfängt.
Danach kommt der nächste Messzyklus (hier nur um ein Foto vom Oszi 
machen zu können).
1
void measurevgate(void)
2
{  uint8_t tmpval, tmpval2;
3
//for(;;)
4
{
5
  ADC_PORT=0;
6
  ADC_DDR=(1<<e)|(1<<b);
7
  R_DDR = (1<<(2*c));        // Drain: starker pullup, Gate: schwacher pullup + interner pullup
8
  R_PORT = (1<<(2*c))|(2<<(2*b));  // Drain: starker pullup, Gate: schwacher pullup
9
  _delay_ms(1);          // gate entladen
10
11
  tmpval=(1<<c);
12
  tmpval2=(1<<(2*c));
13
  ADC_DDR=(1<<e);          // gate über 470k+pullup langsam laden
14
  while (ADC_PIN&tmpval);      // warten bis drain auf low
15
  R_PORT=tmpval2;          // gate ladewiderstand abschalten
16
  vgate=(unsigned long)ReadADC(b)*78/16;
17
}
18
}

von Benedikt K. (benedikt)


Angehängte Dateien:

Lesenswert?

Und weils so schön ist: Hier mal die komplette Kurve, wenn der 
Gateladevorgang nicht unterbrochen wird.
Man sieht hier den Einfluss der Millerkapazität sehr deutlich: Sobald 
die Drainspannung wieder stabil ist, setzt sich die e-Funktion fort.
Eine Messung der Gatekapazität müsste daher bei konstanter Drainspannung 
erfolgen. Allerdings würde man dann nicht die Gatesource kapzität, 
sondern die Gatesource+Gatedrain Kapazität. Da in der Praxis aber die 
Millerkapazität einen stärkeren Einfluss hat, als die Gatekapazität, ist 
es sogar gut wenn man diese mitmisst. Wirklich einen konkreten Wert kann 
man hier sowieso nicht messen, so ungenau wie alles ist, aber man könnte 
die Ladezeit als groben Anhaltswert zum Vergleich von Mosfets verwenden: 
Je größer die Ladezeit, desto mehr Energie erfordert die 
Gateansteuerung. Vor allem bei hohen Frequenzen ist dieser Wert 
interessant.

Und noch ein paar Messwerte:
        gemessen, Datenblatt (min, typ, max)
BSS98:     1.53V, 0.8V, 1.2V, 1.6V
IRF1405:   3.62V, 2.0V,  -  , 4,0V
BS170:     2.45V, 0.8V, 2.1V, 3.0V
BUK555:    1.69V, 1.0V, 1.5V, 2.0V

Der Drainstrom liegt mit etwa 4-5mA etwas höher als die Angaben im 
Datenblatt (250µA-1mA), daher die etwas hohen Werte im Vergleich zu den 
typ. aus dem Datenblatt.

Markus hat da ein echt schönes Projekt angefangen, das man wunderbar 
erweitern kann.

von Markus F. (5volt) Benutzerseite


Lesenswert?

=> Benedikt:
Etwa genau so habe ich mir das mit der Messung der Gatespannung auch 
vorgestellt. Als Ausgabewert würde ich aber keine unsigned long nehmen, 
unsigned int reicht dicke aus.
Die Oszi-Bilder sind auch schön. Da sieht man wirklich gut, was die 
Millerkapazität ausmacht.

=> Läubi:
Wie ich das mit den Strings fürs LCD gemacht habe ist sowieso nicht 
ideal. Das kostet nämlich Platz in Flash und RAM. Allein deswagen ändere 
ich das nochmal und packe die Strings ins EEPROM.

Und so ungenau wie die Messung der Gatekapazität werden würde, spielen 
auch die paar % Toleranz des RC-Oszillators keine große Rolle mehr. Den 
Quarz kann man sich also eingentlich auch sparen.

von Benedikt K. (benedikt)


Lesenswert?

Markus F. wrote:

> Als Ausgabewert würde ich aber keine unsigned long nehmen,
> unsigned int reicht dicke aus.

Der cast auf unsigned long ist notwenig, wegen der Multiplikation mit 
78. Das passt nämlich nicht mehr in einen int. Am Ende wird dann wieder 
ein int draus:
78/16=4,875
5000mV/1024=4,88

Wobei 78/16 kann man kürzen, dann wird das *39/8 draus, das passt 
wiederum (keine Ahnung wieso ich das nicht gesehen habe).

Du verwendest einen Faktor von etwa 4,6 zum Umrechnen vom ADC Wert in 
mV, das passt von der Theorie her nicht ganz. Wie kommst du auf diesen 
Wert?

PS:
Man kann die ADC Funktion noch etwas optimieren indem man nicht den 
Freerunning Modus verwendet:
1
unsigned int ReadADC(uint8_t mux) {
2
  //ADC-Wert des angegebenen Kanals auslesen und als unsigned int zurückgegen
3
  unsigned int adcx = 0;
4
  ADMUX = mux | (1<<REFS0);
5
  for(uint8_t j=0;j<32;j++) {  // 32 Messungen; für bessere Genauigkeit
6
    ADCSRA = (1<<ADEN) | (1<<ADSC) | 5;  // Vorteiler=32
7
    while (ADCSRA&(1<<ADSC));
8
    adcx += ADCW;
9
  }
10
  adcx /= 32;
11
  return adcx;
12
}
Das geht schneller, da wirklich jedes ADC Ergebnis verwendet wird. 
Theoretisch könnte man so sogar eine etwas höhere Auflösung von etwa 11 
Bits erreichen, wenn der ADC Wert zwischen 2 Werten hin und her 
schwankt.

von Markus F. (5volt) Benutzerseite


Lesenswert?

> Du verwendest einen Faktor von etwa 4,6 zum Umrechnen vom ADC Wert in
> mV, das passt von der Theorie her nicht ganz. Wie kommst du auf diesen
> Wert?
Durch Ausprobieren, der eigentlich richtige Wert von 4,88 hat nämlich 
etwas falsche Ergebnisse gebracht (keine Ahnung warum).

Das mit dem Free-Run stimmt natürlich auch. Ich wollte das ganze Projekt 
sowieso nochmal etwas optimieren. Es ist nämlich wieder mal das passiert 
was normalerweise nicht sein sollte:
- Man plant ein überschaubares Projekt
  Erstmal hatte ich nur Testfunktionen für NPN und PNP eingebaut. Der 
allererste Aufbau war sigar mit einem Tiny13 und einem CMOS 4024 für die 
Widerstände. Ich habe aber sehr schnell gemerkt, dass 1k Flash nie 
reichen werden. Also gleich einen Mega8, anstatt nachher noch einen 
teuren Tiny85 kaufen zu müssen. Außerdem muss bei dem ATTiny sowieso 
RSTDISDL gesetzt werden, um überhaupt 6 Portpins für das LCD zu haben. 
Ist auch nicht ideal, weil man dan einen HV-Programmer braucht. Und den 
hat ja hier auch nicht jeder (ich habe auch nur einen selbstgebauten, 
der nur für 8-und 14-pin AVRs geht).
- Dann fällt einem immer mehr ein, was man noch einbauen könnte, und man 
baut das auch sogleich ein
- Nun hat man ein recht großes, unübersichtliches und teilweise auch 
nicht optimales Projekt

Irgendwie passiert mir das fast bei jedem Projekt. Bessere Planung würde 
da helfen... Der Transistortester ist da noch ein recht harmloses 
Beispiel.

von Markus F. (5volt) Benutzerseite


Lesenswert?

Ich habe jetzt nochmal ein neues Archiv reingestellt. Da habe ich den 
ADC-Freerun entfernt. Der Test geht jetzt wie erwartet deutlich 
schneller.
Außerdem sind die Strings jetzt größtenteils im EEPROM. Also bitte auch 
die beiliegende eep-Datei ins EEPROM schreiben.

Auf einem Mega8 ist der Speicher jetzt folgendermaßen belegt:
Program:    3650 bytes (44.6% Full)
Data:         66 bytes (6.4% Full)
EEPROM:      232 bytes (45.3% Full)

Bei einem Mega48 wären es 3682 Bytes Flash (89,9%). Das wird also eng.

Noch eine Frage: Wie sollte ich die Anzeige für die Gate-Schwellspannung 
bei MOSFETs dann am besten machen? Im LCD ist da so kein Platz mehr. Im 
Frage käme eine Scrollfunktion, also eine weitere Zeile, zu der man per 
Taster wechseln kann (auch über den Einschalttaster, dann müsste man ihn 
z.B. <0,5s drücken um zu scrollen oder >0,5s um einen neuen Testzyklus 
zu starten. Eine Alternative wäre eine Laufschrift in der 2. Zeile. Was 
meint ihr ist besser? Oder hat noch wer einen anderen Vorschlag? 
(größeres LCD nehmen geht eigentlich nicht...).

von Benedikt K. (benedikt)


Lesenswert?

Markus F. wrote:

> Noch eine Frage: Wie sollte ich die Anzeige für die Gate-Schwellspannung
> bei MOSFETs dann am besten machen? Im LCD ist da so kein Platz mehr.

Wenn man man die unnötigen Infos entfernt, und den Rest etwas 
zusammenpackt, reicht es. Bei mir sieht die Anzeige so aus:
N-Mosfet Qg=1234
GDS=123 Vt=1.23V

von Markus F. (5volt) Benutzerseite


Lesenswert?

> Wenn man man die unnötigen Infos entfernt, und den Rest etwas
> zusammenpackt, reicht es. Bei mir sieht die Anzeige so aus:
> N-Mosfet Qg=1234
> GDS=123 Vt=1.23V

Okay, das ist auch eine Möglichkeit. Ist aber etwas unübersichtlich. Das 
ist aber trotzdem eine gute Idee und ich werde es auch erstmal so 
machen. Auf alle Fälle ist es besser als scrollen oder Laufschrift.

von Benedikt K. (benedikt)


Lesenswert?

Ich hatte mir auch erst überlegt einen Taster einzubauen mit dem man bei 
dem Ergebnis auf eine 2. Seite wechseln kann.
Die 1. Seite wäre dann die allgemeinen Infos, also Typ + Belegung, die 
2. die Basis-Emitter bzw. Gatespannung usw.
Allerdings ist das viel Aufwand, und es sind ja nur die Mosfets bei 
denen es wirklich notwendig ist, daher die Kompaktanzeige.

von Stefan (Gast)


Lesenswert?

Hallo,
ich hab mal eine Frage und zwar ist es möglich mit dem Tester auch
die Durchlaßspannung von LEDs zu ermitteln ?

mfg Stefan

von Markus F. (5volt) Benutzerseite


Lesenswert?

> ich hab mal eine Frage und zwar ist es möglich mit dem Tester auch
> die Durchlaßspannung von LEDs zu ermitteln ?

Ja, bis 2,5V. Ich werde diesen Wert aber nochmal etwas erhöhen, so auf 
3,5V bis 4V. Das sollte für fast alle LEDs reichen.
Höher als 4V sollte man aber vermutlich nicht gehen (dann wird die 
Wahrscheinlichkeit, dass irgendwelche Bauteile fälschlicherweise als 
Diode erkannt werden recht groß).

LEDs werden als Diode angezeigt, mit entsprechender Durchlassspannung 
(ca. 2V bei Standard-LEDs).

von Harald P. (haraldp)


Lesenswert?

Das ist ein interessanten Projekt. Ich werde den Tester mal nachbauen.
@Markus: Kannst du den neuen Quelltext zur Verfügung stellen? Unter
http://www.mikrocontroller.net/articles/AVR-Transistortester
findet sich nur das alte Programm. Oder habe ich etwas übersehen?
Harald

von Markus F. (5volt) Benutzerseite


Lesenswert?

Ich habe jetzt den neuen Quelltext reingestellt und den Artikel noch 
etwas geändert. Folgende Features sind jetzt neu:

- Erkennung von Verarmungs-MOSFETs und JFETs (n- uns p-Kanal; 
größtenteils noch ungetestet, weil ich kaum solche Bauteile habe)
- Messung und Anzeige der Gate-Schwellspannung
- Watchdog, damit der Tester nicht in irgendeiner Endlosschleife 
hängenbleibt
- Erkennung von Dioden bis 4V Durchlassspannung (vorher: 2,5V)

Das Programm würde sogar noch in einen Mega48 passen (3970 Bytes).
Messung der Gate-Ladung ist aber noch nicht eingebaut. Da würde der 
Mega48 wohl auch nicht mehr reichen (da ist nämlich die Berechnung des 
natürlichen Logarithmus (ln) nötig).

von Markus F. (5volt) Benutzerseite


Lesenswert?

Ich werde dann wohl demmächst noch ein paar FETs kaufen. Um den 
Transistortester damit auszuprobieren, aber natürlich auch so zum 
Basteln...
Folgende Typen habe ich nach einiger Sucherei gefunden:

P-Kanal-JFET: 2N5461 (P-JFETs scheinen sehr selten zu sein)
N-Kanal-Verarmungs-MOSFET: BF980 (ist ein Dual-Gate-Typ und damit auch 
allgemein zum Basteln recht interessant; einen anderen, der bei Reichelt 
erhältlich ist habe ich auch nicht gefunden)
P-Kanal-Anreicherungs-MOSFET: IRF9540 o.ä. (hier ist die Auswahl recht 
groß)
P-Kanal-Verarmungs-MOSFET: ? (sowas gibt es möglicherweise gar nicht, 
oder kennt ihr einen?)

Solche FETs scheinen aber allesamt nicht so häufig anzutreffen zu sein, 
am ehesten noch die p-Kanal-Anreicherungs-FETs. In einer Kiste voll 
Elektronikschrott habe ich kein solches Bauteil gefunden. Immerhin waren 
2 N-Kanal-JFETs (BF245) dabei...

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Sehe ich das richtig das der ganze linke Teil (Abzüglich der 
Blockkondensatoren und dem Taster) nur der Automatischen Abschaltung 
dient und auch weggelassen werden kann? Würde meine Schaltung einfach 
per Netzteil versorgen.

von Thomas G. (tgfuellner) Benutzerseite


Lesenswert?

Hi,

super Projekt, werde ich auf alle Fälle auch nachbauen. Die Hardware ist 
elegant einfach.

Ich werde aber auch die automatische Abschaltung weglassen. Für mich tut 
es ein zusätzlicher Schalter auch.

Ist es dann nötig die Software anzupassen?

von Markus F. (5volt) Benutzerseite


Lesenswert?

> Ich werde aber auch die automatische Abschaltung weglassen. Für mich tut
> es ein zusätzlicher Schalter auch.

> Ist es dann nötig die Software anzupassen?
Nein, es ist nicht nötig, die Software anzupassen.
An der Hardware muss man dann folgendes ändern:
T1, T2 und T3 entfallen, genauso die Widerstände R7, R8, R9 und R10. 
LED1 und C2 entfallen auch. Anstelle von T3 wird einfach eine Brücke 
eingesetzt.
Die Pins 12 und 13 (PD6 und PD7) des ATMega8 werden einfach offen 
gelassen.
Wer mag, kann auch von Pin 13 des Mega8 noch einen Taster gegen Masse 
anschließen. Damit könte man dann einen neuen Testzyklus starten, ohne 
den Tester aus- und wieder einschalten zu müssen.

von Hannes Lux (Gast)


Lesenswert?

> Wer mag, kann auch von Pin 13 des Mega8 noch einen Taster gegen Masse
> anschließen. Damit könte man dann einen neuen Testzyklus starten, ohne
> den Tester aus- und wieder einschalten zu müssen.

Denkbar wäre auch ein Taster (statt des Schalters) in der 
Batterieleitung. Man klemmt den Prüfling an, drückt den Taster (und hält 
ihn fest), liest ab und lässt den Taster los...

Nein, ich habe es noch nicht nachgebaut, schließe es aber nicht aus.

...

von Tja (Gast)


Lesenswert?

Wird bei deinem Tester der Leckstrom in die Berechnung des HFE Werte 
einbezogen ?
Währe nämlich bei GE-Transistoren wichtig.

von Markus F. (5volt) Benutzerseite


Lesenswert?

> Wird bei deinem Tester der Leckstrom in die Berechnung des HFE Werte
> einbezogen ?

Nein, bisher noch nicht. Das ist auch nicht ganz so einfach

von Tja (Gast)


Lesenswert?

Warum? Wenn du den Typ(NPN/PNP) hast, brauchst du die Pins für die 
Widerstände nur auf Eingänge umschalten.
Danach Spannung messen und durch den Widerstand dividieren.
Händische Methode hier angeführt:
http://www.geofex.com/Article_Folders/ffselect.htm

von Markus F. (5volt) Benutzerseite


Lesenswert?

> Warum? Wenn du den Typ(NPN/PNP) hast, brauchst du die Pins für die
> Widerstände nur auf Eingänge umschalten.
> Danach Spannung messen und durch den Widerstand dividieren.

Das stimmt zwar, die Auflösung der ADCs ist aber zu schlecht, um den 
Leckstrom genau messen zu können. Bei 5V Referenz und 10 Bit Auflösung 
kann man nur auf ~5mV genau messen. Das entspricht ca. 7,3µA Strom 
(durch den 680 Ohm-Widerstand). Bei 50µA Leckstrom wird da nicht viel 
angezeigt (ADC-Wert 7; da fallen schon interne Offsets ins Gewicht). 
Interessant wird es erst bei einigen 100µA, aber das ist auch für einen 
Ge-Transistor schon ein recht hoher Leckstrom.

Sehr genau wird das somit nicht werden, aber einbauen werde ich die 
Messung trotzdem mal, schadet ja nicht.

von Tja (Gast)


Lesenswert?

Interesant wäre es ja wenn das Display bei Germaniumtransistoren 
folgende Anzeigen tätigen würde:

Diffusionsspannung
Leckstrom
Belegung
Richtiger HFE (Leckstrom herausgerechnet)
und: Temperatur (wichtig wegen Messung)

Habe ja mal irgendwo im Forum gelesen, das die AVR intern einen 
Tempsensor verbaut haben.

von Robin T. (rotoe) Benutzerseite


Lesenswert?

Tja wrote:
> Habe ja mal irgendwo im Forum gelesen, das die AVR intern einen
> Tempsensor verbaut haben.

mmh. Also davon hab ich noch nichts gehört und auch im Datenblatt noch 
nicht gesehen. Wenn es aber so sein sollte fänd ich das echt cool.

von Hauke R. (lafkaschar) Benutzerseite


Lesenswert?

Es gibt irgendwelche (ich glaub bei den Tinys) modelle, die den 
Tempsensor drin haben, der aber nicht wirklich genau ist.

von MWS (Gast)


Lesenswert?

ATiny25 z.B. haben einen integrierten Temperatursensor.

@Markus:

Ich brauch zwar das gerade nicht, was Du geschrieben hast, aber ich muss 
wirklich sagen: allen Respekt !

Ich glaube Du kannst Dir gar nicht vorstellen um wie viele IQ Punkte 
solche Leute wie Du den Durchschnitt des Forums hochziehen, der oft aus: 
"Hilfe ich will mir einen Roboter bauen, aber ich hab' keine Lust zum 
Programmieren" besteht.

Also nochmal, sollt' ich's noch nicht erwähnt haben: RESPEKT !

von Markus F. (5volt) Benutzerseite


Lesenswert?

> ATiny25 z.B. haben einen integrierten Temperatursensor.

Ja, den wollte ich sogar schon mal für ein anderes Projekt nehmen. Der 
ist wie die ADCs abzufragen (dafür muss man eben ADMUX entsprechend 
setzen). Der Ausgabewert ändert sich je °C etwa um 1. Das ist schon 
recht ungenau, zudem haben die Sensoren recht große Exemplarstreuungen. 
Diese Sensoren sind mal wieder typisch "Kost' nix, taugt nix".

Über Germanium-Transistoren weiß ich allerdings nicht so viel, habe noch 
nie einen benutzt (ist nicht meine Zeit...). Mittlerweile sind die ja 
auch kaum mehr erhältlich.

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

Hallo alle zusammen,

die ersten Platinen habe ich bekommen die Bezugsquelle für euch habe ich 
mit in den Artikel (unter Hardware) geschrieben um hier mal keine 
Werbung zu machen ;)

Die Platine an dich Markus versende ich direkt nach Ostern, vorher 
schaffe ich es leider nicht mehr.

Sobald ich den Tester fertig habe mit Gehäuse etc. kommen mal ein paar 
weitere Bilder dazu.

Ich wünsche allen ein frohes Osterfest und viele Eier ;)

Thomas

von Chris M. (shortie)


Lesenswert?

Hallo Markus,

was ich als Zusatzfunktion interessant fände, wäre eine 
Leitungstestfunktion noch für Cat5 oder serielle Datenleitungen mit 
Erkennung von Kurzschlüssen und Kreuzungen (X-over oder Nullmodem). Man 
müßte dann evtl auf einen größeren Mikrocontroller, aber wenn ich mir so 
das Bild von der IT-WNS Platine anschaue müßte auch ein 40pin 
draufpassen (vorausgesetzt das Routing passt). Wahrscheinlich sollte man 
dann noch Adapter haben, aber das wäre glaub das kleiner Übel.

Gruss Chris

von Hauke R. (lafkaschar) Benutzerseite


Lesenswert?

Naja das hat dann nicht mehr viel mit nem Transistortester gemein ...

Man könnte sich aber trotzdem selbst mit nem größeren µC nen 
"allestester" zusammenschustern, basierend auf dem code hier.

von Wolfgang (Gast)


Lesenswert?

Danke für das tolle Projekt, animiert direkt zum Nachbau!

Wird das Layout auch zum download bereitgestellt?

Schöne Osterfeiertage

von Alexander S. (esko) Benutzerseite


Lesenswert?

Das Layout der Platine von IT-WNS.de ist doppelseitig. M.E. nach ist das 
nicht wirklich nötig und man würde mit einer handvoll Brücken auskommen.

Besser fände ich daher das .sch, dann kann man sich seine Platine selbst 
machen.

von Markus F. (5volt) Benutzerseite


Lesenswert?

So einen "Allestester" finde ich eigentlich nicht so sinnvoll. Praktisch 
wäre es natürlich, aber man müsste es so machen, dass man auswählen muss 
was getestet werden soll. Wäre doch irgendwie ungünstig, wenn ein 
defekter Transistor als Cat5 Kabel angezeigt wird...
Zum Test von Kabeln (z.B. Cat5) bräuchte man auch entsprechend viele 
Portpins und einen für das jeweilige Kabel passenden Terminator, der 
alle Pins des Kabels auf definierte und für jede Ader unterschiedliche 
Pegel legt (im einfachsten Fall eine Spannungsteiler-Kette). Außerdem 
müsste man Buchsen für RJ45, D-Sub-9, usw. einbauen, je nachdem welche 
Kabel unterstützt werden sollen. Meiner Meinung nach wäre ein extra 
Tester da sinnvoller.

von Alexander S. (esko) Benutzerseite


Lesenswert?

Markus F. wrote:
> So einen "Allestester" finde ich eigentlich nicht so sinnvoll. Praktisch
> wäre es natürlich,
Ist finde ich praktisch wenn man keinen so großen Geräte-Fuhrpark hat.
Allerdings bräuchte man auf jeden Fall ein zweites Gerät, damit man auch 
verbaute Kabel testen kann. (Sender & Empfänger)

> Zum Test von Kabeln [] bräuchte man auch entsprechend viele Portpins
Oder einen 74HC595 für die Ausgänge und einen 74HC165 für die Eingänge.

> und einen für das jeweilige Kabel passenden Terminator, der
> alle Pins des Kabels auf definierte und für jede Ader unterschiedliche
> Pegel legt (im einfachsten Fall eine Spannungsteiler-Kette).
Das wäre eine Möglichkeit.
Eine andere: Es wird der Reihe nach an die Pins ein High Signal 
angelegt, die restlichen Pins fungieren als Masse. Entkopplung durch 
Dioden.
Somit erkennt man Unterbrechungen, Vertauschungen, Schlüsse.

von Markus F. (5volt) Benutzerseite


Lesenswert?

> Es wird der Reihe nach an die Pins ein High Signal
> angelegt, die restlichen Pins fungieren als Masse
Damit kann man aber keine Unterbrechungen feststellen, wenn das andere 
Ende des Kabels offen bleibt. Oder meinst du, dass man 2 "intelligente" 
Geräte (jeweils mit µC) hat? Da wäre dann aber ein "intelligentes" 
Testgerät und ein passiver Terminator einfacher.
Das mit den Schieberegistern wäre auch eine Möglichkeit. Allerdings 
haben die nur 8 Bit. Da wird man dann wohl je 2 davon brauchen, um z.B. 
auch D-Sub-9-Kabel testen zu können.
Ist natürlich Geschmackssache, ob man einen Tester für alles oder 
einzelne Tester für jeden Bauteiltyp haben möchte. Kabel und 
Transistoren sind aber meiner Meinung nach doch recht unterschiedliche 
Teile.
Sonst könnte man ja gleich noch einen LTC2400 (24-bit-ADC), 
Spannungsteiler und Shunts zur Strommessung einbauen und hat dann gleich 
noch ein 8-Digit-Multimeter...(zumindest in der Theorie, in der Praxis 
ist die nutzbare Auflösung geringer).

von Alexander S. (esko) Benutzerseite


Lesenswert?

Markus F. wrote:
> Oder meinst du, dass man 2 "intelligente" Geräte (jeweils mit µC) hat?
Ja, einmal ein µC, für die andere Seite langt ein Schieberegister.

> Da wäre dann aber ein "intelligentes" Testgerät und ein passiver
> Terminator einfacher.
Mhh, und wenn die Adern unterschiedliche Widerstände haben, weil Signal 
und Stromkabel zusammenliegen.
Zugegeben ist das die Ausnahme.

> Kabel und Transistoren sind aber meiner Meinung nach doch recht
> unterschiedliche Teile.
Allerdings.
Man könnte den Kabeltester ja parallel entwickeln.

von Jürgen K. (be-cool)


Lesenswert?

Hallo Markus,
interessantes Projekt. Ich bin dabei alles zusammen zu löten. Auf der 
Artikelseite ist allerdings immer noch eine Software vom 17.04.2008 
verlinkt. Gibt es die aktuelle Version auch irgendwo?

von walt (Gast)


Lesenswert?

Erstmal Danke an Markus F. für dieses Projekt, ich hab mir das 
nachgebaut und es tut wunderbar! Zum Thema "Allestester": Kabeltester 
finde ich weniger wichtig... Aber Cool wäre es, wenn das Ding auch 
passive Bauteile (Sprich Widerstände/Kondensatoren) 
erkennen/klassifizieren könnte. Ich bin ja elektrotechnisch (noch) ein 
totales Greenhorn, aber ich denke, zumindest Widerstände sollten doch 
(ohne Änderung der Hardware) möglich sein?!?

von Markus F. (5volt) Benutzerseite


Lesenswert?

Die Software ist nicht vom 17.04.2008, sondern vom 21.03.2009. Das 
falsche Datum der Dteien in dem Archiv kommt daher, dass ich beim 
Erstellen scheinbar eine falsche Systemzeit eingestellt hatte.
Ja,das Messen von Widerständen wäre mit der jetzigen Hardware möglich. 
Allerdings haben die ADCs nur eine Auflösung von 10 Bit, also 1024 
verschiedene Werte. Da ist ein Billigst-Multimeter besser (meist 2000 
verschiedene Anzeigewerte, bzw. sogar 3999, wenn man den negativen 
Bereich mitzählt). Außerdem wäre zum Messen von Widerständen eine 
Konstantstromquelle
hilfreich. Die ist aber in dieser Hardware nicht vorgesehen, weil sie 
zum Halbleiter testen nicht nötig ist.
Man kann Widerstände auch ohne Konstantstromquelle testen, indem man den 
zu testenden Widerstand mit einem anderen R als Spannungsteiler 
schaltet. Die Genauigkeit wird dann aber am besten, wenn beide 
Widerstände etwa gleich groß sind. Bei der Transistortester-Hardware 
stehen aber nur 680 Ohm und 470kOhm zur Verfügung. Widerstände wie 10 
Ohm oder 33kOhm können damit nur recht unpräzise gemessen werden.

Kurz: Eine Widerstands-Messfunktion wäre denkbar, aber wohl so ungenau, 
dass sie wenig hilft. So als nette Zusatzfunktion kann ich es aber mal 
einbauen.

Kondensatoren wären auch möglich. Dafür ist aber eine 
Logarithmus-Berechnung nötig. Mit der in avr-gcc vorhandenen wird das 
Programm so groß, dass es kaum mehr in einen Mega8 passt. Müsste man 
wohl in Assembler selbst schreiben (Stichwort:Logarithmusreihe).

Ich hatte sowieso mal vor, noch ein Testgerät für Widerstände und 
Kondensatoren zu bauen. Am besten auch noch mit ESR-Messung und Schutz 
gegen eventuell vorhandene Spannungen auf dem Kondensator. Dafür wäre 
aber ein 16-bit-ADC von Vorteil, und ich habe noch kaum einen halbwegs 
schnellen (>10kSps), bezahlbaren (<10€) und auch bei z.B. Reichelt 
erhältichen gesehen.
Von der Hardware her dürfte das Ganze dann auch ein gutes Stück 
komplexer werden als der Transistortester.

von Benedikt K. (benedikt)


Lesenswert?

Markus F. wrote:

> Ich hatte sowieso mal vor, noch ein Testgerät für Widerstände und
> Kondensatoren zu bauen. Am besten auch noch mit ESR-Messung und Schutz
> gegen eventuell vorhandene Spannungen auf dem Kondensator. Dafür wäre
> aber ein 16-bit-ADC von Vorteil, und ich habe noch kaum einen halbwegs
> schnellen (>10kSps), bezahlbaren (<10€) und auch bei z.B. Reichelt
> erhältichen gesehen.
> Von der Hardware her dürfte das Ganze dann auch ein gutes Stück
> komplexer werden als der Transistortester.

So eine Idee hatte ich auch mal, ich wollte das ganze aber noch 
erweitern so dass es nicht nur RLC einzeln, sondern aus irgendeiner 
beliebigen RLC Schaltung RLC einzeln ermitteln kann. Dies ist vor allem 
wichtig um parasitäre Cs bei Spulen zu ermitteln.
Theoretisch ist das möglich, die Realisierung dürfte aber recht 
kompliziert werden, ohne DSP oder ähnliches nahezu unmöglich.

Ein Ansatz für ein einfaches RLC Meter findet man hier:
http://www.elektor.de/jahrgang/2008/juni/2-euro-rlc-meter.497170.lynkx
Das muss ich demnächst mal ausprobieren, ob es R+L, bzw. C+R auch 
richtig messen kann. Sowas sollte sich auch relativ leicht auf einem µC 
(ARM oder ähnliches mit entsprechendem Audio Codec Interface) 
realisieren lassen.

Das hier sieht auch gut aus, leider habe ich weder Schaltplan noch sonst 
was gefunden. Aber ein 25MHz DSP klingt schonmal vielversprechend:
http://www.elektor.de/jahrgang/1997/april/high-tech-lrc-meter-(1).61600.lynkx

PS: Weiß jemand wie LCR Meter arbeiten? Mein gekauftes erzeugt einen 
Sinus mit 1kHz und etwa 10-20mV. Es kann L+R, bzw. C+R messen und lässt 
sich selbst durch einen zusätzlichen C parallel zur Spule nicht 
täuschen.

von Armin D. (ardiehl)


Angehängte Dateien:

Lesenswert?

Vielen Dank für das Projekt, habe das gestern nachgebaut und 
funktionierte fast auf Anhieb. Es hat sich in der LCD-Initialisierung 
ein Fehler eingeschlichen so das mein 2-Zeilen Display nur einzeilig 
lief.

Laut dem HD44780 Datasheet (Seite 46, Figure 24 4-Bit Interface) muss 3 
mal 0011 auf D7..D4 gesendet werden. In lcd_init() wurde aber 
lcd_command(0x03) verwendet. lcd_command sendet aber 2 x 4 Bit. Das 
gleiche für die 4 Bit-Initialisierung. Bei mir klappt es so (und das 
sollte auch für alle anderen Displays funktionieren):
1
void lcd_init(void)
2
{
3
   LCD_DDR = LCD_DDR | 0x0F | (1<<LCD_RS) | (1<<LCD_EN1);   // Port auf Ausgang schalten
4
   // muss 3mal hintereinander gesendet werden zur Initialisierung
5
   _delay_ms(15);
6
   //lcd_command(0x03);
7
   LCD_PORT &= 0xF0;
8
   LCD_PORT |= 0x03;    // D7..D4 = 0x03
9
   lcd_enable();    // Strobe E
10
 
11
   _delay_ms(5);    // according to datasheet: more than 4.1 ms
12
   lcd_enable();
13
 
14
   _delay_ms(1);    // according to datasheet: more than 100 uS
15
   lcd_enable();
16
   _delay_ms(1);
17
18
   // 4 Bit Modus aktivieren 
19
   //lcd_command(0x02);
20
   LCD_PORT &= 0xF0;
21
   LCD_PORT |= 0x02;
22
   lcd_enable();
23
   _delay_ms(1);
24
25
   lcd_command(0x28);          // 4Bit / 2 Zeilen / 5x7
26
   lcd_command(0x0C);         // Display ein / Cursor aus / kein Blinken
27
   lcd_command(0x06);        // inkrement / kein Scrollen
28
  lcd_clear();
29
}

ich habe noch in main.c ein define eingebaut falls kein automatisches 
ausschalten verwendet wird (#define AUTOPOWEROFF) in Zeile 8. Falls 
AUTOPOWEROFF gesetzt ist, wird der originale Code verwendet. Andernfalls 
wird auf ewig auf Tastendruck gewartet um den Test neu zu starten.

Im Anhang der geänderte Code + Makefile + eagle sch und brd für eine 
einseitige Platine.

von Armin D. (ardiehl)


Angehängte Dateien:

Lesenswert?

und so sieht es dann aus

von Markus F. (5volt) Benutzerseite


Lesenswert?

=> Armin Diehl:
Stimmt, da habe ich einen Fehler gemacht. Ich nehme halt für jedes 
Projekt die gleiche lcd-routines.c und lcd-routines.h her. Bei mir hat 
das so auch immer geklappt, aber es scheint LCDs zu geben, die da 
Probleme machen.
Danke für den Hinweis!

Noch eine Frage an alle:
Ich habe mal versucht, eine Testfunktion für Widerstände einzubauen (ist 
noch nicht in dem zip-Archiv enthalten). Der Messbereich wäre etwa 100 
Ohm bis 900 kOhm.
Allerdings werden damit auch viele defekte Halbleiter als Widerstand und 
nicht als "defektes Bauteil" erkannt. Ich weiß jetzt nicht, ob die 
Testfunktion für Widerstände damit eher sinnvoll oder eher störend ist.

Die Erkennung von funktionierenden Halbleitern ist davon aber nicht 
betroffen. Das Testergebnis "Transistor" hat nämlich eine höhere 
Priorität als "Widerstand". Sehr leistungsstarke Dioden (z.B. 
35A-Gleichrichter) könnten aber als "Widerstand" erkannt werden.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Also ich find ne Widerstandtestfunktion eher nicht soooo sinvoll, ggf 
höchstens an nem zusätzlichen ADC Port. Sowas zu testen schafft zur not 
jedes Multimeter (wenn man den Verdacht hat der Wid sei defekt).

von Markus F. (5volt) Benutzerseite


Lesenswert?

So, ich habe jetzt mal wieder eine neue Version reingestellt.
Eine "kleine" Version, die auch noch auf einen Mega48 passt. Hier ist 
der genannte Fehler mit dem LCD auch schon berichtigt. Diese Version 
wird aber kaum mehr erweitert werden, weil in einem Mega48 dafür keim 
Platz mehr wäre. Da ich keinen Mega48 zur Hand habe konnte ich sie damit 
nicht testen. Sollte aber funktionieren.

Und eine "große" Version, für die dann eben ein Mega8 nötig ist.
Die hat die Widerstands-Testfunktion eingebaut. Das ist bisher auch der 
einzige Unterschied zu der "kleinen" Version. In Zukunft kommt evtl. 
noch die (ungefähre) Messung der Gate-Ladung bei MOSFETs. Der Fehler bei 
der LCD-Ansteuerung ist hier natürlich auch berichtigt.

von PJ (Gast)


Lesenswert?

Es gibt jetzt Transistortester, LC-Tester, Widerstandstester -- sicher 
hab ich noch welche vergessen. Da lässt sich doch bestimmt mal ein Gerät 
bauen, das alles kann.

von Markus F. (5volt) Benutzerseite


Lesenswert?

=> PJ:
So ein "Universaltester" wäre natürlich auch denkbar.
Meiner Meinung nach wäre es dabei aber sinnvoller, für jeden Bauteiltyp 
eigene Test-Anschlüsse vorzusehen. Also extra Pins für "Transistor und 
andere Halbleiter", "Kondensator", "Spule", ...
Man braucht nämlich für fast jedes Teil andere Test-Hardware": Für 
Kondensatoren evtl. Eingangs-Schutzschaltungen, damit der Tester nicht 
kaputt geht, wenn man einen geladenen Kondensator anschließt. Um Spulen 
zu messen wäre ein Kondensator sinnvoll (=> Schwingkreis). Diesen 
Kondesator kann man zum Transistoren testen aber überhaupt nicht 
brauchen, usw.

Übrigens: So extrem ungenau ist die Widerstands-Testfunktion nicht. Ich 
habe mal testweise einige Widerstände damit gemessen.
Der erste Wert ist das Ergebnis des Transistortesters.
Der zweite Wert in Klammern wurde zum Vergleich mit einem guten 
Multimeter ermittelt.

234 Ohm (218,9 Ohm)
996 Ohm (998,2 Ohm)
4288 Ohm (4342,2 Ohm)
9860 Ohm (9927 Ohm)
11968 Ohm (11924 Ohm)
37,7k (38,719k)
149,6k (150,97k)
469,0k (472,04k)


Ich finde die Genauigkeit zwar nicht extrem toll, aber durchaus 
brauchbar.
Der Messbereich ist übrigens etwa 100 Ohm bis 900k Ohm.

von Hubert G. (hubertg)


Lesenswert?

Hallo
Ich habe mir den Tester nachgebaut, hat auf Anhieb funktioniert.
Es ist die Version ohne Abschaltung. Allerdings funktioniert das 
neuerliche Testen nur solange, bis im Display "Timeout" kommt, dann hat 
der Taster keine Funktion mehr und man muss Aus und wieder Einschalten.
Ist das gewollt so oder habe ich da was übersehen?

Hubert

von Hubert G. (hubertg)


Lesenswert?

Hat sich erledigt. Ein paar Threads weiter oben hat "Armin Diehl" die 
Lösung schon geschrieben. Die paar Zeilen im Code dazu und alles läuft 
nach Wunsch.

Gratulation und Dank an Markus F., ein wirklich tolles Gerät.

Hubert

von Markus F. (5volt) Benutzerseite


Lesenswert?

Ich habe jetzt nochmal eine verbesserte Version reingestellt.
Die Messung der Gate-Schwellspannung für p-Kanal-Mosfets war nämlich 
völlig falsch. Ich hatte nur vorher keine P-Kanal-Mosfets, um das mal 
testen zu können. Jetzt habe ich welche, und die Messung der 
Gate-Schwellspannung habe ich berichtigt.
Die Messung der Gate-Schwellspannung hat jetzt auch eine Zeitbegrenzung. 
Wenn der Mosfet sonst bei der Messung nie zu leiten beginnt, bliebe der 
Tester in einer Endlosschleife hängen, bis der Watchdog einen Reset 
auslöst. Die mögliche Zeit ist jetzt allerdingsrecht kurz. Für einen 
starken Mosfet (IRFP450) mit zusätzlich 6,8nF zwischen Gate und Source 
reicht es aber.
Noch mehr Gate-Kapazität haben Mosfets eigentlich nicht. Außer extrem 
starke Typen, aber die hat man im Hobby-Bereich ja eher selten.
Wenn diese Zeitbegrenzung anspricht, wird als Gate-Schwellspannung eben 
0mV angezeigt. Die Pin-Belegung wird aber trotzdem angezeigt.

Außerdem habe ich das von Armin Diehl genannte Feature (beim Aufbau ohne 
automatische Abschaltung kann man den Test auch per Taster neu starten) 
eingebaut. In meiner Version ist dafür auch kein define nötig. Man kann 
die gleiche Firmware ohne Änderungen für den Tester mit oder ohne 
Abschaltung verwenden. Kostet halt ein paar Bytes mehr Flash, aber der 
reicht ohnehin noch leicht aus. Auch im Mega48 sind damit noch 184 Bytes 
frei, was schon noch für die ein oder andere Fehler-Korrektur reichen 
sollte.
Im Mega8 sind in der jetztigen Version (da ist wie gesagt die 
Widerstandsmessung drin, im Gegensatz zu der Mega48-Version) noch 3670 
Bytes frei. Das reicht noch für eine Menge Erweiterungen.

von Neanderthaler Jörn (Gast)


Lesenswert?

Hallo und Kudos to the Entwickler!
Während meiner ersten AVR-Bastelversuche bin ich auf dieses geniale 
Projekt gestoßen.
Beim Bestücken der Platine (nach Armin D.) fällt mir die Z-Diode am 
Eingangsspannungsteiler auf. Im Bild von Armins Aufbau ist die nicht zu 
sehen, auch in Markus Schaltplan find ich keine. Kann mir jemand eine 
Tipp geben?

Danke und Gruß,
Jörn

von Hubert G. (hubertg)


Lesenswert?

Mit einem Steckernetzteil könnten am Spannungsteiler mehr als 5V sein 
und damit auch am ADC-Eingang. Das sollte damit wohl verhindert werden.

von Hannes Lux (Gast)


Lesenswert?

> Mit einem Steckernetzteil könnten am Spannungsteiler mehr als 5V sein
> und damit auch am ADC-Eingang. Das sollte damit wohl verhindert werden.

Deshalb ist die Schaltung ja auch mit einem Spannungsregler versehen 
worden und wird aus einem (ansonsten unökonomischen) 9V-Block gespeist.

...

von Markus F. (Gast)


Lesenswert?

Die 5V am ADC-Eingang würden erst bei mehr als 20V Betriebsspannung 
erreicht werden. Da kann man auch noch problemlos ein unstabilisiertes 
12V-Netzteil (Leerlaufspannung ~17V) nehmen. Ich denke, da ist eine 
Zenerdiode überflüssig. Wer will, kann natürlich eine einbauen, schaden 
tut es nicht.

von Thomas S. (brotspinne)


Lesenswert?

Ich habe das Projekt nachgebaut,und hab ein paar Probleme mit dem 
programmieren des ATMEGA8.

Ich nutze diesen Programmer 
http://s-huehn.de/elektronik/avr-prog/avr-prog.htm für den 
Parallel-Port.Zusammen mit der Software PonyProg2000, ich habe Probleme 
damit die "FuseBits" richtig einzustellen.Der Autor des Artikels hat 
angegeben das lfuse = 0xc1(C1), hfuse = 0xd9(D9) gesetzt werden 
müssen.Als Taktquelle wird ja der interne Oszilator genutzt.Wie setzt 
man denn die Fuses in PonyProg Hexadezimal?Ich hab da nur die Checkbox 
Auswahlmöglichkeit.Und welchen Taktfrequenz hat der interne 
Oszilator?1MHz wie es Standart beim Auslieferungszustand des Atmega8 
ist?Oder mehr?

Kann mir da jemand einen Tipp geben wie ich den Atmega8 in diesem Fall 
richtig programmiere/vorbereite?
Eignet sich dafür ein anderes Programm besser,was mit meinem 
improvisierten Programmer arbeitet?

MfG Thomas

von Hubert G. (hubertg)


Lesenswert?

Gib hier www.engbedded.com/fusecalc/  das c1 und d9 ein, dann siehst du 
welche Haken du setzen musst.

von Thomas S. (brotspinne)


Lesenswert?

Hallo Hubert danke für den Tipp,jetzt weis ich wie es geht.Leider hab 
ich noch paar Probleme mit dem programmieren des Atmega8 die Adapter aus 
Inet fürn parallel Port,wollen nicht so funktionieren.Da muss ich 
nochmal genauer schauen,da ich über kein AVR-Board verfüge und nur den 
Adapter bauen möchte.

MfG Thomas

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Hallo Thomas, welches Betriebsystem nuzt du? Ich kann dir TwinAVR 
empfehlen zum Programmieren, auf der Seite ist ne Anleitung wie man das 
ganze unter XP einsetzen kann, oder eine PC mit Win98 suchen.

von Markus F. (5volt) Benutzerseite


Lesenswert?

Zum AVRs programmieren kann ich avrdude sehr empfehlen. Das dürfte 
eigentlich alle gängigen ISP-Programmer unterstützen.
Ist halt eie Konsolenanwendung. Es gibt aber auch grafische Oberflächen 
dafür (finde ich aber eigentlich überflüssig).

von Fetti (Gast)


Lesenswert?

Hallo, ich habe den Tester ohne automatische Abschaltung mit einem 
Atmega8 aufgebaut, funktioniert soweit super! Nur bekomme ich halt auch, 
wie schon oben beschrieben, nach ein paar Sekunden "Timeout" angezeigt.

Jetzt soll es ja schon eine verbesserte Version geben, nur weiß ich 
nicht welche ich da nehmen soll. Die die ich geflasht habe müsste ja 
eigentlich die aktuelle für Atmega8 sein! Ich habe einfach die Dateien 
TransistorTestNew.eep und TransistorTestNew.hex geflasht! Ist da die 
Neuerung vielleicht noch nicht drin?

Sorry bin neu auf dem Gebiet und bekommen den C-Code leider auch nicht 
kompiliert. :(

Wäre vielleicht jemand so freundlich für mich ein funktionierendes 
Hex-File hochzuladen? Würd mich freuen!


Grüße

von Hubert G. (hubertg)


Angehängte Dateien:

Lesenswert?

Diese Version habe ich in Betrieb, ohne Abschaltung.

Hubert

von Markus F. (5volt) Benutzerseite


Lesenswert?

=> Fetti:
Hast du auch sicher die neue Version runtergeladen?
Vor so gut 2 Wochen habe ich nämlich eine Version reingestellt, bei der 
dieser Fehler (mit dem "Timeout") behoben sein sollte.
Ansonsten werde ich das aber noch mal überprüfen.

von [Frank] (Gast)


Lesenswert?

@ Markus F.
Vielleicht wäre es auch mal ganz nett, wenn die Dateien das aktuelle 
Datum bekämen und nicht alle vom 17.04.2008 wären.

von Fetti (Gast)


Lesenswert?

@Hubert G.:
Danke dir fürs hochladen. Werd ich morgen früh mal ausprobieren, da ich 
die Schaltung auf der Arbeit liegen hab.


@Markus F.
Also die Dateien die ich benutzt hab hatte ich genau letzte Woche 
Mittwoch heruntergeladen.


Danke für eure schnelle Unterstützung,
Grüße

von Fetti (Gast)


Lesenswert?

Guten Morgen,

so ich hab soeben die Dateien die Hubert G. hochgeladen hat geflasht.
Passiert genau das selbe...versteh ich nicht!

Wodurch wird denn eigentlich der Timeout ausgelöst, könnte es vielleicht 
auch einfach ein Schaltungsproblem sein. Also das ich beim Aufbau nen 
Fehler drin  hab.


Grüße

von Hubert G. (hubertg)


Angehängte Dateien:

Lesenswert?

Ich habe jetzt noch mal die Datei kontrolliert, die ist sicher richtig. 
Als Ergänzung habe ich jetzt noch "Halbleitertester" und "Version 1.10" 
beim Start im LCD hinzugefügt.

Wahrscheinlich hast du da ein Schaltungsproblem, da es bei mir 
einwandfrei funktioniert.

von Fetti (Gast)


Lesenswert?

Hallo nochmal,

die Version ist jetzt noch schlimmer.

Also beim start zeigt er:
"Halbleitertester Version 1.10"
---
"Test läuft..."
---
[Transistorinformation] (ca 2-3 Sekunden lang)
---
"Halbleitertester Version 1.10 Tim"
---

und da hängt er dann! Ich denke das "Tim" am Displayende st der halbe 
Teil von Timeout!


Grüße

von Hubert G. (hubertg)


Angehängte Dateien:

Lesenswert?

Also wie schon gesagt, bei mir läuft diese Version einwandfrei. Da musst 
du einen Wurm in deiner Schaltung haben.
Meine Schaltung im Anhang, ist aber die gleiche wie von Markus F.

von Jochen (Gast)


Lesenswert?

Hallo,

habe die Schaltung nur mit ISP und LCD ohne den Rest aufgebaut,
die LCD Ansteuerung will absolut nicht funzen.
LCD von Angelika LCD 162 ist ok, da  mit einem anderen Programm und 
eigenen
LCD Routine eine korrekte Ansteuerung des LCD vorhanden ist.


Gruß
Jochen

von Markus F. (5volt) Benutzerseite


Lesenswert?

=> Fetti:
Du verwendest aber schon einen Taster, oder?
Bei einem Schalter (oder wenn man den Taster lange gedrückt hält) könnte 
das mit dem "Timeout" nämlich passieren.
Der Transistortester wartet nämlich, bis der Taster losgelassen wird.
Wenn das nicht passiert (z.B. weil man einen Schalter verwendet und ihn 
eingeschaltet lässt), wartet der Tester im Prinzip "bis in alle 
Ewigkeit". In diesem Falle also so lange, bis der Watchdog für einen 
Reset sorgt. Dann kommt die "Timeout"-Meldung.

=> Jochen:
Ist das LCD auch HD44780-kompatibel? Sonst wird es natürlich nicht 
funktionieren.

von Jochen (Gast)


Lesenswert?

Hallo Markus,

das Display ist HD44780-kompatibel und im Prinzip sind meine 
Ansteuerroutinen
so aufgebaut wie deine, aber irgendwo steckt der Wurm darin.

Gruß

Jochen

von Fetti (Gast)


Lesenswert?

Nabend!

So, er funktioniert jetzt!
Es waren zwei Verdrahtungsfehler in Tastergegend!
Funktioniert jetzt wirklich gut! Ich bin begeistert!

Danke an alle für eure Hilfe!

Grüße

von Thomas K. (muetze1)


Lesenswert?

Hi!

Mal eine Frage zu der Software: ich habe das ganze nun nachgebaut und 
wollte aber ein VFD benutzen. Also erstmal die lcd-routines.c/.h 
ausgetauscht und alle dort vorhandenen Methoden neu implementiert. 
Leider lief überhaupt nichts, weil fest kodiert im Hauptprogramm noch 
Befehle an das LCD gesendet wurde (u.a. Zeichendefinitionen, Zeile 
setzen, Cursor positionieren, etc). Auch Sonderzeichen wurden hart 
ausgegeben anstatt sie z.B. in den lcd spezifischen Quellen zu 
definieren.

Eine Anpassung ist damit nicht wirklich möglich, auch der gesamte Code 
ist wirklich nicht wartbar:

1. Keine Include Schutz im Header von lcd-routines.h
2. include der <avr/eeprom.h> ohne irgendwas davon zu nutzen. Entfernt 
man dies fällt man auf die Nase, weil dieser Include im Main.c gebraucht 
und dort nicht inkludiert ist.
3. Warum zum Teufel wird eine F_CPU definiert in der lcd-routines.h? Vor 
allem noch mit 8 MHz, wo doch die Readme in dem Packet die Fuses auf 1 
MHz internal oscillator definieren. Was denn nun? 8 oder 1 Mhz. Welche 
Definition nun die delay Routinen benutzen ist dabei vollkommenes Lotto.
4. Warum wurde die Taktfrequenz nicht in den Projektoptionen angegeben? 
Dort sollte das zentral angegeben sein, dann ist auch F_CPU definiert - 
aber so versteckt ist das mehr als bösartig.

Sorry, aber ich bin gefrustet über dieses .ZIP file - und das musste mal 
raus. Ich werde mich _vllt._ mal ransetzen und das ganze aufräumen und 
dann hier reinstellen. Danach sollte es auch einfacher sein, das ganze 
auf andere Displays anzupassen.

Gruss

von Klaus (Gast)


Lesenswert?

Warum schreibst Du Dir nicht einfach Dein eigenes Ding?

von Thomas K. (muetze1)


Lesenswert?

Hi!

Klaus schrieb:
> Warum schreibst Du Dir nicht einfach Dein eigenes Ding?

Weil ich das Rad nicht neu erfinden wollte. Es ist ein (bisher so 
scheinendes) gut funktionierendes Projekt, was gepflegt und getestet 
ist. Und bisher habe ich auch nur Kritikpunkte am Quellcode, nicht am 
Projekt vom Aufbau oder elektronischen Sinne her. Ich war halt nur so am 
verzweifeln, da ich wirklich dachte/hoffte das es auch Quellcode-mäßig 
gut aufgebaut ist.

Ich will und mag nichts gegen das Projekt sagen, ich wollte es mir 
schliesslich nicht umsonst nachbauen. Also von daher nochmal zur 
Klarstellung: Das Projekt ist super!

Ich werde mal schauen wie ich das nun mache. Ich denke mal, wenn ich 
mich wirklich mal ransetze und den Originalcode aufräume und dann diesen 
hier ablege, dann kann ich von dem ausgehend besser das andere Display 
einbauen. So haben dann auch andere was davon.

Es hatte nur seinen Charme, da das VFD nur den seriellen Sender bräuchte 
als Verbindung, da wäre noch viel frei geblieben.

Grüsse

von Michael U. (amiga)


Lesenswert?

Hallo,

@Thomas K. (muetze1): ein Problem, daß mir in 90% der Hobby-Projekte 
auch begegnet...
Andererseits sind z.B. auch meine Sachen in 99% der Fälle nur für mich 
geschrieben und gebaut.

Mein Vorschlag: pass es für Dich an, aufgeräumt oder nicht.
Das ist dann nicht die feine englische Art, Du hast aber ein spielendes 
Gerät.

Ob es Dir die Zeit Wert ist, daß ganze Projekt aufzuräumen, universelle 
zu gestalten, anderen zur Verfügung zu stellen, das mußt Du natürlich 
selbst entscheiden.

Meine Erfahrung: man macht sich viel Arbeit und der erst, der dann das 
Ergebnis runterlädt, will irgendwas ändern, was man überhaupt nicht 
angedacht hat und man wird angemault. ;-))
Die Mehrheit will zusammenlöten, brennen und benutzen.
Etliche wollen umbauen und ändern, haben aber Zeit/Fähigkeiten/Lust dazu 
nicht.
Ganz wenige wollen Ändern und können das auch.
Die machen es dann eben einfach. Oft hört man davon dann garnichts.

PS: ich habe auch so einen Transitortester.
Basiert auf dem Projekt vom Bernhard Schulz.
Software komplett neu geschrieben und etwas erweitert (nicht so 
umfangreich wie dieser hier).
Der wird einfach benutzt. Vielleicht brenne ich auch diese Version hier 
mal rauf.

Gruß aus Berlin
Michael

von Hannes Lux (Gast)


Lesenswert?

> PS: ich habe auch so einen Transitortester.
> Basiert auf dem Projekt vom Bernhard Schulz.
> Software komplett neu geschrieben und etwas erweitert (nicht so
> umfangreich wie dieser hier).
> Der wird einfach benutzt. Vielleicht brenne ich auch diese Version hier
> mal rauf.

Die sind nicht pinkompatibel. 8-(
...was beweist, dass Markus nicht bei Bernhard abgekupfert hat... ;-)

Ich habe übrigens noch keinen, das liegt wohl daran, dass ich kein C 
kann und ungern unbesehen (und unverstanden) fremden Code benutze. Und 
Bernhards Code war mir zu aufräumungsbedürftig, das wollte ich mir nicht 
antun. Ich werde aber wohl irgendwann diesen Tester (den von Markus F.) 
in einfachster Form (Taster in Batterieleitung) aufbauen und zusammen 
mit einem 9V-Block in ein Gehäuse verfrachten. Ein geeignetes LCD 
(f)liegt hier mit Sicherheit noch irgendwo herum. Vielleicht überwinde 
ich auch irgendwann meinen inneren Schweinehund und installiere mal 
WINAVR. Aber nur vielleicht. ;-)

...

von Michael U. (amiga)


Lesenswert?

Hallo,

@ Hannes Lux (Gast): naja, das Umverdrahten würde ich noch machen... ;-)

Ich kann Dir gern mal meinen ASM-Code für die "Bernhard-Schaltung" 
zukommen lassen.
Bei Interesse schick mir einfach eine Mail.
Mehr als löschen kannst Du ihn ja nicht. ;-)

Gruß aus Berlin
Michael

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Hannes Lux schrieb:
> (f)liegt hier mit Sicherheit noch irgendwo herum. Vielleicht überwinde
> ich auch irgendwann meinen inneren Schweinehund und installiere mal
> WINAVR. Aber nur vielleicht. ;-)
>
> ...

Hab mich dann vor einiger Zeit auch mal überwunden, tut garnicht weh :D
Also trau dich man muß ASM ja nicht aufgeben ;)

von RitschRatsch. (Gast)


Lesenswert?

Eine Frage wegen der Versorgungsspannung und der automatischen 
Abschaltung:

Sehe ich das richtig, das T2 nur dazu da ist dem Controller zu 
signalisieren, das der Taster gedrückt wurde ?
Wenn ich diesen nicht brauche (eigene Firmware) kann ich doch einfach 
den Taster statt auf die Basis von T2 auf Masse ziehen, oder?

von Markus F. (5volt) Benutzerseite


Lesenswert?

RitschRatsch wrote:

> Sehe ich das richtig, das T2 nur dazu da ist dem Controller zu
> signalisieren, das der Taster gedrückt wurde ?
> Wenn ich diesen nicht brauche (eigene Firmware) kann ich doch einfach
> den Taster statt auf die Basis von T2 auf Masse ziehen, oder?
Ja, genau so kannst du es machen

Und das mit den LCD-Befehlen direkt im Code habe ich gemacht, um Flash 
zu sparen.
Und es sind nur 4 Befehle, die direkt in der Form "lcd_command(x)" im 
Code stehen.
Zwei davon sind aber schon als Makros definiert ("Line1()" und 
"Line2()")
Eine andere setzt den Cursor an eine bestimmte Position und ist auch im 
Code kommentiert.
Und noch eine initialisiert das Senden eines Custom-Zeichens (für die 
Darstellung einer Diode) an das LCD. Das musst du für ein VFD vermutlich 
sowieso ändern.
Natürlich könnte man das auch alles in die lcd-routines.c legen. Aber so 
schlimm finde ich diese 4 Befehle in der main.c jetzt auch nicht.

von Thomas K. (muetze1)


Lesenswert?

Moin!

Und was ist mit dem anderen Dingen? Womit läuft der MC nun? 8 MHz oder 1 
MHz? Muss ich beim aufräumen nun die ganzen Wartezyklen und -befehle um 
den Faktor 8 verlängern?

Was ist mit den C++/Header Trennung? Was ist mit der doppelt 
Definitionsschutz im Header?

Definiere mir einfach nochmal die nun tatsächliche genutzte MCU 
Frequenz. Ich habe mir ein Standard LCD geordert um erstmal den Aufbau 
direkt nachvollziehen zu können, da deine Firmware so nicht läuft bei 
mir. Ich bekomme keine Anfangasausgabe und da ist nun die Frage ob die 
serielle Kommunikation nach der Initialisierung gestört wird oder es ein 
Fehler von der VFD Ansteuerung ist (was sich nur auf serielle senden 
beschränkt).

Also grundlegend: ich werde es aufräumen, wenn ich das Display erhalten 
habe und werde es dann hier einstellen. Dann kann ich gleich mal schauen 
ob der Code nicht vllt. an manch offensichtlichen Stellen verkleinert 
werden kann.

Grundsätzlich ist die Definition der Funktionen egal. Ob nun in der 
lcd-routines.h/.cpp oder in der main.cpp macht hierbei keinen 
Unterschied und spart auch kein Flash.

Grüße,
Thomas

von Thomas K. (muetze1)


Lesenswert?

Moin!

Nochmal ein Nachtrag: der erste Teil klingt vllt. etwas harsch, das 
sollte es aber nicht! Wie ich schon damals geschrieben habe: Das Projekt 
will ich mir ja nicht umsonst nachbauen. Ich bräuchte jetzt vor allem 
mal eine definitive Info zum Taktfrequenz und dann kann ich mich mal 
ranmachen. Ich will ja das alle was davon haben und ich werde auch daran 
arbeiten, dass der Code nicht grösser sondern eher kleiner wird.

Grüsse,
Thomas

von 900ss (900ss)


Lesenswert?

Thomas K. schrieb:
> Ich bräuchte jetzt vor allem
> mal eine definitive Info zum Taktfrequenz und dann kann ich mich mal

Einfach mal nach "mhz" hier im Thread gesucht und siehe da:
Beitrag "Re: Transistortester mit AVR"

900ss

von Thomas K. (muetze1)


Lesenswert?

Oki, danke. Den Beitrag mit der Info habe ich dann übersehen, hatte mich 
damals einmal komplett durch den Thread gearbeitet.

Gut, dann weiss ich nun Bescheid und werde schonmal anfangen ein wenig 
das ganze in Sachen Display offener zu gestalten. Das wird dann 
spannend, wenn ich das Display habe, ob es dann noch alles läuft...

von micha (Gast)


Lesenswert?

Hallo!

Ich habe da mal eine frage zum original Schaltplan mit Abschaltung. 
Leuchtet die LED1 bei Betrieb? Ich habe diesen Zweig der Schaltung 
aufgebaut, aber irgendwie verstehe ich es nicht ganz. Die Schaltung 
scheint zu funktionieren, allerdings leuchtet LED1 nicht. Bei R7=27k @ 
9V fliessen ja auch nur ~ 0.3 mA. Das ist doch viel zu wenig, um die LED 
leuchten zu lassen. Oder verstehe ich da was falsch?

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@micha

ich zitiere mal aus dem Artikel:

"LED1 dient dazu, die Spannung an S1 auch im Betrieb hoch genug zu 
halten um T2 aufzusteuern"

Die LED dient nicht zur Betriebsanzeige, das macht ja schon das Display 
;)

Gruß
Thomas

von micha (Gast)


Lesenswert?

Ok, dann ist ja alles in Ordnung :-)

von Markus F. (5volt) Benutzerseite


Lesenswert?

Sicherheitshalber schreibe ich es hier nochmal:
Die Taktfrequenz ist 1MHz.
=> Thomas K.:
Wo hast du denn die Definition mit den 8MHz gefunden?
Ich habe extra mal alle Dateien aus der neuesten Firmware-Version nach 
"8000000" durchsucht und nichts gefunden. Da steht auch 1MHz drin.

von Thomas K. (muetze1)


Lesenswert?

Moin!

Die ist im Header von lcd-routines.h. Ich bin nun natürlich hellhörig 
geworden, nicht das ich hier an einem alten Stand bastle...

/EDIT: Ich muss mich korrigieren, es ist zwar eine 
Taktfrequenzdefinition in der lcd-routines.h enthalten, aber diese 
definiert auch 1 MHz. Oh mein Gott, ich habe wirklich einen deutlichen 
Augenfehler.

Also, es war tatsächlich 1 MHz, wie ich auf die 8 komme: keine Ahnung. 
Vielleicht mit den ganzen Nullen vermanscht, kA.

Also sorry, 8 MHz stand nie zur Debatte. Aber die Stelle der Definition 
ist natürlich weiterhin ungeeignet.

Sorry für das Missverständnis. Und ich möchte nochmals drauf hinweisen: 
das Projekt ist super und funktioniert auch wirklich gut. Und nochmals 
als Hinweis: ich würde es nicht nachbauen bzw. mich ransetzen, wenn ich 
es nicht gut finde. Ich mache auch nur Veränderungen vom Code her, die 
reine Logik und Funktionalität bleibt bestehen!

Zwischenzeitlich musste ich feststellen, dass es mit einem allgemeinen 
LCD Interface der dann auf entsprechende low level LCD Routinen 
verweist, ein grösserer Code rauskommt. Von daher werde ich noch eine 
Zwischenversion bauen, wo eine feste HD44780 Einbindung enthalten ist.

Grüsse,
Thomas

von Thomas K. (muetze1)


Angehängte Dateien:

Lesenswert?

Moin!

So, ich habe nun nochmal schnell von vorne angefangen und die letzte 
Version von hier angepasst. Mein eigentlicher Stand hatte nun doch schon 
ein paar Änderungen mit drin, die ich hier erstmal noch keinem antun 
will. Ich habe am grundlegenden funktionalen Code nichts gemacht. 
Erstmal, was habe ich überhaupt gemacht:

- LCD Routinen in der LCD-Routines.h/.cpp ein wenig verkleinert
- LCD Custom Chars & Omega Zeichencode in lcd-routines.h verschoben
- lcd-routines.h Schutz vor doppelten Definitionen eingebaut
- alle Strings in eine resource.h/.cpp ausgelagert
- eine config.h angelegt. Dort können zentrale Elemente konfiguriert 
werden (Strings in EEPROM oder Data, Auto Power Off ja/nein, 
Versorgungsspannung messen ja/nein)
- ich habe ein paar goto's entfernt in der main.c und durch Schleifen 
ersetzt bzw. manche goto's waren komplett unnötig (z.B. ende)
- bug fix für Abschaltung nach Watchdog Reset: wer keine Abschaltung mit 
aufbaut, dessen MC hängt dann im Nirvana & Abschaltung zerschiesst LCD 
Kommunikation, da gesamter Port auf 0 gesetzt wurde
- ein paar überflüssige LCD Kommandoaufrufe entfernt

Der gesamte Code macht das gleiche wie zuvor auch und gibt auch das 
gleiche wie zuvor aus. Die aktuellen config.h Einstellungen sind wie im 
Original.

Ich hoffe Markus kommt mit dem Quellcode so klar in dem Sinne, dass er 
damit weiter entwickelt.

Insgesamt ist der Code nun 54 Bytes kleiner geworden (4468 Bytes).

Ansonsten: es fehlt noch die Cursor Positionierung an der einen Stelle, 
die habe ich noch nicht entfernt, da diese Version fest mit dem HD44780 
Controller arbeitet. Alles andere wäre eine neue Funktion und die würde 
wohl die gewonnen Bytes wieder kosten.

Ich werde die Tage die für die LCD noch offenere Version hier hochladen. 
Diese wird dann zum einen Treiber für M50530 Mitsubishi, HD44780 von 
Hitachi und VFD von Samsung & Futuba über serielle Schnittstelle 
enthalten. Auch habe ich Vorbereitungen getroffen für Anpassung in der 
Bildschirmausgabe wenn mehr als 16x2 zur Verfügung steht.

Grüsse,
Thomas

von doofi (Gast)


Lesenswert?

@Thomas:

> VFD von Samsung & Futuba über serielle Schnittstelle enthalten

Wie wärs zusätzlich mit einer VT-100 kompatiblen Version?

von Thomas K. (muetze1)


Angehängte Dateien:

Lesenswert?

Moin!

Würde dann keinen Unterschied mehr machen. Da das Interface dann aber 
recht offen ist, kann man leicht ein anderes Display implementieren - 
u.a. auch eine allgemeine VT100 oder sogar ANSI Schnittstelle. Ich hatte 
dabei vor allem das einfache Interface im Kopf. Die meisten der VFDs von 
den o.g. Herstellern die ich habe besitzen eine TTL RS232 Schnittstelle 
und sind somit direkt anschliessbar bei gerade mal einem benötigten Pin. 
U.a. das zuletzt bei Pollin angebotene VFD von Futuba M162SD05AA ist 
dazu gut geeignet.

Ansonsten hier gleich mal eine Aktualisierung. In der vorherigen Version 
habe ich doch glatt eine Warnung übersehen (Asche auf mein Haupt). Diese 
habe ich entfernt und doch gleich mal die Cursor Positionierung mit 
umgestellt. Nun sind wir bei einer Codegröße von 4496 Bytes, also nur 
noch eine Ersparnis von 26 Bytes. Aber immerhin kleiner...

Grüsse,
Thomas

von Thomas K. (muetze1)


Lesenswert?

Moin!

Und gleich nochmal ein bug fix, der zuvor bei mir nicht aufgefallen war, 
dank der Optimierung. Bitte folgende Methode austauschen in der 
lcd-routines.c bzw. die Klammern um die ? setzen...
1
void lcd_cursor(const unsigned char ARow, const unsigned char AColumn)
2
{
3
  lcd_command(CMD_SetDDRAMAddress | AColumn | (ARow ? 0x40 : 0x00) );
4
}

Grüsse,
Thomas

von Thomas K. (muetze1)


Lesenswert?

Moin!

Nochwas: Ich wollte die Serienschaltung von Dioden testen und habe 2 
Dioden angeschlossen. Anschluss: D1 Anode an Pin 1, D1 Cathode mit D2 
Anode an Pin 2 und D2 Cathode an Pin 3. Leider sagt er mir immer 
defektes Bauteil und gibt aus, dass er 3 Dioden erkannt hat. Irgendwo 
ist da noch der Wurm drin, aber bei meinem Aufbau ist dieses Verhalten 
beim Originalcode genauso.

Habe ich was nicht bedacht oder falsch gemacht?

Grüsse,
Thomas

von Markus F. (5volt) Benutzerseite


Lesenswert?

=> Thomas K.:
Du hast recht, wenn man 2 Dioden in serie anschließt, wie du es 
beschrieben hast passiert ein Fehler. Das überprüfe ich noch mal.

Zu deinem Code:
- Du hast deine Änderungen englisch kommentiert. Mein Code war aber 
deutsch kommentiert. Das ist eher ungünstig.

- Einen extra Define für den Auto-Power-Off wollte ich auch vermeiden.
Es gibt auch einige AVR-User, die sich mit avr-gcc nicht auskennen und 
damit den Code nicht selbst kompilieren können. Und es würde ein 
unwahrscheinlicher Wust an fertigen hex-Files entstehen, wenn man für 
jedes geänderte Define eine hex-File reinstellen würde (mit und 
Auto-Off, für Mega48 und Mega8, etc.).

- Meiner Meinung nach ist es sinnlos, die Nutzung des EEPROM zu 
deaktivieren. Aus welchem Grund hast du das überhaupt eingebaut?

- In meiner neuesten Code-Version kann man den Tester ohne Änderung mit 
oder ohne automatische Abschaltung aufbauen. Hast du auch sicher die 
neueste Version verwendet (habe ich am 8. Mai hochgeladen)?
Da wird nämlich nicht mehr der komplette LCD-Port auf 0 gelegt.

- Für Zugriffe auf einzelne Register-Bits hast du immer _BV(Bitname) 
verwendet. Ich habe es mit (1<<Bitmane) gemacht.

Ich schaue mir den Code jetzt erstmal an. So direkt werde ich das aber 
nicht übernehmen. Das wird mir aus den genannten Gründen dann zu 
chaotisch.
Gut finde ich aber die bessere Ordnung bei den Header-Files. Das werde 
ich auf jeden Fall übernehmen.

von Thomas K. (muetze1)


Lesenswert?

Moin!

Markus F. schrieb:
> => Thomas K.:
> Du hast recht, wenn man 2 Dioden in serie anschließt, wie du es
> beschrieben hast passiert ein Fehler. Das überprüfe ich noch mal.

Gut, ich dachte schon ich habe da einen Fehler drin.

Markus F. schrieb:
> - Du hast deine Änderungen englisch kommentiert. Mein Code war aber
> deutsch kommentiert. Das ist eher ungünstig.

Werde ich beim nächsten mal eindeutschen. Bin ich so gewöhnt...

Markus F. schrieb:
> - Einen extra Define für den Auto-Power-Off wollte ich auch vermeiden.
> Es gibt auch einige AVR-User, die sich mit avr-gcc nicht auskennen und
> damit den Code nicht selbst kompilieren können. Und es würde ein
> unwahrscheinlicher Wust an fertigen hex-Files entstehen, wenn man für
> jedes geänderte Define eine hex-File reinstellen würde (mit und
> Auto-Off, für Mega48 und Mega8, etc.).

Standardmässig ist alles an wie beim alten, das kann ja auch so bleiben 
und so sollten auch die Hex und EEP files sein. Alle die nicht selbst 
kompilieren können, nehmen den Stand und alles ist beim alten. Jeder der 
aber compilieren wird auch Änderungen machen können, sonst bräuchte er 
es nicht zu compilieren. Dann wird er auch mit den Defines umgehen 
können.

Markus F. schrieb:
> - Meiner Meinung nach ist es sinnlos, die Nutzung des EEPROM zu
> deaktivieren. Aus welchem Grund hast du das überhaupt eingebaut?

Da ich im Hinterkopf hatte den EEPROM beim Tester anderweitig zu nutzen. 
Aber diese Änderung wurde vom anderen Stand übernommen, von daher ist 
der nichts was man übernehmen müsste.

Markus F. schrieb:
> - In meiner neuesten Code-Version kann man den Tester ohne Änderung mit
> oder ohne automatische Abschaltung aufbauen. Hast du auch sicher die
> neueste Version verwendet (habe ich am 8. Mai hochgeladen)?
> Da wird nämlich nicht mehr der komplette LCD-Port auf 0 gelegt.

Ich werde nochmals genau schauen, anscheinend habe ich da dann wirklich 
eine alte Version. Ich werde mich diesbezüglich nochmal schlau machen.

Markus F. schrieb:
> - Für Zugriffe auf einzelne Register-Bits hast du immer _BV(Bitname)
> verwendet. Ich habe es mit (1<<Bitmane) gemacht.

Ist nur eine Schreibweise - auch persönliches empfinden. Ich habe meist 
beim Lesen nebenbei, wenn ich den Code mir durchschaue, das ist eine 
persönliche Macke. Hat keinen Vor- oder Nachteil, braucht auch nicht 
übernommen zu werden.

Markus F. schrieb:
> Ich schaue mir den Code jetzt erstmal an. So direkt werde ich das aber
> nicht übernehmen.

Klar, es ist dein Code und vor allem dein Projekt! Es war ja auch nur 
ein Vorschlag von mir.

Grüsse,
Thomas

von Markus F. (5volt) Benutzerseite


Lesenswert?

Ich habe wieder mal eine neue Version reingestellt.
Folgende Änderungen habe ich darin gemacht:
- den genannten Fehler mit den 2 Dioden in Reihe behoben
- die LCD-Ansteuerung "übersichtlicher" gemacht (Makros zum Cursor 
positionieren statt einem direkten lcd_command())
- die Includes für die Header-Dateien geändert (so ist es 
übersichtlicher)
- Taktfrequenz (F_CPU) in den Projektoptionen definiert, nicht mehr im 
Code
- Und das meiner Meinung nach Wichtigste: Es gibt keine separaten 
Versionen für den Mega8 und Mega48 mehr. Das war auch in der Wartung 
umständlich.
Die Version für den Mega8 unterstützt zusätzlich die Messung von 
Widerständen, daher ist sie ein Stück größer.
Die jeweilige Version wählt man beim Kompilieren einfach über den in den 
Projektoptionen oder im Makefile festgelegten AVR-Typen aus. Einfacher 
geht es eigentlich nicht.

Das Programm ist dadurch etwas größer geworden, aber nicht um viel:
Mega48:
  Flash: 3988 Byte
  EEPROM: 254 Byte
Mega8:
  Flash: 4584 Byte
  EEPROM: 267 Byte

von Thomas K. (muetze1)


Lesenswert?

Moin!

Ich kann dir empfehlen zumindest die lcd_send() zu übernehmen, da deine 
Version mit der extra Variablen und mehrfachen Zugriff auf den Port 
codetechnisch grösser ist. Auch die Nibble Aufteilung kann "on-the-fly" 
passieren, dass bekommt der gcc noch besser optimiert.

Ich habe bei einer Version an der ich gerade gebastelt noch eine 
Änderung, vllt. auch Verbesserung eingebaut, welche sich vllt. auch für 
deine Version eignet: Ich zeige fest in der 2. Zeile als erste 3 Zeichen 
die Belegung an. Dabei ist es so, dass ich einen Punkt (HD44780 code 
0xA5) für jeden Pin anzeige (Immer die gleiche Pin-Reihenfolge: 123) und 
die entsprechenden Stellen dann mit der jeweiligen Funktion 
überschreibe. Im Endeffekt für den Nutzer sieht er immer an den ersten 3 
Zeichen der zweiten Zeile die Belegung von Pin 1 bis 3.

Beispiel Diode an 2-3: ".AK" und an 1-3: "A.K" etc.
Transistor: "BCE" bzw. "ECB", etc
Doppeldiode: "AAK", "KAA", etc

Erstes Zeichen ist immer Pin 1, zweites Pin 2, etc. Der (auf dem Display 
mittige) Punkt gibt an "unbelegt", alles andere ist dann der jeweilige 
Bezeichner.

Falls du dies übernehmen möchtest, hier ein Codeschnipsel, es ist soweit 
immer das gleiche und die hier verwendeten Funktionen kennst du ja aus 
meinem Stand von zuvor:
1
        // "Diode"
2
      lcd_WriteResource(resDiode);
3
4
        // 2. Zeile, Belegung
5
      lcd_Line2();
6
      lcd_WriteResource(resPinTemplate);
7
      lcd_cursor(1, diodes[0].Anode);   
8
      lcd_data('A');
9
      lcd_cursor(1, diodes[0].Cathode);   
10
      lcd_data('K');
11
12
        // 2. Zeile Uf
13
      lcd_cursor(1, 4);   
14
      lcd_WriteResource(resUf);   //"Uf="
15
      ....

Wobei resPinTemplate so definiert ist (für HD44780):
1
char resPinTemplate[] RESMEMMOD = {0xa5, 0xa5, 0xa5, 0x00};
(der Speichermodifizierer ist bei dir dann fest EEMEM, bekannt aus der 
Version zuvor...)

Das ergibt einen schnelleren Überblick, vor allem da es für jedes 
Bauelement einheitlich ist.

Auch habe ich bei Doppeldioden die Ausgabe von Uf für beide Dioden 
hinzugefügt, da sie eh beide ermittelt werden. Durch die Nutzung der 
zuvor genannte Pinbelegung ist noch genügend Platz für beide Uf.

Ich werde meine Ableitung davon mal weiterbasteln und nicht hier 
hochladen bzw. angeben, weil sonst kommt es mit deiner Version zu zuviel 
durcheinander und es ist dein Projekt.

Grüsse,
Thomas

von doofi (Gast)


Lesenswert?

> nicht hier hochladen

Wo denn dann?

von Thomas K. (muetze1)


Lesenswert?

Moin!

Gar nicht - denn es gibt sonst, wie Markus F. schon bemerkte, zuviele 
verschiedene Versionen und Nachfragen von Usern werden dadurch nur 
unnötig erschwert. Auch schon die Compilerdefines des originalen Projekt 
würden halt zu Unstimmigkeiten führen. Bei grösserem Interesse würde ich 
das vielleicht auf meinen Blog veröffentlichen, damit es dann örtlich 
gut getrennt wäre - aber das müsste ich dann entscheiden und auch 
nochmal mit Markus abstimmen. Er hat noch immer die geistigen 
Eigentumsrechte und kann entscheiden was man darf und nicht darf im 
öffentlichen Raum.

Aber bis dahin habe ich noch etwas zu basteln, noch ist es nicht fertig.

Grüsse,
Thomas

von Markus F. (5volt) Benutzerseite


Lesenswert?

Ich finde es schon in Ordnung, wenn hier jemand den Code verändert und 
"seine" Version davon veröffentlicht. Das soll ja schließlich auch ein 
offenes Projekt sein.
Ungünstig wäre es nur - wie Thomas K. schon geschrieben hat - wenn jede 
Version dann hier im Forum landet. Da geht dann auch schnell der 
Überblick verloren.

Die lcd_send() schaue ich mir auch nochmal an.
Und die Idee, die Display-Anzeige so zu machen, wie du es beschrieben 
hast, hatte ich auch schon mal. Das spart natürlich eine Menge Platz im 
LCD. Allerdings sind die Ausgaben dann für Leute, die mit dem Tester 
noch wenig Erfahrung haben, ziemlich schwierig zu lesen. Da ist eine 
Angabe wie "B=2;C=1;E=3" deutlich besser verständlich als "CBE". Deshalb 
habe ich mich damals dagegen entschieden.
Wie ist eigentlich eure Meinung dazu? Welche Darstellungsart gefällt 
euch besser?

von Thomas K. (muetze1)


Lesenswert?

Moin!

Gerade wegen der Zuornung mit den Pins hatte ich mir wegen des 
Verständnisses als erstes auch überlegt es ganz rechts im Display 
anzuzeigen und dann aber so, dass in der 1. Zeile "123" steht und 
darunter dann in der zweiten Stelle der Spalte entsprechend die 
Beschreibung wie oben genannt. Wäre vllt. eine Mischlösung welches die 
Lesbarkeit erhöht und gleichzeitig den LCD Platz effizient ausnutzt.

"Diode        123"
"Uf=345mV     A K"

Grüsse,
Thomas

von doofi (Gast)


Lesenswert?

> Gar nicht

:-(

Eine VT-100-Version halte ich nach wie vor für interessant.
Ich pflege nämlich nicht jedem Gerätchen irgendwelche LCDs
zu spendieren, sondern eher einen Widerstand und eine IR-Diode
oder eine DB-Buchse für einen RS-232-Anschluss.

von Markus F. (5volt) Benutzerseite


Lesenswert?

=> Thomas K.:
Ich habe jetzt die lcd_send() etwa nach deinem Vorschlag übernommen.
Das Programm wird dadurch wirklich ein wenig kompakter (um 8 Bytes).

von Thomas K. (muetze1)


Lesenswert?

Moin!

Falls du noch mehr einsparen willst, ich habe ja nun noch etwas weiter 
gearbeitet. Du bekommst deinen Code noch kleiner, wenn du den 
Ausgabeteil, welcher nun ja mit if () else if () else if () etc. 
arbeitet umstellst auf einen switch. Dein end: Label wird dabei zum 
default Zweig des switches. Dies kann der C++ Compiler durch eine 
Sprungtabelle noch besser optimieren als das if/else if/.... Gleiches 
gilt für die Diodenanzahl Unterscheidung.

Als Hinweis muss ich gleich mal sagen: ich weiss nicht, ob er die 
Sprungtabelle aufbaut mit den jetzt definierten Konstanten. Die Frage 
ist, ob der Compiler das so richtig erkennt - ich habe in meiner Version 
an der Stelle schon einen enum, den kann er dadurch bestens optimieren 
und weiss auch sofort um die Sprungtabelle.
1
  // Bauteile
2
typedef enum 
3
{ 
4
  ptNone, 
5
  ptDiode, 
6
  ptTransistor, 
7
  ptFET, 
8
  ptTriac, 
9
  ptThyristor, 
10
#ifdef UseM8
11
  ptResistor 
12
#endif
13
} PartType;

Ansonsten noch ein Tipp: Der SetCursor() Präprozessor define enthält bei 
der Zusammenstellung des Befehls ein +, dies ist aber die falscher 
Operation, da dadurch der Befehl an sich sogar zerstört werden kann. 
Alle Werte sollten mit binärem Oder verbunden werden.

Und nochwas zu dem zerstörten LCD Port: Wenn man die Abschaltung nicht 
aufbaut und er von einem Watchdog Reset wieder neustartet, dann versucht 
dein Code den Tester abzuschalten, was aber dadurch nicht gelingt. Zum 
einen könnte er einfach erneut testen, er eh nicht abgeschaltet werden 
kann. Zumindest wird dort der gesamte ON_PORT und ON_DDR auf 0 gesetzt, 
das wiederrum zerschiesst wie zuvor gesehen die LCD Steuerung. Bisher 
sorgt aber das return 0 bei dir im Code, dass er im Datennirvana landet.

Ok, das soll's erstmal gewesen sein.

Grüsse,
Thomas

von Fur (Gast)


Angehängte Dateien:

Lesenswert?

Habe mal zu Verständnisszwecken eine Pspice File gemacht für den 
Diodentest.

Habe jetzt einfach mal einen Transistor an P1 P2 und P3 drangedacht.

Bitte mal durchsehen, ob ich alle Möglichkeiten durchdacht habe.

Sind das alle Möglichkeiten bei einem Transistor (ausser integrierte D 
und R) ?

von Markus F. (5volt) Benutzerseite


Lesenswert?

=> Thomas K.:
Zu der Sache mit dem Abschalten nach einem Watchdog-Reset:
Ein Watchdog-Reset tritt im Normalbetrieb nicht auf.

Wenn man den Tester ohne automatische Abschaltung aufbaut, kommt er im 
Code über den Punkt hinaus, an dem er sich normalerweise abgeschaltet 
hätte.
Dann deaktiviert er den Watchdog und geht in eine Endlosschleife, in der 
er auf einen neuen Druck auf die Start-Taste wartet oder bis man die 
Betriebsspannung abschaltet.

Ich habe den Watchdog nur aus einem Grund eingebaut:
Wenn der Tester zwischendurch irgendwo hängen bleibt, würde er nie an 
den Punkt kommen, an dem er sich wieder abschaltet. Damit würde er sich 
natürlich nicht mehr abschalten. Wenn man den Tester mit der 
automatischen Abschaltung hat, muss man dann also kurz den Strom 
wegnehmen (Batterie abklemmen). Das nervt natürlich, wenn der Tester in 
einem Gehäuse eingebaut ist: Gehäuse öffnen, Batterie abklemmen und 
wieder anklemmen, Gehäuse wieder verschließen.

Meiner Meinung nach ist eine Abschaltung des Testers nach einem 
Watchdog-Reset am sinnvollsten.
Wenn er nach einem Reset attomatisch einen neuen Testzyklus beginnt, 
könnte er damit auch in einer "Endlosschleife" bleiben.
Aber du hast natürlich Recht, es ist eigentlich sinnlos, dafür den 
kompletten Port auf 0 zu setzen. Das werde ich noch ändern und dann mit 
der nächsten Version hochladen.

Und was ist an dem "+" im SetCursor-Makro so schlimm?
Man lönnte damit natürlich die uint8_t für lcd_command() überschreiten. 
Das passiert aber nur, wenn man einen unsinnig hohen Wert für x oder y 
einsetzt. Das ist aber sowieso Schwachsinn, weil das LCD ja nur 2 Zeilen 
zu je 16 Zeichen hat.

=> Fur:
Das Prinzip, nach dem dieser Tester arbeitet, habe ich in dem Artikel 
(siehe ganz oben im Thread) eigentlich schon erklärt.

von Benedikt K. (benedikt)


Lesenswert?

Markus F. schrieb:

> Und was ist an dem "+" im SetCursor-Makro so schlimm?
> Man lönnte damit natürlich die uint8_t für lcd_command() überschreiten.
> Das passiert aber nur, wenn man einen unsinnig hohen Wert für x oder y
> einsetzt. Das ist aber sowieso Schwachsinn, weil das LCD ja nur 2 Zeilen
> zu je 16 Zeichen hat.

So ist es. Allerdings macht ein | anstelle des + den Code nicht größer, 
die Software aber etwas Fehlersicherer, denn egal welchen Wert man für x 
oder y angibt, der Befehl macht nichts anderes als die Adresse zu 
setzen.
Eine x Position von z.B. 129 würde mit + zu dem Befehl 1 führen, was das 
das Display löschen würde. Ebenso könnte man auch das Displays resetten 
oder ähnliches.

von Thomas K. (muetze1)


Lesenswert?

Moin!

Markus F. schrieb:
> => Thomas K.:
> Zu der Sache mit dem Abschalten nach einem Watchdog-Reset:
> Ein Watchdog-Reset tritt im Normalbetrieb nicht auf.

Steht ausser Frage - er ist ja ein Mittel für den "Notfall".

> Wenn man den Tester ohne automatische Abschaltung aufbaut, kommt er im
> Code über den Punkt hinaus, an dem er sich normalerweise abgeschaltet
> hätte.

Richtig und landet im "return 0" und das bringt ihn in's Datennirvana, 
weil ein Rückkehr von main() auf dem MC nicht vorgesehen ist. Von daher 
ist es bisher undefiniert was der StartupCode des gcc macht, da er der 
Aufrufer von main ist und die Kontrolle zurück bekommt.

> Und was ist an dem "+" im SetCursor-Makro so schlimm?

Was ist an einem Oder so schlimm? Nun ja, das Oder würde zumindest dafür 
sorgen, dass die x und y Koordinaten zumindest nochmals deutlich grösser 
und noch unsinniger werden müssten bis es auswirkungen hat. Um das 
Kommando zusammen zu bauen ist der zu nutzende Operator ein binäres 
Oder. Ein + Operator ist hier nicht gesucht und einfach nur die falsche 
Wahl. Im ersten tun macht er gleiches, beim zweiten Durchlauf schon 
wieder nicht mehr, von daher ist er hier nicht gesucht/benötigt. Es ist 
einfach nur eine Frage des richtigen Operators.

Grundlegend: es ist nur ein Hinweis - was du machst und vor allem wie 
bleibt natürlich dir überlassen. Grundlegend um die Gefahr weisst du und 
ich denke du kannst auch nachvollziehen.

Grüsse,
Thomas

von Frank (Gast)


Angehängte Dateien:

Lesenswert?

Halloe.

Auch ich habe versucht den Transistortester nachzubauen. Ich habe einen 
Atmega8 genommen und mit der aktuellen (08.06.09) Firmware geflascht. 
Die Platine habe ich selbst Layoutet, mich dabei aber an das Schema ( 
mit Autoabschaltung ) gehalten.

Als Display habe ich ein 16*2 Zeichen Display von Displaytec verwendet. 
(162C). Leider klappt bei mir die Anzeige nicht richtig. Das Display 
soll laut angaben den Controller LSI KS0070B tragen, welcher HD44780 
kompatibel sein soll.

Wenn ich den Test mit einem Transistor im Sokel starte ( Typ: BC 557C ) 
erhalte ich als Anzeige bloss:
00/?/??||      _

Wobei die beiden || als ein Blinkendes Zeichen angezeigt werden. Und bei 
den beiden 0's bin ich nicht sicher obs der Buchstabe O oder die Zahl 0 
sein soll.

Wenn ich den Test mit einem leeren Sockel wiederhole wird folgendes 
Angezeigt:
oooo<-o<-/Üo<-<-ooo
am Ende dann noch ein Blinkender Kursorblock. Wobei <- als Pfeil nach 
links dargstellt wird.

Habt ihr eine Idee, was hier evtl. falsch gelaufen sein könnte ?

Anbei das von mir zusammengestellte Schema und das Boardlayout.

Freundliche Grüße
Frank

p.s. Wenn ichs ans laufen bekomme, kann ich euch auch gern die KiCad 
Projektdateien zur verfügung stellen.

von Thomas K. (muetze1)


Lesenswert?

Der KS0070 ist nicht 100%ig HD44780 kompatibel. Die Timings (u.a. beim 
Init) sind unterschiedlich. Dadurch kann es zu solchen Problemen 
kommen...

von Markus F. (5volt) Benutzerseite


Lesenswert?

Versuche vielleicht mal, die Wartezeit in lcd_enable() zu erhöhen.
Mit der Wartezeit von 1µs soll es ab und zu mal Probleme geben.
Du musste eben ausprobieren, welcher Wert dafür gut ist. Tendenziell 
gilt da aber: Lieber etwas zu lang als zu kurz warten.

von Markus F. (5volt) Benutzerseite


Angehängte Dateien:

Lesenswert?

=> Frank:
Ich habe das jetzt nochmal mit 20µs Wartezeit und für den Mega8 
kompiliert.
Die hex- und eep-Datei hänge ich hier mal an.
Es wäre schön, wenn du hier schreiben könntest ob es damit klappt.

von Frank (Gast)


Lesenswert?

Halloe.

Danke für die Tips und die schnelle Hilfe.

Markus, leider funktioniert die neue version von Dir auch nicht 
wirklich, aber du hast mir einen guten Wink in die richtige Richtung 
gegeben.

Ich habe in der LCD- Ansteuerung die Wartezeiten an einigen stellen 
leicht erhöht. Nun klappt es mit der Anzeige. Leider geht das ganze aber 
meist nur eine Messung lang gut. Wenn ich nach der ersten Messung gleich 
eine 2. Messung starte, bekomme ich häufig nur ein leeres Display zu 
sehen. Warte ich ca. 10 Sekunden klappt auch die 2. Messung.

Ich werd nochmal ein wenig mit den Timing spielen, wenn ich es richtig 
ans laufen gebracht habe, stelle ich die Anpassungen hier mal ein.

Freundliche Grüße
Frank

von misser (Gast)


Lesenswert?

Vielen danke fur die gute AVR transistortester,
in english: This instrument is very good ,but I ask if it can test also 
the following components: ujt , darlington transistor , transistor with 
diode in( between Base and Emeter / Collector and Emeter) , optocoupler.
I hope if there will be a new soft (hex and eep)file for these new 
components.
Thanks.

von Michael L. (michaelx)


Angehängte Dateien:

Lesenswert?

Hallo,

und vielen Dank für das Projekt. Nun ist auch bei mir ein Nachbau 
entstanden.
Die Schaltung habe ich soweit modifiziert, dass man den Tester sowohl 
über Batterie als auch extern versorgen kann.
Ein Problem habe ich aber noch mit der Anzeige. Ich habe mit 2 Displays 
getestet (Art-Nr. 120 545 und 120 469 von Pollin, beide HDD44780 
kompatibel), aber die Anzeige bleibt leer. Der AVR lebt jedoch, denn im 
Batteriebetrieb kann man sehr schön die automatische Abschaltung 
beobachten. Getestet habe ich mit verschiedenen Versionsständen.

Vielen Dank schon mal für die Unterstützung.

PS: Gibt es irgendwelche Gründe (Forenregeln o.ä.), weshalb keine 
Eagle-SCH- und -BRD-Files gepostet werden? Wegen kleiner Änderungen den 
Schaltplan abzuzeichnen, ist ja nicht unbedingt der Sinn der Sache.

PPS: Ein eigenes Testprogramm konnte ich noch nicht schreiben, dazu 
müssen erst mal AVR-Studio und GCC laufen.

von Benedikt K. (benedikt)


Lesenswert?

Michael L. schrieb:

> Ein Problem habe ich aber noch mit der Anzeige. Ich habe mit 2 Displays
> getestet (Art-Nr. 120 545 und 120 469 von Pollin, beide HDD44780
> kompatibel), aber die Anzeige bleibt leer.

Die Init ist nicht ganz vollständig:
In Zeile 69 der lcd-routines.c, nach dem 3 maligen Senden von 0x02 fehlt 
noch folgender Code:
1
LCD_PORT = (LCD_PORT & 0xF0 & ~(1<<LCD_RS)) | 0x02;
2
_delay_ms(1);
3
lcd_enable();
4
_delay_ms(1);

Damit wird der Bus auf 4bit eingestellt.

> PS: Gibt es irgendwelche Gründe (Forenregeln o.ä.), weshalb keine
> Eagle-SCH- und -BRD-Files gepostet werden? Wegen kleiner Änderungen den
> Schaltplan abzuzeichnen, ist ja nicht unbedingt der Sinn der Sache.

Ja: Nicht jeder hat Eagle installiert. Als Zugabe in einem kompletten 
Projekt spricht nichts dagegen, aber wenn man mal schnell nur einen 
Schaltplan zeigen möchte, dann ist ein Bild die beste Wahl, denn das 
kann jeder ohne Zusatzsoftware direkt im Browser anschauen.

von Markus F. (5volt) Benutzerseite


Lesenswert?

=> Benedikt:
Danke für den Hinweis. Ich habe das jetzt mal in die "offizielle" 
Version aus dem Artikel übernommen. Diesen Fehler habe ich einfach 
übersehen.

Eine BRD-Datei dazu habe ich nicht. Ich habe auch noch nie mit Eagle 
eine Platine erstellt.

=> misser:
UJT's are not supported until now.
Darlington transistors are supported. But the tester doesn't show that 
it is a darlington.
Transistors with internal diodes are supported. If a diode ist found, a 
little diode icon is shown in the LCD.

Perhaps I will add support for UJT's soon. But first I must get some...

von Michael L. (michaelx)


Lesenswert?

Hallo Benedikt und Markus,

danke für die schnelle Reaktion. Schneller als ich Zeit fand, WinAVR zu 
installieren, war schon eine neue Version hochgeladen. Aber auch mit der 
hatte ich leider noch keinen Erfolg. :-(

So werde ich mich nun erst mal selbst ans Eingemachte herantasten.

Die Eagle-Dateien könnte ich zur Verfügung stellen. Ich hätte sie ja 
fast schon als ZIP in den Artikel eingefügt, kann aber den Abschnitt 
Download nicht bearbeiten. Irgendwas ist da bei den letzten beiden 
Abschnitten kaputt.

Grüße.
Michael

von Markus F. (5volt) Benutzerseite


Lesenswert?

=> Michael L.:
Das Display 120545 von Pollin verwende ich auch. Bei mir funktioniert es 
damit aber anstandslos.
Überprüfe vielleicht nochmal folgende Dinge:

- Ist das LCD auch richtig angeschlossen und kriegt es auch Spannung?
Diese Displays haben nämlich einen Kontaktabstand von gerade mal ca. 
1mm. Da kann schnell mal eine Lötbrücke entstehen.
- Hast du die Fusebits des Controllers richtig gesetzt?
- Hast du auch die .eep-Datei ins EEPROM geflasht? (ganz wichtig!)

Meinen Tester habe ich auch mit diesem LCD aufgebaut und da hatte ich 
noch keine Probleme.

von misser (Gast)


Lesenswert?

==> Markus: Vielen Dank;
   Thanks ; when you will add support for UJT , it will be a very good 
project and very useful.
   I think that this project can be improved day per day .
   I found also another project "sc analyser 2005" edited by "elektor 
magazine" , but this project is limmited .

von Dieter E. (netdieter) Benutzerseite


Lesenswert?

Benedikt K. schrieb:
> Michael L. schrieb:
>
> Die Init ist nicht ganz vollständig:
> In Zeile 69 der lcd-routines.c, nach dem 3 maligen Senden von 0x02 fehlt
> noch folgender Code:
>
>
1
> LCD_PORT = (LCD_PORT & 0xF0 & ~(1<<LCD_RS)) | 0x02;
2
> _delay_ms(1);
3
> lcd_enable();
4
> _delay_ms(1);
5
>
>
> Damit wird der Bus auf 4bit eingestellt.

Hi Benedikt, kannst Du bitte mal die ganze Funktion LCD_Init posten?
Ich bin mir nicht sicher ob ich den richtigen Code habe.

Thanx
netdieter

von Benedikt K. (benedikt)


Lesenswert?

1
void lcd_init(void)
2
{
3
  LCD_DDR = LCD_DDR | 0x0F | (1<<LCD_RS) | (1<<LCD_EN1);   // Port auf Ausgang schalten
4
  // muss 3mal hintereinander gesendet werden zur Initialisierung
5
  _delay_ms(15);
6
  LCD_PORT = (LCD_PORT & 0xF0 & ~(1<<LCD_RS)) | 0x03;
7
  lcd_enable();
8
  _delay_ms(5);
9
10
  lcd_enable();
11
  _delay_ms(1);
12
13
  lcd_enable();
14
  _delay_ms(1);
15
16
  // auf 4bit Modus umschalten
17
  LCD_PORT = (LCD_PORT & 0xF0 & ~(1<<LCD_RS)) | 0x02;
18
  lcd_enable();
19
  _delay_ms(1);
20
21
  // 4Bit / 2 Zeilen / 5x7
22
  lcd_command(CMD_SetIFOptions | 0x08);
23
24
  // Display ein / Cursor aus / kein Blinken
25
  lcd_command(CMD_SetDisplayAndCursor | 0x04);
26
27
  // inkrement / kein Scrollen    
28
  lcd_command(CMD_SetEntryMode | 0x02);  
29
  lcd_clear();
30
}

von Dieter E. (netdieter) Benutzerseite


Lesenswert?

Benedikt K. schrieb:
>
1
> void lcd_init(void)
2
> {
3
>   LCD_DDR = LCD_DDR | 0x0F | (1<<LCD_RS) | (1<<LCD_EN1);   // Port auf
4
> Ausgang schalten
5
>   // muss 3mal hintereinander gesendet werden zur Initialisierung
6
>   _delay_ms(15);
7
>   LCD_PORT = (LCD_PORT & 0xF0 & ~(1<<LCD_RS)) | 0x03;
8
>   lcd_enable();
9
>   _delay_ms(5);
10
> 
11
>   lcd_enable();
12
>   _delay_ms(1);
13
> 
14
>   lcd_enable();
15
>   _delay_ms(1);
16
> 
17
>   // auf 4bit Modus umschalten
18
>   LCD_PORT = (LCD_PORT & 0xF0 & ~(1<<LCD_RS)) | 0x02;
19
>   lcd_enable();
20
>   _delay_ms(1);
21
> 
22
>   // 4Bit / 2 Zeilen / 5x7
23
>   lcd_command(CMD_SetIFOptions | 0x08);
24
> 
25
>   // Display ein / Cursor aus / kein Blinken
26
>   lcd_command(CMD_SetDisplayAndCursor | 0x04);
27
> 
28
>   // inkrement / kein Scrollen
29
>   lcd_command(CMD_SetEntryMode | 0x02);
30
>   lcd_clear();
31
> }
32
>

Wie ich vermutet habe. Ich habe nicht die aktuellen Sourcen.

Sind den die Source aus dem Forum nicht mehr aktuell?
http://www.mikrocontroller.net/articles/AVR-Transistortester

Daher hatte ich meine.

Gruß
netdieter

von Benedikt K. (benedikt)


Lesenswert?

Doch, das war die Version von dort. Ich habe das ganze geringfügig 
angepasst, so dass es eher der Version aus dem Datenblatt entspricht.

Je nach Controller gibt es geringe Unterschiede in der Initialisierung 
(vor allem was den von mir eingefügten Befehl angeht), aber obige 
Version sollte bei allen 44780 kompatiblen LCDs funktionieren.

von Dieter E. (netdieter) Benutzerseite


Lesenswert?

Benedikt K. schrieb:
> Doch, das war die Version von dort. Ich habe das ganze geringfügig
> angepasst, so dass es eher der Version aus dem Datenblatt entspricht.
>
> Je nach Controller gibt es geringe Unterschiede in der Initialisierung
> (vor allem was den von mir eingefügten Befehl angeht), aber obige
> Version sollte bei allen 44780 kompatiblen LCDs funktionieren.
1
 lcd_command(CMD_SetIFOptions | 0x08);
2
3
  // Display ein / Cursor aus / kein Blinken
4
  lcd_command(CMD_SetDisplayAndCursor | 0x04);
5
6
  // inkrement / kein Scrollen    
7
  lcd_command(CMD_SetEntryMode | 0x02);
Die defines sind aber noch nicht im Header eingepflegt :-(

von Benedikt K. (benedikt)


Lesenswert?

Doch, in den lcd-routines.h. Zumindest waren die das vor einer halben 
Stunde noch.

von Dieter E. (netdieter) Benutzerseite


Lesenswert?

Dann muss ich mir nochmal den neuen Code holen.
Meiner ist schon 3 Wochen alt. ;-)

von Michael L. (michaelx)


Lesenswert?

Hallo Markus,

die Anzeige funktioniert nun doch. Ich muss nur den Pin für den Kontrast 
fast auf GND ziehen, dann zeigt das 120545 auch was an. Nur bei dem 
120469 habe ich wohl Pech gehabt, das zeigt erst wenn ich es ganz auf 
GND schwach etwas an. Wie es scheint habe ich da wohl ein Modell mit 
erweitertem Temperaturbereich erwischt, heißt also noch eine negative 
Spannung erzeugen, damit ich richtig was sehen kann. Aber da muss ich 
wohl durch, denn es ist wesentlich größer, hat Beleuchtung und einen 
wesentlich längeren Folienleiter (wichtig für den Gehäuseeinbau).

Danke für die Tipps, obwohl ich sagen muss, das 1mm-Pin-Raster ist nicht 
wirklich eine Herausforderung. Sowas kann ich noch löten, ohne alles mit 
Zinn zuzukleistern. :-D Und ich brate auch nicht auf dem Folienleiter 
herum, sowas finde ich bäh! Dafür gibt's doch passende Buchsen.

Morgen werde ich aber erst mal ein wenig testen. :-)

von Markus F. (5volt) Benutzerseite


Angehängte Dateien:

Lesenswert?

Ich fand das 1mm-Raster auch nicht schlimm, nachdem ich herausgefunden 
habe wie man sowas am besten anschließt. Ich habe dann den Folienleiter 
abgelötet und es mit Kupferlackdraht angeschlossen. Geht auch ganz gut, 
aber so eine Folienleiter-Buchse ist natürlich eleganter.

Und die negative Spannung für dein anderes LCD kannst du einfach mit 
einer Ladungspumpe erzeugen. Das ist ganz einfach, aber anscheinend gar 
nicht so bekannt. Deshalb füge ich hier noch einen kleinen Schaltplan 
bei.
Funktionsprinzip sollte eigentlich klar sein.

Ich finde diese LCDs mit weitem Temperaturbereich fast besser als die 
"normalen" Typen. Die haben meist einen viel besseren Kontrast. Dafür 
würde ich den Nachteil mit der negativen Spannung schon in Kauf nehmen.
Für meinen Tester hatte ich leider gerade kein solches LCD zur Hand. 
Außerdem passt das kleine LCD gut in das Gehäuse, das ich auch gerade 
noch so rumliegen hatte...

von Michael L. (michaelx)


Lesenswert?

Danke für die Schaltung, so hatte ich die auch in Erinnerung. Dazu noch 
ein 555 und fertig. Das kann ich dann gleich mit in den Schaltplan und 
ins Layout übernehmen und würde die Files zur Verfügung stellen, wenn du 
nichts dagegen hast.

Inzwischen habe ich mit dem kleinen LCD mal kurz getestet, habe einen 
NPN-Transistor angeklemmt, aber das Ergebnis gibt mir Rätsel auf.

B an 2 und E+C an 1+3 bzw. 3+1
ergibt eine Doppeldiode CA mit A=2 und K1,2 = 1,3

B an 1 und E+C an 2+3 bzw. 3+2
B an 3 und E+C an 1+2 bzw. 2+1
ergibt einen NPN mit h_fe zwischen 765 und 770

Je nach Meßgerät (habe mit 3 anderen geprüft) sollte der Transistor aber 
nur eine h_fe von 240..270 haben.

Die Verdrahtung der Testanschlüsse habe ich durchgemessen, habe auch 
noch mit einem 2. Mega8 getestet.

Das ist zwar nur nicht mein erstes µC-Projekt, doch das erste mit AVR. 
Darum bin ich im Moment noch nicht weiter gekommen, obwohl ich schon mal 
einen Blick in den Code geworfen habe. Vielleicht hast du ja eventuell 
noch eine Idee, was es sein könnte?

von Markus F. (5volt) Benutzerseite


Lesenswert?

Was für einen Transistor hast du denn eigentlich verwendet?
Solche Probleme hatte ich nämlich bisher noch nicht (außer natürlich 
ganz zu beginn des Projekts...)
Ich habe gerade einen 2N3773 und einen TIP31 je in allen 6 möglichen 
Kombinationen angeschlossen. Es hat jedes Mal funktioniert.

Übrigens: Ein extra NE555 ist doch eigentlich überflüssig.
Der AVR hat noch viele freie I/O-Pins. Und die Timer werden auch nicht 
benutzt. Das Rechteck-Signal könnte also auch der AVR selbst erzeugen.

von Michael L. (michaelx)


Lesenswert?

Hallo Markus,

ich habe den Fehler gefunden, ein Kügelchen Zinn hatte Pin 16 nach Masse 
gebrückt.

Das muss irgendwann während der ersten erfolglosen Versuche mit der 
LCD-Initialisierung da hin geraten sein. Denn nach dem Löten hatte ich 
da keine Verbindung gemessen, und beim späteren prüfen der Verdrahtung 
habe ich erst mal nur von den Test-Pins gegen die IC-Pins gemessen.

Sorry, war also mein Fehler. Aber vlt. erspart es ja zukünftige 
Nachfragen, könnte man ja im Artikel unter Fehlersuche aufnehmen, wenn 
es Sinn macht.

Das Rechtecksignal im AVR erzeugen macht natürlich Sinn. Ich war wohl zu 
sehr in mein Problem vertieft.


Danke nochmals.

von Markus F. (5volt) Benutzerseite


Lesenswert?

=> Michael L.:
Schön, dass dein Tester jetzt auch funktioniert ;)
Und ich habe jetzt im Artikel einen Abschnitt "Fehlersuche" eingefügt, 
wo ich die (meiner Meinung nach) häufigsten Fehlerquellen aufgeführt 
habe.

von Michael L. (michaelx)


Lesenswert?

Hallo Markus,

um das Rechtecksignal auf einem der freien Pins auszugeben, müsste man 
aber mit einem Interrupt arbeiten, jedenfalls wenn man nicht die schon 
benutzten Pins umsortieren will. Ich wollte PC4 verwenden. Oder habe ich 
da was übersehen? Sind da Probleme in deiner SW zu erwarten?

Heute Abend werde ich mal Schaltplan und Layout erweitern und testen, 
wie groß die beiden Cs sein müssen.

von Benedikt K. (benedikt)


Lesenswert?

Michael L. schrieb:

> um das Rechtecksignal auf einem der freien Pins auszugeben, müsste man
> aber mit einem Interrupt arbeiten, jedenfalls wenn man nicht die schon
> benutzten Pins umsortieren will.

Wenn man den mega48 verwendet, reicht es PD5 frei zu machen, dann kann 
man den OC0B Ausgang nutzen. Ich denke das dürfte die beste Lösung sein.

> Heute Abend werde ich mal Schaltplan und Layout erweitern und testen,
> wie groß die beiden Cs sein müssen.

Als Frequenz würde ich etwa 50-100kHz verwenden, dann reichen für C1 
etwa 100nF und 1µF für C2.

von Michael L. (michaelx)


Lesenswert?

Benedikt K. schrieb:

> Wenn man den mega48 verwendet, reicht es PD5 frei zu machen, dann kann
> man den OC0B Ausgang nutzen. Ich denke das dürfte die beste Lösung sein.

Dann ist das ganze aber nicht mehr mit der bisherigen Lösung kompatibel.

> Als Frequenz würde ich etwa 50-100kHz verwenden, dann reichen für C1
> etwa 100nF und 1µF für C2.

Schon klar, je höher f, desto kleiner C. Aber ganz so hoch wäre ich mit 
der Frequenz nicht gegangen (rein gefühlsmäßig), doch ich habe da auch 
wenig Erfahrungen.

von misser (Gast)


Lesenswert?

Hallo;
   I think that is possible to add an other caracteristic for bipolar 
transistor NPN / PNP to show:
    Ge ==> for germanium transistor with Vbe= 0.1V to 0.5V
    Si ==> for silicium transistor with Vbe= 0.5V to 0.9V
    Dt ==> for darlington transistor with Vbe= 0.9V to 2V ;
   Or to show : Vbe= .... to help to identify the type of the bipolar 
transistor ...
   Vielen dank.

von Markus F. (5volt) Benutzerseite


Lesenswert?

> Wenn man den mega48 verwendet, reicht es PD5 frei zu machen, dann kann
> man den OC0B Ausgang nutzen. Ich denke das dürfte die beste Lösung sein.

Also PC3 wäre z.B. noch komplett frei.
Man könnte doch einfach einen Timer verwenden und den Pin bei jedem 
Timer-Interrupt toggeln. Nicht ganz so elegant, aber mit der jetzigen 
Version kompatibel.
Und die Frequenz spielt kaum eine Rolle. Ich habe so eine Ladungspumpe 
auch schon mal mit ein paar MHz betrieben (einfach CKOUT vom AVR 
verwendet). Geht auch...
Und 50-100kHz sind eigentlich noch nicht so viel. Normale 
Schaltnetzteile liegen in einem ähnlichen Bereich, z.T. sogar darüber. 
Diese Frequenz ist für eine Ladungspumpe ganz gut. Die Belastung durch 
den Kontrast-Anschluss ist ja eh minimal.

=> misser:
I also already thought about showing the base-emitter voltage.
But I didn't need it until now. Sometimes it really could be useful, and 
so I will try it soon. The voltages are already being measured but they 
are not shown in the display. So it shouldn't be a big thing to add 
this.

von misser (Gast)


Lesenswert?

==> Thanks Markus,
  I don't mean to show the base-emitter voltage on the LCD exactly , but 
only : "Si" or "Ge" or "Dt" like this : "PNP Ge" for bipolar of 
germanium; or "NPN Dt" for bipolar darlington (so darligton transistor 
will be not supported only but shown also )....and with  new soft that 
support UJT : AVR-transistortester will be realy fantastic ...Thank you 
very much Markus .

von Michael L. (michaelx)


Lesenswert?

Markus F. schrieb:

> Also PC3 wäre z.B. noch komplett frei.
> Man könnte doch einfach einen Timer verwenden und den Pin bei jedem
> Timer-Interrupt toggeln. Nicht ganz so elegant, aber mit der jetzigen
> Version kompatibel.

So hatte ich mir das mit dem Timer gedacht. Allerdings würde ich PC4 als 
Ausgang für das Rechtecksignal vorschlagen, und PC3 als 4. Test-Pin 
freihalten (PB6 und PB7 sind auch noch frei). Ich hätte da noch so eine 
Idee, z.B. könnte man den 4. Test-Pin für die Prüfung 
Gleichrichterbrücken verwenden. Das soll aber nicht heißen, dass du das 
auf jeden Fall machen musst. ;-)

von Michael L. (michaelx)


Lesenswert?

misser schrieb:
> ==> Thanks Markus,
>   I don't mean to show the base-emitter voltage on the LCD exactly , but
> only : "Si" or "Ge" or "Dt" like this : "PNP Ge" for bipolar of
> germanium; or "NPN Dt" for bipolar darlington (so darligton transistor
> will be not supported only but shown also )....and with  new soft that
> support UJT : AVR-transistortester will be realy fantastic ...Thank you
> very much Markus .

I think, V_be would be better, because there are not so hard bounds 
between Ge and Si. I found some Ge with more than 0.5V in my part boxes.

Yesterday I tested a darligton (TIP120), but h_fe = 0 was shown. A 
problem may be, there are 2 R and a D inside.

von Markus F. (5volt) Benutzerseite


Lesenswert?

I know that the hFE of darlingtons in most cases can not be measured.
They have an internal pulldown resistor at the base pin (several 10 
kiloohms). Then, with the 470k test resistor in the tester, there isn't 
enough base voltage to switch the darlington.
The internal diodes are no problem.

Naja, der 4. Test-Pin hilft auch nur für Gleichrichterbrücken und 
Dual-Gate-FETs etwas. Das lohnt sich dann eigentlich nicht.
Brückengleichrichter kann man ja auch durch Test der einzelnen Dioden 
überfrüfen. Dauert natürlich etwas länger.
Außerdem ist bei einem Gleichrichter auch die Durchbruchspannung 
wichtig.
Das ist die Spannung, bei der die Dioden in "Rückwärts-Richtung" zu 
leiten beginnen. Wenn man den Teststrom gering hält (einige zig µA) kann 
man diese Spannung ohne Gefahr für die Dioden überprüfen.
Aber sowas kann man in den Transistortester so nicht integrieren.

Testweise habe ich so eine Schaltung aber schon mal aufgebaut:
Ein kleiner Spannungswandler liefert eine hohe Spannung (in meinem Fall 
2700 Volt). Diese Spannung wird über einen entsprechend großen 
Widerstand (ich habe 45Megaohm verwendet; also max. 60µA Strom und damit 
auch vollkommen ungefährlich bei Berührung) an die zu testende Diode 
angelegt.
Dann kann über einen sehr hochohmigen Spannungsteiler die parallel zu 
der Diode anliegende Spannung gemessen werden. Das ist die 
Durchbruchspannung.

Aus naheliegenden Gründen wird das aber nicht in den Transistortester 
eingebaut...
Kurz: Ich halte das mit dem Test von Gleichrichtern für nicht so 
besonders nützlich.

von Michael L. (michaelx)


Lesenswert?

Ideen sind ja dazu da, dass man mal darüber diskutiert.

BTW: Bei der Dioden-Messung wird jetzt auch nicht Durchbruchspannung 
ermittelt. Die ist ja auch wurscht, wenn man nur wissen will, was für 
ein Teil man vor sich hat und wie die Pinbelegung ist.

von Markus F. (5volt) Benutzerseite


Lesenswert?

Ich habe jetzt die Messung der Basis-Emitter-Spannung eingebaut und die 
neue Version damit auch schon hochgeladen.
Außerdem ist da noch die Erkennung von Darlington-Transistoren etwas 
verbessert. Vorher konnte es bei bestimmten Anschlussreihenfolgen 
passieren, dass die internen Schutzdioden (wegen der ebenfalls 
vorhandenen internen Widerstände) nicht erkannt wurden.
Ich habe die neue Version wieder mit einer ganzen Menge Bauteile 
getestet und keine Probleme festgestellt.

=> misser:
Now I added the support for showing the base-emitter-voltage!

von Michael L. (michaelx)


Angehängte Dateien:

Lesenswert?

Hallo Markus,

ich hab da mal was vorbereitet, ist aber der Stand vom 29.06.09. Das du 
schon wieder was neues gemacht hast, hab ich gerade erst gesehen. Kannst 
ja mal reinschauen, wenn du willst.

Zur allgemeinen Information:
Ich hatte ein Display mit erweitertem Temperaturbereich (Pollin 120 
469), und wollte das gern einsetzen.

Mit der weiter oben schon gezeigten Schaltung (mit C1 = 4,7µ und C2 = 
22µ) bekomme ich mit der geänderten SW an PC4 bei knapp 2 kHz 
Rechtecksignal -3 .. -4 V je nach Belastung. Diese habe ich über einen 
10k Trimmer an Vo des Displays gelegt, den R nach Vcc und die Verbindung 
nach GND weggelassen. Ich  bin jetzt sehr zufrieden.

Bevor anderweitig Fragen oder Zweifel kommen, wegen der nur 2 kHz. Das 
läuft über Interrupt, und bremst sonst die Bauteilerkennung zunehmend 
aus.

von misser (Gast)


Lesenswert?

Vielen Danke Markus ! Das ist sehr interessant ...
 How about UJT : I think there are 2 important caracts to show with ( 
R_bb= 100 ohm to 20kohm, and n= 10% to 90% ) and the pinout E,B1 and B2 
..
 How about darlington : it's possible to show  h_FE=----  instead of : 
h_FE=0 to mean that's too high ( 800 to 80000 ) !!
 Thanks.

von Markus F. (5volt) Benutzerseite


Lesenswert?

> How about darlington : it's possible to show  h_FE=----  instead of :
> h_FE=0 to mean that's too high ( 800 to 80000 ) !!

The hFE is not too high.
The Problem while measuring the hFE is that most darlingtons (for 
example BD675) habe internal resistors from base to emitter. At the 
BD675, this resistor is only 8.0 kOhms.
The tester has a resistor of 470kOhms to measure the hFE.
So there will only be 0.084 volts at the base. But the darlington starts 
switching at above 1 volt...
With the 470k resistor, almost no darlington will reach the conducting 
state.
For this test, a much lower resistor is needed. For example 5 kOhms. 
That would allow 1mA of base current.
But then comes another problem: The BD675 (just an example) has an hFE 
of about 750. So, 1mA of base current would result in 750mA of collector 
current.
Of course, the I/O pin of an AVR cannot deliver this current. For this, 
external power transistord would be needed.
Also, a much stronger power supply is necessary for this. A normal 9v 
battery can not deliver 0.75 amperes.
And there are darlingtons with an eve higher hFE. So the tester should 
be capable of delivering about 3 amps.
And I don't think it would be good if something wents wrong and the 
tester puts 3 amps through a little SMD transistor...

I would say: Be happy if the pin assignment, the type (NPN/PNP) and the 
base-emitter-voltage is measured, and test the hfe manually, if 
necessary.

von misser (Gast)


Lesenswert?

==> Markus ;
    Thanks for your fine project , and for your explanation.
    I would say also : I'm happy with you and with your replies ,
 I'm happy with such formidable transistortester ...

von Blackbird (Gast)


Angehängte Dateien:

Lesenswert?

AVR-Studio 4 mit einem AVR-Programmer AVR-ISP (nach AN910) kann mit den 
Fuse-Bytes dieses Projektes nichts anfangen. Ich habe mir nach 
Datenblatt die im Anhang gezeigten Fuse-Bits gesetzt und geschrieben, 
jedoch der ATMega8 kann dann nicht programmiert werden.
Kann mir bitte einer mal sagen, ob diese Fuse-Settings im AVR-Studio 
richtig sind?

Blackbird

von Hubert G. (hubertg)


Lesenswert?

Du solltest dir eine neue Version des AVR-Studio herunterladen.
Es gehört ein Haken bei SPI Enable, die anderen Haken gehören weg. Der 
Rest passt.

von Michael L. (michaelx)


Angehängte Dateien:

Lesenswert?

So, hier ist mein Nachbau zur Begutachtung ...

Basisversion von Markus mit folgenden Erweiterungen:
- Versorgung über Batterie oder Steckernetzteil
- negative Hilfsspannung für LCD über Rechecksignal aus PC4

Es stehen auch fertige Eagle-Dateien zur Nachnutzung bereit.

Falls Interesse besteht, werde ich die Erweiterungen auf der 
Projektseite dokumentieren, und Markus zu überreden versuchen, die 
notwendigen Ergänzungen in seinen Code zu übernehmen. Diese sollten mit 
der bisherigen Schaltung kompatibel sein, so das es nicht notwendig 
wäre, mehrere Versionen zu pflegen.

von Benedikt K. (benedikt)


Lesenswert?

@Michael L.
Schöner Aufbau.
Könntest du eine Foto von innen machen?
Mich würde interessieren, wie du das LCD befestigt hast.

von Esko (Gast)


Lesenswert?

Und mich interessiert, wo du die Grabber her hast und was diese kosten.

von Michael L. (michaelx)


Lesenswert?

=> Benedikt
Foto geht im Moment nicht, ich kann es nachreichen, dauert aber noch ein 
paar Tage. ;) Das LCD habe ich ganz einfach seitlich mit Heißkleber von 
innen an die Oberschale geklebt (ein gängiges SD10).

=> Esko
Die Grabber sind Art-Nr. 830 265 (0,75€) von Pollin. Eigentlich hatte 
ich ja kleinere (830 263 für 0,50€) gestellt, aber die auf dem Bild 
geliefert bekommen. :(

von Benedikt K. (benedikt)


Lesenswert?

Michael L. schrieb:

> Die Grabber sind Art-Nr. 830 265 (0,75€) von Pollin. Eigentlich hatte
> ich ja kleinere (830 263 für 0,50€) gestellt, aber die auf dem Bild
> geliefert bekommen. :(

Die Teile sind Preis/Leistungsmäßig wirklich gut (also mechanisch 
durchaus brauchbar). Allerdings kam es mir so vor, als wenn das Metall 
schon leicht oxidiert wäre, denn manchmal bekomme ich mit denen erst 
nach etwas Wackeln/Schieben des Klemmhackens einen 100%igen Kontakt.

von misser (Gast)


Lesenswert?

hello ,
  I have suggestion about how to show components on lcd ...
that means:  _ space , * number , ? letter , < icon of diode , h 
ohm/khom
1)bipolar (and darlington):
 1rst line :  PNP___RS_hFE=***       16 caract
 2nd  line :  ?_?_?_U=*****V_<       16 caract ?=B C E , U=vBE (must be 
tested wiht 680ohm ); RS if shunt resistor BE  ;  < internal diode
   example
2) NEMOS/PEMOS-NDMOS/PDMOS-NJFET/PJFET/
 1rst line :  NEMOS_RDS=****h_       16 caract
 2nd  line :  ?_?_?_U=*****V_<       16 caract ?= G D S, U=Vto
3)Diode (single /2/parallel..)
 1rst line :  *DIODE_ID=*.*mA_       16 caract  ID=forward current
 2nd  line :  ?_?_?_U=*****V_<       16 caract ?= A K    U=Ut
4)THYRISTOR/TRIAC
 1rst line :  THYRISTOR_______       16 caract
 2nd  line :  ?_?_?___________       16 caract ?= A K G 1(MT1) 2(MT)
5)UJT
 1rst line :  UJT___RBB=****h_       16 caract
 2nd  line :  ?_?_?_n=****%___       16 caract ?= E 1(B1) 2(B2)
6)RESISTANCE from 0 ohm to 999 kilohm
 1rst line :  RESISTANCE_SHORT       16 caract  SHORT when R<50ohm
 2nd  line :  ?_?_?_R=******h_       16 caract ?=X or *
So the pinouts are always on the left of the second line: 1 then 2 then 
3
what do you say ?

von misser (Gast)


Lesenswert?

Hi Markus,
  The project works well especially when you add Uf=vBE ,so thank you 
very much .
  But the tester cannot detect the transistor BU2508DF (it's NPN with 
internal diode between colector and emiter , and shunt resistor between 
base and emiter); so the tester shows this transistor as "Doppeldiode 
CC"?

von misser (Gast)


Lesenswert?

Hi Markus,
 Das Projekt funktioniert gut, vor allem, wenn Sie hinzugefügt Uf = VBE, 
so Vielen Dank, dass Sie sehr viel.
   Aber die Tester nicht erkennen kann der Transistor BU2508DF (es ist 
mit NPN interne Diode zwischen Kollektor und Emitter und 
Shunt-Widerstand zwischen Basis und Emitter), so dass die Tester zeigt 
dies Transistor als "Doppeldiode CC "?

von Markus F. (5volt) Benutzerseite


Lesenswert?

=> misser:
Your way of showing the components in the LCD is also a good 
possibility.
Someone else here wrote something similar. Perhaps I will try it soon.

And the reason for that the BU2508DF couldn't be tested is simple:
This transistor has a 33 ohm resistor from base to emitter.
This resistor creates a voltage divider with the tester's 680 ohm 
resistor. So, there are only 0.23 volts at the base. Not enough to 
switch the transistor.
Those transistors unfortunately couldn't be tested with this transistor 
tester.
With three additional resistors in the tester, this would be possible.
They could be 125 ohms. This would cause 40 milliamperes of current, the 
maximum an AVR I/O pin can deliver continuosly.
At the BU2508DF, this would mean 1.04 volts of base voltage, which is 
enough to switch the transistor.
But then there is a risk of damaging very sensitive parts (for example 
low current LEDs) with those 40mA.
So I think is's better to keep the two resistors (680 ohms and 
470kOhms). This works for most components. And the about 7.5mA of 
current the 680 ohm resistor allows can hardly damage any component, I 
think.

P.S.: You can also simply write in English. Most people here can read 
and write English. You don't have to write everything in English and 
German...

von misser (Gast)


Lesenswert?

==> Markus,
   Thanks very much for your replies .
   I have tested many semiconductors and the tester gives good results.
   But today when I tested a BU508DF (transistor NPN with internal diode 
protection between emitter and collector) , the tester showed:
   PNP B=2;C=1;E=3
   hFE=70 -I>- Uf=761m  ( -I>- the protection diode)
   In fact it's NPN not PNP , and B=1 C=2 E=3 not B=2;C=1;E=3 ?

von Fred R. (seek51)


Angehängte Dateien:

Lesenswert?

Hallo zuasammen.

Leider kann ich meine Schaltung nicht aktivieren. Habe mal den Plan 
angehängt.
Wenn ich auf den Schalter taste, dann lässt Q2 keine Spannung durch :-((

Woran kann das liegen ?

von Bernhard M. (boregard)


Lesenswert?

R8 ist falsch angeschlossen, der gehört an die Basis des Transistors, 
nicht an den Emitter...

von Richard (Gast)


Lesenswert?

Hallo,

kann es sein, dass man den AT-mega8 lieber nicht in der Schaltung 
programmieren sollte (mit den 680 Ohm Widerständen)?

Habe eine ISP Schnitstelle eingelötet (Miso,Mosi,SCK,Reset) und den µC 
mehrmals Programmiert, aber jetzt regt sich nichts mehr.

Mein AVR910 Programmierer kann nicht mehr auf den Kontroller zugreifen. 
Andere µC´s kann ich auch nicht mehr Programmieren. Eine Verbindung 
zwischen PC und dem Programmiergerät besteht.

von Benedikt K. (benedikt)


Lesenswert?

Richard schrieb:
> kann es sein, dass man den AT-mega8 lieber nicht in der Schaltung
> programmieren sollte (mit den 680 Ohm Widerständen)?

Jeder einigermaßen ordentliche Programmer hat mit 680 Ohm Widerständen 
keine Probleme.
Von daher dürfte es eigentlich keine Probleme geben, außer bei 
irgendwelchen direkt am LPT mit Serienwiderständen Programmern.

von misser (Gast)


Angehängte Dateien:

Lesenswert?

hello;
   Your transistor tester can test "OPTOCOUPLER" !!!!
   The tester cannot define the pinout of optocoupler, but it can help 
us if the optocoupler is good or bad.
   1st test: between pin1 and pin2 to test the diode(led).
   2nd test: pin1 of optocoupler to lead 1 of tester
             pin2 with pin3 together to lead 2 of tester
             pin4 of optocoupler to lead 3 of tester.
       *IF OPTOCOUPLER IS GOOD : the tester will detect it as NPN with 
Ut is the forward voltage of the diode (led); 1= the anode of diode(led) 
2=the cathode of diode(led) and the emitter of transistor(receiver) 
3=the colector of transistor.
        *IF OPTOCOUPLER IS BAD : the tester will detect it as resistance 
or as faulty device.

von misser (Gast)


Angehängte Dateien:

Lesenswert?

Here is the pinout of optocouplers.......

von Markus F. (5volt) Benutzerseite


Lesenswert?

Yes, this really works!
But the hFE of most optocouplers is very low. Usually it is between 0.1 
and 6, so it couldn't be measured well.
But it works for a simple test (is the optocoupler working or not...)

von Alexander S. (esko) Benutzerseite


Lesenswert?

Vielleicht kann man solche Tips in einer Art Betriebsanleitung 
zusammenfassen.

von Alexander S. (agentbsik)


Lesenswert?

Ich wollte mal Fragen, ob jemand schon die Messung der Gatekapazität 
eingebaut hat und bereit wäre diese zu veröffentlichen.

Habe den ganzen Code auf ein 20x4 Display ( Betrieben mit 3xLi.ion Akkus 
+ Stepdownwandler +Summer +Einzelzellenüberwachung) umgeschrieben, 
weshalb nun etwas mehr Platz auf dem Display vorhanden ist.


Gruß Alex

von Fritz (Gast)


Angehängte Dateien:

Lesenswert?

Echt super Projekt; ich habe mir auch einen nachgebaut. Er funktioniert 
echt super, er hat bis jetzt alle von mir getesteten Transistoren 
richtig erkannt.
Danke an den Ersteller

Gruß Fritz

von misser (Gast)


Angehängte Dateien:

Lesenswert?

Hello,
     After many tests with the transistortester ,I found that the tester
gives good results for many pieces.
     But for some other devices the tester dos'nt give the pin 
assignment correctly : so that evry time we have changed the leads ,the 
tester gives another pin assignment !! for example: transistor+diode 
like BU508DF ,triac MAC97A6 , jfet , mosfet...

von Markus F. (5volt) Benutzerseite


Lesenswert?

=> misser:
Thanks for your good description about the error with the transistors 
with internal diodes.
But I wrote the explanation for this some posts before:
The BU508 has a low resistance between base and emitter (I didnÄt find a 
value in the datasheets, but I think ist is below 100 ohms).
Because of this resistor, the BU508 can't be switched by the 680 ohm 
resistor. So,it will always be detected as 2 diodes, or as a broken 
part.
I'm sorry, but with the existing hardware there is no way to solve this 
problem.

If there is a high (or infinite) restistance between base and emitter, 
the pin assignment is detected correctly. I tested it with a BD675 
darlington. This transistor has an internal diode (collector to emitter) 
and an 8,12kOhm resistor from base to emitter. The pin assignment was 
detected correctly in all 6 possibilities.

I know that drain and source of JFETs are often detected incorrectly 
(drain=source and source=drain). But somewhere I red that drain and 
source of JFETs are (almost) equal, so it ist impossible to detect them.
I also know the detection of triacs doesn't always work. But I had only 
relatively large triacs (BT136 and BT139) for testing. I thought they 
just need to much gate current.
The MAC97A is a small triac with just 5mA of gate current. But the 
problem is that there are many ways to switch a triac. That needs some 
more testing. After getting some small triacs I will try to solve this 
problem...

But the detection of MOSFETs (enhancement and depletion mode) worked 
fine in all my attempts. Could you please say the type of MOSFET that 
caused errors?

von Markus F. (5volt) Benutzerseite


Angehängte Dateien:

Lesenswert?

Ich habe jetzt mal die Messung der Gate-Kapazität mit eingebaut.
Der Messbereich ist 0...655nF mit 0,01nF Auflösung.
Allerdings werden nur Mosfets bis ca. 120nF zuverlässig erkannt, darüber 
wird er (fälschlicherweise) als NPN-Transistor erkannt, da die 
Gate-Ladezeit zu hoch wird.
120nF haben aber allenfalls richtig dicke IGBTs (die in der 
"Brick-Bauform", also INT-A-PAK o.ä.), mit meist über 1000V und deutich 
über 200A Belastbarkeit. Solche Monster werden eben nicht mehr 
zuverlässig erkannt...

Die Genauigkeit ist allerdings nicht besonders hoch (vielleicht +/- 
10%).
Durch Abstimmung der Berechnungsfaktoren (Defines oben im Code) auf den 
verwendeten AVR und die verwendeten Widerstände kann die Genauigkeit 
aber verbessert werden.
Dazu einen MOSFET mit geringer Gate-Kapazität anschließen. Von Gate nach 
Source wird noch ein präziser Kondensator mit ca. 100nF geschaltet.
Nun muss ein Messwert von etwas über 100nF angezeigt werden. Wenn nicht, 
kann es an den Defines richtig justiert werden.

Ich stelle dier Version erstmal nur hier rein. Wenn ihr sie so gut 
findet, werde ich sie auch in die "offizielle" Version übernehmen und 
den Artikel entsprechend ändern.

von sensationell (Gast)


Lesenswert?

Ein riesen Respekt an Markus für seine sensationelle Arbeit!
Habe die hier oben angehängte .hex auf meinem Aufbau geflasht (Mega 8) 
und die Gate Kapazität wird erstaunlich genau (auch mit Dummy Kapazität) 
gemessen. Getestet habe ich sämtliche IRF Typen. Bin begeistert!

Lg,

Thomas

von misser (Gast)


Lesenswert?

==>Markus ;
   Thanks very much for your replies and for the new soft ...
   How about transistor+diode:
    ** I've tested BD679 (darlington+diode) and the tester gives good 
result .
    ** BU508DF is a transistor+diode(between C and E) but this device 
has'nt shunt resistor btween B and E , so this transistor can switched 
easily . ( otherwise : BU2508DF has shunt resistor between B and E wich 
lets this device can't be switched ).
    How about resistor: it is't possible to show resistor value from 1 
ohm (instead of 160 ohm)  to about 900 kohm or 1 megohm ?
thanks.

von Hubert G. (hubertg)


Lesenswert?

Ich habe mir gestern die neue Version geladen und bin weiterhin 
begeistert.
Beim Vergleich von zwei Geräten, aufgebaut mit 20% Widerständen, nichts 
ausgemessen, unterscheiden sich die angezeigten Werte nur minimal.

Nochmals vielen Dank an Markus das er dieses klasse Projekt hier herein 
gestellt hat.

Hubert

von Alexander S. (esko) Benutzerseite


Lesenswert?

Hubert G. schrieb:
> aufgebaut mit 20% Widerständen
Gibts solche tatsächlich oder ist das eine Spezialanfertigung?

Auf Vorrat kaufe ich mir nur noch 1%, weil die paar Cent/100Stück 
wirklich irrelevant sind.

von Hubert G. (hubertg)


Lesenswert?

@Alexander Schmidt
Die Widerstände haben einen silbernen Toleranzring, sind also 10%.
Ich habe aber tatsächlich noch etliche Widerstände ohne Toleranzring 
herumliegen.

von Markus F. (5volt) Benutzerseite


Lesenswert?

Es gibt mal wieder was neues...
Die Messung der Gate-Kapazität ist jetzt auch in der "offiziellen" 
Version und ich habe das Funktionsprinzip auch im Artikel beschrieben.

Und der Messbereich der Widerstandsmessung wurde nach unten hin 
erweitert.
Nun können Widerstände ab 5 Ohm gemessen werden. Vorher waren es min. 
165 Ohm.
Die obere Grenze von 910kOhm ist so geblieben. Vielleicht versuche ich 
auch noch mal, die zu erhöhen.
Die Erhöhung wäre ja kein Problem, aber danach muss man wieder alles 
testen, ob es dadurch zu Fehlerkennungen kommt. Das mache ich aber 
demnächst mal.

Und die Messung der Dioden-Durchlassspannung wurde auch verbessert. Ich 
habe nämlich vorher nicht berücksichtigt, dass an einem auf "low" 
gelegten AVR-Pin nicht ganz 0V anliegen. Mit dem 680-Ohm-Widerstand 
gegen Plus steigt die Spannung auf immerhin 100mV, was für einen 
beträchtlichen Messfehler sorgt.
Jetzt wird die Spannung am Low-Pin eben auch gemessen und von der 
Spannung am Pin, der über 680 Ohm auf Plus gelegt wird abgezogen. Damit 
ist dieser Fehler kompensiert.
Diese Änderung war für die Widerstandsmessung übrigens auch wíchtig.
Ich habe dann auch noch mal mit vielen verschiedenen Widersränden die 
Widerstandsmessung getestet.
Links steht der wert, den der Transistortester ermittelt hat, Daneben 
(in Klammern) der mit einem Multimeter gemessene Wert:

9 (10) Ohm
11 (12) Ohm
17 (18) Ohm
21 (21,5) Ohm
38 (39) Ohm
97 (98,5) Ohm
215 (218) Ohm
657 (667) Ohm
978 (994) Ohm
2632 (2672) Ohm
4274 (4338) Ohm
5399 (5517) Ohm
9860 (9947) Ohm
11968 (12069) Ohm
15497 (15330) Ohm
18121 (18126) Ohm

19,1k (19,9k) Ohm
20,6k (21,6k) Ohm
31,8k (32,6k) Ohm
37,7k (38,6k) Ohm
45,8k (46,5k) Ohm
78,2k (79,1k) Ohm
97,6k (98,9k) Ohm
195,9k (197,7k) Ohm
463,6k (467,9k) Ohm
694,1k (705,9k) Ohm

Fast im gesamten Messbereich ist die Genauigkeit besser als +/- 5%, 
häufig sogar besser als +/- 2%.
Damit ist die Widerstands-Messfunktion natürlich kein Ersatz für ein 
gutes Multimeter. Dafür war sie aber auch gar nicht gedacht...
Um mal schnell einen Widerstand ungefähr zu bestimmen, ist sie aber 
recht praktisch, finde ich.

von Alexander S. (agentbsik)


Lesenswert?

Hallo Markus,

ich habe das Problem, dass mir der Tester ab und zu anstatt eines 
Mos-E-Fet einen Mos-D-Fet anzeigt.  Dieser Fehler tritt auf, wenn ich 
Pin 1 an Gate, Pin2 an Source und Pin3 an Drain habe. Wenn ich diese 
Belegung ändere, dann zeigt mir das Gerät wieder alles korrekt an. Wie 
kann das sein?

Außerdem besteht das Problem, dass er mir ab und zu einen Widerstand 
(z.B 190k) an Stelle eines Transistors oder einer Diode anzeigt.

Habe mein Layout schon mehrmals angeschaut (Lochraster), aber keinen 
Fehler finden können. Wenn ich die Funktion der Widerstandsmessung 
ausdokumentiere, dann läuft die Geschichte gut (das Problem mit dem 
Mos-E und Mos-D Fet besteht dennoch).


Gruß Alex

von Markus F. (5volt) Benutzerseite


Lesenswert?

=> Alexander Sewergin:
Hast du auch die neue Version der Firmware, die ich gestern auf die 
Artikel-Seite hochgeladen habe?
Mit der würde es mich ziemlich wundern, wenn eine Diode als Widerstand 
erkannt wird. Da werden Widerstände nämlich in beide Richtungen 
getestet, und nur wenn die Ergebnisse un unter 10% nach oben oder unten 
abweichen wird es als "Widerstand" akzeptiert.
Auch mit einer sehr starken Diode (1600V/35A Brückengleichrichter) 
konnte ich keine Probleme feststellen. Wenn man einen Widerstand 
parallel zu der Diode legt, passiert über ca. 30kOhm gar nichts. Von 
etwa 200 Ohm bis 30kOhm wird es als "2 Dioden antiparallel" erkannt, 
unter ca. 200 Ohm als Widerstand (weil die an der Diode anfallende 
Spannung nicht mehr reicht, um sie zum leiten zu bringen). Einen 
Widerstand von 190kOhm hat der Tester da aber nie angezeigt

Das Problem, dass ein Mos-E-Fet als Mos-D-Fet erkannt wird tritt auf, 
wenn man einen Widerstand von unter 33kOhm von Drain nach Source legt. 
Dann passiert es unabhängig von der Belegung.
Mit welchem Mosfet-Typen hattest du denn die Probleme. Ich konnte es mit 
IRF540, IRFIZ44N und IRFD024 nämlich nicht feststellen.
Nur mit einem Elko von einigen µF oder einem Widerstand von unter 33kOhm 
von Drain nach Source konnte ich das Problem feststellen.

Hast du auch die Flussmittelreste vom Löten zwischen den Test-Pins 
entfernt? Ich vermute nämlich mal, dass es daran liegt. Flussmittel ist 
nämlich auch ein wenig leitfähig, möglicherweise stark genug um zu den 
genannten Problemen zu führen.

von Michael L. (michaelx)


Angehängte Dateien:

Lesenswert?

Hallo allerseits,

ich habe mal meine Erweiterung der Software für LCD mit erweitertem 
Temperaturbereich (negative Kontrastspannung) in Markus aktuelle Version 
eingebaut.

Alles weitere in der Schaltung bzw. in meinem alten Beitrag:
Beitrag "Re: Transistortester mit AVR"

@ Markus F.
Kannst du evtl. mal über die Änderung drüberschauen? In meiner ersten 
Version hatte ich vor den zeitkritischen Stellen noch nicht den 
Interrupt vorrübergehend abgeschaltet. Zwar hatte es wohl kaum 
Auswirkungen, aber ist sicher schon so. Ich hoffe, jetzt alle und v.a. 
die richtigen Stellen gefunden zu haben.

Falls jemand die Version nachgebaut und verifiziert hat, könnte man die 
Erweiterung ja im Artikel übernehmen.

von Markus F. (5volt) Benutzerseite


Lesenswert?

=> Michael L.:
Der Code sieht eigentlich ganz gut aus. Was mir daran aber nicht so 
gefällt, sind die vielen AND- und OR-Befehle für den WAVE_PIN.
Damit bekommt man das Problem, dass das Programm nicht mehr in einen 
ATMega48 passt. Für die Mega48-Version könnte man diese Funktion 
natürlich rausnehmen.
Das würde aber für einen riesigen Salat von #ifdef-Blöcken sorgen, oder 
man macht gleich eine eigene CheckPins-Funktion für den Mega48. So 
richtig optimal ist das aber beides nicht. Und ehe man eine extra 
CheckPins-Funktion macht, kann man auch gleich wieder eine komplett 
eigene Version der Firmware für den Mega48 machen.
So hatte ich es anfangs, und es macht wenig Spaß eine Änderung (z.B. 
Bugs beheben oder neue Features) in beide Firmware-Versionen zu machen 
und danach auch beide wieder komplett zu testen. Deshalb habe ich dann 
alles in eine Version gepackt, und durch simple Änderung des 
Zielcontrollers (über den Compiler-Parameter) wird die richtige Firmware 
für den jeweiligen Controller erstellt. Das finde ich ganz praktisch so 
und ich würde auch nur ungern wieder zu der vorherigen, umständlichen 
Methode wechseln.

Bitte verstehe das nicht falsch, aber ein kompletter Test der Firmware 
(mit ca. 100 Bauteilen und verschiedener Pin-Reihenfolge) dauert auch so 
schon über eine Stunde. Und so einen Test mache ich nach jeder größeren 
Änderung des Programms, und dabei treten meist auch einige Bugs auf, die 
dann behoben werden. Diese Korrektur könnte aber wieder an anderer 
Stelle einen Fehler geschaffen haben (ist mir schon mehrmals passiert), 
also kann man dann schon wieder fast von vorne anfangen zu testen...
Mit der jetzigen Firmware reichen dann zumindest in der Mega48-Version 
ein paar Stichproben aus, da beide Firmware-Versionen fast identisch 
sind, die Mega8-Version unterstützt nur mehr Bauteile.
Eine extra Version für den Mega48 würde aber bei jeder Änderung auch da 
einen kompletten Test erfordern, und das macht wenig Spaß.

Lange Rede, kurzer Sinn: Ich würde das mit der Ladungspumpe an PC4 
anders lösen:
In dem Timer-Interrupt wird jedes Mal PC4 auf Ausgang gesetzt.
In einer globalen Variable wird der vorherige Status des Pins (high oder 
low) gespeichert, dann wird der jeweils andere Status gesetzt und die 
globale Variable entsprechend geändert.
So etwa:
1
uint8_t WaveVal; //Global; vorheriger Pin-Status
2
3
ISR(TIMER0_OVF_vect)
4
{
5
  DDRC |= (1<<WAVE_PIN);
6
  if(WaveVal == 1) {
7
    PORTC &= ~(1<<WAVE_PIN);
8
    WaveVal = 0;
9
  } else {
10
    PORTC |= (1<<WAVE_PIN);
11
    WaveVal = 1;
12
  }
13
}

Natürlich ist diese Lösung weniger elegant, dafür aber recht kompakt und 
(wenn es nicht mehr reinpasst) auch mit ein paar wenigen #ifdef's aus 
der Mega48-Version zu entfernen.
Der große Nachteil ist eben, dass kein sauberer Rechteck mit genau 50% 
Tastverhältnis an PC4 rauskommt. DDRC wird ja in der CheckPins-Funktion 
auch regelmäßig umgeschaltet. Und da der Interrupt mehr Zyklen braucht, 
wird die Genauigkeit bei zeitkritischen Messungen (z.B. Gate-Kapazität) 
schlechter. (Da der Interrupt aber konstant viele Zyklen verbraucht, 
kann ma diesen Fehler aber auch herausrechnen.)
Funktionieren würde es so vermutlich schon. Die meiste Zeit verbringt 
der Tester eh mit Warten oder ADCs auslesen, und währenddessen wird das 
DDR von der CheckPins-Funktion nicht umgeschaltet. Genug Spannung für 
das LCD dürfte an der Ladungspumpe auf jeden Fall entstehen.

=> Alle:
Übrigens bin ich gerade dabei, eine Testfunktion für Kondensatoren 
einzubauen. Der Messbereich wird wohl so 0,2nF bis 1000µF. Ganz fertig 
ist es aber noch nicht...

von misser (Gast)


Lesenswert?

Thanx Markus,
  The tester(I'm using atmega8) is better now with resistor from 10 ohm
to 900 kohm and with measuring of capacity of mosfet....
  How about UJT ?
  Can the tester measure condenser up to 1000 µF soon ?

von Thomas R. (tinman) Benutzerseite


Lesenswert?

Markus F. schrieb:
>
> => Alle:
> Übrigens bin ich gerade dabei, eine Testfunktion für Kondensatoren
> einzubauen. Der Messbereich wird wohl so 0,2nF bis 1000µF. Ganz fertig
> ist es aber noch nicht...

suuper idee, baust du eine vorschaltung um wie hier ?

[Beitrag "LC-METER / LC-Messgerät ATmega8 Assembler"]

[Beitrag "LC-Messgerät"]

[Beitrag "Re: LC-Meter Frage"]

oder was eigenes ?

von Markus F. (5volt) Benutzerseite


Angehängte Dateien:

Lesenswert?

> suuper idee, baust du eine vorschaltung um wie hier ?
Nein, das geht mit der jetzigen Hardware...
Der Kondensator wird über einen Widerstand (680 Ohm oder 470kOhm) 
langsam geladen. Dabei wird die Zeit gemessen, bis der Portpin, an dem 
der Kondensator hängt, von 0 aus 1 schaltet. Das passiert bei recht 
genau 3,6V. Daraus kässt sich dann die Kapazität berechnen.
Wirklich exakt ist die Messung damit natürlich nicht, aber um die 
Kapazität ungefähr zu bestimmen reicht es aus.


Die Kapatitätsmessung ist jetzt soweit fertig und funktioniert auch ganz 
gut. In dem anhehängten Archiv sind wie üblich der Sourcecode und auch 
die hex- und eep-Dateien für den AVR.
Die Kapazitätsmessung ist aber nur in der ATMega8-Version enthalten.
Der Messbereich ist, wie schon angekündigt, ca. 0,2nF bis 1000µF. Noch 
größere Kondensatoren werden als 2 antiparallele Dioden erkannt. Meiner 
Meinung nach ist der Messbereich bis 1000µF aber ausreichend.
Und bitte Kondensatoren vor dem Anschließen an den Tester entladen, beim 
Anschließen geladener Kondensatoren könnte der Controller beschädigt 
werden...

von Michael L. (michaelx)


Lesenswert?

=>  Markus F.:

Ich werde mir noch mal Gedanken machen, wie man den Code durch 
geschickte Verwendung eines Macros für den Mega48 kastrieren kann, ohne 
den Code zu unübersichtlich zu machen.

Aber evtl. kannst du die Version für den Mega48 eh recht bald beerdigen, 
wenn immer mehr Features hinzukommen, die nur beim Mega8 drin sind. Denn 
für die 5-10 Cent, die man mit dem Mega48 spart, lohnt sich zum Einen 
der Aufwand deinerseits wohl kaum noch, eine Minimalversion zu 
generieren. Und auf der anderen Seite wird wohl bald der Speicher auf 
auf dem Mega48 ausgehen, wenn noch weitere Anpassungen und Korrekturen 
gemacht werden müssen.

von Hubert G. (hubertg)


Angehängte Dateien:

Lesenswert?

Habe gerade getestet, bei mir zeigt die Kondensatormessung immer um etwa 
10% zu viel an. Spielt da vielleicht schon die Toleranz in der 
Oszillatorfrequenz eine Rolle?
Ansonst bin ich mehr als nur zufrieden mit dem Gerät. Es fehlt nur das 
wie im Anhang.

Hubert

von Thomas R. (tinman) Benutzerseite


Lesenswert?

warum auch immer, funktioniert bei mir nciht, mal wird als "2 
antiparallele Dioden" erkannt, mal "kein, unbekann ....", aber nie als 
C.

Getestet in jeder test pin kombination mit 100nf styroflex, 2.2µF, 
3.3µF, 10µF <- elkos. Jedesmal natürlich C abgeklemmt, kurzgeschlossen.

Habe deine hex/eep genommen und reinprogged, hardware ist 1:1 die deine 
version (ext. versorgung 5V)

Transistor test und wiederstand test funktionieren ohne probleme.

von misser (Gast)


Lesenswert?

Fantastic !!!! Wounderfuuuuuuul !!!
   The tester can really measure  condenser from 220 pF to up  1000 µF:
   I have just tested 220pF; 330pF; 1nF; 10nF; 100nF; 1µF; 10µF; 100µF 
(about 2 seconds) and 1000µF (about 7 seconds)...
   1)It isn't possible to be until about 10 mF=10000µF ?(but this needs 
many seconds to show the result I think)
   2)The tester cannot until now detect the transistor with internal 
diode like BU508D correctly (or simply a transistor BC550+diode between 
C and E)
  Thanksssssss very very much Markus .....

von Thomas R. (tinman) Benutzerseite


Lesenswert?

Thomas R. schrieb:
> warum auch immer, funktioniert bei mir nciht, mal wird als "2
> antiparallele Dioden" erkannt, mal "kein, unbekann ....", aber nie als
> C.
>
> Getestet in jeder test pin kombination mit 100nf styroflex, 2.2µF,
> 3.3µF, 10µF <- elkos. Jedesmal natürlich C abgeklemmt, kurzgeschlossen.
>
> Habe deine hex/eep genommen und reinprogged, hardware ist 1:1 die deine
> version (ext. versorgung 5V)
>
> Transistor test und wiederstand test funktionieren ohne probleme.

Hat sich erledigt, der atmega8 den ich drin hatte reagiert jetzt gar 
nicht mehr. Ein neues programmier und schon geht, C test natürlich auch.

von Markus F. (5volt) Benutzerseite


Lesenswert?

=> misser:
> The tester cannot until now detect the transistor with internal
> diode like BU508D correctly (or simply a transistor BC550+diode between
> C and E)
I tried a BC547C (npn) and BC558C (pnp) with a diode between C and E, 
and it worked as it should work (the tester shows NPN/PNP with a hFE of 
~500, ~700mV Uf, and the correct pin assignment, and it also shows the 
diode icon to signalize that the transistor has an internal diode).

For detection of bigger capacitors the detection of diodes must be 
changed, because capacitors above 1000µF are currently being detected as 
two antiparallel diodes.
Perhaps I'll try this soon...

von misser (Gast)


Lesenswert?

Thank u Markus;
 1) The tester now is working well,it tested transistor with internal 
diode with success as you said;
  The problem was in the three resistors 680 ohm and 470 kohm:
it should be selected with great precision by using good ohmeter or with
better tolerance 1% instead of 5% or 10%.
 2) The tester needs to add the support of UJT .
 3) The tester can measure now resistor from 5 ohm to up to 10 Megohm...
 4) The tester can measur condenser from 0.20 nF ( 10 pF resolution) to 
1000 µF ( 10 nF resolution) ....we hope that can be increased to 5000 µF 
at least .
Thanx.

von Serge S. (sergebs)


Lesenswert?

"it should be selected with great precision by using good ohmeter"
If the problem was REALLY in resistors precision, it is no good to 
select from 5% resistors because they will change real resistance during 
time, by temperature change etc... You can simply get new (not used) 
resistor, measure it, then solder it's pins and measure again (warm and 
cold). You see all.:(

PS: I'm from Russia, so my English poor enough and with errors. But my 
German is simply hirrific.

von Klaus (Gast)


Angehängte Dateien:

Lesenswert?

@Markus F.
Danke für das Projekt.

Habe den Tester mit automatischer Abschaltung aufgebaut. Allerdings 
schaltet er schon nach ca. 2Sekunden ab. Ich benötige Hilfe!

von micha (Gast)


Lesenswert?

Sicher, dass die richtige Taktquelle (intern 1 Mhz) ausgewählt ist?

von Blackbird (Gast)


Lesenswert?

Ein sehr schönes Projekt.
Mit der R- und C-Messung ist es bei mir DAS Universalgerät geworden.
Danke an Markus F.

Als Anregung für die mechanische Gestaltung der Meßspitzen:
Eine einzelne spitze Nadel (Meßspitze) in die ein Hand und eine doppelte 
(federnd wie eine Pinzette) in die andere Hand - und schon kann man 
recht fix nacheinander SMDs messen, die in wilder Ordnung auf dem Tisch 
liegen.

(Den Einschalter als Mini-Taste an der einzelnen Nadel befestigen.)


Blackbird

von misser (Gast)


Lesenswert?

Hello,
==> Serge : As you said, the resistors may change -relatively- by time, 
temperature,soldering,its tolerance...So the solution is to make 
"autocalibration" in the soft ...
==> Markus : The tester cannot detect the "antiparallel diode" correctly 
so it shows this device sometimes as Resistor and othertimes as 
capacity(this problem was in the version of 27-08-2009 and 13-09-2009 , 
not in the version 03-07-2009 )... ((( I've used 2 diodes 1N4148,1N4007; 
and 2 led. )))
Thanx.

von Markus F. (5volt) Benutzerseite


Angehängte Dateien:

Lesenswert?

Yes, there were some problems with 2 antiparallel diodes, especially 
with LEDs. Sometimes they were detected as a resistor.

I've fixed this now, and I also extended the capacity range to about 
10mF. So now it is from 0.2nF to 10mF. This should really be enough. 
Above ~5000µF, the reading starts getting inaccurate; at 10mF I had 
about 10% error.

If the voltage of two antiparallel diodes is above 3.6 volts, it may 
still be detected as a resistor. But I don't think this causes problems.

von Winfried (Gast)


Lesenswert?

Hallo,

klasse projekt! Ich werde es nachbauen. Als Idee: per serieller 
Schnittstelle oder USB verschiedene Messwerte an einen PC weiterleiten, 
der die Daten in einem Diagramm darstellt. So kann die Messkurve von 
Bauteilen dargestellt werden, um bei Bedarf mehr Details zu einem 
Bauteil zu bekommen. Ich habe mir den code noch nicht angeschaut ob das 
einfach einzubauen ist, oder ob die Methode der Bautailermittlung einen 
ganz anderen weg geht.

von misser (Gast)


Lesenswert?

Thank you Markus,
 Just I hav tested some devices:
*** Condenser : OK OK 220p,10n,680n,10µ,470µ,1000µ(7 
s),2200µ(12s),4700µ(22s).....error generaly 2% to 10%.
*** 2LED anti : OK OK ....antiparallel
*** 2 diodes anti : the problem is still be !!! so with 2diodes of 
1N4148
or 1N4007 the tester shows "Widerstand R= 120 ohm " even we change the 
pin assignement.
  However, we shoud say that the tester is better now and very useful...
Thanksssssssssssss...

von Serge S. (sergebs)


Lesenswert?

After  misser (Gast) message about resistor's precision I want to ask 
the honourable author Markus F.(5volt):
Is it really need to use resistors 680 ohm and 470 kohm  with
better tolerance 1% instead of 5% or not?
And what about 78L05? It's precision is 5% or 10%.
I've modified original scheme for use LP2951 - it's plenty nice for 
precise voltage adjustment and plus very low-drop voltage - less 0.6 V 
(typically < 0.2 V in this device) (78L05 - near 1.5 V). Better for 
battery use.
Plus Shutdown(Power-off) & Alarm inside.

von misser (Gast)


Lesenswert?

Widerstand==Resistor:
  I have another method to measure resistor ,
  rv1= voltage through 680 ohm ( antiparallel diode or resistor)
  rv2= voltage through 470 kilohm ( antiparallel diode or resistor)
  Because resistor has linear graph U=f(I) and diode hasn't:
** For resistor from 1 ohm to 6 kilohm we use 680 ohm so that
  (0.0049v<rv1*4.9<4.6v or 1<rv1<921) AND (rv2*4.9<0.065v or rv2<13)
   R=rv1/((1023-rv1)/680)
** For resistor from 6 kilohm to 11 megohm we use 470 kilohm so that:
  (rv1>920 or rv1*4.9>4.5v) AND (12<rv2<981 or 0.060v<rv2*4.9<4.8v)
   R=rv2/((1023-rv2)/680) .......if it is a diode will be not detected.

**** I have done a simple experience with  2diodes antiparallel 1N4148:
 =>through 680 ohm we read rv1=0.713v
    if it is a resistor , it must have value of R=113 ohm
 =>through 470 kilohm we read rv2=0.396v
    if it is a resistor , it must have value of R=40.4 kilohm.
Finally the condition to measure a resistor and not a diode or 
antiparallel diode is:
( (rv1<921)&&(rv2<13) ) || ( (rv1>920) && (12<rv2) && (rv2<981) )
What do you say Markus?

von Martin S. (Gast)


Lesenswert?

mal ne Frage zur Messung von Kondensatoren:

Elkos sind doch gepolt, werden die dann nicht manchmal falschrum 
aufgeladen?

von Serge S. (sergebs)


Lesenswert?

To misser (Gast):
I can't write "autocalibration" in the soft. It need minimum one 
parameter with reliable accuracy. So without hardware modification it is 
impossible, I  think. The simplest way in my opinion - accurately set 
Vcc and use it with precise resistors as Vref source. But is it really 
necessary? Stable soft better, because measurements are rough, for 
precise we must set emitter current for bipolar transistors, threshold 
current for MOSFET, etc. Trying to do this - makes monster device, not 
this little, simple, but very useful tester (thanks to Markus F.).

To Markus F. (5volt):
It seems to me, that your 10% error - negligible, electrolites have 
accuracy +- 10% in the best case, usually - -+20%. May be "error" in 
fact - real capacitance in it's tolerance.

von Markus F. (5volt) Benutzerseite


Lesenswert?

=> misser: Yes, this is a good idea. But the limit for measurung wirh 
the 680 ohm resistor is about 18k ohms, and not 6k ohms. I will try 
this...

=> Serge S.: I have tested two 3300µF capacitors. Each of them reads 
about 3400µF, a multimeter says ~3500µF. But both capacitors in parallel 
read only ~6200µF, but it should be 6800µF (2*3400µF). This error can't 
be caused by capactior tolerances.


Und: Ja, Elkos werden malchmal falsch herum geladen. Allerdings nur mit 
maximal 5V, was bei den kurzen Testzeiten eigentlich kein Problem 
darstellt. Nur bei längerer Falschpolung mit 5V bzw. Falschpolung mit 
höheren Spannungen wird die isolierende Oxidschicht im Elko deutlich 
geschädigt bis zerstört.

von Paul Baumann (Gast)


Lesenswert?

Ich schau ihn an, den Mega 8:
Mensch, ob der das alles macht?!

Gar nicht lang gewartet
und das "Studio" gestartet...

Den EEPROM nur nicht vergessen,
denn sonst kann er ja nicht messen.

Widerstände, Kondensatoren,
die ich einst unterm Tisch verloren

Transistoren, Leuchtdioden
grüne und auch noch die roten

alle, alle sind gemessen,
hab' ich denn noch was vergessen?

Hab Dank für den Transistortester,
Markus F. , Du bist mein Bester!

von Serge S. (sergebs)


Lesenswert?

==> Markus F.
Simplest minds about the phenomenon
3400µF + 3400µF = 6200µF

1. Capacitors were not fully discharged before measurement of their sum.

2. Self-polarization of capacitors. I've seen in my practice of 
TV-repair:
capacitor was discharged by my own hands, but less as 1 minute after it 
had about 0.5 V without any external charge. But it was on high-voltage 
capacitor (about 100 V). For low voltages I haven't such experience. But 
may be the case...

3. Self-training: I've seen as some seconds after turning voltage on 
electrolytic C had very big leakage current, then it decreases to 
acceptable but big value in less than 30 sec. Bad quality, long time of 
storage and so on... Very long time of storage (about 5-6 years) in my 
case. But after about hour under voltage (with current limiting 
resistor) it became to look good enough. After this I made special panel 
for capacitor's training/testing.
Big leakage seems as big capacitance in simple testers. After little 
training leakage became less and it seems as capacitance decrease.

Hint: multimeter's measurement of C is very rough. I have MY-68 - 
multimeter and VC-6013 capacitance-meter. The difference in 20% of C to 
any side between them is usual thing for electrolytes.
Don't worry about this. Your device is TESTER, not a precise bridge for 
sertification measurements and with $1,000,000 price.

Some about other things...
I have a question: Is it really need to use resistors 680 ohm and 470 
kohm  with tolerance 1% instead of 5% or not? What is your opinion as 
author?

von Michael_W (Gast)


Lesenswert?

Hallo an alle Nachbauer mit Reichelt-LCD-Displays:

Mit längeren Wartezeiten zwischen den Befehlen in LCD-Init() 
funktioniert die Initialisierung. Ich bin mal recht großzügig gewesen 
und gönne mir die Zeit. Beim Start fällt es nicht auf.

Damit läuft es auch mit dem LCD "Displaytech 162" (zweizeilig, je 16 
Zeilen) von www.Reichelt.de zuverlässig. Es wurden nur die Zeiten 
zwischen den Befehlen geändert und nicht die Befehle.

Wichtig scheint die Wartezeit zu ANfang zu sein. Hier gebe ich 50 ms.
1
void lcd_init(void)
2
{
3
    _delay_ms(50);    
4
  LCD_DDR = LCD_DDR | 0x0F | (1<<LCD_RS) | (1<<LCD_EN1);   // Port auf Ausgang schalten
5
  // muss 3mal hintereinander gesendet werden zur Initialisierung
6
  _delay_ms(15);
7
  LCD_PORT = (LCD_PORT & 0xF0 & ~(1<<LCD_RS)) | 0x03;
8
  lcd_enable();
9
10
  _delay_ms(5);
11
  lcd_enable();
12
13
  _delay_ms(5);
14
  lcd_enable();
15
  _delay_ms(5);
16
  LCD_PORT = (LCD_PORT & 0xF0 & ~(1<<LCD_RS)) | 0x02;
17
  _delay_ms(5);
18
  lcd_enable();
19
  _delay_ms(5);
20
21
  // 4Bit / 2 Zeilen / 5x7
22
  lcd_command(CMD_SetIFOptions | 0x08);
23
24
  // Display ein / Cursor aus / kein Blinken
25
  lcd_command(CMD_SetDisplayAndCursor | 0x04);
26
27
  // inkrement / kein Scrollen    
28
  lcd_command(CMD_SetEntryMode | 0x02);  
29
  lcd_clear();
30
}

von Layouter (Gast)


Lesenswert?

Read busy flag?

von Wigbert P. (wigbert) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hi,
Ich bedanke mich bei Markus F. (5volt) für sein tolles Projekt
und bei Armin Diehl (ardiehl) für die Board-Vorarbeit.

Ich hab den TT(eigentlich ist es schon ein Bauteiltester)
auch mal als ein Wochenendprojekt nachgebaut.
Na ja, eigentlich ist das Bestücken in paar Minuten getan.

Ich hab das Board aus
Beitrag "Re: Transistortester mit AVR"
nachgeroutet und meinem LCD ohne Hintergrundbeleuchtung angepasst.
Die Leiterbahnen sind etwas dünner, Masseflächen wurden nachgearbeitet
und es sind 4 Drahtbrücken auf dem Board. Gleichrichter fand ein 
Rundgleichricher Anwendung.

Und weil ich immer etwas zurückgebe, wenn ich was kostenlos bekomme,
anbei mal meine Versionsunterlagen. Darin befindet u.a eine Exelliste
mit den Reichelt-Bauteil-Bestellnummern und eine PDF mit den
Fusebit-Haken für die Ponyprog. Fans.

Wigbert

von Michael_W (Gast)


Lesenswert?

Auch ich möchte mich für das kleine "Ding", das mich richtig begeistert, 
bei Markus F. bedanken. Ich habe es aufgebaut und es lief so ziemlich 
auf Anhieb.
Bei uns im Amateurfunk-Ortsverband Soest (www.qsl.net/dk0ia), wollen wir 
es einige Mal nachbauen. Ein praktisches kleines Messgerät, dass ich 
nicht mehr missen möchte!
Michael, DL1DMW

von Rudolf (Gast)


Lesenswert?

Hi !

Erstaml möchte auch ich mich für die Schaltung bedanken :-)

Zumal möchte ich eine Frage die oben gestellt wurde aufgreifen:

Some about other things...
I have a question: Is it really need to use resistors 680 ohm and 470
kohm  with tolerance 1% instead of 5% or not? What is your opinion as
author?

Meinugen ?

Rudolf

von Alexander S. (esko) Benutzerseite


Lesenswert?

Rudolf schrieb:
> Zumal möchte ich eine Frage die oben gestellt wurde aufgreifen:
>
> I have a question: Is it really need to use resistors 680 ohm and 470
> kohm  with tolerance 1% instead of 5% or not?

Mal ganz ehrlich, ein 1% Widerstand kostet als Einzelstück ganze 8Cent 
bei Reichelt (Ein 5% übrigens 10Cent). Pro Tester macht der 
Preisunterschied nur einige Cents aus.

Sich darüber den Kopf zu zerbrechen macht nur bei großen Stückzahlen 
Sinn, weswegen man bei allen die diese Frage stellen, glauben muss sie 
wollen den Tester ab kupfern und professionell in großen Zahlen an den 
Mann bringen, wobei sie noch nicht mal in der Lage sind so eine einfache 
Frage selbst zu beantworten.

von Werner B. (werner-b)


Lesenswert?

Ich glaube weniger dass es hier um die 2 ¢ Preisunterschied geht, als um 
den Aufwand die 1% Widerstände zu besorgen. 5%er hat jeder in der 
Grabbelkiste, 1% nicht unbeding.

Just my 2 ¢

Werner

von Rudolf (Gast)


Lesenswert?

Hi !

Wenn ich etwas nachbaue, dann sicher nur für mich.

Hab aber verstanden was du meinst :-)

Rudolf

von Wigbert P. (wigbert) Benutzerseite


Lesenswert?

Hi,
ich glaub , ein geschickter Displayeinkauf ist gerade bei
Mehrfachnachbau interessant.
Mein Display gab es mal auf der HAM-Radio für 1 Euro und der
Kontrast ist Zufriedenstellend, denke ich.
Für den Reset R hab ich auch ein Bastelkisten R verwendet,
ansonsten alle anderen 1% Typen.

Wigbert

von Serge S. (sergebs)


Lesenswert?

Oh.
In my case - 2 problems:
1. It's simply very difficult to find precise resistors, and delivery 
costs ~$10. May be I don't know where to look for in my counry.
2. I would know the durability of identification algorithm vs resistors 
tolerance/precision. But it's very difficult for calculations, I know.
And so I would know more simple thing: precision of 680 ohm & 470 kohm 
in author's realization for simplest orientation - what MUST work 
stable.
The Vcc and internal Vref precision are interesting too.

Such many questions... :)

von misser (Gast)


Lesenswert?

Hi,
  I woud like to add 4 custom characters ,here are :
  // DiodeIcon[] EEEM={4,31,31,14,14,4,31,4,0}
  AnodeIcon[] EEMEM={0,17,25,29,31,29,25,17,1}
  CathodeIcon[] EEMEM={0,17,19,23,31,23,19,17,2}
  CapaIcon[] EEMEM={40,10,10,10,27,10,10,10,3}
  ResiIcon[] EEMEM={0,0,0,31,17,31,0,0,4}
so I have added in the main.c these lines :
  "      LCDLoadCustomChar();
  lcd_eep_string(DiodeIcon);
  lcd_eep_string(AnodeIcon);
  lcd_eep_string(CathodeIcon);
  lcd_eep_string(ResiIcon);
  lcd_eep_string(CapaIcon);      "
I have also added in the lcd-routines.h :
 "       #define LCD_CHAR_DIODE  0
         #define LCD_CHAR_ANODE  1
         #define LCD_CHAR_CATHODE  2
         #define LCD_CHAR_CAPA  3
         #define LCD_CHAR_RESI  4         "
But when I recall these characters by using -for example- :
 "       SetCursor(2,15);
         lcd_data(LCD_CHAR_ANODE);   "     the lcd dosn't show the 
character correctly only the first custom character diodeIcon is shown 
exactly....  So where is the error ???

von Markus F. (5volt) Benutzerseite


Angehängte Dateien:

Lesenswert?

Die Toleranz der Widerstände ist nicht so entscheidend. Über 10% sollte 
sie aber nicht sein.
Am besten sind natürlich 1%-Widerstände, damit wird eben die 
Messgenauigkeit am besten. Widerstände mit unter 1% Toleranz sind aber 
auch wieder übertrieben, weil die Genauigkeit der ADCs selbst nicht so 
hoch ist.

In English:
The tolerance of the resistors is not really important, but it sholdn't 
be above 10%.
Of course, with less resistor tolerance the accurary of the measurements 
becomes better. But there is no need for using resistors with tolerances 
below 1%, because the ADCs of the µC also have internal tolerances.
1% resistors are best, bur 5% or 10% also work without problems, only 
the accuracy becomes a bit worse.

=> misser:
You have to load the custom char first.
For the diode icon, this is done in the following lines:
1
LCDLoadCustomChar();  //Custom-Zeichen
2
lcd_eep_string(DiodeIcon); //Diodensymbol in LCD laden
You must also do this for all your other custom chars.

=> Alle:
Ich habe jetzt (in dem angehängten Archiv) auch das Problem gelöst, dass 
zwei antiparallele Dioden als Widerstand erkannt werden. Sogar wenn ich 
zu den 2 Dioden noch einen 22k-Widerstand parallel schalte, wird das 
Ganze noch als Diode erkannt.
Ich habe sogar mal zwei 1600V/35A Brückengleichrichter antiparallel 
geschaltet (+ an - und - an +; AC-Anschlüsse unbeschaltet). Auch das 
wurde noch als "2 Dioden antiparallel" erkannt...


I solved the problem that 2 antiparallel diodes were detected as a 
resistor. It even worked when I put a 22k resistor parallel to the two 
diodes. This was still detected as 2 antiparallel diodes.

von misser (Gast)


Lesenswert?

Thank you very much Markus ,
  Thank u for your replies and for your fantastic project....
  The tester works very well now :
  No problem now with antiparallel diodes or condensers or resistors 
....
  We hope to add the support for UJT if possible next...
Thanks thanks Markus...

von Alexander S. (esko) Benutzerseite


Lesenswert?

Serge S. schrieb:
> 1. It's simply very difficult to find precise resistors, and delivery
> costs ~$10. May be I don't know where to look for in my counry.

Ok availability  is really a point.
May I ask you where you live?


Werner B. schrieb:
> Ich glaube weniger dass es hier um die 2 ¢ Preisunterschied geht, als um
> den Aufwand die 1% Widerstände zu besorgen. 5%er hat jeder in der
> Grabbelkiste, 1% nicht unbeding.

Hmm. Bei mir ist es genau umgekehrt, ich kaufe fast nur noch 1%, weil 
bei den kleinen Mengen der Preisunterschied egal ist und so die 
Lagerhaltung einfacher ist.

von mkburkersdorf (Gast)


Lesenswert?

Hallo Markus,
Ich habe deine Version vom 03.10.09 getestet.
Die Widerstände werden nicht mehr richtig erkannt.
1k zB als antiparallele Diode
440Ohm kein Bauelement.

Version vom 22.09.09 läuft

Gruß Manfred

von Andreas J. (antibyte)


Angehängte Dateien:

Lesenswert?

Hab mir diesen tollen Tester auch mal aufgebaut.
Vielen Dank an Markus für dieses geniale Projekt.

Gruß
Andreas

von Serge S. (sergebs)


Lesenswert?

Markus F. (5volt)
>But there is no need for using resistors with tolerances
>below 1%, because the ADCs of the µC also have internal tolerances.
Yes, exactly! And this internal tolerance is -10%..+5% for ATmega8 (by 
datasheet: 2.3 V...2.56 V...2.7 V min nominal max - internal Vref).
Just this fact slightly surprises me: from one side - precise resistors, 
but from other side - NOT so precise ADC. It will be consequent to use 
the same criteria for both parts. We can use 5% resistors and internal 
Vref - total precision will be ~5-10%, or we can use 1% resistors and 
somewhat as TL431 as Vref source - and precision will be ~1% with a 
little additional regulation.
I mean voltage and current measurement precision, not the resulting 
calculated values of hFE, R, C and so on...

Alexander Schmidt (esko)
>May I ask you where you live?
No problem. Russian Federation, Vladimir - normal district center. The 
main difficulty in fact is that I didn't find around such boys as me: 
programmer in work hours and radio-amateur as hobby at home. I suppose 
I'll find this precise resistors some time, but by some reasons (see 
upper) I don't want to run and jump around this point.

von Arne Rossius (Gast)


Angehängte Dateien:

Lesenswert?

Moin,

ich habe den Tester auch mal nachgebaut. Funktioniert mit der Software 
von 2009-10-03 ganz hervorragend, die Probleme von  mkburkersdorf kann 
ich nicht nachvollziehen, ich habe mit 1k und 500 Ohm probiert, beide 
werden korrekt erkannt. Ich habe uebrigens in meinem Aufbau 
5%-Widerstaende verwendet, scheint keine Probleme zu machen. Die 
Genauigkeit hat mich sogar sehr ueberrascht, sowohl bei Widerstaenden 
als auch bei Kondensatoren habe ich selten mehr als 5% Abweichung -- und 
wenn doch, dann kann es ja genausogut am Bauelement selbst liegen.

Ein kleines Problem mit der Software habe ich allerdings noch entdeckt: 
2 Dioden in Reihe werden nicht erkannt, wenn die Durchlassspannung 
beider zusammen groesser als 5V ist, da dann die dritte "grosse" Diode 
nicht mehr erkannt wird. Ausserdem war die Wartezeit nach dem 
Einschalten fuer mein LCD nicht gross genug, ich habe sie von 15 auf 30 
ms erhoeht, damit klappt es zuverlaessig. Die Software im Anhang behebt 
die Probleme, direkt in die "richtige" Version kann es leider nicht 
uebernommen werden, da ich noch einiges mehr geaendert habe (alle 
Meldungen auf englisch, Strings im Flash statt im EEPROM -- der Mega8 
hat ja genug Platz ;-), Anzeige der Durchlassspannungen bei Doppel-, 
antiparallelen [z.B. kleine Z-Dioden!] und in Reihe geschalteten Dioden, 
alle Mega48-Programmteile entfernt und die Umlaute in den Kommentaren 
sind mir leider auch kaputtgegangen).

Und was mir gerade noch so einfiel: waere es eigentlich moeglich, auch 
Potis zu erkennen? Mit Anzeige des Gesamtwiderstands und der 
Schleiferstellung (in Prozent) waere das IMHO noch eine ganz praktische 
Erweiterung.


Gruss,
Arne

PS: Fotos von meinem Aufbau sind hier zu sehen: 
http://elektronik-kompendium.de/public/arnerossius/temp/trtest/
Als LCD habe ich Pollin 120386 verwendet, das Gehaeuse ist ein "SP 6062 
GR" von Reichelt.

von Ludwig D. (user111)


Lesenswert?

[erster Beitrag, habt Nachsicht mit einem Noob]

Hallo zusammen,

die ZIP-Pakete -von hier- datiert auf 22.09.09, leider auch 03.10.09 
liefen (bei mir) nicht richtig.

Insbesondere ist keine Erkennung von R mehr moeglich. Ähnliche Meldung 
kam von mkburkersdorf (Gast)  (Nachricht oben vom 4.10.09).


Warum dieser Beitrag?

Ich habe ein "Best of" funktionierender Teile aus dem Paket vom 27.08.09 
(insbesondere der Routine CheckPins), ergänzt um den Kapazitätstest vom 
3.10.09 gebaut.

Ferner habe ich eine Schleife vorangestellt, um mit Taster D7 nach der 
1. Erkennung (CheckPins) auf die Bauteilerkennung Einfluß zu nehmen (*** 
Codeschnipsel unten).

Kondensatoren werden erst im zweiten Anlauf erkannt, oder wenn C gleich 
vorgegeben wird (es ist ja ohnehin ein Entladevorgang und eine Denkpause 
geboten).

Eine Vollautomatik muß ja gar nicht sein...

Besteht Interesse, würde ich das ZIP als Diskussionsgrundlage, zur 
freien Verwendung einstellen.  Läuft bei mir mit Standardbauteilen und 
meinem batterielosen Aufbau und 5V Details unten.  FETs ungetestet.

Danke nochmal an den Autor!
---------------------------------------------
paar Notizen z. Originalcode: Der Kondensatortest schaltet immer das 
Flag 'Kondensator erkannt'. Problematisch?

Die IF Abfrage vor dem Kondensatortest enthielt auskommentierte Teile. 
Ich habe sie komplett entfernt und erwarte vom User die Vorgabe C. Er 
muß ja eh entladen, sprich  Nachdenken.

Die Länge von outval hat sich von 4 auf 6 erhöht. Warum?  wie sieht es 
mit Buffer-Overflows aus, wie mit numerischen Overflows generell?

---------------------------------------------
Mein Hardwareaufbau:  Pollin AVR Board + Zusatzplatine (LCD) + 
Breadboard (dadurch z.Z. lange Kabel)

D7 ueber Taster an Ground. Zusaetzlich RESET Taster fuer Hardwarereset 
(löscht in meiner Variante die Vorselektierung des Bauteils).

AREF über 100nF an GND (nötig, bei Pollin unbeschaltet). Alle Jumper 
gezogen.

Problem : korrekte Beschaltung von PC5 (AD Wander ADC5) unklar.  Ich 
habe direkt meine Versorgungsspannung 5V dran, ist das richtig?

Beobachtung: die Genauigkeit laesst stark zu wuenschen uebrig. Trotz 5% 
Widerstaenden bekomme ich bei 470 Kiloohm hohe Abweichungen (ein 470K 
Metallschichtwiderstand wird zwischen 411k bis 430 k gelabelt).

Bei grossen Elkos (allerdings teils recht alt / ausgelötet) bekomme ich 
große Abweichungen.  Elko 250 uF wird als 360 uF erkannt, teils 
wesentlich dramatischer (Faktor 3 = Messfehler oder Defekt?). Bei 
Folienkondensatoren und kleinen Keramik-Kondensatoren ist die 
Genauigkeit hoch.

Eine nutzbare Kalibriermöglichkeit vermisse ich noch, die beiden Werte 
CAPACITY_FACTOR sagen mir wenig...  Wäre bei R auch nicht schlecht :=)

------------ (***) Codeschnipsel : als Attachment.

von Ludwig D. (user111)


Angehängte Dateien:

Lesenswert?

siehe Beitrag eins weiter

von Alexander S. (esko) Benutzerseite


Lesenswert?

Ludwig D. schrieb:
> Problem : korrekte Beschaltung von PC5 (AD Wander ADC5) unklar.  Ich
> habe direkt meine Versorgungsspannung 5V dran, ist das richtig?

Laut Schaltplan muss da ein Spannungsteiler von 10k/3,3k dran, der von 
vor dem 7805 Regler kommt. Der wird dort sein, um die Batteriespannung 
zu messen.


> Trotz 5% Widerstaenden bekomme ich bei 470 Kiloohm hohe Abweichungen
> (ein 470K Metallschichtwiderstand wird zwischen 411k bis 430 k gelabelt).

Das sollte in der Tat nicht so sein. Haben deine Widerstände die 
richtigen Werte? Schonmal mit einem Multimeter gegengetestet?


> Bei grossen Elkos (allerdings teils recht alt / ausgelötet) bekomme ich
> große Abweichungen.  Elko 250 uF wird als 360 uF erkannt, teils
> wesentlich dramatischer (Faktor 3 = Messfehler oder Defekt?). Bei
> Folienkondensatoren und kleinen Keramik-Kondensatoren ist die
> Genauigkeit hoch.

Das wird an den Elkos liegen. Diese sind extrem ungenau, oft schon neu 
mit -10%, +20% angegeben. Außerdem verlieren Elkos über die Zeit stark 
an Kapazität. Bei defekten gealterten Schaltungen sind sie meist die 
erste Fehlerquelle.

Datum: 22.09.2009 18:27
Markus F. schrieb:
> Above ~5000µF, the reading starts getting inaccurate; at 10mF I had
> about 10% error.

von Ludwig D. (user111)


Lesenswert?

Ok - denke meine 10 - 35 Jahre alten Elkos kann ich zu 95% entsorgen :-)

Der Code von Arne Rossius (Gast) mit Datum 11.10.2009 funktioniert!
Klasse, daß die Werte von Z-Dioden gezeigt werden...

Da die Beinchen bei Transistoren in Arnes Fassung nicht mehr korrekt 
gezeigt werden (etwa "B=4" - wegen 3+49), hier ein Änderungsvorschlag 
(bitte gegenprüfen):
...
  //Fertig, jetzt folgt die Auswertung
  GetGateThresholdVoltage();
  lcd_clear();
//ARNE  b = 3;
//ARNE  c = 3;
  if(PartFound == PART_DIODE) {
//VORSCHLAG:
          b = 3;
          c = 3;
    if(NumOfDiodes == 1) {
      //Standard-Diode
      lcd_string("Diode: ");
...
*zu den Unterschieden zwischen Marcus F.'s u. Arne R.'s Fassung*

Ich nutze den grafischen CSDIFF für Windows, um die Unterschiede 
zwischen dem Original von Marcus F. und Arne Rossius zu sehen...

Arne Rossius Code  weicht nicht nur beim Diodentest ab (=> Code nach : 
if(PartFound == PART_DIODE) -  -  er hat auch kleine Unterschiede bei 
etlichen If-Abfragen.

ADC-Beschaltung
Beim Pollin-Evalboard mit Zusatz werden die Leitungen durch das 
Flachbandkabel sehr lang, deswegen bringt der 100nF zwischen AREF und 
GND (am Ende des Kabels) vermutlich nix. AVCC + VCC sind durchverbunden, 
müßte vermutlich L=10uH oder 47R (lt.Wiki) dazwischen. Muß entweder 
einen Zwischensockel bauen, oder alles neu auf Lochraster.

Die Versorgungsspannung v.Netz ist vermutlich nicht ausreichend stabil 
sodaß die Erkennung unzuverlässig arbeitet. Labornetzgerät hab ich 
keins, nur ne HAMA Wandwarze m.einstellbarer Voltzahl (also Trafo 
stabilisiert => und 7805 auf Pollinboard). Alles an einer Leiste, an der 
2 Schaltnetzteile + der Laptop sind.

von Arne Rossius (Gast)


Angehängte Dateien:

Lesenswert?

@Ludwig:

du hast voellig Recht, das habe ich uebersehen. Dein Aenderungsvorschlag 
erscheint mir sinnvoll, ich habe ihn jetzt bei mir eingebaut.


Gruss,
Arne

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Irgenwo im FOrum gabs auch mal ne ESR Messung der Elkos, DAS wäre noch 
der hit! :)

von Benedikt K. (benedikt)


Lesenswert?

Dürfte etwas schwer werden, wenn auch prinzipiell irgendwie machbar. 
Dazu müsste man aber vermutlich etwas mehr Strom durch den Elko jagen, 
prinzipiell könnte man es so machen:
Elko auf um die Vcc/2 laden, über einen Widerstand z.B. 25mA in den Elko 
jagen und möglichst sofort die Spannung messen, so dass der Elko keine 
Zeit hat sich zu laden. Dann das ganze in die andere Richtung.
Da man den Widerstand der den Strom liefert kennt, könnte man so einfach 
über den Spannungsteiler aus dem Widerstand und dem ESR diesen 
berechnen.
Wird nicht sonderlich genau, aber als Anhaltspunkt sollte es gehen.
Bei 100 Ohm Vorwiderstand liegt die Auflösung bei 200mOhm. Das ist nicht 
gerade gut, <50mOhm sollten es für brauchbare Messungen mindestens sein.

von Markus F. (5volt) Benutzerseite


Lesenswert?

Die ESR-Messung kann man mit dieser Hardware vermutlich fast vergessen.
Normalerweise müsste man den Elko dafür erstmal auf eine gewisse 
Spannung aufladen und dann (z.B. per Power-MOSFET) einen niederohmigen 
Widerstand an den Elko anschließen. Dann muss sofort (vielleicht 1µs 
später) über eine Sample&Hold-Schaltung die aktuelle Elkospannung 
gemessen werden. Daraus kann man dann recht genau den ESR bestimmen.
Mit den vorhandenen 680 Ohm Widerständen wird das aber nix...
Schon ein billiger Elso mit vielleicht 10µF/25V hat ja soweit ich weiß 
meist unter 1 Ohm ESR.
Größere Elkos haben sogar oft <50mOhm.

Ich werde demnächst auch mal eine neue Version reinstellen, in die ich 
einige der Verbesserungsvorschläge übernehmen werde.
Das mit der Poti-Messung ist auch eine gute Idee. Allerdings würde ein 
Poti nicht erkannt werden, wenn es ganz an einen der Anschläge gedreht 
ist.

Hat eigentlich noch jemand außer mkburkersdorf mit meiner Firmware vom 
03.10. Probleme mit der Widerstandsmessung?
Ich habe nämlich keine Probleme damit. Vielleicht liegt es ja an 
internen Toleranzen der AVRs.

von Michael L. (michaelx)


Lesenswert?

Hallo Markus,

ich hätte da noch einen Verbesserungsvorschlag, muss ich gleich mal hier 
aufschreiben, ehe ich es wieder vergesse. Bei antiparallelen Dioden wäre 
es nützlich, die beiden U_f auszugeben. Z.B. so:

D 1-2: Uf=1234mV
D 2-1: Uf=678mV

Dies wäre vor allem für die Erkennung von Z-Dioden mit kleiner Spannung, 
aber auch bei antiparallelen LED nützlich.


ESR

Eine Möglichkeit das zu messen, fehlt mir auch noch. Aber nach dem, was 
ich mir bisher zu diesem Thema angeschaut habe, lässt sich die 
ESR-Messung in den Transistortester nicht integrieren. Dafür sollte man 
eher ein ähnliches Projekt aufziehen. Um diesen Thread nicht zu 
vermüllen, habe ich dafür einen  neuen gestartet: Projekt ESR-Tester

Edit:
PS: Markus, ich habe gerade gesehen, dass du auch gerade bzgl. ESR 
gepostet hast.

von Ludwig D. (Gast)


Angehängte Dateien:

Lesenswert?

>Hat eigentlich noch jemand außer mkburkersdorf mit meiner Firmware vom
>03.10. Probleme mit der Widerstandsmessung?

meld ja ich )

Was daran liegen könnte, daß bei mir die Wiederholgenauigkeit der 
Messungen nie hoch ist (je groesser die Widerstaende, um so groesser 
werden die Schwankungen).

Es sind immer Ausreisser zwischen 1,5,10 und 20 Kiloohm dabei (820 K als 
799k)...

  Ich hab die Mittelung schon auf 50 Werte geändert, die Verdrahtung 
geändert (R 47 Ohm zwischen AVCC und VCC), sogar den ADC Sleep Mode 
eingebaut.

( wegen der Zeitabhängigkeit der Messung ist mir nicht bekannt, ob Sleep 
Mode / bzw. Interrupts bei allen Bauteilen richtige Werte liefert )

P.S.: ich hab die von mir erwaehnten Unterschiede zwischen Arne R und 
Marcus F (vom 3.10) mal ranhgehängt (2 If-Bedingungen sind mir 
aufgefallen).

von Ludwig D. (Gast)


Lesenswert?

Verbesserungsvorschlag: die Routine zur Ausgabeformatierung wird an 2 
Stellen benutzt.
 Ich habe sie in eine Unterroutine ausgelagert. Ist uebersichtlicher und 
verkleinert den Code!

..........................
DEFINITION (vor Main):
..........................

// Ausgabe-Hilfsroutine (gibt 0 zurueck wenn keine Ausgabe)!
//   1.Parameter Zeiger auf CHAR,
//   2. Parameter STRINGLAENGE,
//   3. Parameter  wie tmpval2 (Position Nachkomma)
int Lcd_Display(char outval[], uint8_t tmpval, uint8_t tmpval2) {
      if(tmpval < 3)
      {
        if(tmpval==1) {
          if( outval[0]=='0' ) return 0;

          lcd_string("0.");
          lcd_data('0');
          lcd_data(outval[0]);
        } else {
          if( (outval[0]=='0') && (outval[1]=='0') ) return 0;

          lcd_string("0.");
          lcd_data(outval[0]);
          lcd_data(outval[1]);
        }
      } else {
        for(PartReady=0;PartReady<tmpval;PartReady++) {
          if((PartReady + 2) == tmpval2) lcd_data('.');
          lcd_data(outval[PartReady]);
        }
      }
      return 1;
} // ENDE Unterroutine

//Programmbeginn
int main(void) {
...
...........................................
*Stelle A: Messung Kondensatorkapazität*
*Originalcode Marcus Okt.ab Zeile 530*
...........................................
1
...
2
  } else if(PartFound == PART_CAPACITOR) {  //Kapazit?tsmessung auch nur auf Mega8 verf?gbar
3
      lcd_eep_string(Capacitor);
4
      lcd_data(ca + 49);  //Pin-Angaben
5
      lcd_data('-');
6
      lcd_data(cb + 49);
7
  
8
      tmpval2 = 'n';
9
      // Merke: 100 ist "1"
10
      if (cv > 99999) //  ab 100000 {
11
          cv /= 1000;
12
         tmpval2 = LCD_CHAR_U;
13
      } 
14
15
      Line2();
16
      ultoa(cv, outval, 10);
17
      tmpval = strlen(outval);
18
      if ( Lcd_Display(outval, tmpval, tmpval) )
19
      {
20
        lcd_data(tmpval2);
21
        lcd_data('F');
22
        // Warnung bei Erreichen d.unteren Grenze d.Messbereichs:
23
        if (save_cv < 20) 
24
          lcd_data('*');
25
      }
26
..................................
27
*Stelle B: Messung Gatekapazität* 
28
*Originalcode Marcus Okt.ab Zeile 426*
29
..................................
30
    #ifdef UseM8  //Gatekapazit??t
31
      if(PartMode < 3) {  //Anreicherungs-MOSFET
32
        tmpval = strlen(outval2);
33
34
        tmpval2 = 2;
35
        if(tmpval>4) {
36
          tmpval = 4;  //bei Kapazit??t >100nF letze Nachkommastelle nicht mehr angeben (passt sonst nicht auf das LCD)
37
          tmpval2 = 1;
38
        }
39
40
        if ( Lcd_Display(outval2, tmpval, tmpval2) )        {    lcd_string(" C=");  //" C="
41
                lcd_data('n');
42
                                }
43
      }
44
    #endif

von Markus F. (5volt) Benutzerseite


Angehängte Dateien:

Lesenswert?

Ich habe mal versucht, das Problem mit der Widerstandsmessung zu lösen.
Ich vermute mal, dass die Widerstände aufgrund von Messungenauigkeiten 
teilweise in beide Richtungen mit einem deutlich abweichenden Wert 
erkannt wurden. Vorher war die maximale Abweichung dort 10%, bei mehr 
Abweichung wurde das Bauteil nicht mehr als Widerstand erkannt.
Ich habe das mal auf 20% erhöht und auch noch einen unnötigen Codeteil 
bei der Widerstandsbessung entfernt.

Zumindest bei mir funktioniert es so einwandfrei, ich hatte aber auch 
mit der alten Version keine Probleme.

von Hubert G. (hubertg)


Lesenswert?

Bei einem Darlingtontransistor TIP121 wird Stromverstärkung hfe0 
angezeigt. Bei einem BC516 oder vergleichbaren allerdings korrekt.
Könnte das mit der Diode zwischen CE zusammenhängen oder hat das andere 
Gründe?

von Markus F. (5volt) Benutzerseite


Angehängte Dateien:

Lesenswert?

=> Hubert G.:
Das ist einfach zu erklären. In der angehängten Grafik ist die 
Innenschaltung vom TIP121 zu sehen.
Der Widerstand R1 von 5kOhm sorgt dafür, dass der Transistor mit dem 
470k-Widerstand im Tester nicht zum Leiten gebracht werden kann. Das 
wäre aber für die hFE-Messung erforderlich.
Dank der bei solchen Transistoren praktisch immer vorhandenen internen 
Diode werden (zumindest bei etwa vergleichbaren BD675 und BD679; TIP121 
habe ich nicht) zumindest die Pins korrekt erkannt.

=> Alle:
Die Messung von Potis baue ich wohl doch nicht mehr ein.
Dafür (und auch nur dafür) wäre es nämlich nötig, dass der Tester 
mehrere Widerstände erkennen kann. Das macht dafür eine zusätzliche 
Array und eine ganze Menge zusätzlicher Überprüfungen nötig. Da der 
Flash vom ATMega8 ohnehin schon ziemlich voll ist (knapp 7kB belegt) und 
auch noch die Erkennung von UJTs rein soll, und auch noch etwas Platz 
für evtl. nötige Fehlerbehebungen frei bleiben soll werde ich dieses 
Gimmick doch nicht einbauen.

von Hubert G. (hubertg)


Lesenswert?

Danke für die Info, ich habe mir so etwas in dieser Richtung gedacht.
Die Pin werden richtig erkannt und die Diode angezeigt.
Ich bin sehr zufrieden mit diesem Gerät, danke.
Hubert

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Glückwunsch, der Transistortester hat es ins Makezine geschafft!
http://blog.makezine.com/archive/2009/10/how-to_transistor_tester.html

von Martin S. (Gast)


Angehängte Dateien:

Lesenswert?

Welche Firmware ist denn jetzt aktuell?
Im zugehörigen Artikel ist noch eine Version vom August 2009 zu finden. 
Diese habe ich auch installiert. Allerdings tauchen hier immer wieder 
fehlerbereinigte Versionen auf. Auch eine Messung von Kondensatoren ist 
enthalten.
Welche Version (inc. C-Messung) läuft denn stabil?

von Alexander S. (esko) Benutzerseite


Lesenswert?

Martin S. schrieb:
> Welche Firmware ist denn jetzt aktuell?
> Welche Version (inc. C-Messung) läuft denn stabil?

Immer die letzte von Markus F. gepostete. Zur Zeit also diese: 
Beitrag "Re: Transistortester mit AVR"

Er testet die Version vor dem posten, man fährt also recht sicher damit.

von misser (Gast)


Lesenswert?

Hi Markus,
HOW TO TEST UJT:
according to some documentation and to some experience about ujt 2N2646,
the UJT has 3 pins: Emetter = E , Base 1 = B1 , Base 2 = B2.
* between B1 and B2 there are resistor from 100 ohm to 25 kohm
    (ra==B1 && rb==B2) || (ra==B2 && rb==B1) .
* from E to B1 there is a diode 0.6v to 1.5v
     diode[0] (anode0==E && cathode0==B1)
* from E to B2 there is a diode 1v to 4.9v
     diode[1] (anode1==E && cathode1==B2)
* vEB1 < vEB2 ( doppeldiode AC )  so:

   E==anode0==anode1
   if (voltage.diode0 < voltage.diode1) {
      B1==cathode0 && B2==cathode1
      }else {
      B1==cathode1 && B2==cathode0
      }
   RBB==resistor between B1 and B2.
   vEB1==voltage between E and B1.
Is this methode enough to define UJT  and only UJT ?
thanx in advance.

von Michael Gomez (Gast)


Lesenswert?

Gentlemen,
Thank you Markus for this design.
I am very interested but most hesitant.
I know two words in german: danke & bitte.
Following the blog threads is most difficult for me.
Still I am willing to jump into the water and try it.
Do you have it in full kit form?
Danke.
Pls let me know.

von Markus F. (5volt) Benutzerseite


Lesenswert?

=> misser:
This is a good idea. I will test it when I have got some UJT's...

=> Michael Gomez:
No, I don't have a full kit...
But you cann buy the circuit board here: 
https://www.it-wns.de/themes/kategorie/detail.php?artikelid=857
The other parts should be available at most electronics stores.

von Michael Gomez (Gast)


Lesenswert?

Markus,

Chus. Danke.

I found that web page where they sell the PCBs.
Unfortunately I know 1/2 word in German and they don't seem
to offer their wares in English.
I don't even know if they accept paypal.

Seems I'll need a German speaking friend in here to help me with these 
choicesbecause I don't understnad a gesunheit.


Hummm....

von Hc Z. (mizch)


Lesenswert?

Try to feed the URL do translate.google.com or (if you're using firefox) 
install FoxLingo.  This should give you a translation, albeit not a 
fluent one.

von Alexander S. (esko) Benutzerseite


Lesenswert?

Michael Gomez schrieb:
> Unfortunately I know 1/2 word in German and they don't seem
> to offer their wares in English.
> Seems I'll need a German speaking friend in here to help me with these
> choicesbecause I don't understnad a gesunheit.

Hi Michael,
perhaps you find someone who can help you out. If you dont, contact me 
and I can buy it for you and send it to you. I also have a paypal 
account. I could also offer it to you via ebay, that would give you a 
safeness.

mit freundlichen Grüßen
(with friendly greetings)

Alexander Schmidt

von Michael Gomez (Gast)


Lesenswert?

Alexander,

Danke. Mille danke.

Thank you for your kind offer.
I will take you up on this offer.
Please tell me where to send the Euros.
Please tell me how many.

I want to build this tester and with the help of some
friends, I might get it done.

Thank you.

von Alexander S. (esko) Benutzerseite


Lesenswert?

Drop me a mail at Benutzer:Esko. Your can send me the money via 
Paypal, then I will buy it and send it to you.
Where do you come from?
Do you want to have all parts or only the pcb?
Price for the pcb is 14€ +paypal+shipping to you
Price for the kit is 27€ +paypal+shipping to you

von Michael Gomez (Gast)


Lesenswert?

Alexander,

Danke. I will go with the full kit.
I hope that includes a programmed chip.

I can send you the money directly from within paypal.

I am not sure how to use that "Benutzer:Esko" address.
Will paypal understand that? Sorry.
Is that an abrreviation for Benutzer@Esko.com  ?
Sorry. I have never used that form before.

A million thanks. I found an AVR story in Germany but they were not 
willing to buy this board for me and send it with their kit.

Thank you.
You can reach me directly at: xtalgrwr@yahoo.com

Looking forward to building that tester. Danke.

von micha (Gast)


Lesenswert?

Hi Michael!

It's a link! just click on the adress in the above post and you will see 
a valid email adress ;-)

von Alexander S. (esko) Benutzerseite


Lesenswert?

Michael Gomez schrieb:
> Danke. I will go with the full kit.
> I hope that includes a programmed chip.

It does not, but i can program it for you.


> I am not sure how to use that "Benutzer:Esko" address.
micha schrieb:
> It's a link!
Thats it.


> You can reach me directly at: xtalgrwr@yahoo.com
I sent you a mail.

von Nils ‫. (n-regen)


Lesenswert?

Hallo!
Ich habe ein Problem mit meinem Nachbau des Testers auf einer 
Streifenrasterplatine:
Sobald ich ihn an eine Batterie oder ein Netzteil anschließe, zeigt er 
einige Sekunden lang "Batterie leer" und anschließend dauerhaft 
"Timeout!" an.
Die LED leuchtet dauerhaft, geht allerdings aus, solange ich den Taster 
gedrückt halte. Ansonsten hat der Taster keine Wirkung.
Merkwürdigerweise reagiert der Atmega8 auch nicht darauf, wenn man 
seinen Pin 1 (Reset) mit Pin 7 oder 8 (+5V und GND) verbindet.
Woran könnte das alles liegen? Lässt sich abschätzen, wo ich nach dem 
Fehler suchen muss?
Falls das relevant ist: Ich habe noch ein Poti zwischen +5V und GND 
eingebaut, um den Kontrast des Displays einzustellen (der Kontrastpin 
des Displays hängt am Schleifer) und die Verbindungen zwischen (jeweils) 
den beiden VCC- und den beiden GND-Pins weggelassen, da die ja intern 
verbunden sind.

von Hannes L. (hannes)


Lesenswert?

> und die Verbindungen zwischen (jeweils)
> den beiden VCC- und den beiden GND-Pins weggelassen, da die ja intern
> verbunden sind.

Das ist Pfusch! Das solltest Du schleunigst ändern.

...

von Hc Z. (mizch)


Lesenswert?

"Timeout!" erscheint, wenn die Software zu lange einen gedrückten Taster 
erkennt.  Da der Taster an sich geht (LED geht aus, Schaltung wird 
gestartet usw.), ist etwas mit der Rückmeldung des Tasterzustands nicht 
in Ordnung.  Prüfe mal die dafür zuständige Leitung.

von misser (Gast)


Lesenswert?

Hi ,
  The tester works very well, but yesterday when I had tested a N-MOSFET
" SSS7N60 " the tester did'nt detect this device as mosfet but as 
diode!!
  So where is the problem ?
Thanx in advance....
misser.

von Arne Rossius (Gast)


Lesenswert?

Moin,

ich habe gerade noch einen Fehler in der Widerstandsmessung entdeckt. 
Widerstaende mit ca. 250k werden bei mir (nach elend langer Messung, ca. 
20s) faelschlicherweise als Kondensator mit genau 77.46uF erkannt. 
Getestet habe ich 180k, 220k, 270k und 330k, korrekt wurden davon nur 
180k und 330k angezeigt, 220k und 270k wurden wie beschrieben als 
Kondensator angezeigt, ebenso ein Poti mit 250k (Klemmen nur an den 
beiden aeusseren Anschluessen). Schliesse ich 2 Klemmen an das eine Ende 
des Widerstands (und die dritte an das andere Ende) an, dauert die 
Messung sogar doppelt so lange, das Ergebnis ist aber das gleiche.

Die letzte Version, die das Problem noch nicht hat, ist die von 
2009-09-13 (ich habe nur die Versionen von Markus F. aus diesem Thread 
ausprobiert, immer fuer den ATMega8).

Fuer alle, die meine Version verwenden: auch damit besteht das Problem.


Gruss,
Arne

von Markus F. (5volt) Benutzerseite


Lesenswert?

=> misser:
I think the mosfet needs more than 5 volts gate voltage. So it won't 
turn on with the 5 volts at the gate, and only the internal reverse 
diode is detected.

Und das Problem mit den Widerständen von ~250kOhm tritt bei mir auch 
auf. Sie werden als Kondensator mit 77,46µF erkannt.
Ich schaue mir das mal an...

von Serge S. (sergebs)


Lesenswert?

=> Markus F.:
Und das Problem mit den Widerständen von ~250kOhm tritt bei mir auch
auf.

From ~180 kOhm up to ~270 kOhm in my case. Maybe this info will help.

von Markus F. (5volt) Benutzerseite


Angehängte Dateien:

Lesenswert?

So, ich habe das Problem mit den Widerständen jetzt gelöst.
Die neue Firmware habe ich an diesen Beitrag angefügt.
Es wäre schön, wenn ein paar Leute diese Firmware mal aufspielen 
könnten, und dann über noch vorhandene Fehler, Probleme oder 
Verbesserungsvorschläge berichten.
Wenn keine weiteren Fehler mehr gefunden werden, dann würde ich diese 
Firmware demnächst mal in den Artikel zu diesem Projekt übernehmen. So 
langsam mal gehört der nämlich auch wieder aktualisiert...

von misser (Gast)


Lesenswert?

Hi Markus ,
  The tester works very well ....
  Thanks very much.
Misser.

von Michael (Gast)


Lesenswert?

Hi Markus!

I have a problem in the next line :  TransistorTestNew, main.c routine
AVRStudio shows a mistake here:
He is not defined : LCD_CHAR_U
..
  } else if(PartFound == PART_CAPACITOR) {  //Kapazit?tsmessung auch nur 
auf Mega8 verf?gbar
      lcd_eep_string(Capacitor);
      lcd_data(ca + 49);  //Pin-Angaben
      lcd_data('-');
      lcd_data(cb + 49);

      tmpval2 = 'n';
      // Merke: 100 ist "1"
      if (cv > 99999) //  ab 100000 {
          cv /= 1000;
         tmpval2 = LCD_CHAR_U;

Where is this defined?

Thanx,
Michael

von Markus F. (5volt) Benutzerseite


Lesenswert?

=> Michael:

LCD_CHAR_U is defined in lcd-routines.h, in line 30
1
#define LCD_CHAR_U  228    //µ-Zeichen

von Michael (Gast)


Lesenswert?

Markus, works very well ....
  Thank you,
Michael

von Walter J. (oberallgeier)


Lesenswert?

Danke Markus F. für dieses schöne Projekt und die saubere Dokumentation. 
Damit konnte ich den Aufbau, Teil 1 = ohne Abschaltautomatik, schnell, 
sauber und sofort funktionstüchtig erstellen. WUN DER BAR! Sehr 
interessiert hatte mich die Ein- und Ausschaltautomatik; die wollte ich 
schon immer für andere Projektchen erstellen, wusste nur nicht wie. Der 
Aufbau war einfach, die Inbetriebnahme ziemlich aufregend - testen und 
vielfach kontrollieren - und hinterher waren es nur die <7,xx V am 
Eingang. Ich dachte eigentlich, dass mein LDO 2950 gut genug wäre, das 
Ganze, inclusive Ein-/Ausschaltautomatik, mit vier Knopfzellen zu 
betreiben, aber mein Schaltungsaufbau (derzeit nur am Steckbrett mit 
sehr guter Funktion) ist unter etwa 7,5 V nicht einzuschalten. Das liegt 
nicht an der lowbatt-Meldung. Kaum hatte ich das Netzteil auf 8..9 V 
gestellt, schon lief alles wie am Schnürchen.

Kann ich die Ein- und Ausschaltautomatik so abändern, dass das 
Einschalten schon bei 6V oder weniger geht? (Tut mir leid, ich verstehe 
bei Elektronik leider kaum mehr, als dass Transistoren drei Beine und 
Dioden nur zwei haben - krass ausgedrückt). Da wäre ich um einen Rat 
dankbar.

Nochmal vielen Dank für dieses Gerätchen, macht Riesenspass es zu bauen 
und damit zu messen.

von Alexander S. (esko) Benutzerseite


Lesenswert?

Walter Ti schrieb:
> mit vier Knopfzellen zu betreiben

Was sind das für Knopfzellen und wieviel Volt hat eine?

> aber mein Schaltungsaufbau ist unter etwa 7,5 V nicht einzuschalten.

Das sollte nicht so sein.
Ist der BC557 richtig angeschlossen und ist es auch sicher kein BC547?

Kann es sein, dass die Knopfzellen den Strom nicht bereitstellen können?
Funktioniert es mit (nachgemessenen) 6V vom Netzteil?

von Walter J. (oberallgeier)


Lesenswert?

Ohhh je,

na ja - manches hatte ich richtig gemacht. Stromversorgung war ein 
Labornetzteil (etwas einfaches, EA-PS 1501) - Strombegrenzung war erst 
auf 200 mA, dann auf 1000 mA, Spannung vorsichtig hoch . . . . so ab 
5,5V angefangen.

Knopfzellen - erstmal dachte ich an die V357 - wenn die genügend Strom 
bringen, aber ich hatte mit Licht am LCD rund 110 mA gemessen . . . . 
Ohne Licht sinds um die 60 mA. Daher hatte ich das Ganze vorerst auch 
NICHT mit Knopfzellen probiert. Mein Testblock mit 4xAA - tecxus 2700Ah 
- bei rund 5,4 V hatte nichts gebracht, sprich: Tasterdrücken führte 
weder zu Stromverbrauch (am Multimeter gemessen) noch zu einem 
erhellenden Licht an der LED oder am Display.

Ja - und der "ohh-je"-Teil: ich hatte statt der BC557 und BC547 ein paar 
vorhandene (neue) BC337 und BC327 genommen. gggg - stimmt - den 
"BC557", bei mir also ein BC327, hatte ich zuerst "andersrum" drin, bis 
ich den Pfeil genauer angesehen hatte.

Es funktionierte nicht mit nachgemessenen 6V am Netzteil (DMM = Metrahit 
12S - schien mir bisher vertrauenswürdig - und ist auch nicht auf low 
bat).

Jedenfalls danke Alexander für Deine schnelle Antwort von eben.

von Alexander S. (esko) Benutzerseite


Lesenswert?

Die Minimalspannung ist:
5V + 0,4V (LDO) + 0,3V (PNP)
Es müsste also mit 6V laufen.

Evtl hast du Übergangswiderstände auf dem Steckbrett.

von Walter J. (oberallgeier)


Lesenswert?

Danke Alexander. Ich stecke das Ganze grade wieder zusammen (hatte es 
vormittags auseinandergenommen). Übergangswiderstände - soweit ich mich 
erinnern kann - waren im Steckbrett meist so - Bauteilfuss B1 - 
Kontaktleiste1 - Steckbrücke - Kontaktleiste2 - Bauteilfuss B2 - von B1 
nach B2 etwa 2 bis 4 Ω (ohne Nulljustage am DMM).

Werde es heute+morgen neu aufbauen, nachmessen und dann mich nochmal 
melden.

Danke.

von Andreas S. (aschmitt)


Lesenswert?

Hallo,

Danke erstmal Markus für das klasse Projekt. Ich hab dabei richtig Spass 
gehabt und viel dabei gelernt.

Ich bin beim Durchtesten meiner Bauteile auf einen Effekt gestossen. In 
meiner Kiste zwischen den Transistoren und Dioden waren auch ein paar 
Spannungsregler. Lasst mal einen bei euch testen, bei mir kommt dann

Bauteil unbek.
oder defekt4d

dieses "4d" kommt auch mal als "5d" oder "6d".

Im Code hab ich schon nachgeschaut aber nichts ungewöhnliches entdeckt.

Gruß Andreas

von Walter J. (oberallgeier)


Angehängte Dateien:

Lesenswert?

Hallo Alexander, hallo alle,

Walter Jo schrieb:
> ... mein Schaltungsaufbau ... unter etwa 7,5 V nicht einzuschalten...

Es geht besser. Es geht unter 6 V als Ubatt.

Vielleicht ist beim alten Aufbau ein nicht entdeckter schlechter Kontakt 
schuld gewesen, vielleicht weil heute Sonntag ist, ich kann mit 
Eingangsspannungen unter 6 V sicher schalten. ALLERDINGS NICHT, wenn das 
LCD angeschlossen ist. Also habe ich mir noch einen LP2950 genommen und 
noch einen BC337. Die Basis des 337 über 1k an den Eingang des 
originalen Spannungswandlers (D1) (= C des T3 der Originalschaltung) und 
mit 10k weiter an GND. Der Emitter des 337 direkt an GND. Der GND des 
zweiten Spannungswandlers an C des 337. Jetzt kann ich störungsfrei bis 
Ubatt,min 5,8V (Anzeige 5,79) schalten. Dabei bekomme ich am 
Controllereingang 4,93 V. Geringere Ubatt bringt einen Abfall am 
Controllereingang, höhere Ubatt bringt keine höhere Eingangsspannung am 
Controller. Die Spannungsmessungen leider nur gemessen, als der 
Testzyklus schon vorbei war.

von Markus F. (5volt) Benutzerseite


Lesenswert?

=> Andreas Schmitt

>Ich bin beim Durchtesten meiner Bauteile auf einen Effekt gestossen. In
>meiner Kiste zwischen den Transistoren und Dioden waren auch ein paar
>Spannungsregler. Lasst mal einen bei euch testen, bei mir kommt dann

>Bauteil unbek.
>oder defekt4d

>dieses "4d" kommt auch mal als "5d" oder "6d".

Wenn mehr als 2 Dioden gefunden wurden, aber nicht noch zusätzlich ein 
anderes Bauteil (z.B. Transistor), dann wird die Anzahl der Dioden 
angezeigt, in der Form:

Bauteil unbek.
oder defektyd

y ist dann die Anzahl der Dioden.

Das ist also kein Bug, sondern ein Feature...

Aber es stimmt, ein Leerzeichen zwischen dem "defekt" und der Anzahl der 
Dioden würde nicht schaden.

von Andreas S. (aschmitt)



Lesenswert?

Markus F. schrieb:

>
>>dieses "4d" kommt auch mal als "5d" oder "6d".
>
> Wenn mehr als 2 Dioden gefunden wurden, aber nicht noch zusätzlich ein
> anderes Bauteil (z.B. Transistor), dann wird die Anzahl der Dioden
> angezeigt, in der Form:
>
> Bauteil unbek.
> oder defektyd
>
> y ist dann die Anzahl der Dioden.
>
> Das ist also kein Bug, sondern ein Feature...
>
> Aber es stimmt, ein Leerzeichen zwischen dem "defekt" und der Anzahl der
> Dioden würde nicht schaden.

Muss ich mir mal genauer im Quellcode anschauen, man is ja lernfähig. 
Danke für die Info.
Ich hatte übrigens massive Probleme mit dem Starten des Testers, der 
wollte von 30 Versuchen vielleicht 1-2 mal richtig starten. Die anderen 
mal waren nur wirre Zeichen und ein blinkender Cursor zu sehen. Mit dem 
Kondensator auf Bild 2 (Kunstwerk von unten :D) war das Problem behoben 
und die Sache lief.

Vielleicht würde zu dem Leerzeichen noch statt dem "d" das Dioden-Symbol 
mehr passen.

von Walter J. (oberallgeier)


Angehängte Dateien:

Lesenswert?

Der Tester ist fertig aufgebaut für einen 9V-Block, das Display wird auf 
Abstandshaltern oberhalb der Schaltung montiert. Für die Testbuchsen und 
den 3xPfostenstecker für ein Testkabel bleibt vorne genügend Platz.

http://oberallgeier.ob.funpic.de/TrTester_totale_1824.jpg

Derzeit zweifle ich noch, dass die 9V-Akkus den Tester treiben können. 
Leider zeigen meine beiden Akkus derzeit noch stets "Batterie leer", 
aber sie hängen am Ladegerät. Und für das Bild reicht eine fliegende 
Verbindung zum Labornetzteil. Die unmotiviert verlaufende Drahtschlaufe 
nach PC5 wird später nach PC3/ADC3 verlegt - dann wird der SCL-Pinn 
frei. Aktuell will ich den Code für einen mega168 umgtricken - mal 
sehen, ob ich dann noch zusätzliche Sachen einbauen kann. ISP ist ja 
dran . . . . Mag ja sein, dass Profis die Nase über die 
Lochraster+Spaghetti-Platine rümpfen.

Frage: Funktioniert der Tester bei irgend jemandem mit einem 
handelsüblichen 9V-Akku oder sind 9V-Blocks unabdingbar?

von Hannes L. (hannes)


Lesenswert?

Abgesehen davon, dass Deine LCD-Hintergrundbeleuchtung Gift für einen 
9V-Block ist, miss mal die Spannung Deines 9V-Block-Akkus. Und dann miss 
mal die Spannung eines primären 9V-Blocks. Und dann überleg' mal, welche 
Spannungsdifferenz der 78L05 zum sauberen Regeln braucht.

...

von Walter J. (oberallgeier)


Lesenswert?

Hi Hannes,

> ... Spannung Deines 9V-Block-Akkus. Und dann miss
> mal die Spannung eines primären 9V-Blocks ...
Kennst Du den Unterschied in den Spannungen?

> ... Und dann überleg' mal, welche Spannungsdifferenz
> der 78L05 zum sauberen Regeln braucht.
Das Überlegen hilft da nix - das steht nämlich bei mir im Datenblatt. 
Aber oben habe ich ja geschrieben, dass ich einen LP2950 genommen hatte 
ggg.

> ... LCD-Hintergrundbeleuchtung Gift für einen
> 9V-Block ...
Deshalb gibts diesen hübschen, zweipoligen, separaten Stecker für die 
LED ggg. Mit dem grossen, weißen "+" auf einem Pol.

Aber irgendwie war das alles wohl nicht die Antwort auf meine Frage.

von Paul Baumann (Gast)


Lesenswert?

>Und für das Bild reicht eine fliegende Verbindung zum Labornetzteil.

Du hast 2 Möglichkeiten:
1.Stell an Deinem Labornetzteil die Spannung langsam runter und miß, bis
 wohin der Tester noch arbeitet
2. Warte, bis Dein Akku fertig geladen ist und probier's aus...

;-)
MfG Paul

von Thomas R. (tinman) Benutzerseite


Lesenswert?

Walter Jo schrieb:

> Derzeit zweifle ich noch, dass die 9V-Akkus den Tester treiben können.
> Leider zeigen meine beiden Akkus derzeit noch stets "Batterie leer",
> aber sie hängen am Ladegerät.
>
> Frage: Funktioniert der Tester bei irgend jemandem mit einem
> handelsüblichen 9V-Akku oder sind 9V-Blocks unabdingbar?

CR2032 und ein stepup reichen auch :P

Wieso schaltest du die erkennung per hard oder noch besser software (da 
du eh code umbauen möchtest) einfach aus ?

von Walter J. (oberallgeier)


Lesenswert?

Hallo Paul, hallo Thomas,

danke für die Hilfen.

@Paul. Das mit dem Labornetzteil hatte ich bereits vor dem Posting 
gemacht, siehe oben vom 22.11.2009 10:43 und 21.11.2009 17:31. Der Akku 
ist fertig geladen, aber die LCDBeleuchtung zieht wirklich sauber viel 
Strom. Daher hatte ich ja vorsorglich die Versorgung mit einem separaten 
Stecker versehen. LED abstecken - und der Tester läuft völlig korrekt. 
Da ich selten im Dunklen sitze, gehts auch so . . . .

@Thomas. Der Tester zieht vom Labornetzteil mit 9,00V und 
Strombegrenzung auf 200 mA ohne LED ca. 10 mA, mit LED ist der 
Anlaufstrom, gemessen mit DMM (Gossen Metrahit 12S), über 100 mA, im 
Normalstatus über 60 mA. Ähnliches natürlich mit dem 9V-Akku Varta NiMH, 
der 9,4V Leerlaufspannung hat. Mit Tester im Normalbetrieb, ohne LED 
bleiben am Akku 8,7 V und mit LED noch 5,7V. Dabei messe ich im Tester 
4,97V im Normalbetrieb und 4,3 V mit LED, also viel zu wenig für eine 
korrekte Messung. Seltsam ist ja, dass beim LP2950 im Datenblatt von 
National Semiconductor steht: Guaranteed 100 mA output current. Und - 
ich hatte schon eine Wartesekunde nach dem Anmeldetext und vor der 
Spannungsüberprüfung eingelegt. UND - alle Zwischenräume auf der Platine 
gesäubert . . . .

> ... CR2032 und ein stepup reichen auch
Meinst Du? Ich bin nicht sicher. Werde ich auch nicht testen.

> ... schaltest du die erkennung ... einfach aus ?
Neeee. Die sichert mir doch eine ganz wichtige Funktion. Ich finde 
dieses Feature, die Versorgungsspannung in der Anmeldephase zu 
überprüfen einfach s..gut!

von Alexander S. (esko) Benutzerseite


Lesenswert?

Walter Jo schrieb:
> beim LP2950 im Datenblatt von National Semiconductor steht: Guaranteed
> 100 mA output current.

Wenn du die Kondensatoren mit einschaltest ist der Anfangsstrom 
kurzzeitig deutlich höher. Am besten die Kondensatoren immer am Akku 
lassen.
Außerdem dürfte der begrenzende Faktor hier der Akkus sein. Dort wird 
die Spannung einbrechen.

von Walter J. (oberallgeier)


Lesenswert?

Genau der Einbruch am Akku ist es, denn am Labornetzteil mit der 
Einstellung 9V und "max 200 mA" läuft der Tester problemlos - mit dem 
gleichen LDO. Selbst ein anderer 9V-Akku brachte nix.

von Alexander S. (esko) Benutzerseite


Lesenswert?

Wenn die Akkus keine 60mA liefern können, dann sind diese kaputt oder 
waren schon immer schlecht.
Ich habe mal exemplarisch in ein 9V-Block Datenblatt geschaut und dort 
steht bei 56mA Entladestrom eine Entladedauer von 5 Stunden bis 7V.
Bei 380mA ist es immer noch eine Stunde bis 7V.

9V-Block: http://www.reichelt.de/?;ARTICLE=82135
Datenblatt: 
http://www.reichelt.de/?;ACTION=7;LA=6;OPEN=0;INDEX=0;FILENAME=D500%252FNIMH9V280.pdf;SID=32yiUUOqwQASAAAGwMYIw47f12e6a0620a1e3d4f8e2a7bdeea7f2

von Walter J. (oberallgeier)


Lesenswert?

Danke esko!

Ärgerlich - von meinen tecxus AA und AAA habe ich solche Datenblätter, 
direkt vom Hersteller natürlich. Diese Akkus können wirklich hohe Ströme 
abgeben, das weiß ich von meinen anderen Projektchen. Selbst das 
Leichtgewicht des 9V-Blocks sollte ja 100+ mA weit über eine Stunde 
liefern können. Hoffentlich ist mein Aussetzer nur temporär. Danke für 
Deine Mühe und Geduld.
http://www.tecxus.de/german/datenblatt/NIMH9V160.pdf

von Walter J. (oberallgeier)


Lesenswert?

Die Akkufrage ist positiv geklärt. Der neue tecxus 9V/280mAh lässt das 
LCD und die Bastleraugen bei der Messung hell leuchten.

Jetzt gehts an die Software. Wegen eines persönlichen Überangebotes an 
mega168 wird dieser genommen, zumal es ein gemeinsames Datenblatt von 
Atmel für ATmega48/88/168/328 gibt und die Software auch für m48 passen 
soll.
mega168:
Der Transistortest NPN und PNP geht beim mega168 recht ordentlich.
Bei Test eines Widerstandes mit 1k meldet der Tester 2 Dioden 
antiparallel, gelegentlich auch "kein, unbek..." oder tolerierbare 1003Ω 
... 1005Ω und beim Test eines 100nF meldet er entweder auf 3-2 22,60nF 
oder auf 2-1 172,33nF, 1-3 ist 20,60nF.
mega8:
Die IDENTISCHE Hardware meldet an allen Kombinationen Kapazitäten 
zwischen 99,99nF und 102,44nF und sinnvolle Widerstandswerte.

Da wird ein mühevoller Vergleich der docs notwendig :(.

von Hannes L. (hannes)


Lesenswert?

> Die Akkufrage ist positiv geklärt.

Wirklich? Und was ist hiermit?
Beitrag "Re: Transistortester mit AVR"

> Da wird ein mühevoller Vergleich der docs notwendig :(.

Es gibt bei Atmel ANs zum Thema Migration.

...

von Walter J. (oberallgeier)


Lesenswert?

Der m168er Transistortester läuft sehr schön - auch problemlos am Akku 
und der Code scheut auch nicht den m328. Damit habe ich Teil 1 meines 
Projektziels erreicht. Teil 2 sind zusätzliche Routinen, die mit dem 
Bauteiltester nichts zu tun haben.

Änderungen im code waren
a) Redigieren der Typabhängigkeit, insbesondere alle #ifdef UseM8 / 
#endif
b) Verlegen des low batt Checkpins nach PC3 - damit wird das I²C frei 
(gehört zu Teil 2).
c) wirklich notwendig war natürlich die Anpassung bei den Faktoren für 
die Kapazitätsmessung bei Kondensatoren:
1
// War :
2
// #define H_CAPACITY_FACTOR 394
3
// #define L_CAPACITY_FACTOR 283
4
//   .. und ist neu :
5
 #define H_CAPACITY_FACTOR 241
6
 #define L_CAPACITY_FACTOR 167
Wen wunderts, der Kommentar dazu im originalen Code sagt ja genug.

Die oben (28.11.2009 12:15) erwähnten, seltsamen Effekte mit Meldungen 
zu antiparallelen Dioden oder 100 unterschlagenen nanoF verschwanden, 
als ich bei Testmessungen stets den ISP-Stecker entfernte. MISO, MOSI 
und SCK gehen ja zu drei Messwiderständen. Wieder etwas, das ich 
übersehen hatte.

Hannes Lux schrieb:
> Es gibt bei Atmel ANs zum Thema Migration.
Danke Hannes für den Hinweis. Diese ANs sind nicht wirklich erhellend zu 
diesem Thema. Dass der mega8 manche Registernamen anders hat als der 
m168, ist ja den meisten hier klar und die Unterschiede der 
48/88/168/328-Reihe zur Gruppe der 48P/88P/168P/328P (AVR512) sind 
vorwiegend Energiesparfragen mit den zugehörigen Quarzen und der Hinweis 
auf einige neue Register.

Danke allen für die freundlichen Hilfen.

von MartinSt (Gast)


Lesenswert?

Erstmal: Danke für dieses tolle Projekt!

Problem:
Nach dem Update auf die neueste Firmwareversion werden bei meinem Gerät 
Kondensatoren unter etwa 1,5nF nicht mehr erkannt. Vorher konnte ich 
einen 1nF-Kondensator zuverlässig messen. Ist der Effekt durch die 
letzten Änderungen unvermeidlich oder handelt es sich um einen Bug?

von Walter J. (oberallgeier)


Lesenswert?

MartinSt schrieb:
> ...
> Nach dem Update auf die neueste Firmwareversion ...

Hast Du vielleicht auch den Controller gewechselt? Ich habe bei meinem 
Nachbau festgestellt, dass ziemliche Fehlmessungen bei den Kondensatoren 
durch die
>...Faktoren für die Kapazitätsmessung bei Kondensatoren...
beeinflusst werden, siehe mein Posting oben. Vielleicht mal im niedrigen 
Kapazitätenbereich diese "Eich"werte selbst einjustieren? DAS hatte bei 
mir eine sehr gute Genauigkeit gebracht - allerdings messe ich nix unter 
50 nF.

von Markus F. (5volt) Benutzerseite


Lesenswert?

> Nach dem Update auf die neueste Firmwareversion werden bei meinem Gerät
> Kondensatoren unter etwa 1,5nF nicht mehr erkannt

Ja, ist bei mir auch so. Ist mir vorher aber auch noch nicht 
aufgefallen.
Alles unter ca. 1,25nF wird nicht erkannt. Ich sehe mir das mal an...

von Markus F. (5volt) Benutzerseite


Angehängte Dateien:

Lesenswert?

Zu der Sache mit den Kondensatoren:
Das war tatsächlich ein Fehler in der Software. In der angehängten 
Firmware habe ich den Fehler berichtigt, jetzt werden wieder 
Kondensatoren ab ca. 0,2nF erkannt.
Ich habe diese Firmware auch wieder mit einigen Bauteilen getestet und 
es hat funktioniert, scheinbar sind durch diese Änderung auch keine 
neuen Fehler entstanden (ihr kennt das ja sicher: Man beseitigt einen 
Fehler und schafft damit zwei neue...).

Und die Dioden-Anzeige bei defekten oder nicht erkannten Bauteilen habe 
ich auch geändert. Jetzt wird es als
Bauteil unbek.
oder defekt y(Dioden-Icon)

angezeigt (y steht für die Anzahl der Dioden).

von Hubert G. (hubertg)


Lesenswert?

Das mit den Kondensatoren funktioniert einwandfrei.
Bei meinen Triac TIC226 und fast allen TIC216 zeigt er allerdings
npn b1 c2 e3   hfe0
Bei denen er TRIAC anzeigt ist die Belegung falsch G=1 A1=2 A2=3
wenn man ihn umdreht, G und A2 tauscht, bleibt die Belegung gleich.

Transistoren und FET werden soweit ich getestet habe, richtig angezeigt.

von Matthias S. (matthias-aus-hc)


Lesenswert?

Hallo.

Nachdem ich auf dieses Gerät aufmerksam geworden bin und ich demnächst 
mel wieder eine bestellung bei Pollin tätigen werde. werde ich den TT 
mal nachbauen.

Klingt auf jedenfall interessant und vielversprechend.

lg

von Matthias S. (matthias-aus-hc)


Lesenswert?

Kann man auch anstatt des LCD-Displays ein Display von einem S65 
benutzen und noch mehr Werte untereinander darstellen?

Was müsste ich dabei beachten?

lg

von Markus F. (5volt) Benutzerseite


Lesenswert?

> Bei meinen Triac TIC226 und fast allen TIC216 zeigt er allerdings
> npn b1 c2 e3   hfe0

Das ist ein normales Verhalten. Der Tester liefert einfach nicht genug 
Strom, um den Haltestrom der Triacs zu erreichen. Über die 
680Ohm-Widerstände fließen ja nur max. 7mA. Die meisten Triacs haben 
aber >10mA Haltestrom.
Daher bleiben sie nach Wegnahme der Gatespannung nicht geschaltet und 
sind für den Tester nicht von einem NPN-Transistor zu unterscheiden.

Das mit der falschen Belegung weiß ich jetzt auch nicht. Ich erinnere 
mich, das auch mal gehabt zu haben, bei einem BT136. Da habe ich mich 
aber nicht gleich darum gekümmert, und dann ist es wieder in 
Vergessenheit geraten...

Ich habe aber gerade keinen Triac da, der auch als Triac erkannt wird 
(ich habe nur ein paar BTA24 mit max. 25A Laststrom und 50mA Haltestrom 
da, die werden aber verständlicherweise nicht erkant).

Wenn ich mal wieder ein paar geeignete Triacs habe (BT136 müssten 
gehen), dann teste ich es nochmal.

von Ollz (Gast)


Lesenswert?

> Kann man auch anstatt des LCD-Displays ein Display von einem S65
> benutzen und noch mehr Werte untereinander darstellen?

Wenn du genug frei Pins findest, den Code schreiben kannst und noch 
Platz im AVR ist, dann kann man das.

Ich verwende ein überbreites (24x2) HD44780-kompatibles Display, und 
hatte daher dafür an der Hardware und vom Treibercode wenig zu ändern.

Da ich eine andere Stromversorgung und Ein-Aus-Schaltung verwende, habe 
ich noch diverse andere Änderungen in der Software.

>
> Was müsste ich dabei beachten?

Das Updates auf neue offizielle Software-Versionen Mehrarbeit machen.

Ich habe alle Display-Strings und das Display-Layout auf 24x2 umgestellt 
(und dazu ein diverse weitere Änderungen). Bei jeder neuen offiziellen 
Software-Version muss ich den Code wieder patchen.

von Stephan H. (stephan-)


Lesenswert?

Für jemanden der mit einem S65 Display noch nicht gearbeitet hat....
Vergiss es. !!
Wenn du "nur" ein Nachbauer bist, vergiss es !!
Wenn Du Ahnung hättest würdest Du die Frage nicht stllen.
Das ist ein  grafisches Display. Du mußt Dich um alles selbst kümmern.
Umrechnen der ASCI Werte, Aufbereiten der Pixel, umsetzen von 4 Bit Bus 
nach 8Bit Bus, Grafiktabelle etc.pp.
Wie gesagt, wenn Du Ahnung hättest...würdest Du nicht...
Aber so....

von Hannes L. (hannes)


Lesenswert?

Zumal ein kompatibles LCD bei Pollin für 1,95 zu haben ist...

...

von Markus F. (5volt) Benutzerseite


Lesenswert?

> Zumal ein kompatibles LCD bei Pollin für 1,95 zu haben ist...
.. welches übrigens auch ich verwendet habe (Bestellnummer 120545).
Mal davon abgesehen, dass das Display recht klein ist (was auch ein 
Vorteil sein kann) ist es nicht schlecht:
Der Kontrast ist super, der angezeigte Text ist sehr gut lesbar. Und ja, 
ich gebe es zu: Ich habe das auch hauptsächlich gekauft, weil es so 
billig ist...
Der Nachteil ist nur der Anschluss: Es ist ein Folienleiter mit 1mm 
Pitch.
Aber wenn man mit S65 Displays umgehen kann, sollte das kein Problem 
sein.

Man kann den Folienleiter auch ablöten und stattdessen Kupferlackdrähte 
anschließen. So habe ich das auch gemacht. Sieht dann ziemlich 
verbastelt aus, aber das stört mich nicht. Bei mir ist der Aufbau eh 
nicht gerade ein Design-Meisterstück (siehe Artikel zum 
Transistortester...).

von Hannes L. (hannes)


Lesenswert?

Das 120545 ist mir etwas zu klein, das habe ich zwar da, aber noch nicht 
verwendet.

Ich bezog mich eigentlich auf das Solomon mit der Bestellnummer 120546. 
Es hat (auch ohne BL) einen guten Kontrast, das rötliche BL sieht auch 
recht passabel aus, zumindest an einem netzbetriebenen Gerät 
(Akkulader). Die Pinbelegung (Nummerierung) ist zwar etwas anders, aber 
damit kann man leben.

...

von oe5gpl (Gast)


Lesenswert?

Hallo Markus,
ein Dankeschön für die Entwicklung und eine Frage: wenn ich den 
Quelltext kompiliere und in den Prozessor lade, wird die 
Stromverstärkung bei Transistoren um zwei Zehnerpotenzen zu gering 
angezeigt (statt 254 nur 2).
Kann es sein, daß sich im Programm noch ein Fehler versteckt hat?
MfG Helmut

von Freddy (Gast)


Lesenswert?

Hi Markus,
I found bug. I put BS170 transistor, than tester displays gd = 231, when 
I part was turned 180 degrees, tester displays GDS = 213.

Regards Freddy

von Thomas R. (tinman) Benutzerseite


Angehängte Dateien:

Lesenswert?

Freddy schrieb:
> Hi Markus,
> I found bug. I put BS170 transistor, than tester displays gd = 231, when
> I part was turned 180 degrees, tester displays GDS = 213.
>
> Regards Freddy

check the picture - BS170 have the Gate in the middle, so it is pin 2, 
if you turn around the pin 2 is still in the middle ... like 231, 213

von Freddy (Gast)


Lesenswert?

BS170 it's my mistake, but when I put BF245 transistor, than tester 
displays gd = 231, when part was turned 180 degrees, tester displays GDS 
= 321.

von Walter J. (oberallgeier)


Lesenswert?

Ollz schrieb:
> .... Bei jeder neuen offiziellen
> Software-Version muss ich den Code wieder patchen.

Meine Testerversion betreibe ich auf einem mega168, auch mal nem 328er - 
mit zusätzlichen Dingen und Gimmicks wie freiem I²C-Port. Sprich: auch 
ich muss patchen. Daher wird das neue Original immer mit meiner 
aktuellen Version verglichen mit einer Art "Diff". DAS erleichtert die 
Arbeit ungemein.

http://www.softinterface.com/DL/DL_Product.ASP?ProductType='Diff%20Doc'%20And%20WordDocDiff

von unalex (Gast)


Lesenswert?

Hallo, Markus F.
Super - Project
aber:

Es wäre shon die Pins-Reihenfolge(zwishen AVR und LCD) zu ändern

jetzt
PD0(2) - D4(11)
PD1(3) - D5(12)
PD2(4) - D6(13)
PD3(5) - D7(14)
PD4(6) - RS(4)
PD5(11) - R/W(5)

meine Meinung
PD0(2) - D7(14)
PD1(3) - D6(13)
PD2(4) - D5(12)
PD3(5) - D4(11)
PD4(6) - R/W(5)
PD5(11) - RS(4)

PCB-Layout wird einfacher

Ist das möglich?

von Sergei (Gast)


Lesenswert?

Hallo,
ich bin ein absoluter Neuling was AVR angeht.

Ich benutze das myAVR Board MK2 USB mit ATMega8.
Zum Brennen benutze ich das Programm myAVR ProgTool.

Nun wollte ich gerne den Transistor-Tester ausprobieren.
Zuerst hab ich mir die erste Firmware runtergeladen. (Der erste 
Downloadlink im Artikel)
Leider bekomme ich beim Brennen eine Fehlermeldung.
1
vorbereiten ...
2
brennen ...
3
benutze: mySmartUSB MK2 an COM4 mit ATmega8
4
USB-Treiber installiert, aktiv (V 5.3.0.0), Port: COM4
5
Prozessor: ATmega8
6
schreibe 7036 Bytes in Flash-Memory ...
7
... erfolgreich (10.89 s)
8
schreibe 290 Bytes in EEPROM-Memory ...
9
Fehler: beim Schreiben der Daten.

Also hab ich das nochmal selbst kompiliert.
Danach lief das brennen reibungslos, und der Conroller schien richtig zu 
arbeiten.

Nun hab mir die aktuelleste Firmware runtergeladen.
Auch hier beim Brennen der selbe Fehler, neukompilieren bringt keine 
Veränderung.

Hat jemand einen Rat, warum es zum Fehler beim Brennen des EEPROMS 
führt?

von Markus F. (5volt) Benutzerseite


Lesenswert?

=> Freddy:
Drain and source are almost equivalent at JFETs like the BF245, so they 
can't be identified.
If you conect a BF254 like gate=1; drain=2; source=3, the tester will 
show
N-JFET
GDS=132
If you connect ist gate=1; drain=3; source=2, it will give the same 
result.
But the gate pin was always detected correctly at my tests in all 
possible pin arrangements.

Are you sure you really got the result "GDS=231", and after turning ist 
180 degrees "GDS=321"? If you got this, it would be a bug.

=> unalex:
Ja, es ist möglich, die Pin-Reihenfolge zu ändern. Die Pins für RS und 
Enable kann man einfach in einem Define ändern.
Um die Datenleitungen "umzukehren", müsste man eben die Bit-Reihenfolge 
für alle Datenausgabe-Befehle ändern. Das ist nicht allzu schwierig.
Machbar ist es also ohne weiteres.

=> Sergei:
mySmartUSB und das myAVR Prog-Tool benutze ich selbst nicht.
Der Fehler erscheint mir aber etwas merkwürdig. Es wäre denkbar, dass 
das EEPROM vom ATMega8 einen Schaden hat. Ich weiß es aber nicht (mit 
myAVR kenne ich mich nicht aus).

von unalex (Gast)


Lesenswert?

<i>Um die Datenleitungen "umzukehren", müsste man eben die 
Bit-Reihenfolge
für alle Datenausgabe-Befehle ändern</i>

wäre es nett, wenn jemand zeigt mir was und wo muss ich ändern

von Freddy (Gast)


Lesenswert?

Yes I sure Markus,
f.e
BF245B N-JFET display : GDS 132 after turning GDS 321
BF256C N-JFET display : GDS 132 after turning GDS 321
J310 N-JFET display :   GDS 321 after turning GDS 132

it's look like all N-JFET test is wrong.

von Markus F. (5volt) Benutzerseite


Lesenswert?

=> unalex:
Die Defines für RS und Enable stehen unten in der lcd-routines.h:
1
#define LCD_RS        PD4
2
#define LCD_EN1       PD5

Und zum Invertieren der Bit-Reihenfolge musst du diesen Codeabschnitt in 
lcd-routines.c ändern (Zeile 28-39):
1
//Eigentliche LCD-Zugriffs-Funktion; 4-Bit-Modus
2
void lcd_send(unsigned char data) {
3
   // oberes Nibble setzen
4
  LCD_PORT = (LCD_PORT & 0xF0) | ((data >> 4) & 0x0F); //Ändern
5
  _delay_us(5);
6
  lcd_enable();
7
   // unteres Nibble setzen
8
  LCD_PORT = (LCD_PORT & 0xF0) | (data & 0x0F); //Ändern
9
  _delay_us(5);
10
  lcd_enable();
11
  _delay_us(60);  
12
  LCD_PORT &= 0xF0;
13
}

Bevor die Variable "data" ausgegeben wird, muss ihre Bit-Reihenfolge 
gedreht werden. Das ist in den zwei Zeilen, die ich hier mit "Ändern" 
markiert habe.
Wie man die Bit-Reihenfolge dreht: Siehe z.B. 
Beitrag "Byte umdrehen"


=> Freddy:
No, the result you got ist not wrong...
At all those JFETs, the gate is one of the outside pins, not the middle 
pin.
And the tester either says gate ist pin 1 or pin 3. It never detects 
gate as the middle pin (Pin 2). So far, it is correct.
And as I said, it is not possible for the tester to tell drain and 
source apart. At every JFET, both directions are detected. But only the 
last test result will be displayed.
So it depends on the pin order which result is detected last and shown 
on the LCD. Because of that, the drain and source pin are often (50% of 
the cases) shown incorrectly.
This is not perfect, but I don't know how to improve it. Due to the 
design of JFETs, drain and source electrically are almost equivalent. So 
I think it is impossible to tell them apart with such a tester.

Even in the manual of commercial component testers it says that drain 
and source can not be told apart with those component testers.

von Freddy (Gast)


Angehängte Dateien:

Lesenswert?

Markus,
but I checked same JFET on the tester published by the Elector in 
2008(attach docu. attached), and it display good.

von zaphod_beebelbrox (Gast)


Lesenswert?

Hallo Leute,
ich möchte mir den Tester auch nachbauen.

Müssen es 680R Widerstände sein? Oder kann ich auch ähnliche (hab 540R 
1% hier liegen) nehmen, solange sie alle gleich sind?


Viele Grüße,
Matthias

von zaphod_beebelbrox (Gast)


Lesenswert?

Hab mir gerade mal die Sauce angeschaut. Vergesst meine Frage :-)

Schönen Sonntag noch,
Matthias

von Alexander S. (esko) Benutzerseite


Lesenswert?

Ich habe noch einige der 470k und 680 Ohm 1% Widerstände und 
schicke jedem einen Satz davon zu. Kostenlos.
Als einzige Gegenleistung erwarte ich eine Postkarte aus eurer Stadt.

Kontakt per PN oder per Email (hier: Benutzer:Esko)

von Thomas R. (tinman) Benutzerseite


Lesenswert?

Walter Jo schrieb:

>> ... CR2032 und ein stepup reichen auch
> Meinst Du? Ich bin nicht sicher. Werde ich auch nicht testen.
>

Walter,

2 stk CR2032 parallel geschaltet (die waren schon beim ~2.85V, also 
nicht ganz frisch), ein TPS61070DDC um auf 5V zu kommen mit EN auf PD6 - 
das hab ich getestet. Im dauerbetrieb haben die 1std mit LCD ohne 
hintergrunbeleuchtung und 40 minuten mit einen OLED display gehalten.
OLED hat lediglich 30 zeichen angezeigt - ohne funktion, ging nur um 
stromverbrauch test.

Im normalbetrieb mit frischen CRs sollte also für mehrere "mess"stunden 
reichen.

von Serge S. (sergebs)


Lesenswert?

=>Freddy (Gast)
I've made just Sc-analyser 1.0e (as in magazine) and found after some 
experiments: for P- or N-JFETs it can't recognize drain and source, 
because they really are (almoust) the same. Except this, the device 
"don't like" Germanium transistors - try to name them as P- or N-JFETs: 
pin connection sensitive - one connection - bipolar, other - JFET for 
small-power Ge-transistors.
The irremovable problem for this device - use of analog switches. Their 
non-linear channel resistance made it unstable, by my opinion.

von Freddy (Gast)


Lesenswert?

Serge S. --> I have no tester from Elektro, I ask my friend (by phone) 
for some test only.

von Janusz B. (freddypl)


Lesenswert?

Finally, I had registered on Forum. I was Freddy (Gast) before, now I'm 
as Janusz B. (or FreddyPL)

von R. M. (rmax)


Lesenswert?

Markus, ich hätte da noch einen Vorschlag zur Verbesserung der 
Genauigkeit bei Widerstandsmessungen. Sorry, falls das schonmal genannt 
wurde, aber zumindest beim Durchsuchen des Threads nach dem Stichwort 
"Widerstand" bin ich nicht darauf gestoßen.

Also zu meinem Vorschlag: Wenn ich das richtig sehe, sind an Deinem 
Mega8 noch vier Portleitungen frei, nämlich PB6, PB7, PC3 und PC4. Die 
könntest Du doch verwenden, um gegen einen der Testpins weitere 
Meßwiderstände zu schalten und so die "Lücken" im Meßbereich zu füllen. 
Vorstellbar wären z.B. Werte von 4R7, 47R, 4k7 und 47k.

Evtl. könnten diese zusätzlichen Widerstände auch die Genauigkeit von 
anderen Messungen verbessern, ggf. nachdem das Programm den Benutzer 
aufgefordert hat, das Bauteil umzustecken, so daß das richtige Beinchen 
in der "genaueren" Meßbuchse steckt.

von Serge S. (sergebs)


Lesenswert?

=>Janusz B.
I have VERY old soft (2005) of Analyser By Elector, and made 2 variants 
of AVR-tester and compared all 3 of them about 1 month ago on about 50 
semiconductors, most in SOT23/223/DPAK etc.
After this Elector got pension. :) It was made first and was enough 
useful, but AVR - better. By my experience.
Take in mind that new soft can make Analyser some better, but can't 
solve problem of non-linearity of multiplexors, which needs 
DAC/RC-integrator (or other analog signal source) and sophisticated 
calculations for better calibration, so it hasn't future. By my opinion, 
of course.
Thanks to Markus F.(5volt) once more for his outstanding desigh and 
programming.

von Markus F. (5volt) Benutzerseite


Lesenswert?

=> R.Max:
Dieser Vorschlag kam schon mal, aber nicht im Zusammenhang mit der 
Widerstandsmessung.
Ich habe mal ausgerechnet, dass der Tester bei einem angeschlossenen 
Widerstand von
von dem niedrigen Widerstand auf den hohen umschaltet. Bei 680 Ohm und 
470kOhm ergibt das knapp 18kOhm.
In diesem Bereich ist die Messung am ungenauesten, weil keiner der 
beiden Widerstände dafür gut geeignet ist (der gebildete Spannungsteiler 
hat immer ein recht großes Teilerverhältnis).

Nochmal 3 zusätzliche 18kOhm-Widerstände wären also meiner Meinung nach 
noch am sinnvollsten.
Kleiner als 120 Ohm sollten die Widerstände sowieso nicht sein, sonst 
kann der ATMega8 überlastet werden (nur 40mA je Pin zulässig).
Und zu dem zusätzlichen Testbuchsen: Naja, das finde ich auch nicht so 
toll, wenn man das Bauteil dann nochmal umstecken muss.
Mal ganz nebenbei: Der ATMega8 ist mit dem jetztigen Code sowieso schon 
recht voll. Und ehe ich dann einen ATMega168 nehmen würde, würde ich 
eher auf einen ATMega16 umsteigen: Ist billiger als der Mega168 und hat 
9 bzw. 10 I/O-Pins mehr...
Damit wäre es auch kein Problem, 4 zusätzliche Sätze von Widerständen 
vorzusehen.
Zum Beispiel 120 Ohm, 3.5kOhm, 18kOhm und 92kOhm.

Aber die Idee ist nicht schlecht!

von R. M. (rmax)


Lesenswert?

Markus F. schrieb:

> Und zu dem zusätzlichen Testbuchsen: Naja, das finde ich auch nicht so
> toll, wenn man das Bauteil dann nochmal umstecken muss.

Da hast Du mich falsch verstanden: ich meinte nicht, eine zusätzliche 
Buchse vorzusehen, sondern die zusätzlichen Widerstände an eine der 
vorhandenen Buchsen zu legen. Das ändert natürlich nichts an der 
Umsteckerei, es sei denn man trifft zufällig schon die richtige 
Orientierung.

von Michael Gomez (Gast)


Lesenswert?

Markus,

I finally put together my tester. It works. But I have a porblem with 
the start circuit. I cannot get to work right. If I short the Vin of the 
2805L with +9 I can get to to start. But I cannot get it to start with 
the S1 switch. Any suggestions?
I have tested a couple of transistors. I just can't get it to start 
correctly. Transistors are good. 7805L is good. Resistors with correct 
values are in the right places!?
Should I just bypass the transistor starter circuit? I don't have an AVR 
programmer. So that is a problem. Any ideas or suggestions are welcomed.
Many thnx.

von Janusz B. (freddypl)


Lesenswert?

Markus, I change some elements on tester schematics. Add L, and change 
some Resistor. Can You send me source of schematic, than I will place my 
corrections and post a diagram. With these corrections tester work 
better, and I have not startup problems.

von mszr (Gast)


Lesenswert?

Hallo Markus,
Dein Tester ist wunderbar! Sonst habe ich noch ein Paar Bitten. Kannst 
Du bitte im Program  RX/TX freigeben? Ich denke, das kann man  fuer 
weitere Funktonalitaet benutzen.
Was ist Deine meinung, wenn diese Formel:
#define RH_RL_RATIO (R_H_VAL / R_L_VAL)
mit einer Kaliebrierung und mit die drei genauen Koefifizienten 
austauschen?

Hast Du dafuer eiene Regel oder eine Idee fuer Kaliebrierung?
#define H_CAPACITY_FACTOR 394
#define L_CAPACITY_FACTOR 283

Und am Ende - ich denke bei alle Messungen, am Anfang soll ein Reset 
(wie DischargePin) fuer alle Messung Pine durchgefuehrt sein. Was meinst 
Du?

Viele Gruesse!

von Thomas R. (tinman) Benutzerseite


Lesenswert?

mszr schrieb:
>
> Und am Ende - ich denke bei alle Messungen, am Anfang soll ein Reset
> (wie DischargePin) fuer alle Messung Pine durchgefuehrt sein. Was meinst
> Du?
>

bin zwar nicht Markus, aber discharge sollte "offline" gemacht werde. 
Ich sehe schon wie schnell der µC sterben wird sobald jemand aus reiner 
gewohnheit einen 400V elko dran anschliest :\

von Michael Gomez (Gast)


Lesenswert?

Addendum.
I want to compile my own file so that I exclude the transistor control 
features and just bypass the battery directly into the 7805L. You 
suggested this can be done but I have to modify the code.

Well, I donwloaded the code and all comments are in German.
Too bad. I was already getting used to using it for testing devices.

von Thomas R. (tinman) Benutzerseite


Lesenswert?

Michael Gomez schrieb:
>
> Well, I donwloaded the code and all comments are in German.
> Too bad. I was already getting used to using it for testing devices.

you can translate it  http://www.microsofttranslator.com/
it will be probably a bit "strange" but still better than in german

von mszr (Gast)


Lesenswert?

Hallo Michael,
Du hast mich falsch verstanden. Heute morgen habe ich eine kleine 
Korrektur gemacht:

es war früher:
  //Alle 6 Kombinationsmöglichkeiten für die 3 Pins prüfen
  CheckPins(TP1, TP2, TP3);
  CheckPins(TP1, TP3, TP2);
  CheckPins(TP2, TP1, TP3);
  CheckPins(TP2, TP3, TP1);
  CheckPins(TP3, TP2, TP1);
  CheckPins(TP3, TP1, TP2);
  #ifdef UseM8
und jetzt:

  //Alle 6 Kombinationsmöglichkeiten für die 3 Pins prüfen
  DischargePin(TP1,0);
  DischargePin(TP2,0);
  DischargePin(TP3,0);
  CheckPins(TP1, TP2, TP3);
  DischargePin(TP1,0);
  DischargePin(TP2,0);
  DischargePin(TP3,0);
  CheckPins(TP1, TP3, TP2);
  DischargePin(TP1,0);
  DischargePin(TP2,0);
  DischargePin(TP3,0);
  CheckPins(TP2, TP1, TP3);
  DischargePin(TP1,0);
  DischargePin(TP2,0);
  DischargePin(TP3,0);
  CheckPins(TP2, TP3, TP1);
  DischargePin(TP1,0);
  DischargePin(TP2,0);
  DischargePin(TP3,0);
  CheckPins(TP3, TP2, TP1);
  DischargePin(TP1,0);
  DischargePin(TP2,0);
  DischargePin(TP3,0);
  CheckPins(TP3, TP1, TP2);
  DischargePin(TP1,0);
  DischargePin(TP2,0);
  DischargePin(TP3,0);
  #ifdef UseM8

Ich machte das, weil bei fast alle Messungen z.B. hfe stabilisiert na 5. 
Messung, nach Pin änderung. Jetzt hfe ist stabil und ändert sich nicht, 
auch wenn ich Pin ändere.

von Markus F. (5volt) Benutzerseite


Lesenswert?

=>  Michael Gomez:
It is possible to bypass the start circuit. Look in the article, there 
is also a schematic without the start circuit, but still with a button 
to start a new test without turning the tester off and on again.

Normally, it should also work with the start circuit. Please make sure 
you used the correct transistors (T3 is PNP, T1 and T2 are NPN) and 
everything is connected correctly...

And if you bypass the start circuit, you don't need to modify the code. 
The code works for the tester with and without start circuit.

=>  Janusz B.:
I will send you the schematic files (Eagle) this afternoon.

=>  mszr:
> Kannst Du bitte im Program  RX/TX freigeben? Ich denke, das kann man  fuer
> weitere Funktonalitaet benutzen.
Das Problem ist, dass RxD und TxD des ATMega8 als Steuerpins für das LCD 
verwendet werden. Soweit habe ich damals nicht gedacht, dass man die 
nochmal brauchen könnte.
Im Prinzip wäre es aber möglich.
Man müsste dafür z.B. die Pins für die automatische Abschaltung und den 
Start-Taster (PD6 und PD7) auf PC3 und PC4 umlegen. Dann muss man die 
ganzen LCD-Pins um 2 "nach oben" schieben, und natürlich das Programm 
entsprechend anpassen. Damit werden RxD und TxD frei.

Kondensatoren werden in der Funktion zur Kapazitätsmessung sowieso nach 
jeder Messung entladen. Und fast alle anderen Bauteile haben eine so 
geringe Kapazität, dass sie in den nach Umschalten der Pins gelassenen 
Wartezeiten von ein paar ms praktisch vollständig umgeladen werden.
Geladene Kondensatoren sollte man natürlich nicht anschließen, das würde 
den µC zerstören. Also erst kurzschließen oder per Widerstand entladen 
(je nach Größe, wenn man einen voll geladenen 4700µF/350V Elko 
kurzschließt, dann knallt das nämlich ganz ordentlich...).

von mszr (Gast)


Lesenswert?

Hallo Markus,
wegen Kaliebrierung für beide Wiederstanden, meine Idee ist jetzt 
einfach:

U1/U2 = 680/(470k + delta)

wo
U1 - U für 680
U2 - U für 470k

also kann man delta berechnen und bischen alles beser wird gezeigen. 
Sonst 1% Wiederstand wird nur für 680 nötig.

Viele Grüße.

von mszr (Gast)


Lesenswert?

Hallo, noch eine kleine Korrektur für pF zu messen.
1. Der Takt ist jetzt 4MHz
2. C Korrekturen wie unten:

uint8_t cv_range;  - globale Variable

Sie muss bei alle Messungen initializieren sein, also

start:
      ...
      cv_range =0;
      ...

und zusätzlich die Fragmente mit 'ab 1 pF' Kommentar:

mpval2 = 'n';
cv /=4;
if(cv > 99999) { //ab 1µF
cv /= 1000;
tmpval2 = LCD_CHAR_U;
}
if(cv_range == 1) { //ab 1pF
cv *= 1000;
tmpval2 = 'p';
}
ultoa(cv, outval, 10);
tmpval = strlen(outval);
lcd_show_format_cap(outval, tmpval, tmpval);
lcd_data(tmpval2);
lcd_data('F');
goto end;


cv /=4; //ab 1pF

if(cv > 99999) { //ab 1uF
cv /= 1000;
tmpval2 = LCD_CHAR_U;
}
if(cv_range == 1) { //ab 1pF
cv *= 1000;
tmpval2 = 'p';
}
ultoa(cv, outval, 10);
tmpval = strlen(outval);


Das ist nur für Kondensatoren, sonstige Konsequentze im Programm (4MHz) 
habe ich nicht korriegiert.

VG

von Ollz (Gast)


Lesenswert?

Walter Jo schrieb:
> Ollz schrieb:
>> .... Bei jeder neuen offiziellen
>> Software-Version muss ich den Code wieder patchen.
>
> Meine Testerversion betreibe ich auf einem mega168, auch mal nem 328er -
> mit zusätzlichen Dingen und Gimmicks wie freiem I²C-Port. Sprich: auch
> ich muss patchen. Daher wird das neue Original immer mit meiner
> aktuellen Version verglichen mit einer Art "Diff". DAS erleichtert die
> Arbeit ungemein.

Ich mache das unter Linux mit diff und patch. Trotzdem ist es lästig.

von Markus F. (5volt) Benutzerseite


Lesenswert?

=>  mszr:
Wie meinst du das mit
> U1/U2 = 680/(470k + delta)
und der Kalibrierung? Ich verstehe irgendwie nicht ganz, worauf du da 
hinaus willst.

Ich meine, die exakten Widerstandswerte kannst du doch in diesen Zeilen 
festlegen:
1
#define R_L_VAL 680      //R_L; Normwert 680 Ohm
2
#define R_H_VAL 470000UL  //R_H; Normwert 470000 Ohm, als unsigned long angeben

Ok, jetzt habe ich verstanden, was du mit dem "Discharge" vor jeder 
Messung meinst.
Schaden kann das meiner Meinung nach nicht, es kostet aber natürlich 
Zeit (insgesamt so ca. 0,2s). Zumindest bei meinem Tester ist die 
hFE-Messung auch ohne das stabil, auch bei Pin-Änderungen.
Die Idee ist aber nicht schlecht!

Und zu der Anzeige in pF:
Hast du auch die Kondensator-Messfunktion so geändert, dass sie 
Kondensatoren von wenigen pF messen kann?
Die Untergrenze liegt sonst nämlich bei ca. 200pF, was ohne die Änderung 
als "0,20nF" angezeigt wird. Zumindest meiner Meinung nach ist das 
hinreichend genau, ein Präzisions-Messgerät ist dieser Tester ja eh 
nicht.

von mszr (Gast)


Lesenswert?

Hallo Markus,
ja, der Kalibrierung ist für R_H_VAL, wenn ich nehme 680hm mit 1%, 
bedeutet das nur ca. +/-7.O Ohm, aber für 470k das wird 47000 sein. Also 
es läst sich einfach  Schätzen und nich als Konstant  definieren.Das 
R_H_VAL/R_L_VAL stark hängt von  R_H_VAL auch ab. Ja?
Praktisch das Error hier kann man schätzen wie unten
470000*1.01 = 474700, 680*0.99 = 673.2, also R_H_VAL/R_L_VAL wird nicht 
681.18 sondern 705.12. Letztendlich bedeutet das, dass das Error ca. 14 
mal größer sein wird. Nächste Bemerkung  ist auch einfach, kleine 
Kondesatoren benutzen R_H_VAL als Basis für die Messung. Man kann mit 
einfache Formel besser R_H_VAL schätzen und sonst 1% Tolerantz für 
R_H_VAL wird nicht so wichtig, weil das man berechnen kann. Ist es schon 
klaar?

VG

von mszr (Gast)


Lesenswert?

>Hast du auch die Kondensator-Messfunktion so geändert, dass sie
>Kondensatoren von wenigen pF messen kann?
Das habe ich auch geendert und es geht (oben wurde nicht Alles gezogen, 
später wurde von mir noch etwas gemacht) , aber leider Alles zu stärk 
hängt von  '470k' Wierderstanden ab. Ich habe das mit 30pF Kondensator 
abgecheckt. Ohne den Kalibrierung der '470k' Wiederstanden das wird 
nicht praktisch sein. Error hängt zu stärk von Pins wegen der Toleranz 
des'470k' Wiederstanden ab. Der erste Release des Kalibrierung habe ich 
auch gemacht, aber leider das Hex Code zu gross für klein atmega8 war, 
also ich musste das wegwerfen.


VG

von Markus F. (5volt) Benutzerseite


Lesenswert?

=> mszr:
Sorry, aber ich habe immer noch nicht ganz verstanden was du genau 
willst.
Das mit der Toleranz ist doch eigentlich kein Problem, weil man die 
genauen Widerstandswerte ja im Programm festlegen kann.
Wenn die 680Ohm-Widerstände z.B. 674 Ohm haben, und die 470k-Widerstände 
haben 473256 Ohm, dann trägt man das eben im Programm so ein, dann 
stören die Toleranzen nicht mehr, nur noch der Langzeit- und 
Temperaturdrift der Widerstände wirkt sich aus.
Die beiden Faktoren für die Kapazitätsmessung kann man ja auch 
entsprechend anpassen.

Das Problem bei der Messung kleiner Kondensatoren ist auch recht einfach 
zu erklären: Der ADC des ATmega8 hat interne Kapazitäten von ca. 15pF.

Eine Idee von Janusz B. (freddypl):
Man könnte die ganzen Kalibrierungs-Werte ins EEPROM legen. Da kann man 
sie recht problemlos anpassen.

Und eine automatische Ermittlung, wie groß R_H ist, ist praktisch 
unmöglich.
Dazu müsste man aus R_L und R_H einen Spannungsteiler bauen. Das geht ja 
noch.
Bei R_L = 680 Ohm und R_H = 470kOhm und 5V Spannung fallen 4,993V an R_H 
ab, und 0,007V an R_L.
Der ADC des ATMega8 hat aber nur 10 Bit, also 1024 Stufen Auflösung.
Daher ist jede Stufe 0,0048V.
Ich denke du siehst, dass das viel zu ungenau für eine automatische 
Ermittlung von R_H ist.

von mszr (Gast)


Lesenswert?

>Bei R_L = 680 Ohm und R_H = 470kOhm und 5V Spannung fallen 4,993V an R_H
>ab, und 0,007V an R_L.

Ja klaar, aber Spannung kann man immer versterken und das ist auch 
einfach zu kalibrieren, ich meine diese Versterkung.  Wenn ich den Zeit 
finde, versuche ich das realiesieren.

Sonst habe ich noch eine alte Frage:

Hast Du dafuer eiene Regel oder eine Idee fuer Kaliebrierung?
#define H_CAPACITY_FACTOR 394
#define L_CAPACITY_FACTOR 283

mfg

von Markus F. (5volt) Benutzerseite


Lesenswert?

> Hast Du dafuer eiene Regel oder eine Idee fuer Kaliebrierung?
> #define H_CAPACITY_FACTOR 394
> #define L_CAPACITY_FACTOR 283

Nein, das habe ich einfach experimentell bestimmt...
Also ein paar Kondensatoren mit einem guten Multimeter nachgemessen, und 
dann die Werte so eingestellt dass der Tester das Gleiche anzeigt.
Diese Werte sind aber etwas von den Toleranzen des ATMega8 abhängig.
Trotzdem bleibt die Genauigkeit in meinem Aufbau auch mit verschiedenen 
ATMega8 im Bereich +/-5%. Das finde ich ausreichend. Wer es genauer 
haben will, kann es ja genau auf den verwendeten Controller kalibrieren.

von Janusz B. (freddypl)


Angehängte Dateien:

Lesenswert?

I attache the schematic diagram with all my (and my friend Bobo) 
modifications.
All modifications, and the entire scheme was approved by Markus F.

After this modifications :

 - tester is more resistant to interference,
 - there is no problem when you press "Start Taste",
 - no silly displays that sometimes occurred,

von Walter J. (oberallgeier)


Lesenswert?

Die An-Aus-Automatik macht bei mir Probleme, siehe gleich.

Thomas R. schrieb:
> ... normalbetrieb mit frischen CRs sollte also für mehrere "mess"stunden
> reichen.
Danke Thomas für die ausführliche Erläuterung. Der erste Tester in THT 
mit 9V-Akku läuft prächtig - aber ich werde mir mal einen Tester in SMD 
aufbauen. Ich suche ja noch immer nach einem schönen SMD-Projektchen. 
Und dann werde ich das mit den CR2032 machen. Einen ersten Test werde 
ich natürlich mit meinem jetzigen Gerät machen.

@all:
PROBLEM:
Die An-Aus-Automatik funktioniert bei mir derzeit nicht richtig.
Der Tester läuft mit der schönen An-Aus-Automatik als "Vorschaltgerät". 
Getrennt davon habe ich dieses Vorschaltgerät auch in einer kleinen, 
anderen Schaltung (Pacer = Schrittmacher mit LEDs) aufgebaut - vorerst 
als Vorversion auf Steckbrett.

Beide Male habe ich geändert: BC337/327 statt der BC547/327. LP2950 
statt des 7805L, R7=16k statt 27k, R8=33k statt 27k. Sowohl der 
Transistortester als auch der Pacer gehen problemlos an - und durch 
Abschalten vom Controller auch wieder aus.

Beim TTester geht die LED1 aus, solange bzw. so oft ich den Taster S1 
drücke. Auch die Funktion eines neuerlichen Tests startet nach Druck auf 
S1 problemlos und der Pegel auf PD7 ist erwartungsgemäß low bei 
Tastendruck.

Beim Pacer ging das genauso - S1 drücken => LED1 geht aus und der 
zugehörige Port auf low. Der Tastendruck, gemessen am Portpegel, wird 
mehrfach für Steuerzwecke genutzt. Die ganze Funktion des Vorschaltteils 
war tagelang genauso wie beim TTester. Seit ein paar Stunden wechselt 
der Portpegel nach S1/T2 am Controller nicht mehr, möglicherweise habe 
ich irgendwo gerüttelt oder die Verdrahtung "verbessert". Eine mehrfache 
Kontrolle der Bauteile, der Verkabelung und eine Durchgangsprüfung 
ergaben keine Fehler (ich erkenne zumindest keinen). Austausch der 
Transistoren hatte nicht geholfen, die werden aber im TTester als 
korrekt identifiziert. Beim Tastendruck auf S1 gehen die LED und die 
Schaltung sofort an und bleiben so, bis der Controller ausschaltet (oder 
/RES gedrückt wird). ALLERDINGS bleibt die LED1 bei Tastendruck an und 
auch der Pegel auf PD7 (bei mir PB2 weils ein tiny85 ist) bleibt auf 
high.

Hat bitte jemand eine Idee, woran das liegen könnte? Tut mir leid, dass 
der Text sooo lang wurde. Danke für die Hilfe

von Walter J. (oberallgeier)


Lesenswert?

Walter Jo schrieb:
> Die An-Aus-Automatik macht bei mir Probleme, siehe gleich.

Die Fehlermeldung ist hinfällig - tut mir leid. Es WAR (m)ein Fehler, 
der Abzweig von der LED1 zum S1 war im Fehlerfall "nach" der LED und vor 
dem Transistor und nicht zwischen LED1 und R7. Nun läufts wieder.

von Markus F. (5volt) Benutzerseite


Lesenswert?

Ich habe jetzt die Erkennung von Triacs berichtigt. Die war nämlich 
vollkommen falsch...
Jetzt wird die Belegung korrekt erkannt, zumindest beim BT136. Einen 
anderen Typen mit gering genugem Gate- und Haltestrom habe ich gerade 
nicht.

Ich habe die neue Firmware gleich in den Artikel gestellt und diesen 
auch (endlich mal) aktualisiert.

von Janusz B. (freddypl)


Lesenswert?

Add folowing change yet:
1
//#define R_L_VAL 680      //R_L; Norm  wert 680 Ohm
2
//#define R_H_VAL 470000UL  //R_H; Normwert 470000 Ohm, als unsigned long angeben
3
// export resistor value to EEPROM
4
unsigned long R_H_VAL EEMEM = 470000;
5
unsigned int R_L_VAL EEMEM = 680;

von Markus F. (5volt) Benutzerseite


Lesenswert?

> Add following change yet:
1
//#define R_L_VAL 680      //R_L; Norm  wert 680 Ohm
2
//#define R_H_VAL 470000UL  //R_H; Normwert 470000 Ohm, als unsigned long angeben
3
// export resistor value to EEPROM
4
unsigned long R_H_VAL EEMEM = 470000;
5
unsigned int R_L_VAL EEMEM = 680;

Sorry, I forgot this...
I will add it soon!

von mszr (Gast)


Lesenswert?

Ein fehler gefunden,
warme Diode ist als Kondensator identifiziert.

von Markus F. (5volt) Benutzerseite


Angehängte Dateien:

Lesenswert?

=> mszr:

> Ein fehler gefunden,
> warme Diode ist als Kondensator identifiziert.
Ist das nur einmal passiert oder schon häufiger?
Ich habe es gerade mal getestet: Eine 1N4007-Diode in den Tester 
gesteckt, dann für 60s 1,5A über die Diode fließen lassen. Das lässt die 
Diode ordentlich warm werden.
Dann den Strom abgeschaltet und sofort den Test gestartet. Wird 
einwandfrei als Diode erkannt, nur mit ca. 140mV weniger 
Durchlassspannung als im kalten Zustand (ist auch klar, die Spannung 
fällt um so 1,5...2mV je °C Temperaturerhöhung).
Ich habe es auch noch mit etwas Größerem (1600V/35A 
Brückengleichrichter) versucht, auch kein Problem.

Mit welcher Diode hattest du den das Problem?


Ich habe jetzt in der angehängten Firmware einige 
Konfigurations-Einstellungen (Werte der Widerstände, Faktoren fpr die 
Kapazitätsmessung) ins EEPROM verlegt. Somit sind sie ohne 
Neukompilieren der Firmware problemlos anpassbar.
Außerdem ist das Readme nun eine HTML-Seite und wurde deutlich 
erweitert. Da ist auch die EEPROM-Konfiguration beschrieben.
Bei einigen Tests mit der ATMega48-Version habe ich festgestellt, dass 
ein Testvorgang da viel schneller als in der ATMega8-Version geht.
Das liegt an der Überprüfung, ob ein Kondensator angeschlossen ist. 
Diese kostet recht viel Zeit, immerhin etwa 300...500ms.
Daher ist diese Messung nun auch konfigurierbar, auch im EEPROM:
Man kann sie entweder ganz deaktivieren, für eine Pin-Kombination 
aktivieren oder (wie bisher) für alle Pin-Kombinationen aktivieren.
Standard ist die Messung für alle Pin-Kombinationen.
Diese Einstellungen sind auch im Readme beschrieben.

von mszr (Gast)


Lesenswert?

Hallo Markus,
>Mit welcher Diode hattest du den das Problem?
mit 1N4148, wenn ich wärme die Diode mit der Tischlampe an, immer ein 
Kondesator gezogen ist. Das ist für ca. 80C Graden. Ich teste die Diode 
direkt 'unter' der Tischlampe. Zusätzlich habe ich ein LM35 an Tester 
zugegeben und das ich für mich einfach zu messen:

unsigned long int ut1;
unsigned int  ut1a, ut2a, ut1_whole, ut1_fraction;
void temp_lm35(void);
void temp_ky(void);

unsigned char T[] EEMEM = " T=";
unsigned char A[] EEMEM = " A=";

...
  testend:
  ut1a = ReadADC(4 | (1<<REFS1));
  ADC_DDR = 0;
  ADC_PORT = 0;
  R_DDR = 0;
  R_PORT = 0;
}
...
  if(PartFound == PART_DIODE) {
    if(NumOfDiodes == 1) {
      //Standard-Diode
      lcd_eep_string(Diode);  //"Diode: "
      lcd_eep_string(Anode);
      lcd_data(diodes[0].Anode + 49);
      lcd_string(";K=");
      lcd_data(diodes[0].Cathode + 49);
      Line2();  //2. Zeile
      lcd_eep_string(Uf);  //"Uf = "
      lcd_string(itoa(diodes[0].Voltage, outval, 10));
      lcd_eep_string(mV);
//mszr
      temp_lm35();
//mszr
      goto end;
...

void temp_lm35()
         {
      lcd_eep_string(T);
      if(ut1a > 512) ut1a=ut1a+1;

//      ultoa(ut1a,outval,10);
//      lcd_string(outval);
      ut1 = 25*ut1a;
                        ut1_whole = (int)(ut1/100);
                        ultoa(ut1_whole,outval,10);
      lcd_string(outval);
            ut1_fraction = (int)(ut1 % 100);
      if(ut1_fraction>0) {
            lcd_data ('.');
            ultoa(ut1_fraction,outval,10);
      lcd_string(outval); }
            lcd_data ('C');
      ut1 =0;
      ut1_whole=0;
                        ut1_fraction=0;
       }

Viele Grüße!

von MartinSt (Gast)


Lesenswert?

Könnte die Erkennung der Diode unter der Lampe als Kondensator an dem 
Glasgehäuse der 1N4148 liegen, die dann als Fotodiode arbeitet?

von mszr (Gast)


Lesenswert?

Ich versuche heute Abend die Spanung ohne den Tester auch messen, 
sowieso er soll immer nur eine Diode zeigen. LED praktisch ist auch eine 
sensitive Fotodiode aber ist richtig bei 20-25C Grad erkennt, auch mit 
meiner Lampe aber  ca. 30-40 cm  entfernt.

von mszr (Gast)


Lesenswert?

Alle Glassdiode stark auf Licht reagieren. Die Spanung z.B. für glasse 
Diode direkt unter der Lampe kann 0.4V generieren.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Ich hab Markus mal angeboten, das Projekt im SVN zu hosten. Dazu koennte 
ich noch ein alternatives Layout (mehr SMD) anbieten.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Sooo... ich hab den Bauteiltester jetzt auch mal aufgebaut und dabei 
mein Layout verwendet. Funktioniert teilweise sehr gut, einen 
Kondensator mit 47nf erkennt und misst er korrekt und genau, aber einen 
BC337 erkennt er nur als FET. Dioden erkennt er wiederum super, aber 
Widerstaende (160Ohm) erkennt er als Doppeldiode...

Mal sehen ob Markus sich aendert, vielleicht kann ich ja auch noch das 
ein oder andere helfen, um diese Fehler auszubuegeln.

Michael

von Bert 0. (maschinist)


Lesenswert?

Hallo Markus,

habe meinen TransiTester mit Deiner neuen SW vom 17.1.10 geladen, uC ist 
ATMega8.

Seitdem werden alle Transistoren mit ganz geringen hfe-Werten (alle 
kleiner 10) angezeigt, vorher, mit der Software vom 2.1. hatte z.B. ein 
BC548 ein hfe von über 200...kann es vielleicht sein, daß da noch ein 
Fehler drin steckt?


Gruß...Bert

von Thomas R. (tinman) Benutzerseite


Lesenswert?

ja, die version vom 17.01 ist an einigen stelen verbesser worden, und 
stimmt einige sachen funktionieren nicht mehr, z.b. hFE

von Janusz B. (freddypl)


Lesenswert?

Markus entered wrong value of resistors in this version, this should be 
improved in EEROM as described !

von Bert 0. (maschinist)


Lesenswert?

Janusz B. schrieb:
> Markus entered wrong value of resistors in this version, this should be
> improved in EEROM as described !

Ah, thanks Janusz for this info!
I will go to check the content of my EEPROM later at the day and revert 
with the results.


Regards...Bert

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Bert Braun schrieb:

> Seitdem werden alle Transistoren mit ganz geringen hfe-Werten (alle
> kleiner 10) angezeigt, vorher, mit der Software vom 2.1. hatte z.B. ein
> BC548 ein hfe von über 200...kann es vielleicht sein, daß da noch ein
> Fehler drin steckt?

Ist bei mir genau so, wird also wohl ein Fehler sein. Sind noch ein paar 
mehr drinnen, aber insg. ist das schon eine super Sache.

Markus: Bitte arbeite mit der Archiv-Version und checke alle fixes dort 
ein. Als Basis diente die letzte Version, die Du hier gepostet hast.

An alle anderen:
Ich hoste das Projekt fuer Markus unter
http://svn.coremelt.net/avr/semiconductor_tester

Wer (schoener) online browsen will:
http://viewvc.coremelt.net/viewvc/avr/semiconductor_tester

Die aktuelle Version (inkl. einiger Zugaben), bekommt man mit:
$ svn co http://svn.coremelt.net/avr/semiconductor_tester

Wer selber Zugaben hat (z.B. Layouts, weitere Schaltungsversionen, ...) 
soll sie bitte an Markus oder mich senden, dass sie ebenfalls ins Archiv 
aufgenommen werden.

Michael

P.S.
Ganz vergessen: Einen taeglich aktualisierten Snapshot als Archiv 
bekommt man unter: 
http://coremelt.net/files/software/repository-tarballs/semiconductor_tester.tar.gz 
(dann braucht man gar keinen SVN-Client)

von Alex H. (hoal) Benutzerseite


Lesenswert?

Michael G. schrieb:
> Markus: Bitte arbeite mit der Archiv-Version und checke alle fixes dort
> ein. Als Basis diente die letzte Version, die Du hier gepostet hast.

Ich hoffe sehr, dass die Archivdatei auf der Artikelseite auch 
aktualisiert wird. Wer hat schon Lust, je nach Projekt zusätzlich zur 
jeweiligen Artikelseite auch noch in diversen SVNs nachzusehen?

von Hannes L. (hannes)


Lesenswert?

Warum coremelt.net? - Ist mikrocontroller.net nicht mehr gut genug?

...

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Hannes Lux schrieb:
> Warum coremelt.net? - Ist mikrocontroller.net nicht mehr gut genug?
>
> ...

Weil die eine Kiste unter meiner Kontrolle steht und die andere nicht?
Wegen dem Artikel: Ich denke man sollte die Links dort entsprechend 
anpassen bzw. hinzufuegen, ein Tarball wird ja automatisch generiert, so 
dass diese Option nicht verloren geht (normaler Download).

von Simon K. (simon) Benutzerseite


Lesenswert?

Leider kann man die PNG Dateien (und andere nicht-Text Dateien) nicht 
öffnen.
http://viewvc.coremelt.net/viewvc/avr/semiconductor_tester/board_armin_diehl/layout.png?view=markup

von Markus F. (5volt) Benutzerseite


Angehängte Dateien:

Lesenswert?

> Mal sehen ob Markus sich aendert, vielleicht kann ich ja auch noch das
> ein oder andere helfen, um diese Fehler auszubuegeln.

Wie meinst du das?
Natürlich darf hier jeder Fehler beseitigen. Das ist ja der Sinn an Open 
Source...

> Seitdem werden alle Transistoren mit ganz geringen hfe-Werten (alle
> kleiner 10) angezeigt
Stimmt. Ist ein Fehler in der Berechnung (Überlauf einer "unsigned int", 
in Zeile 443 in main.c). Habe ich im angehängten Archiv korrigiert.

> Markus entered wrong value of resistors in this version, this should be
> improved in EEROM as described !
I think it is correct. R_L ist "680", and R_H is "4700" in EEPROM, isn't 
it?

R_H is internally multiplied with 100 (because then 2 EEPROM bytes are 
enough), then it results 470k.

> einen BC337 erkennt er nur als FET. Dioden erkennt er wiederum super, >aber 
Widerstaende (160Ohm) erkennt er als Doppeldiode...

Das finde ich merkwürdig. An diesen Routinen habe ich doch eigentlich 
gar nix verändert...
Bei mir passiert das nämlich nicht. Wenn es mit der angehängten Firmware 
auch nicht geht (und es mit der Firmware aus dem Artikel nach wie vor 
klappt), dann muss sich doch irgendwo ein Fehler eingeschlichen haben...

Ich stelle das Archiv hier nochmal rein. Sobald ich Zugang zu dem 
Repository auf Michaels SVS-Server erhalten habe, aktualisiere ich es 
auch da.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Markus F. schrieb:

> Ich stelle das Archiv hier nochmal rein. Sobald ich Zugang zu dem
> Repository auf Michaels SVS-Server erhalten habe, aktualisiere ich es
> auch da.

Ich bin dran... schreib Dir gerade eine Mail.

von Thomas R. (tinman) Benutzerseite


Lesenswert?

Michael G. schrieb:
>
> Weil die eine Kiste unter meiner Kontrolle steht und die andere nicht?

das verstehe ich jetzt nciht, es ist doch hier gepostet, reicht es nciht 
?

> Wegen dem Artikel: Ich denke man sollte die Links dort entsprechend
> anpassen bzw. hinzufuegen, ein Tarball wird ja automatisch generiert, so
> dass diese Option nicht verloren geht (normaler Download).

hast du auch SAS/SCSI raid mit backup, redundante leitung und zwei dns 
server ?

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Markus: Du hast nicht die Archiv-Version genommen, ich pflege Deine 
Aenderungen jetzt manuell ein. Ich bitte Dich aber, dann auch auf dem 
Archiv weiter zu arbeiten, sonst bringt das nichts.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Thomas R. schrieb:

> hast du auch SAS/SCSI raid mit backup, redundante leitung und zwei dns
> server ?

Nicht dass es etwas zur Sache tun wuerde: Gespiegeltes Hardware-RAID, 
dediziertes Backup und redundante DNS-Server sind vorhanden.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

AVR Memory Usage
----------------
Device: atmega48

Program:    4128 bytes (100.8% Full)
(.text + .data + .bootloader)


Haut nicht so ganz hin...

von Paul Baumann (Gast)


Lesenswert?

Ich verstehe nicht, warum das Programmpaket an mehr als einer Stelle
hinterlegt werden soll. Das führt doch nur zur Verwirrung der Leute.
:-(

Paul

von Markus F. (5volt) Benutzerseite


Lesenswert?

Bei mir sind es mit dem ATMega48 "nur" 4082 Bytes (99,7% Full). Geht 
also...

Ich habe aber auch noch das avr-gcc aus März 2009. Muss ich mal updaten.
Das mit der fehlerhaften Transistor-Erkennung überprüfe ich mal.

> Du hast nicht die Archiv-Version genommen, ich pflege Deine
> Aenderungen jetzt manuell ein. Ich bitte Dich aber, dann auch auf dem
> Archiv weiter zu arbeiten, sonst bringt das nichts.
Ja, sorry. Mache ich in Zukunft.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Naja bei mir wird es zu gross, da kein fertiges Hexfile in Deinem Update 
vorhanden war hab ich es jetzt in diesem Release geloescht. Den Fix hab 
ich manuell eingepflegt. Ist keine gute Idee das so knapp zu halten, Du 
solltest noch was raus nehmen, sonst kann man es nicht ohne Weiteres 
selber compilieren, nicht jeder verwendet die selbe Compiler-Version.

von Alex H. (hoal) Benutzerseite


Lesenswert?

Michael G. schrieb:
> Naja bei mir wird es zu gross, da kein fertiges Hexfile in Deinem Update
> vorhanden war hab ich es jetzt in diesem Release geloescht. Den Fix hab
> ich manuell eingepflegt.

Genau deswegen sollte die aktuelle Version weiterhin auf der 
Artikelseite veröffentlich werden, wo sie auch jeder wie gewohnt findet 
können sollte.

Markus' Projekt ist ein toller Erfolg und hat viele Nachbauer gefunden. 
Wieso sollte es jetzt umziehen?

von Markus F. (5volt) Benutzerseite


Lesenswert?

> Wieso sollte es jetzt umziehen?
Das habt ihr falsch verstanden:
Das Projekt bleibt auch weiterhin hier, und in dem Artikel werden auch 
zukünftige Versionen veröffentlicht werden.
Das mit dem SVN ist vor allem für die noch nicht "offiziellen" Versionen 
gut: Man hat immer einen Ort, an dem die neueste Version zu finden ist.

Hier in dem Thread gehen diese Versionden nämlich schnell wieder unter: 
Wenn nahc dem Post mit der neuesten Firmware schon 20 weitere Posts 
kamen, schaut sich kaum noch einer den Post mit der Firmware an.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Man braucht ueberhaupt keine Files mehr hier posten, dazu wird ein 
Snapshot generiert, der immer aktuell ist. Das reicht. Dazu reicht ein 
einziger Link an der richtigen Stelle. Und der Rest passiert 
automatisch.

von mszr (Gast)


Lesenswert?

Hallo Markus,
Das Projekt ist schon weltweit benutzt(!). Ich verstehe bisschen 
deutsch, aber nicht alle diese Sprache verstehen zu können, deswegen 
viele lokale Versionen schon spin-off gemacht haben. Das macht kein 
Sinn, weil deine Änderungen später noch mal bei dieser lokalen 
Versionen wiederholen  müssen sein.
Findest Du richtig zusammen alle Übersetzungen  sammeln schon  und als 
ein Teil des Projekts pflegen? Ich denke, es wird kein Thema freiwillige 
Dolmetschern  zu finden.  Das ist kleine Dinge 5 Minuten  für 
Übersetzung zu finden. Wenn die Länge aller Texte  für alle Sprachen 
gleich werden, nur lokales Eprom   vorbereitet muss.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Was eben keinen Sinn macht ist diese dezentrale Entwicklung. Wuerde 
jeder am Archiv arbeiten, traeten diese Probleme eben nicht auf: D.h. 
wenn Person A einen Fehler behebt fliesst diese automatisch in die 
Version von Person B mit ein (durch den Merge), die andere Aenderungen 
(z.B. eine Uebersetzung) vornimmt.

Ich kann ja mal versuchen die anderen Sprachversionen zu mergen. 
Insofern es eine gemeinsame Codebasis gibt, geht das auch. Dann muss man 
halt z.B. im Makefile angeben, welche Sprache man benutzen will. 
Arbeitet dann wieder jeder auf einer nicht-offiziellen Version weiter 
bringt das natuerlich nichts auf Dauer, denn die Arbeit mach ich mir 
dann auch nicht staendig, nur weil man die Leute nicht zu einer 
vernuenftigen Arbeitsweise bringen kann. Dann kann man aber auch nicht 
von einem Gemeinschaftsprojekt sprechen.

von Janusz B. (freddypl)


Angehängte Dateien:

Lesenswert?

I attached latest version of Transistor tester :
Polish version -  file Transistortester-PL.zip and
English version - file Transistortester-EN.zip.
My proposition is add jumper, to select language version.
fe. jumper on PC4 ON  - English version
    jumper on PC4 OFF - German version
    jumper on PC3 ON other language version fe. Polish

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Markus und Janusz haben (neben mir) jetzt Schreibzugriff auf das Repo.

Falls noch jemand mitarbeiten will bzw. weitere Layouts usw. zur 
Verfuegung stellen wollen, soll er bescheid geben.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Ich möchte bei dieser Gelegenheit mal auf 
Beitrag "Re: Versionsverwaltung" hinweisen. 
Kurzfassung: Mikrocontroller.net bietet einen SVN-Server an, auf dem man 
sich mit dem Forenaccount einloggen kann. Welche Benutzer Zugriff haben 
kann der Besitzer des Repositorys selbst per Webinterface einstellen.

von Thomas R. (tinman) Benutzerseite


Lesenswert?

:)

von mszr (Gast)


Lesenswert?

Hallo zusammen,
weil Janusz hat keine Quelle geschickt, schicke ich polnische 
Übersetzung als Quelle für SVN. Ich denke, es macht kein Sinn durch PIN 
die Sprache auswächlen, das kostet Flash und Eprom. Und das ist kein 
Produkt für den Markt :) Ich denke, es wird besser einfach verschiedene 
Eproms vorbereiten oder - das benutze ich persönlich - einfaches Menu 
mit drei Tasten, weil das für weitere Dienge dienen kann. Atmega8 sehr 
klein ist und wird , ich denke, bald mit etwas ersätzen. Ich benutze 
Atmega16 dafür, mehr PIN-e und Speichern, JTAG etc.

von mszr (Gast)


Angehängte Dateien:

Lesenswert?

Sorry, die Datai noch dazu.

von Michael G. (linuxgeek) Benutzerseite


Angehängte Dateien:

Lesenswert?

Ich hab das Teil nun aufgebaut und in ein Gehaeuse verfrachtet. Dank 
Markus' Aenderungen funktioniert nun auch die Erkennung sehr gut, vorher 
wurden Bauteile oft falsch erkannt und manche Messungen haben gar nicht 
funktioniert.

Waere sinnvoll wenn jeder seine FW auch updaten werde, die aktuelle 
Version findet Ihr hier: 
http://coremelt.net/files/software/repository-tarballs/semiconductor_tester.tar.gz

Michael

von Markus F. (5volt) Benutzerseite


Lesenswert?

Mit der neuesten Firmware aus dem SVN gibt es ein neues Problem:
Verarmumgs-FETs werden jetzt größtenteils als Anreicherungs-FET 
erkannt...
Ein Update ist also erst dann sinnvoll, wenn dieser Fehler auch noch 
behoben ist. Ich kümmere mich darum.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Ist mir garnicht aufgefallen, das muss ich nochmal testen ;)

von Markus F. (5volt) Benutzerseite


Lesenswert?

Nochmal eine andere Frage:
Besteht überhaupt noch Interesse an der Firmware für den ATMega48?
Mittlerweile fehlen der ja schon eine ganze Menge Features, weil die in 
den 4kB Flash einfach keinen Platz haben.

Und da in der neuen avr-libc die EEPROM-Zugriffsroutinen geändert wurden 
und nun mehr Flash kosten, müssen sogar noch Features entfernt werden, 
damit das Programm überhaupt in den Mega48 passt (oder man müsste selbst 
EEPROM-Routinen in Assembler schreiben).

Hat jemand den Tester mit Mega48 aufgebaut oder plant, das zu tun?

Wenn nicht ergibt es ja auch keinen Sinn, diese Version noch weiter zu 
verfolgen.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Also wenn Du mich fragst, hat sich mir der Sinn nicht ganz erschlossen, 
zwei Versionen so zu pflegen, denn der Mega48 ist nur unwesentlich 
guenstiger als ein Mega8. Daher werden wohl fast alle den Mega8 
verwendet haben, wer verzichtet wegen weniger als einem Euro schon auf 
viele Features ;)

Michael

von Thomas R. (tinman) Benutzerseite


Lesenswert?

naja fast, ich benutze 168, aber vllt sollten die leute hier mal voten.

von Hc Z. (mizch)


Lesenswert?

Von mir aus kann's gerne beim 168 bleiben, damit ist genügend Raum für 
zukünftige Erweiterungen.  Den 48 halte ich nicht für attraktiv und den 
Zusatzaufwand nicht wert.

von Paul Baumann (Gast)


Lesenswert?

Pfote, äh Vote:
Atmega 8

MfG Paul

von Ingo (Gast)


Lesenswert?

Hi!

als glücklicher Benutzer eines AVR-Transistortesters (Danke Markus 
F.!!!!), bin ich auch dafür, es beim ATmega8 zu belassen, de 48 lohnt ja 
kaum ...

Gruss, Ingo.

von microhead (Gast)


Lesenswert?

Dears All,

I’m sorry for English but I can’t speak German. I built original tester 
from Markus F and it worked for the first time. I tested more components 
and get different results. Please look below. Do you have idea, what 
could be wrong here or its normal behavior of this built.
Please let me know, because I like this construction, because is simple 
a clever. Many thanks Martin Hlavicka


Transistors
2N3416
Connected in order 123: NPN B=3, C=2, E=1, hFE=20 Uf=765m … GOOD RESULT
Connected in order 321: P-D-MOS, GDS=132 … WRONG RESULT

SC1815
Connected in order 123: NPN B=3, C=2, E=1, hFE=58 Uf=814m … GOOD RESULT
Connected in order 321: P-JFET GDS=132 … WRONG RESULT


BC549
Connected in order 123: NPN B=2 C=3 E=1 hFE=282 Uf=795m … GOOD RESULT
Connected in order 321: N-JFET GDS=213 … WRONG RESULT


Capacitors:
Connected in order 12 (both polarity): N-JFET GDS=132
Connected in order (both polarity): CAPACITOR 3-2 102,64uF
Connected in order (both polarity): CAPACITOR 3-2 102,04uF

Resistors:
Totally wrong for value 18k and connected between 1-2 the result was:
REZISTOR 3-1 R=89,7k, same component, but between 2-3:
N-JFET GDS=132

von Markus F. (5volt) Benutzerseite


Lesenswert?

=> microhead:
Have you tried it with the newest version from the SVN repository?
http://coremelt.net/files/software/repository-tarballs/semiconductor_tester.tar.gz

von Hannes L. (hannes)


Lesenswert?

Markus F. schrieb:
> => microhead:
> Have you tried it with the newest version from the SVN repository?
> 
http://coremelt.net/files/software/repository-tarballs/semiconductor_tester.tar.gz

Was soll der Quatsch? - Dieses Forum hat Dein Projekt erst bekannt 
gemacht. Warum pflegst Du es nicht weiter in diesem Forum?

Beitrag "Re: Transistortester mit AVR"

Warum gehst Du fremd?

...

von microhead (Gast)


Lesenswert?

Hello Markus,
Thank you for the link, I uploaded there now, but behaviour is same. 
May-be I must have some issue in circuit, if everybody else works fine. 
Please let me know if you have some idea.
Martin

von Zbyszko (Gast)


Lesenswert?

Ich habe eine Frage an den Autor.
Wenn jemand das Programm verbessert. Und sagt, dass auf dem Forum. 
Schützt den Code. Er gilt als der Autor. Er hat es nicht den 
überarbeiteten Programm. Ob es fällt so.
Ich möchte Janusz begrüßen.

von Matthias S. (matthias-aus-hc)


Lesenswert?

Hallo MSZR.

Ich habe den Tester auch nachgebaut und habe auch dafür einen Atmega16 
benutzt.

Leider hab ich noch Probleme mit der Softwareanpassung.

Wäre es möglich das du das Programm für den Atmega16 hier ins Forum 
stellst?
Und vielleicht deinen Schaltplan dazu?

MFG

von Sourcecode (Gast)


Lesenswert?

Hallo,
ich versuche das ganze mit einem Mega 32 zum Laufen zu kriegen. Bisher 
werden so ziemlich alle Bauteile falsch erkannt :( Nur das Makefile und 
die Pinbelegung anpassen reicht offenbar nicht. Richtige Erkennung 
bisher nur bei einer Diode (auch nur in einer bestimmten Polarität) und 
ohne angeschlossenes Bauteil. Dh. aber, dass der ADC funktioniert, und 
die Signale über die Pins an den Widerständen werden auch ausgegeben - 
woran kann es dann liegen??

von mszr (Gast)


Lesenswert?

Hallo  Matthias,
ja, es geht aber ich bin unterwegs leider. Wenn nach Hause komme,  tue 
ich das gerne. Leider das kann ziemlich lang dauern und das basiert 
nicht auf die neue Version des Testers.

von Markus F. (5volt) Benutzerseite


Angehängte Dateien:

Lesenswert?

> Was soll der Quatsch? - Dieses Forum hat Dein Projekt erst bekannt
> gemacht. Warum pflegst Du es nicht weiter in diesem Forum?

Es wird ja hier weiter gepflegt, nur die neueste Version der Firmware 
(die häufig auch nur zu Testzwecken da ist) kommt eben in des 
SVN-Repository.
Damit sich hier keiner beschweren kann, hänge ich sie auch noch an 
diesen Beitrag an.
Neue, stabile Versionen werden auch weiterhin in dem Artikel eingefügt 
werden.
Im wesentlichen bleibt also alles beim Alten.

Für die Entwicklung bietet das SVN jedoch Vorteile, vor allem weil 
mehrere Leute gleichzeitig an dem Projekt arbeiten können.

=>  microhead:
I don't know, but perhaps there ist something wrong with your setup. I 
think something on test pin 1 is bad (from your test results).

von mszr (Gast)


Lesenswert?

Hallo Markus,
kannst Du bitte für kommende Versionen ein Changelog anlegen?

VG, M.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

http://viewvc.coremelt.net/viewvc/avr/semiconductor_tester/?view=log

Hier sind die Aenderungen, inkl. Dateilisten und diffs.

von Sourcecode (Gast)


Lesenswert?

Hallo,
nu läufts bei mir mit dem Mega 32! Ich musste nichts ändern außer die 
Pinbelegung und das Makefile. Der Fehler lag darin, dass ein oder 
mehrere Pins defekt sind. Nu habe ich das auf einen anderen Port verlegt 
und es geht. Zumindest werden mein Transistor und meine Diode nun 
korrekt identifiziert. Mehr habe ich noch nicht ausprobiert.

von Thomas R. (tinman) Benutzerseite


Lesenswert?

Michael G. schrieb:
> http://viewvc.coremelt.net/viewvc/avr/semiconductor_tester/?view=log
>
> Hier sind die Aenderungen, inkl. Dateilisten und diffs.

schön .. aber Michael, wenn du schon so überall schreibst "with a board 
layout from me", dann mach bitte vernünftiges board.

Z.zt. ist es wirklich "pfui", schon mal dir gedanken gemacht das für 
tragbares, stromsparendes gerät (so wie von Markus F. entworfen ist) 
etwas wenig sinn mach diese ollen elkos, brückengleichrichter und 
schraubklemmen einzusetzen ? Also ich persönlich halte ungerne 5m langes 
verlängerungskabel und labornetzteil nur um einen transistor zu testen 
:)

Du hast mal gesagt "Dazu koennte ich noch ein alternatives Layout (mehr 
SMD) anbieten" - dann mach es bitte so - guck dir die bilder und 
platinnen von leuten die seit einem jahr bei dem projekt "dabei" sind.

Nicht das ich unbedingt ein board brauche, nur wenn ich smd lese und 
dann diese vor-meiner-zeit-bauteile sehe :) Da sind die DIL versionen 
schon faktor 2 kleiner als dein smd entwurf.

gruss

Thomas

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Brauchst es nicht zu verwenden.

von Kay V. (kay1971)


Lesenswert?

Hallo zusammen,

esteinmal möchte ich (wie viele zuvor) sagen, das dies ein klasse 
Projekt ist. :)

Aber jetzt kommt mir eine Idee, für dessen Beurteilung und Umsetzung mir 
das Wissen fehlt.

Könnte man nicht auch eine Prüfung von Akkus einbauen?

Grüße
Kay

von Sourcecode (Gast)


Lesenswert?

Ja (je nachdem was man da prüfen will) Sinnvoll wäre evtl. die 
Spannungen mit 2 verschiedenen Belastungen zu messen und daraus den 
Kurzschlussstrom/Innenwiderstand zu berechnen. Akkus die frisch 
aufgeladen trotzdem die Digitalkamera nicht versorgen können, kann man 
so ermitteln.

von Markus F. (5volt) Benutzerseite


Lesenswert?

> Könnte man nicht auch eine Prüfung von Akkus einbauen?

Jain. Mit einem zusätzlichen Portpin müsste das möglich sein, mit der 
jetzigen Hardware geht es aber nicht.
Ein Problem ist aber der Messbereich:
Um auch mal Akkupacks messen zu können, sollte die Maximalspannung schon 
so 20V sein. Dann ist allerdings die Auflösung "nur noch" 0,02V.
Für eine einfache Spannungsmessung reicht das, für eine 
Innenwiderstands-Messung aber nicht.

Eigentlich wäre das als extra Gerät aber besser. Zum Beispiel ein Gerät, 
das den ESR von Elkos messen kann und gleichzeitig auch noch zum 
Akku-Test verwendbar ist. Für beides ist nämlich eine recht ähnliche 
Hardware erforderlich.
Die Elko-ESR-Messung könnte man z.B. folgendermaßen machen:
Erst wird der Elko komplett entladen.
Dann wird er über einen Widerstand langsam aufgeladen und die Zeit 
gemessen, bis die Spannung einen bestimmten Wert erreicht. Daraus lässt 
sich die Kapazität berechnen (so macht es auch der Transistortester für 
die Kapazitätsmessung).
Für die ESR-Messung braucht man eine Last, also einen niederohmigen 
Widerstand.
Um auch mal Elkos mit sehr geringem ESR messen zu können, sollten 
mehrere Messbereiche vorhanden sein.
0,1 Ohm sind für den "niedrigsten" Messbereich durchaus realistisch.
Bei 5V Elkospannung würden da kurzzeitig ca. 50A Entladestrom fließen.
Das ist kein Problem für einen geeigneten MOSFET.

Hierin besteht nun die Herausforderung: Man muss die Last so schnell wie 
möglich mit dem Elko verbinden, sonst wird das Messergebnis falsch.
Da Power-MOSFETs mit geringem Rds aber auch eher viel Gate-Kapazität 
haben, braucht man einen sehr starken Gate-Treiber. Vielleicht reicht 
ein ICL7667.
Als MOSFET sollte man einen mit schnellen Schaltzeiten, wenig Rds und 
wenig Gatekapazität verwenden.
Ich habe noch ein paar 2SK3572 rumliegen (von einem defekten Mainboard), 
die könnten geeignet sein: 4,4mOhm Rds; 3,2nF Gatekapazität; 300A 
Peak-Drain-Strom (80A Dauerstrom) und 14ns Anstiegszeit. Könnte 
brauchbar sein...

Kurz (also z.B. 0,5µs) nach dem Einschalten der Last muss mit einer 
Sample+Hold Schaltung die Elkospannung gespeichert werden, um sie dann 
in aller Ruhe per ADC auswerten zu können.

Mal sehen, vielleicht versuche ich das mal.

Ein Problem sehe ich aber noch:
Es passiert leicht mal, dass man einen geladenen Kondensator anschließt. 
Dabei sollte der Tester nicht kaputt gehen.
Das Dumme ist, dass dafür der MOSFET für den Lastwiderstand die 
Elkospannung verkraften muss. Das geht aber nicht, weil es keine MOSFETs 
gibt, die hohe Nennspannung mit oben genannten Eigenschaften 
kombinieren.
Na gut, man könnte z.B. eine 6V Surpressordiode und eine Sicherung 
einbauen.
Aber bitte keine 5*20mm Feinsicherung, im Zusammenhang mit Elkos haben 
die ihren Namen nicht verdient: Die ohne Sandfüllung haben nur so 50A 
Trennschaltstrom, darüber kann der beim Durchbrennen entstehende heiße 
Metalldampf die Sicherung weiterhin leiten lassen.
Die 10,3*38mm-Sicherungen sind aber perfekt (120.000A 
Trennschaltstrom...)

Prinzipiell könnte man dann vielleicht auch mit einem ATMega16 oder 32 
einen "Kombi-Tester" aufbauen, der Halbleiter, Elko-ESR und Akkus testen 
kann.

von Dieter S. (dolivo)


Lesenswert?

warum lasst ihr es nicht beim Transistortester. Muss es denn die 
"eierlegende Wollmilchsau" sein? Alles mögliche zu kombinieren ist noch 
nie geglückt.

von TinoFFWHC (Gast)


Lesenswert?

Hallo Sourcecode

könntest du das Programm mit dem Mega32 mal reinstellen?

dann hätte ich ne gute Basis für meinen Mega 16.

MFG

von Sourcecode (Gast)


Angehängte Dateien:

Lesenswert?

Jo, siehe Anhang.

von Tino (Gast)


Lesenswert?

Guten Tag.

Ich finde das Projekt ist super.

Ich würde es gern nachbauen aber es gibt da folgendes Problem: C

Leider bin ich nicht so geistreich in C sondern nur in Assembler.

Auch habe ich noch nie ein C-File in Assembler umgeschrieben.

Hätte jemand einen guten Rat für mich wie ich das machen könnte?

MFG Tino

von Hannes L. (hannes)


Lesenswert?

Tja, Timo, das ist der Grund, weshalb ich es auch noch nicht aufgebaut 
habe. ;-)

...

von Paul Baumann (Gast)


Lesenswert?

OT:
Ich verstehe C auch nicht und will diesen kryptichen Mist auch nicht
erlernen.
Trotzdem habe ich diese überaus nützliche Schaltung nachgebaut.
Man muss sich ja auch nicht, nur um Auto fahren zu können, die
Getriebeteile selbst fräsen...;-)

MfG Paul

von Hc Z. (mizch)


Lesenswert?

Du brauchst doch für einen Nachbau kein C zu erlernen.  Das brauchst Du 
erst, wenn Du in den Quellcode eingreifen willst.

Das Werkzeug, das C in Assembler-Code umwandelt, nennt sich übrigens 
C-Compiler ;-).

von Paul Baumann (Gast)


Lesenswert?

>Du brauchst doch für einen Nachbau kein C zu erlernen.
Ja eben, das meine ich doch.

Paul

von Tino (Gast)


Lesenswert?

>Das Werkzeug, das C in Assembler-Code umwandelt, nennt sich übrigens
C-Compiler ;-).

In AVR Studio gibts es ja einen, aber ich weis nicht wie man den in so 
einem Fall anwendet.

Hätte jemand einen Tip?

MFG

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Tino schrieb:
> Guten Tag.
>
> Auch habe ich noch nie ein C-File in Assembler umgeschrieben.
> Hätte jemand einen guten Rat für mich wie ich das machen könnte?

Von der Sinnlosigkeit mal abgesehen: Versuch es mal mit einem Compiler.
Und an C ist nichts kryptisch, das glaenzt eigentlich durch seine 
Einfachheit (das ist natuerlich relativ), wenn man es vom Level der 
Sprache aus betrachtet.

von Tino (Gast)


Lesenswert?

Michael G. schrieb:

>Von der Sinnlosigkeit mal abgesehen: Versuch es mal mit einem Compiler.
>Und an C ist nichts kryptisch, das glaenzt eigentlich durch seine
>Einfachheit (das ist natuerlich relativ), wenn man es vom Level der
>Sprache aus betrachtet.

Zum Compiler: siehe Eintrag obendrüber.

Und warum ist es sinnlos? Wäre es auch sinnlos wenn das Programm in 
Assembler geschrieben wurde und es in C umgeschrieben werden müsste?

von Hc Z. (mizch)


Lesenswert?

Ich kann mich des Eindrucks nicht erwehren, dass da die Sprache C 
schlecht gemacht wird, weil jemand den Compiler nicht bedienen 
kann/möchte.

Dabei ist das keine Kunst; das Projektfile (*.aps) ist mitgeliefert. 
Die ganze Kunst beschränkt sich also auf ein, zwei Klicks im AVR Studio.

Und davon abgesehen, braucht man zum Zusammenbau des Testers nicht 
einmal zu kompilieren oder AVR Studio hochzufahren, da sowohl das .hex 
als auch das .eep sich im Zipfile befinden.

von Bernhard M. (boregard)


Lesenswert?

C ist doch auch nur ein prozessorunabhängiger Assembler...

"C combines the power of assembler with the portability of assembler. - 
Anonymous, alluding to Bill Thacker.

von Thomas R. (tinman) Benutzerseite


Lesenswert?

Tino schrieb:
> Michael G. schrieb:
>
>>Von der Sinnlosigkeit mal abgesehen: Versuch es mal mit einem Compiler.
>>Und an C ist nichts kryptisch, das glaenzt eigentlich durch seine
>>Einfachheit (das ist natuerlich relativ), wenn man es vom Level der
>>Sprache aus betrachtet.
>
>
> Und warum ist es sinnlos? Wäre es auch sinnlos wenn das Programm in
> Assembler geschrieben wurde und es in C umgeschrieben werden müsste?

beachte den unsinn nicht, wer nur c kann und kein assembler kann 
schlecht die vorzüge von asm "sehen".

Die .aps ist dabei, im avrstudio öffnen und compilieren, dann hast du 
auch eine .lss file, wenn unbedingt asm sein muss kann man diese file 
wunderbar als vorlage benutzen.

von Markus F. (5volt) Benutzerseite


Angehängte Dateien:

Lesenswert?

Ich habe gerade nochmal einen (kleineren) Fehler beseitigt:
Bei einigen Bauteilen floss auch nach Test-Ende noch Strom durch das 
Bauteil.
Z.B: Wenn man eine LED reinsteckt, mit Anode an Pin 1 und Kathode an Pin 
2, dann leuchtet die auch nach den Test noch, bis sich der Tester wieder 
abschaltet.
Das lag an der Kondensator-Messung, die unter bestimmten Bedingungen 
fälschlicherweise mit einem "return" verlassen wurde, ohne die I/O-Pins 
wieder auf Eingang zu schalten.
Anbei (und im SVN) die neue Firmware.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Cool, das mir auch schon aufgefallen, je nach Polung ;)

von Claudio (Gast)


Lesenswert?

Hello everyone,
I'm realizing this tester and I have difficulty for programming the 
ATmega8 processor.
I have a programmer GALEP 4 and I do not know 'how do I use the two 
files in the flash and EEPROM circuit.
I tried to schedule the first block of flash memory with the fuse bits 
and then the EEPROM of the LCD but the screen remains dark, I measured 
the signals with the oscilloscope and are "freezed".

von Martin S. (martinst)


Lesenswert?

@Claudio
Have you verified the fusebits, flash and eeprom content?

von Claudio E. (Firma: e.m.c.2) (emc2ind2000)


Lesenswert?

This is the problem,
on the galep program this fusebits is very hard too find, I have find 
the clock fuse but the lfuse and hfuse is not present....
And the eeprom file (.eep)and the flash file (.hex) I need to loads in 
two separate steps.
I think the problem is precisely the fusebits and programming with 
galep4 is more complex.
Possibly you can have an Atmega8 already programmed?
my email is emili.claudio(at)tiscali.it

von Claudio E. (Firma: e.m.c.2) (emc2ind2000)


Lesenswert?

Anyone can help me?
I'm very worried.....I have recheck all connections of my circuit and 
are all good the problem is the ATmega8...my programmer not "program"
I have buyed the processor on RS components with pn 628-1788 
ATmega8-16PI
is correct or not?

von Avery (Gast)


Angehängte Dateien:

Lesenswert?

Vor einigen Tagen bin ich über dieses tolle Projekt gestolpert - genau 
so was hab ich gesucht! Seit vorgestern ist der Tester zunächst auf 
einem Steckbrett aufgebaut und sagt mir endlich, was da bei mir 
herumliegt. Im Zuge der Tests ist mir aufgefallen, dass für die 
Messungen der ganze ADC-Port immer wieder umprogrammiert wird, obwohl ja 
nur drei Pins für die Messungen verwendet werden. Bemerkt hab ich es, 
weil ich die Pin-Belegung etwas geändert hab, um RxD und TxD für 
künftige Erweiterungen frei zu bekommen. (vgl. den Header in der 
beigelegten Datei) In meiner Version liegen ON-Pin und RST-Pin ebenfalls 
am Port C. Das lässt sich aber über die defines leicht ändern. (vgl. 
Zeile 279-284)

Im Zuge der Anpassung hab ich dann begonnen, die Software etwas zu 
reorganisieren, besondern um Erweiterungen leichter einbauen zu können. 
Was ich eingebaut hab:
- beim Messen werden nur noch die drei beteiligten Pins von Port C 
umprogrammiert
- $Id$-String für das automatische Eintragen der Version durch SVN
- Watchdog mit define "SIMULATION" abschaltbar (Mein AVR-Studio 
generiert den Reset zu früh und zeigt ihn auch nicht im Status-Register 
an)
- Watchdog wird nach einem Reset gemäß der Doku zu avr/wdt.h 
abgeschaltet
- define für englische Texte, so ähnlich könnten auch weitere Sprachen 
eingebunden werden, ohne mehr Platz im Speicher zu benötigen
- zerlegen der main-Funktion auf einzelne Funktionen, vgl. die 
Main-Funtkion am Ende der Datei

Was haltet ihr davon?

von Markus F. (5volt) Benutzerseite


Lesenswert?

=>  Claudio Emili:
> ATmega8-16PI
> is correct or not?
This is correct.

But I don't have the Galep4 and don't know how to program an AVR with 
it.



=> Avery:
> Was haltet ihr davon?

Zu der Aufteilung der main() in einzelne Funktionen:
Kann man machen, ich halte es aber für nicht sonderlich sinnvoll: Die 
Funktionen werden nicht mehrfach aufgerufen.
Programmtechnisch hat es nur Nachteile: Es verbraucht mehr Flash, und 
verschwendet wegen des eigentlich unnötigen Sprungs in eine andere 
Funktion, bei dem wieder alle Register in den Stack gechoben und nachher 
wieder rausgeholt werden, auch etliche CPU-Zyklen.
Es macht den Code eben evtl. etwas übersichtlicher.

> beim Messen werden nur noch die drei beteiligten Pins von Port C
> umprogrammiert
Das schadet nicht und ist auch sinnvoll, wenn man die Pin-Belegung mal 
ändern will. Es macht das Ganze auch besser erweiterbar.
Der einzige Nachteil ist (wie üblich), dass es Flash kostet. Und der 
wird eben allmählich knapp.

> Watchdog wird nach einem Reset gemäß der Doku zu avr/wdt.h
> abgeschaltet
Ja, das ist sehr sinnvoll. Sonst könnte sich der AVR nämlich allein 
durch diese Funktion
1
lcd_eep_string(TestTimedOut);  //Timeout-Meldung
2
    _delay_ms(3000);
in einer endlosen Reset-Schleife aufhängen.

> Watchdog mit define "SIMULATION" abschaltbar (Mein AVR-Studio
> generiert den Reset zu früh und zeigt ihn auch nicht im Status-Register
> an)
Das kann auch nicht schaden.

> define für englische Texte, so ähnlich könnten auch weitere Sprachen
> eingebunden werden, ohne mehr Platz im Speicher zu benötigen
Das ist auch gut.
Ich würde vorschlagen, man könnte auch .eep-Files in verschiedenen 
Sprachen mit ins Archiv packen. Dann muss man nur die Datei für die 
gewünschte Sprache ins EEPROM programmieren.

Ich baue das mit dem abschaltbaren Watchdog und der WDT-Abschaltung beim 
Einschalten auch mal in meine Version ein und lege alle LCD-Strings ins 
EEPROM, um das mit den verschiedenen Sprachen per .eep-Datei möglich zu 
machen.

von Claudio E. (Firma: e.m.c.2) (emc2ind2000)


Lesenswert?

Good news (for me of course ..)
I've finally managed to correctly program the processor ....
A show this tester, really useful and practical, I spent all day Sunday 
I happened to test any semiconductor in the house, and all have given 
excellent results.
Was wrong to send the files in the memory block of the processor program 
GALEP, does not recognize the location automatically and not loads them 
correctly, just programmed  it worked perfectly, except the battery 
indicator, I had to change the divider ranging up to 3 ,9Kohm.
A single question:
-you could implement the testing of IGBT?
would be complete in this way since these semiconductors are now 
widespread and difficult to test properly
What do you say? you can 'do?

von Markus F. (5volt) Benutzerseite


Lesenswert?

> you could implement the testing of IGBT?
IGBTs with a gate threshold voltage of less than 5 volts will be 
detected as a MOSFET, I think
At the moment, I don't have many IGBT's. I tried it with a 600V/40A IGBT 
(http://www.fairchildsemi.com/ds/HG/HGTG20N60B3D.pdf).
The test failed, because this IGBT has a gate threshold voltage of about 
6.5 volts.

The problem is that the tester can't deliver more than 5 volts; because 
of the supply voltage of the ATMega8. And most IGBTs habe threshold 
voltages of 5 to 7 volts.
To generate test voltages of more than 5 volts, external devices (for 
example transistors) are required. This makes the circuit of the tester 
much more complicated.

And it would be difficult to tell IGBT and MOSFET apart.
Due to the saturation effects of the IGBT, the collector-emitter voltage 
drop doesn't rise proportional to the current:
My 600V/40A IGBTs have a voltage drop of about 1.4V at 10A and 2.4V at 
40A.

A MOSFET has an ohmic drain-source resistance; so the voltage drop is 
directly proportional to the drain-source current.

But you can already see the problem: Huge currents are required for this 
test. And it won't be good if the tester pushes 40 amperes through a 
little SMD MOSFET ;)

Or the short form:
No, with the current hardware I can't implement the IGBT testing.

von Marius S. (lupin) Benutzerseite


Lesenswert?

IGBTs shouldn't have a body diode. Wouldn't it be sufficient to check if 
the device under test has a body diode and then decide if it's a fet or 
transistor? This will of course not work for j-fets...

von Markus F. (5volt) Benutzerseite


Lesenswert?

> IGBTs shouldn't have a body diode

My 600V/40A IGBTs have a body diode, and I looked into a datasheet of a 
huge IGBT (3300V/1500A; type 5SNA 1500E330300). Even this one has a body 
diode.

von Janusz B. (freddypl)


Angehängte Dateien:

Lesenswert?

Hi,
I can't log for SVN, I don't know why ?
Here is Transistor tester with 3 version, german, polish, and english.

von Alexander S. (esko) Benutzerseite


Lesenswert?

Bei fast allen IGBTs ist eine Freilaufdiode miteingebaut.
Die Ströme und Spannungen sind Dekaden zu hoch für diesen Tester, das 
wird nichts.

von Armin S. (nimra)


Lesenswert?

Hi,

>Zu der Aufteilung der main() in einzelne Funktionen:
>Kann man machen, ich halte es aber für nicht sonderlich sinnvoll: Die
>Funktionen werden nicht mehrfach aufgerufen.
>Programmtechnisch hat es nur Nachteile: Es verbraucht mehr Flash, und
>verschwendet wegen des eigentlich unnötigen Sprungs in eine andere
>Funktion, bei dem wieder alle Register in den Stack gechoben und nachher
>wieder rausgeholt werden, auch etliche CPU-Zyklen.

Stimmt nur bei ganz ausgeschalteter Optimierung (die man sowieso nicht 
verwenden sollte)

Laut http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html :

>-finline-functions-called-once
>Consider all static functions called once for inlining into their caller >even if 
they are not marked inline. If a call to a given function is
>integrated, then the function is not output as assembler code in its own >right.
>
>    Enabled at levels -O1, -O2, -O3 and -Os.

Von daher macht es vom Resourcenverbrauch her keinen Unterschied, der 
AVR-GCC optimiert die Funktionsaufrufe sowieso weg.

Ist aber Geschmackssache

NIMRA

von Claudio E. (Firma: e.m.c.2) (emc2ind2000)


Angehängte Dateien:

Lesenswert?

Hello everybody,
I have finally build the tester, the photo attached show all...
on the right is the "homemade" TO-3 test socket

Thank You Markus!

von Markus F. (5volt) Benutzerseite


Angehängte Dateien:

Lesenswert?

Ich habe jetzt die verschiedenen Sprach-Versionen eingefügt, außerdem 
ist der Watchdog in dieser Version per Define ein- und ausschaltbar.

Now, there are three languages: German, English and Polish.
You can choose between the languages by programming the corresponding 
.eep file into the EEPROM.

von Janusz B. (freddypl)


Lesenswert?

.. and in polish ...

Od teraz oprogramowanie dostępne jest w trzech językach, Niemieckim, 
Angielskim i Polskim. Możesz wybierać pomiędzy językami programując 
odpowiednią wersję .eep do EEPROM

von Paul B. (paul_baumann)


Lesenswert?

i po Russki:
Теперь, есть три языка: немецкий, английский и польский язык.
Вы можете выбрать между языками, программируя передачу
Файл.eep в EEPROM.

von Armin S. (nimra)


Lesenswert?

...und keiner denkt an deutsch ;)

Es gibt jetzt 3 Sprachen: Deutsch, Englisch und Polnisch. Man waehlt zw. 
den Sprachen durch das Programmieren der gewuenschten .eep datei ins 
EEPROM.

von misser (Gast)


Lesenswert?

Hi Markus,
  Thanks very much again ...
  I ask if it is possible  to modify the ( Line 1110):
====>   if((HighPin == cb) && (LowPin == ca)) return;
  with this line:
====>   if(PartFound == PART_CAPACITOR) goto end;
  Thanx...

von Wolfgang D. (wolleausmallo)


Angehängte Dateien:

Lesenswert?

Ich bin einfach nur begeistert.
Grüße
Wolle

von Markus F. (5volt) Benutzerseite


Angehängte Dateien:

Lesenswert?

misser wrote:

> I ask if it is possible  to modify the ( Line 1110):
> ====>   if((HighPin == cb) && (LowPin == ca)) return;
>  with this line:
> ====>   if(PartFound == PART_CAPACITOR) goto end;
> Thanx...

Yes, this is possible. And it even saves a few bytes of flash memory.
I changed it in the attached version.

von syr (Gast)


Lesenswert?

May I ask you to add Czech localization too. Thank you.
1
#ifdef CZECH  //tschechisch 
2
  unsigned char TestRunning[] EEMEM = "Probiha mereni...";
3
  unsigned char Bat[] EEMEM = "Baterie ";
4
  unsigned char BatWeak[] EEMEM = "slaba";
5
  unsigned char BatEmpty[] EEMEM = "prazdna!";
6
  unsigned char TestFailed1[] EEMEM = "Zadna, neznama";
7
  unsigned char TestFailed2[] EEMEM = "vadna ";
8
  unsigned char Bauteil[] EEMEM = "soucastka";
9
  unsigned char Unknown[] EEMEM = " neznama";
10
  unsigned char Diode[] EEMEM = "Dioda: ";
11
  unsigned char DualDiode[] EEMEM = "Dvojita dioda ";
12
  unsigned char TwoDiodes[] EEMEM = "2 Diody";
13
  unsigned char Antiparallel[] EEMEM = "antiparalelni";
14
  unsigned char InSeries[] EEMEM = "v serii A=";
15
  unsigned char K1[] EEMEM = ";K1=";
16
  unsigned char K2[] EEMEM = ";K2=";
17
  unsigned char GAK[] EEMEM = "GAK=";
18
  unsigned char NextK[] EEMEM = ";K=";
19
  unsigned char K[] EEMEM = "K=";
20
  unsigned char Triac[] EEMEM = "Triak";
21
  unsigned char Thyristor[] EEMEM = "Tyristor";
22
  
23
24
  #ifdef UseM8
25
    unsigned char OrBroken[] EEMEM = "nebo vadna ";
26
    unsigned char Resistor[] EEMEM = "Rezistor: ";  //nur auf Mega8 verfügbar
27
    unsigned char Capacitor[] EEMEM = "Kondenzator: ";
28
  #endif
29
  
30
  ...

von McGill (Gast)


Lesenswert?

Hallo!
Möchte mich anschliessen:Dolles Projekt,habs noch nicht nachgebaut,werd 
es aber versuchen.Leider kenn ich mich net so dolle aus mit der 
Materie,hätte aber mal ne Frage.
Könnte mann nicht die Werte irgendwie speichern im PC oder nem 
2.ATmega?Und anschliessend mit ´ner 2.Messung vergleichen?
Also wenn ich in der Bastelkiste zB.´n Transistor finde,brauche aber 
3stck davon und hätte die Werte gespeichert,könnte ich doch weitere Tr´s 
testen,mit den Werten vergleichen und angezeigt bekommen :Ja den und den 
kannste nehmen.Weil sonst muss man ja wieder Datenblätter suchen und 
vergleichen.Das soll ja gerade eingespart werden.Da die Daten für 
Pinn,hfe,usw eh vorliegen.Oder ist das zu umfangreich und eher ein neues 
Projekt?

Grüße aus dem Westerwald
Nic

von Markus F. (5volt) Benutzerseite


Lesenswert?

=> syr:
> May I ask you to add Czech localization too. Thank you.

Yes, I will add it.

=> McGill:
> Oder ist das zu umfangreich und eher ein neues Projekt?

Ein neues Projekt wäre es eigentlich nicht, vielleicht aber eine 
Abwandlung von diesem Projekt, mit etwas anderer Hardware.

Die letzten paar Test-Ergebnisse könnte man im EEPROM speichern. Das 
wäre relativ leicht realisierbar.
Mit 8 Byte je Ergebnis dürfte man auskommen.
Die Controller (ATMega8, ATMega16 und ATMega168) haben 512 Byte EEPROM, 
von dem ca. 350 Byte für die LCD-Strings und die Konfiguration 
verbraucht werden.
Man könnte also etwa die letzten 20 Testergebnisse im EEPROM speichern. 
Naja, wirklich viel ist das nicht.
Da wäre es eher sinnvoll, die Daten gleich während des Tests per UART 
(RS232) an einen PC zu senden.
Nur leider ist der UART hier eigentlich nicht nutzbar, weil dessen Pins 
für die LCD-Ansteuerung benutzt werden.
Man könnte aber z.B. per Jumper einstellbar machen, ob das LCD verwendet 
werden soll oder ob die Daten per UART gesendet werden sollen.

Allerdings wäre es dann ratsam, den AVR mit einem Quarz laufen zu 
lassen.
Normalerweise läuft der AVR bei dem Transistortester mit 1Mhz.
Man kann also einen 1MHz-Quarz anschleißen.
Aus mir nicht bekannten Gründen sind 1MHz-Quarze aber (vergleichsweise) 
extrem teuer, bei Reichelt über 3 Euro (!) pro Stück (andere Quarze 
kosten ca. 0,20€).
Man kann die Firmware aber auch für andere Takte verändern, dann ist sie 
allerdings nicht mehr mit der Original-Firmware kompatibel.
Oder man nimmt einen Mega88 oder Mega168 + 8MHz-Quarz und setzt das 
Fusebit für die interne Taktteilung durch 8. Das ist die günstigste 
Lösung.

Und das mit dem UART dürfte schon noch in den Mega8/Mega88 passen, 
immerhin ist ja noch mehr als 1kB frei.

von Markus F. (5volt) Benutzerseite


Lesenswert?

Noch was zu der UART-Sache:
Um mit der aktuellen Hardware 100% kompatibel zu bleiben, könnte man 
auch einen Software-UART verwenden. Als "TxD" könnte dann der Pin PC3 
oder PC4 dienen.

Das hat auch noch den Vorteil, dass man sich mit einem etwas 
"schmutzigen Trick" einige Bauteile einsparen kann:
Alles invertiert senden und den "TxD" direkt mit dem RxD der 
RS232-Schnittstelle verbinden. Gemäß Spezifikation ist das nicht 
zulässig (man hat damit nur 0V/5V-Pegel), aber es funktioniert in fast 
allen Fällen.
Man spart sich damit eben den MAX232.

Natürlich wäre das aber nur optional, es würde auch eine Version für 
einen Pegelwandler wie den MAX232 geben.

von Peter H. (thunderfrog)


Angehängte Dateien:

Lesenswert?

Einfach nur geil !

Habe diese Projekt länger beäugelt und bei der letzten 
Bauteil-Bestellung einfach mal eingeplant. Es ist ein tolles Projekt, 
und so ein Messgerät hat noch in der Bastelkiste gefehlt.
Vielen herzlichen Dank !

Peter

von Mc Gill (Gast)


Lesenswert?

So Habe das Teil jetzt mal gelötet(Board vom Armin Diehl),warte noch auf 
das Display.Allerdings ist das Mit dem Programmieren von dem Atmega 
einfach zu hoch für mich.(Mir fehlen da zu viele Gehirnwindungen)Ich hab 
mir von Videocafe den programmer gebaut(si prog i/o)
Dann aber rausgekriegt das das Ding wohl nur mit Pony-prog läuft,wofür 
es einige Beschreibungen im Netz gibt.Mir aber alles zu 
kompliziert,zumal man mit dem Teil den chip zerschiessen kann.Obendreien 
sind da im Verzeichnis Firmware einige files mit bin.eep und welche mit 
.eep ich würde also erst das Transistortester.Hex laden und Brennen und 
dann das German.eep.ich hab mal in das Ponyprog reingeschaut aber nix 
von fusebits gesehen da muss ja au noch was eingestellt werden.Kann mir 
jemand sagen "Was" und Wo ich des einstellen mus
Übrigens haben die mir 3 Atmega 8-16 geschickt,kann ich die auch 
verwenden,oder brauchts da andere files?

LG

von Yogi (Gast)


Lesenswert?

Hallo Mc Gill,

hast Du den Videocafe Programmer schon getestet? Wird der ATmega im Pony 
Prog erkannt? Ich glaube nicht, dass Du den Atmega mit dem Programmer 
zerschießt, wenn Du alles nach der Anleitung gemacht hast. Wegen der 
Fusebits
schau mal bei http://www.engbedded.com/fusecalc/ rein. Als erstes den 
ATmega8 auswählen und in der folgenden Seite ganz unten bei Current 
settings die beiden Hexwerte eingeben, die in der Fusebits.txt der 
AVR-Transistortester.zip angegeben sind. Dann auf Apply values clicken 
und die einstellungen werden in den oberen Fenstern der Seite angezeigt. 
Bei Ponyprog kannst Du die Hexfiles hintereinander in den ATmega 
programmieren.
Also mit "Open Data Memory(EEProm)File" und "Open Program 
Memory(Flash)File".
Kaputt geht da so schnell nix. Außerdem wird der Prozessor auf Deinem 
Programmer extern Getaktet. Den ATmega8-16 kannst Du auch langsamer 
Takten. In diesem Fall intern mit 1 MHz. Geht alles. Warte bis Dein 
Display da ist und dann Programmier mal. Wird schon werden. Am Anfang 
fand ich auch alles verwirrend. Aber das gibt sich, wenn Du Dich im Netz 
ein wenig umschaust, findest Du überall hilfreiche Tips. Also dann mal 
los...

Viele Grüße
Yogi

von Mc Gill (Gast)


Lesenswert?

Jo vielen Dank yogi.Werd erstmal warten bis das Displ.da ist .Hab mir 
von der selben Seite auch noch das Atmega Testboard gebastelt.Dachte zum 
rumprobieren.Ist das denn so ,das der extern getaktet wird?Da ist ja nur 
´n Quarz drauf,kein Q.oszill.Hab gerad gelesen,daß wenn mann was 
versemmelt hat,mit ner ext Taktquelle wieder alles richten kann.Also 
kann ich ja mal rumprobieren werd dann mal berichten wie´s ausgegangen 
ist

Schönes rest WE

von Markus F. (5volt) Benutzerseite


Lesenswert?

=> Mc Gill:

Im Prinzip musst du an den Fuses nix ändern. Man könnte damit den Start 
noch um 64ms beschleunigen (durch Ändern der Start-Up-Time), aber mit 
der Werkseinstellung der Fuses funktioniert es auch.

> hab gerad gelesen,daß wenn mann wasversemmelt hat, mit ner ext Taktquelle
> wieder alles richten kann
Jain. Wenn man die Takt-Fuses ändert stimmt das.
Allerdings haben viele AVRs (der ATMega8 auch) ein Fusebit, mit dem man 
den RESET-Pin deaktivieren kann und ihn somit als normalen I/O-Pin 
nutzen kann.
Setzt man dieses Fusebit, kann man den Controller nur noch über einen 
Bootloader oder einen HV-Programmer programmieren. Mit den üblichen 
ISP-Programmern geht dann nix mehr.

von Mc Gill (Gast)


Angehängte Dateien:

Lesenswert?

So hab gelesen,daß das stzen der fuse bits(=security+configuration 
bits?)
invertiert gesetzt werden bei pony prog.Also überall hacken rein und bei 
den relevanten Bits Hacken raus?Hab mal´n Bild angehängt.
Oben:"das kam bei engbeddet raus"
Unten:"so will ich es einstellen"
Könn´t ich des also so braten? Oder soll ich erstmal alles so lassen 
wie´s ist also alle Hacken draussen?Außerdem gibt´s da bei spien ´n 
problem da ist bei ponyprog ´n Hacken der sich net verstellen 
lässt(Grau)aber entfernt werden soll?
Ich stell mich ziemlich blöde an,tut mir echt leid,wenn die Dinger 
billiger währen,würd ich ne Hand voll bestellen und so lange 
rumprobieren,bis es klappt ;-)

LG

von Alexander S. (esko) Benutzerseite


Lesenswert?

Markus F. schrieb:
> => Mc Gill:
> Im Prinzip musst du an den Fuses nix ändern.

Lass die Fuse-Bits lieber in Ruhe.

von Yogi (Gast)


Lesenswert?

=> Mc Gill:

Nö, ist leider verkehrt. Du musst die Hacken bei Ponyprog nach dem 
oberen Bild setzten. Ich habe das bei meinen Transistortester ebenso 
gemacht. Also nach dem engbedded. Lies doch die Fuses von Deinem Atmega 
erstmal aus. Wahrscheinlich ist es so wie Markus schon schrieb. Du 
brauchst nichts ändern. Programmiere die Flash Datei und EEProm Datei in 
Deinen ATmega und lass die Fuses wie sie sind. Wenn Dein Display da ist 
wirst Du schon sehen das es läuft.

Viele Grüße
Yogi

von Mc Gill (Gast)


Lesenswert?

So hab jetzt mal ´n atmega8-16 gebraten :-) An den fuses hab ich nix 
geändert.Morgen wird das display kommen,leider fehlt mir noch der 
7805.Hab nur To220,da is wenig Platz aus dem Board,aber spätestens 
samstag weis ich ob´s geklappt hat.Also erstmal Danke für die Info´s
LG

von marian (Gast)


Lesenswert?

Hello I have serious interest and I want to buy it as construction kit 
with newest software please.

I am from England.


Thanks Marian

von Mc Gill (Gast)


Lesenswert?

So.Hat alles geklappt.leider war das Displ für 
Neg.Kontrastspannung,sodaß ich 2 Batterien reinmachen musste,aber mit 
dem Atmega funzt alles prima.Dolles gerät.Kompliment
LG

von Markus F. (5volt) Benutzerseite


Angehängte Dateien:

Lesenswert?

Here is the version with the Czech lamguage included.


Marian wrote:

> Hello I have serious interest and I want to buy it as construction kit
> with newest software please.
As far as I know, there is no complete kit available. You can get the 
circuit board (and the other components) from the German shop IT-WNS, 
but I think the shipping to England will be expensive...

von Zdenek (Gast)


Lesenswert?

Thanks

Markus F. schrieb:
> Here is the version with the Czech lamguage included.

but when i write device with TransistorTestNew.hex and 
TransistorTestNew_Czech.eep so tester will show wrong messages on 
display.
In czech it must show zadna neznama vadna soucastka but show only 
na.aoucastka. Same in english version.
With your german version it's OK.
Please advice me with programming. It's my programming ok with 
TransistorTestNew.hex and TransistorTestNew_Czech.eep ?
What is TransistorTestNew_Czech_Binary.eep file?
Thanks

btw. your tester is really great!

von Zdenek (Gast)


Lesenswert?

I mean previous german version.

von Luisile (Gast)


Lesenswert?

Zdenek schrieb:
> Thanks
>
> Markus F. schrieb:
>> Here is the version with the Czech lamguage included.
>
> but when i write device with TransistorTestNew.hex and
> TransistorTestNew_Czech.eep so tester will show wrong messages on
> display.
> In czech it must show zadna neznama vadna soucastka but show only
> na.aoucastka. Same in english version.
> With your german version it's OK.
> Please advice me with programming. It's my programming ok with
> TransistorTestNew.hex and TransistorTestNew_Czech.eep ?
> What is TransistorTestNew_Czech_Binary.eep file?
> Thanks
>
> btw. your tester is really great!


Same problem English, czech working not good- german is ok

btw. your tester is really great!

von Luisile (Gast)


Lesenswert?

Hi can u translate it to slovak language? i now that is similar to czech 
but many people on slovakia dont like the czech language.... it is 
Slovak - slovakish

quote
unsigned char TestRunning[] EEMEM = "PREBIEHA TEST";
  unsigned char Bat[] EEMEM = "Bateria ";
  unsigned char BatWeak[] EEMEM = "slaba";
  unsigned char BatEmpty[] EEMEM = "prazdna!";
  unsigned char TestFailed1[] EEMEM = "Ziadna, neznama";
  unsigned char TestFailed2[] EEMEM = "vadna ";
  unsigned char Bauteil[] EEMEM = "suciastka!";
  unsigned char Unknown[] EEMEM = " neznama";
  unsigned char Diode[] EEMEM = "Dioda: ";
  unsigned char DualDiode[] EEMEM = "Dvojdioda ";
  unsigned char TwoDiodes[] EEMEM = "2 Diody";
  unsigned char Antiparallel[] EEMEM = "antiparalelne";
  unsigned char InSeries[] EEMEM = "v Serii A=";
  unsigned char K1[] EEMEM = ";K1=";
  unsigned char K2[] EEMEM = ";K2=";
  unsigned char GAK[] EEMEM = "GAK=";
  unsigned char NextK[] EEMEM = ";K=";
  unsigned char K[] EEMEM = "K=";
  unsigned char Triac[] EEMEM = "Triak";
  unsigned char Thyristor[] EEMEM = "Tyristor";


  #ifdef UseM8
    unsigned char OrBroken[] EEMEM = "alebo vadna ";
    unsigned char Resistor[] EEMEM = "Rezistor: ";  //nur auf Mega8 
verfügbar
    unsigned char Capacitor[] EEMEM = "Kondenzator: ";
  #endif

for me the slovak is working but i only translate the german verion i 
can not give the slovak lang to the file..
btw. your tester is really great!
btw. your tester is really great!

von Leo C. (rapid)


Angehängte Dateien:

Lesenswert?

Tolles Projekt hier.

Beim Nachbauen ist mir aufgefallen, daß die Batteriespannungsmessung so 
nicht
ganz richtig sein kann. Beim ATmega48 und ATmega88 ist die interne
Referenzspannung nur 1.1V. Dafür ist dann auch der Spannungsteiler 
falsch
dimensioniert. Den R11 kann man z.B. auf 27k ändern.

Meinen Änderungsvorschlag habe ich mal hier angehängt.

Wenn jetzt noch meine bestellten Bauteile endlich da wären...

von Michael L. (michaelx)


Lesenswert?

Mc Gill schrieb:
> So.Hat alles geklappt.leider war das Displ für
> Neg.Kontrastspannung,sodaß ich 2 Batterien reinmachen musste,aber mit
> dem Atmega funzt alles prima.Dolles gerät.Kompliment
> LG

Hallo,

ich hatte auch ein Display "erwischt", welches eine negative 
Kontrast-Spannung braucht. Diese lasse ich mir vom ATMEGA erzeugen, 
schau mal nach meinen Beiträgen vom August-September letzten Jahres.

HTH

von Markus F. (5volt) Benutzerseite


Angehängte Dateien:

Lesenswert?

I have a new version:
Now, all languages should work (before, all lamguages except German 
didn't work properly).
And I added a software UART that sends all the test results. It sends 
almost the same data as shown on the LCD, except the characters which 
are not implemented in the standard ASCII character set (for example the 
"Omega" sign).
The UART output is PC3 (Pin 26 of the ATMega8).
The properties of the UART:
2400 baud
8 data bits
1 stop bit
no parity, no handshake

The internal timing error of the UART is almost zero.
So, the RC oscillator of the ATMega8 may have up to +/-3% tolerance to 
get a stable connection. And according to the datasheet, the oscillator 
has a 3% tolerance at 5V , 25°C and 1.0MHz.
So, it should work in most cases.

And there are two hex files:
In one("TransistorTestNew_UART_not_inverted.hex), the UART sends in 
"normal" mode, to connect it to a TTL level RS232 receiver or to a level 
shifter like MAX232.
In the other file ("TransistorTestNew.hex"), the UART sends in inverted 
mode, for direcly connecting it to the RxD pin of a PC's RS232 port or a 
USB=>serial converter with a "normal" PC-level input/output.
This makes the level shifter obsolete.
This solution is a bit "dirty" because a logical one is just 0V, and 
according the RS232 standard it should be between -3V and -15V.
But in most cases, it works without problems.

von Luisile (Gast)


Lesenswert?

Thans very much for implementing the slovak lang and the uart you are 
great! Thanks man!

von Zdenek (Gast)


Lesenswert?

Hi.
Sorry but looks like the problem with text is still here. Czech, slovak 
and english version is not working. Only german language is ok.

von Luisile (Gast)


Lesenswert?

Zdenek schrieb:
> Hi.
>
> Sorry but looks like the problem with text is still here. Czech, slovak
>
> and english version is not working. Only german language is ok.

Yes, already tested only German works :(

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Markus F. schrieb:
> I have a new version:
> Now, all languages should work (before, all lamguages except German
> didn't work properly).

Ins Archiv gehen diese Neuerungen nicht mehr, wie ich sehe...

von Markus F. (5volt) Benutzerseite


Angehängte Dateien:

Lesenswert?

Now, all languages should really work...
The problem was not difficult, but I simply forgot that this will cause 
errors:
In the different languages, the strings for the LCD have different 
lengths and so also different starting positions.
But the hex file doesn't know that because there is only one hex file 
for all 5 languages.
Now, I added "waste" characters to some strings, to get them all to the 
same length. These characters are the "€" symbol (ASCII 0x80).
These characters are then filtered out before sending the data to the 
LCD.
Now, every .eep file contains 350 bytes of EEPROM data and all strings 
have the same lengths.

At least in my tests this works without problems for all languages.

I also added it in the SVN again.

von Michael S. (suttermichi)


Lesenswert?

Hallo!

Ich finde diesen Transistor Tester suuper und möcht ihn unbedingt 
nachbeuen, aber ich hätte mal ne ganz banale Frage und hoffe ihr könnt 
mir helfen.

Ich habe mir bei Pollin dieses LCD-Display gekauft: LCD-Modul C0802-04; 
Bestellnummer: 120 622. Nun hat dieses aber nur einen 4Bit-Bus zur 
Ansteuerung. Und hier ist diese Schaltung für ein 8Bit-Bus LCD 
ausgelegt.
Wäre es eine grosse Sache das Programm für so ein 4Bit-LCD 
umzuschreiben, wenn nein könnte das vielleicht jemand für mich machen.

Ich verstehe leider noch kein C (bin selber gerade Assembler am 
erlernen).

Vielen Dank im Voraus

Gruss

Michi

von Jens S. (djstorm)


Lesenswert?

Ähm... wird doch bereits mit 4 Bit angesteuert...

von Michael S. (suttermichi)


Lesenswert?

A du hast natürlich Recht!!!

Ich habe mir den Schaltplan nur mal so flüchtig angesehen.
In diesem Fall freue ich mich dass ich diesen Tester jetzt demnächst 
bauen kann!!

Vielen Dank

Michi

von Leo C. (rapid)


Lesenswert?

Das Display, das Du Dir ausgesucht hast, hat aber nur 2 x 8 Zeichen.
Der Transistortester braucht aber 2 x 16 Zeichen.

von Michael S. (suttermichi)


Lesenswert?

Ups jawol dass stimmt dann werde ich mir wohl noch ein anderes LCD 
mitbestellen müssen.

Gruss

Michi

von Stefan V. (vollmars)


Angehängte Dateien:

Lesenswert?

Hallo,

zunächst vielen dank Markus F. für deinen super Tester.
ich habe 2 Probleme mit dem Teil festgestellt:

1. Bei Kurzschluß wird unbek. Bauteil angezeigt.

2. Bei antiparallel geschalteten Dioden wird ein Widerstand angezeigt.

Gruß

Stefan

P.S.: Anbei Foto von meinem Tester

von Hubert G. (hubertg)


Angehängte Dateien:

Lesenswert?

Hallo
Der Tester ist wirklich genial.
Ich habe für einige Funkfreunde, die nichts mit Programmieren und µC am 
Hut haben, aber doch eifrig basteln, einen kleinen Bausatz 
zusammengestellt und den Kontroller programmiert.
Das Ding hat bis jetzt ungeteilte Begeisterung ausgelöst. Auf diesem Weg 
von allen Nutzern ein herzliches Danke an Markus F.

Das Gehäuse ist 100 x 80 x 25

Grüsse Hubert

von nummernschalter (Gast)


Angehängte Dateien:

Lesenswert?

Habe mich nun auch dazu durchgerungen so ein Teil zu bauen. Klappt ganz 
gut. Bei meinem bisherigen "Platinchen" (seinerzeit als Bausatz bei 
Conrad erworben) muß man wissen, welcher Anschluß B,C und E ist. Danke 
für dieses Projekt!

von Simon K. (simon) Benutzerseite


Lesenswert?

Markus F. schrieb:
> Now, I added "waste" characters to some strings, to get them all to the
> same length. These characters are the "€" symbol (ASCII 0x80).
> These characters are then filtered out before sending the data to the
> LCD.
> Now, every .eep file contains 350 bytes of EEPROM data and all strings
> have the same lengths.

Das hätte man aber auch viel einfacher hingekriegt, mit einem Define, 
wie lang die Strings sein sollen, was man dann einfach in der Array 
Deklaration mit angegeben hätte. So ist das aber ganz schön umständlich 
oder nicht?

von Markus F. (5volt) Benutzerseite


Lesenswert?

> Das hätte man aber auch viel einfacher hingekriegt, mit einem Define
> wie lang die Strings sein sollen, was man dann einfach in der Array
> Deklaration mit angegeben hätte.

Das habe ich auch gedacht, nur leider landen Defines im Flash, was 
bedeuten würde, dass man für jede Sprache eine eigene Flash (.hex)-Datei 
brauchen würde.
Wäre ja auch zu schön...

Man könnte höchstens am Anfang des EEPROM eine Tabelle anlegen, in der 
die String-Längen stehen. Diese werden dann beim Programmstart 
ausgelesen.
Das wäre eleganter, kostet aber vermutlich viel mehr Flash als meine 
"Lösung".

von Bernd E. (berecke)


Lesenswert?

Hallo Markus F.,
ich bin so begeistert von dem Projekt, dass ich es mit Boards von myAVR 
(www.myAVR.de) aufgebaut habe. Leider sind die PINs für das LCD-Modul 
anders beschaltete, so dass ich Deine Software an die Gegebenheiten 
angepassen musste. Nun meine Frage: gibt es von Deiner Seite Einwände 
oder Vorgaben zur Veröffentlichung des Projektes im dortigen Forum?
Gruß Bernd

von Zdenek (Gast)


Lesenswert?

Hi,
thanks for new version of software. It's all OK now.
One more THANKS.

von windhund (Gast)


Lesenswert?

hallo,

bin gerade dabei den transistortester nachzubauen,könnte mir jemand 
sagen wie die einschaltung funktioniert und auch die led will nicht so 
richtig leuchten. ist der 27k widerstand zu groß oder wird die led nur 
als referenz benötigt???

vielen dank im vorraus!!!

von Michael B. (planlessmichi)


Lesenswert?

Schau Dir mal im Artikel AVR-Transistortester den Abschnitt mit der 
automatischen Abschaltung an. Da steht, warum dier LED drin ist. Und ja, 
sie ist nicht zum Leuchten da :-)

von windhund (Gast)


Lesenswert?

hallo michael,

vielen dank für deinen hinweis, jetzt ist alles klarer!!!

von Michael K. (heisslot)


Angehängte Dateien:

Lesenswert?

Hallo  Markus F.,

auch von mir vielen Dank für dieses tolle Projekt.
So etwas habe ich schon immer gesucht

Michael

von Thomas Strauß (Gast)


Lesenswert?

Hallo Markus,

interessant wäre auch ein automatischer Kennlinienschreiber mittels 
Mikrocontroller, DAC für die Erzeugung der Basis (bzw. Gate) -Spannung, 
ADC für das Einlesen des als Spannungsabfall gemessenen Kollektor 
(Drain)-Stromes.

Damit könnte man Transistoren bzw. Fets selektieren.

Ich habe so ein Projekt vor.

Gruß Thomas

von Markus F. (5volt) Benutzerseite


Lesenswert?

Ja, so ein Kennlinienschreiber wäre wirklich interessant.
Um die Kennlinie von Transistoren zu ermitteln bringt allerdings ein 
reiner DAC für die Basisspannung nicht viel.
Entscheidend ist ja meist das Verhältnis zwischen Basis- und 
Kollektorstrom.
Die Basisspannung ist natürlich auch noch wichtig, wenn man z.B. 2 
praktisch identische Transistoren selektieren will, z.B. für einen 
Differenzverstärker.
Man könnte z.B. an den DAC eine Pufferstufe anschließen, daran kommt 
dann ein Widerstand, der zur Basis führt.
Die Basis-Spannung kann man per ADC messen.
Aus Basis-Spannung, dem Basis-Vorwiderstand und der DAC-Ausgangsspannung 
kann man dann den Basisstrom berechnen.
Am besten baut man verschiedene Widerstände ein, um Basisströme von so 
10µA...50mA einigermaßen präzise einstellen zu können.

Für den Kollektorstrom sollten auch verschiedene Widerstände vorhanden 
sein, um verschiedene Strombereiche zu haben.
Für kleine Transistoren sind einige 100µA bis ca. 100mA sinnvoll. Wenn 
man mal Leistungstransistoren (z.B. 2N3055 oder Power-MOSFETs) 
selektieren will, wäre auch noch ein hoher Strom von vielleicht 1...2 
Ampere wünschenswert. Diese Strom-Einstellungg sollte aber per Jumper 
o.ä. zuverlässig deaktivierbar sein, um nicht versehentlich 2 Ampere 
über einen BC547 o.ä. zu jagen...

Den fließnenden Kollektorstrom kann man einfach berechnen, indem man per 
ADC den Spannungsabfall am Kollektor-Vorwiderstand misst.

von eku (Gast)


Lesenswert?

Kann der Transistortester sinnvolle Ergebnisse bei Germanium-Halbleitern 
(Schwellspannung 0,3V statt 0,7V) liefern? Habe da noch einige 
rumliegen.

von Markus F. (5volt) Benutzerseite


Lesenswert?

=> eku:
Germanium-Dioden lassen sich damit testen, zumindest hat es bei mir mit 
3 verschiedenen Typen funktioniert.
Ob Germanium-Transistoren gehen weiß ich nicht.
Das Problem könnte sein, dass sie einen recht hohen Leckstrom haben und 
damit evtl. als JFET o.ä. erkannt werden.
Getestet habe ich es aber nicht, weil ich keine Germanium-Transistoren 
habe.

von eku (Gast)


Lesenswert?

Hallo Markus!

Markus F. schrieb:
> => eku:
>
> Germanium-Dioden lassen sich damit testen, zumindest hat es bei mir mit
>
> 3 verschiedenen Typen funktioniert.
>
> Ob Germanium-Transistoren gehen weiß ich nicht.
>
> Das Problem könnte sein, dass sie einen recht hohen Leckstrom haben und
>
> damit evtl. als JFET o.ä. erkannt werden.
>
> Getestet habe ich es aber nicht, weil ich keine Germanium-Transistoren
>
> habe.

So, nun habe ich letztes Wochende Schaltplan, Leiterplatte und Sourcdode 
überarbeitet und mir einen Transistortester gebaut. Ich verwende die 
UART des ATmega8 und eigene LCD-Routinen. So konnte ich das Layout auf 
einfachste Leiterführung optimieren. Den Rest macht dann die Software.

Darf eigentlich jeder im SVN des Projektes Dateien ablegen? Würde gerne 
meine Version der Allgemeinheit zur Verfügung stellen.

Dei Tests mit den Germanium-Halbleitern mache ich nächstes Wochenende 
und werde die Ergebnisse hier veröffentlichen.

von Kluchscheißernder N. (kluchscheisser)


Lesenswert?

eku schrieb:

> So, nun habe ich letztes Wochende Schaltplan, Leiterplatte und Sourcdode
> überarbeitet und mir einen Transistortester gebaut. Ich verwende die
> UART des ATmega8 und eigene LCD-Routinen. So konnte ich das Layout auf
> einfachste Leiterführung optimieren.

Einfachste Leiterführung ist immer ein gutes Argument.

> Den Rest macht dann die Software.
>
> Darf eigentlich jeder im SVN des Projektes Dateien ablegen? Würde gerne
> meine Version der Allgemeinheit zur Verfügung stellen.

Was spricht dagegen, Deine Variante (auch) hier zu veröffentlichen?

von Dimi (Gast)


Lesenswert?

Guten Tag,

ich habe 2 Fragen:

1. Habe ganzen Thread gelesen aber nicht gefunden: wenn ich ATMega88 
verwende, soll die Firmware geändert werden (interne Referenzspannung 
bei M88 ist kleiner).

2. Markus-F, darf ich diese Projekt auf meine Internetseite (auf 
russisch) veröffentlichen?


MfG aus Westerwald

von Leo C. (rapid)


Lesenswert?

Dimi schrieb:

> 1. Habe ganzen Thread gelesen aber nicht gefunden: wenn ich ATMega88
> verwende, soll die Firmware geändert werden (interne Referenzspannung
> bei M88 ist kleiner).

Firmware ändern reicht nicht. Dazu habe ich hier was geschrieben:
Beitrag "Re: Transistortester mit AVR"

von Markus F. (5volt) Benutzerseite


Lesenswert?

Dimi schreib:
> ich habe 2 Fragen:

> 1. Habe ganzen Thread gelesen aber nicht gefunden: wenn ich ATMega88
> verwende, soll die Firmware geändert werden (interne Referenzspannung
> bei M88 ist kleiner).
Am einfachsten ist es, die Firmware nicht zu ändern und stattdessen für 
R11 einen 27k-Widerstand einzusetzen.

> 2. Markus-F, darf ich diese Projekt auf meine Internetseite (auf
> russisch) veröffentlichen?
Ja, gerne!

von eku (Gast)


Angehängte Dateien:

Lesenswert?

Kluchscheißender Kluchscheißer schrieb:
>
> Was spricht dagegen, Deine Variante (auch) hier zu veröffentlichen?

Hier schon mal meine Schaltung und die Platine. Als Anzeige kommt ein 
LCD 16x2 von Pollin (tc1602e-01, VCC-GND vertauscht) zu Einsatz. Die 
Hintergrundbeleuchtung liegt nicht auf dem Pfostenverbinder, daher die 
Lötaugen am oberne Ende der Platine.

von eku (Gast)


Lesenswert?

Markus F. schrieb:
> Germanium-Dioden lassen sich damit testen, zumindest hat es bei mir mit
> 3 verschiedenen Typen funktioniert.

Konnte ich nachstellen. Funktioniert.

> Ob Germanium-Transistoren gehen weiß ich nicht.
> Das Problem könnte sein, dass sie einen recht hohen Leckstrom haben und
> damit evtl. als JFET o.ä. erkannt werden.

Genau so ist es, wenn auch nicht bei allen Typen aus meiner Bastelkiste. 
Hat jemand eine Idee, mit welchem Testalgorithmus dies herausfinden 
könnte? Ein bisschen Platz ist ja noch im Flash.

Und da kommt gleich die nächste Frage. Wie geht man bei Transistoren mit 
4 Anschlüssen vor? Ich weiß nur noch, dass es Dual-Gate-Fets sind.

von Steyr CVT (Gast)


Lesenswert?

Hallo,
Ich habe den Transistortester aufgebaut, und wen ich einen Transistor 
teste dan zeigt das Display ´´Bauteil unbek. oder Defekt´´.
Bitte um Hilfe

von be-cool (Gast)


Lesenswert?

Hallo zusammen,
ich habe mir heute den Transistortester von Markus gebaut. Leider habe 
ich ein Problem. Das Display zeigt Müll an, z.B. nach dem Einschalten 
kommt: Test läuft, dann wird gelöscht und mit angeklemmten Transistor 
erscheint: =2=13
in der Zeile 2 steht dann: =223    770m
Es deutet sich ein Problem mit dem eep.file an. Ich habe die Files in 
Bascom geladen und damit programmiert. Hat jemand ähnliches schon mal 
gehabt? Ich habe schon stundenlang gegoogelt, aber ich bin noch nicht so 
richtig schlau geworden, wie das epp.file erzeugt wird. Den Sourcecode 
in c kann ich mangels know how nicht compilieren. Habe die Files aus dem 
SVN geholt.

von be-cool (Gast)


Lesenswert?

Hallo noch mal,
kann mir vielleicht jemand das epp.file ins Intel-Hex-Format umwandeln? 
Das sollte sich beim compilieren einstellen lassen. Das könnte für mich 
ein neuer Lösungsansatz sein. Danke im voraus.

von Michael B. (planlessmichi)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

auch von mir ein dickes Lob an Markus. Tolles Projekt!!

Seit einigen Wochen - wenn nicht sogar Monaten - spiele ich mit dem 
Gedanken, das Teil nachzubauen. Nachdem mein Messgerät jetzt langsam den 
Geist aufgibt und das neue keinen Transistortester mehr hat, habe ich 
mich jetz doch mal drangesetzt.
Hauptproblem war - wie immer - ein passendes Gehäuse zu finden, dass 
nicht zu groß ist. Als ich dann bei Pollin die kleinen LCDs gesehen 
habe, konnte ich endlich loslegen :-)
Für den Fall, dass es jemand nachbauen will: Im Anhang findet Ihr alle 
benötigten Dateien für die Platine. Wer will, kann sich gerne noch was 
mit der Target-Datei spielen; ich habe einige Brücken drin, die mir 
selbst nicht gefallen, aber am Ende doch egal waren (wollte das Teil 
endlich fertig haben :-)) Ich wollte halt unbedingt die Belegung der 
Anschlüsse
beibehalten, damit man die SW nicht umschreiben muss.

Die Stückliste, wo welche Teile herkommen (außer dem normalen 
Kleinzeug), ist auch dabei.

Für diejenigen, die jetzt nicht mit Target 3001 arbeiten, das Layout 
aber trotzdem umgestalten wollen... Unter:
http://www.target-3001.de/target/v14/deutsch/tarv14viewer_d.exe
und
http://www.target-3001.de/target/v14/deutsch/discover/target3001_discoverd_v14.exe
gibt es kostenlose Viewer, bzw. "Einsteigerversionen"; aber die kennt ja 
vermutlich schon jeder :-)
Für diejenigen, die es nur nachbauen wollen, sind entsprechende PDFs mit 
dabei.

Also nochmals: Markus, vielen Dank. Bin echt begeistert; das Teil 
funktioniert einwandfrei :-)

von Markus F. (5volt) Benutzerseite


Lesenswert?

Steyr CVT schrieb:
> Hallo,
> Ich habe den Transistortester aufgebaut, und wen ich einen Transistor
> teste dan zeigt das Display ´´Bauteil unbek. oder Defekt´´.
Vielleicht sind die Widerstände (die 680 Ohm und 470kOhm) irgendwie 
nicht korrekt angeschlossen, oder die Leitungen von den Test-Anschlüssen 
zu den ADCs sind unterbrochen oder vertauscht.
Jedenfalls dürfte der Fehler irgendwo bei diesen Widerständen oder bei 
den ADCs liegen. Die Betriebsspannung scheint ja ok zu sein, die 
Firmware und das LCD auch.


be-cool schrieb:
> kann mir vielleicht jemand das epp.file ins Intel-Hex-Format umwandeln?
Das Format ist Intel Hex, nur die Datei-Erweiterung ist "eep".
Wenn du willst, kannst du die aber einfach in "hex" ändern. Vielleicht 
kommt Bascom ja mit der Erweiterung ".eep" nicht klar.


An alle:
Vielen Dank für das viele Lob und die Verbesserungsvorschläge an diesem 
Projekt. Ich hätte wirklich nicht erwartet, dass dieses Projekt so eine 
Begeisterung auslöst ;)

von be-cool (Gast)


Lesenswert?

Markus, danke für die schnelle Antwort. Werde es heute nach Feierabend 
noch mal probieren.
Ist übrigens 'ne gute Leistung von Dir. Programmieren können ja viele 
hier im Forum, aber die ganzen technischen Zusammenhänge zu 
implementieren ist schon was ganz besonderes.
Danke für dieses Projekt

von be-cool (Gast)


Angehängte Dateien:

Lesenswert?

Ich bin es noch mal, jetzt funktioniert alles (siehe Bild). Der 
Knackpunkt war, das Bascom zwar eep-Dateien brennt, aber es wird 
irgendwas gebrannt und dann auch noch mit "verified ok" bezeichnet. Das 
LCD zeigte dadurch nur Müll. Nachdem ich die Datei in .hex umbenannt 
habe und neu gebrannt habe funktionierte alles richtig gut. Ist 
vielleicht ein Tipp für alle die Probleme beim Brennen haben. Gibt ja 
bestimmt noch ein paar mehr Leute, die Bascom verwenden.

von Steyr CVT (Gast)


Lesenswert?

@  Markus F.
Danke für die Antwort, ich werde morgen nach der Schule noch mal alles 
überprüfen !!

von Reiti (Gast)


Lesenswert?

Ja ich zum Beispiel, hatte unter Bascom den gleichen Fehler. Danke für 
den Tipp be-cool, darauf wäre ich nicht gekommen. Ansosnten ein super 
Projekt, da muss man ja zum Lötkolben greife! An dieser Stelle mein Dank 
an Markus.

von Steyr CVT (Gast)


Lesenswert?

Hallo,
ich habe jetz mochmal alles überprüft und keinen Fehler gefunden.
Aber wen ich dei eep Datei Brenne kommt eine Fehlermeldung kan das 
Proplem auch daran liegen ?

von olli (Gast)


Lesenswert?

Ich habe das Teil nachgebaut und bin total begeistert. Riesen Dank an 
Marcus F.. Ich habe so glaube ich einen kleinen Bug gefunden. Bei der 
Widerstandsmessung mit einem 15 Ohm Widerstand werden bei mir 156 Ohm 
angezeigt. Vieleicht habe ich auch nur eine etwas ältere Firmware 
erwischt. (12.04.10 glaub ich)
Weiterhin hab ich noch eine Frage: Bis zu welcher Kapazität kann man 
Elko´s relativ genau messen?
Macht alle bitte weiter so an dem schon fast genialen Projekt.
Danke olli

von Michael B. (planlessmichi)


Lesenswert?

@olli:
Also ich habe eben einen 15Ohm gemessen und bekomme auch überall (1-2, 
2-3, 1-3) 15 Ohm angezeigt. Meine FW habe ich am 22.5.2010 hier im 
Artikel runtergeladen; Deine (12.04.) ist jetzt aber auch nicht gerade 
alt...

Was für Messwiderstände (R1-R6) benutzt Du denn? Vielleicht passen die 
nicht genau? Ich arbeite mit 1%-Teilen; wenn Du jetzt normale 
Kohleschicht mit 10 oder gar 20 % hast, dürfte das eher daran liegen...

von olli (Gast)


Lesenswert?

danke für die schnelle Antwort. Klingt logisch.Ich werde die Widerstände 
am Wochenende mal wechseln. Mich hat nur stutzig gemacht, das der 
Transistortester 156 Ohm anzeigt und mein Fluke-Multimeter 15,6 Ohm.

von Jamal (Gast)


Lesenswert?

Hi Markus,
I made this tester, but i have a problem with the programation of the 
atmega8, i use PONYPROG and i can't program the eeprom file in the 
divice??.
I need olso to know how to set the configuration bits in PONYPROG.

A screenshot for this can help me.

Thanks a lot

Jamal

von Dieter S. (dolivo)


Lesenswert?

Hello.
I know this problem. Show this:
Ich habe das jetzt so gelöst: Nach verschiedenen Versuchen habe ich
mitbekommen, dass bei Ponyprog das EEPROM ab Adresse 2000 beginnt. Ich
habe mit einem Editor die *.eep-Datei einfach in die *.hex-Datei dorthin
geschrieben und jetzt bin ich glücklicher Besitzer des
Transistortesters. Vielen Dank für die Hilfe.
Beitrag "Re: Transistortester mit AVR"

von Jamal (Gast)


Lesenswert?

Hi DIETER,

Thanks for your answer.

If i understand, i have just to edit the Flash file and add the eeprom 
file from Addres 2000.

Jamal

von Jamal (Gast)


Lesenswert?

For Dieter again,

I tried five HEX editors, without succes, can you place hier the 
combined HEX file(flash+eeprom) to put in the Atmega8.

Thanks

von Jamal (Gast)


Lesenswert?

No need, I found the solution in PONYPROG!

Just upload the flash file and then upload the eeprom file, wich appears 
on the PONYPROG interface after the flash file from line 2000.

In the command menu use: WRITE ALL.

That's all and it's working very fine!

Thanks,

Jamal

von Dieter S. (dolivo)


Lesenswert?

Hi, Jamal,
I know my explanation was very short, but my English is poor. I'm glad, 
that it works now .
dolivo

von Klaus (Gast)


Lesenswert?

Ich möchte mir das Teil auch aufbauen. Kennt Ihr eine Möglichkeit die 
Eagledateien in Sprintlayout-Dateien umzuwandeln? Oder hat jemand von 
euch evtl. ein Platinenlayout für den Tester mit Sprint-Layout entworfen 
und könnte es hier rein stellen?
Ich komme leider nicht mit eagle klar und möchte das Layout für das LCD 
Modul 1602A abändern.

von mkburkersdorf (Gast)


Angehängte Dateien:

Lesenswert?

Anbei das Sprint-Layout des Transistortesters.

Manfred

von Andreas (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe auch ein Layout für Sprintlayout anzubieten. Testfassung und 
Taster sitzen huckepack auf dem Controllerboard.

von Erwin U. (Firma: privat) (eunger)


Lesenswert?

Hallo!

Ich habe mir das Programm auf mein Atmega8-Board geladen, das läuft 
allerdings mit 8 MHz. Ich habe das Programm mit dem define F_CPU=8000000 
kompiliert, dann geht das LCD-Display, und ich kann messen. NPN wird 
beispielsweise erkannt. Allerdings werden Kapazitäten ca. mit dem Faktor 
8-10 gemessen, und statt Widerständen erkennt das Programm eine winzig 
kleine Kapazität.

Ich habe den Thread durchsucht, dazu aber nichts gefunden, daher die 
Frage: Geht das Programm auch mit 8 MHz, oder gibt es irgendwo 
Zeitschleifen, die anzupassen sind. Oder ist das Programm einfach auf 1 
MHz ausgelegt?

Danke für die Antwort!

von eku (Gast)


Lesenswert?

Erwin Unger schrieb:
> Geht das Programm auch mit 8 MHz, oder gibt es irgendwo
> Zeitschleifen, die anzupassen sind. Oder ist das Programm einfach auf 1
> MHz ausgelegt?

Überall wo in main.c der Text "Schleife dauert 7 Zyklen" steht, ist 
diese Schleife für 1MHz berechnet. Daher der Messfehler bei 8MHz.

von Kluchscheißernder N. (kluchscheisser)


Lesenswert?

Ist es denn wirklich sooooo viel Aufwand, den Mega8 für dieses Projekt 
mit 1 MHz (auslieferungszustand) laufen zu lassen?

MfG

von Erwin U. (Firma: privat) (eunger)


Lesenswert?

Kluchscheißender Consulter schrieb:
> Ist es denn wirklich sooooo viel Aufwand, den Mega8 für dieses Projekt
> mit 1 MHz (auslieferungszustand) laufen zu lassen?

Nein natürlich nicht. Da ich nur auch die delay-Funktion gefunden habe 
(da ja das define korrekt auswertet), war ich einfach nur nicht sicher, 
ob es an der Taktfrequenz liegt, dass ich falsche Ergebnisse habe.

eku schrieb:
> Überall wo in main.c der Text "Schleife dauert 7 Zyklen" steht, ist
> diese Schleife für 1MHz berechnet. Daher der Messfehler bei 8MHz.

Habe mir die Schleifen angeschaut, die auf Auswertung des defines für 
die Taktfrequenz umzustellen, ist nicht so einfach, sonst hätte ich 
gerne da bei dem Projekt weitergeholfen, aber das traue ich mir nicht 
zu.

In Summe: danke für die Antworten, werde den Tester mit 1 MHz aufbauen. 
Finde das Projekt wirklich toll.

von maddin (Gast)


Lesenswert?


von Alex H. (hoal) Benutzerseite


Lesenswert?


von ollisat (Gast)


Angehängte Dateien:

Lesenswert?

Danke für das Projekt. Habe den Tester auch aufgebaut. Nie war Messen so 
einfach....
Für alle die ihn auch nachbauen wollen, stelle ich die Platine als PDF 
und Sprintlayout mit ein.
Die Platine ist SMD-Frei.

von Eberl Florian (Gast)


Lesenswert?

Hi,

ich hab deinen Tester nachgebaut und ich muss sagen: Respekt!
Super einfach und zugleich noch wahnsinnig vielseitig.

Zwischen 2 und 3 misst meiner aber bei einer Diode einen Widerstand. Bei 
anderen Kombinationen nicht. Ist das normal? Was hab ich falsch gemacht?

Mfg,
Flo

von Markus F. (5volt) Benutzerseite


Lesenswert?

=> Eberl Florian:
Probiere es mal mit der aktuellsten Firmware 
(http://www.mikrocontroller.net/attachment/75033/AVR-Transistortester.zip).
Die aus dem Artikel ist nämlich schon etwas älter, ich aktualisiere den 
Artikel demnächst mal wieder.
Zumindest mit der neuesten Firmware sollte der Fehler bei der 
Dioden-Erkennung nämlich nicht passieren. Falls doch, ist vermutlich 
irgendwas an der Hardware nicht ok.

von Michael B. (planlessmichi)


Lesenswert?

Hallo Markus,

was hältst Du von der Idee, beim Teststart in der zweiten Zeile - die ja 
leer ist, wenn in der ersten "Test läuft..." steht - noch die 
Versionsnummer und / oder Versiosdatum einzublenden?

Die von Dir eben beigefügte Datei war nämlich neuer als die bei mir 
aufgespielte und so könnte man das noch vor einem Update leicht 
überprüfen (Oh, Version x.y; und was habe ich drauf? Ah, Update :-))
Einen Binärvergleich der Hex-/EEP-Dateien kann man zwar leicht machen, 
aber welche von beiden dann neuer ist, sieht man dann vermutlich auch 
nicht.

Viele Grüße,
Michael.

von Markus F. (5volt) Benutzerseite


Lesenswert?

Michael B. schrieb:
> was hältst Du von der Idee, beim Teststart in der zweiten Zeile - die ja
> leer ist, wenn in der ersten "Test läuft..." steht - noch die
> Versionsnummer und / oder Versiosdatum einzublenden?

Das ist eine gute Idee. Das werde ich einbauen, und dann den Artikel 
auch wieder auf den "neuesten Stand" bringen.

von Eberl Florian (Gast)


Lesenswert?

Markus F. schrieb:
> => Eberl Florian:
> Probiere es mal mit der aktuellsten Firmware
> (http://www.mikrocontroller.net/attachment/75033/AV...).
> Die aus dem Artikel ist nämlich schon etwas älter, ich aktualisiere den
> Artikel demnächst mal wieder.
> Zumindest mit der neuesten Firmware sollte der Fehler bei der
> Dioden-Erkennung nämlich nicht passieren. Falls doch, ist vermutlich
> irgendwas an der Hardware nicht ok.


ok, danke. Das wars. Die Firmware hab ich mir natürlich direkt aus dem 
Artikel gezogen.

von DerTi (Gast)


Lesenswert?

Was der DCA kann und dieser Tester nicht:

Leckstrom von Transistoren. Dieser ist bei Germaniumtransistoren sehr 
sehr wichtig !!!

von Alexander S. (esko) Benutzerseite


Lesenswert?

DerTi schrieb:
> Dieser ist bei Germaniumtransistoren sehr sehr wichtig !!!

Nur Germaniumtransistoren sind heutzutage nicht mehr wichtig.

von DerTi (Gast)


Lesenswert?

Und meistens braucht man e nur wechselstrom. Warum werden Messgeräte für 
Gleichstrom gebaut????  -> Währe die gleiche Frage

Germaniumtransistoren sind vor allem für Gitarreneffektgeräte sehr gern 
verwendete Transistoren. Wenn man den Leckstrom vom HFE nicht 
gegenrechnet, dann stimmt der HFE nicht. Über einem gewissen Leckstrom 
sind die Transistoren gar nicht zu gebrauchen.


Ausserdem: Wenn man etwas altes herichten möchtet, dann bin ich mal 
gespannt, wie du ein komplettes Germanium Design in Silizium umbauen 
möchtest.

von Mathias B. (bzzz)


Lesenswert?

Hi :)
Ohne Studium des gesamten Threads und nur mit kleiner 
Schaltplanübersicht mal frei heraus eine Frage:

Meine ganzen jetzigen und künftigen Messspielzeuge möchte ich via USB 
versorgen, dem ganzen Kram mit Batterie hier, Netzteil da, hier ne 
Buchse, da ne andere, dort ne neue Spannung, ..., kann ich nix 
abgewinnen. Was spricht dagegen, den Transistortester rein auf 5V 
Versorgungsspannung aufzubauen?

Laut Schaltplan hängt an den +9V ja der 7805 dran, der ohnehin 5V +- n 
bisschen was an VCC des Atmegas gibt. Der Atmega 8L selbst läuft laut 
Datenblatt mit 2,7...5,5V. Schonmal prima (bitte korrigieren, wenn ich 
was übersehe!). PC5 schnappt sich über nen Spannungsteiler auch noch 
grob 2,2V, das wäre mit 5V-Versorgung bei geänderten Widerständen auch 
kein Problem. PC6 hängt über einen 10kOhm-Widerstand ohnehin an den 5V 
des 7805. Das Display hängt ebenfalls daran.

...also sehe ich nirgendwo die Notwendigkeit auf 9V Versorgungsspannung 
zu bauen. Ja? Nein?
Andererseits gabs gegen 21. Nov 09 mal die Bedenken, dass es eher 6V 
sein sollten. Ist das "noch" aktuell, oder ist das ne Sache der 
Belastbarkeit der Spannungsversorgung, die bei nem 2A-USB-Hub ja 
sicherlich weniger das Problem ist?

Besten Dank :)

von Alex222 (Gast)


Lesenswert?

Hey  Mathias B,

die ganze Schaltung läuft mit 5V. Damit der 7805 seine 5V stabil regeln 
kann, braucht dieser ca +2-3V mehr. Also ca 7-8V Eingangsspannung.

Wenn du eh den 5V USB Hub als Stromversorgung nehmen willst, dann würde 
ich alles rausschmeißen, was unnötig ist.

Der 7805, die "Einschalt"-beschaltung, den Spannungsteiler für die 
Batterieversorgung etc. Dann noch im Quellcode alles anpassen und fertig 
ist der USB-Transistortester. Die Abschaltautomatik würde ich auch aus 
dem Quellcode werfen.

von Markus F. (5volt) Benutzerseite


Lesenswert?

Wenn man den Spannungsteiler für die Batterie-Versorgung rausschmeißt, 
dann muss auch der ADC-Pin (Pin 28) fest auf 5V gelegt werden.
Damit meint der Tester immer, die "Batterie" wäre voll. Sonst kann es 
sein, dass der mit der Meldung "Batterie leer" gleich wieder abschaltet.

Ohne Spannungsregler und Abschalt-Automatik müsste der Tester auch mit 
den 5V vom USB prima laufen.
Der einzige Nachteil ist, dass USB nicht wirklich exakt 5V liefert, es 
können auch mal 5,7V oder 5,3V sein. Damit werden eben manche Messungen 
(z.B. Dioden-Durchlassspannung) ungenauer. Meistens stört das aber 
nicht.

von Mathias B. (bzzz)


Lesenswert?

Hi,
@Alex: Danke für die Doppelantwort :)
Ist natürlich klar, dass der 7805 dann weder läuft noch gebraucht wird. 
Von der Schaltung bleibt da echt nicht mehr viel übrig...zwei Kondis, 
neun Widerstände, der Atmega und das Display...
Alle Stromsparfeatures fliegen ebenso raus, warum auch hier und da ein 
mW sparen bei Netzbetrieb.


@Markus: Geht klar. Spart auch wieder Bauteile und Platz g

Ich habs eben mal bei meinem Hub nachgemessen, und auch bei meinem 
Laptop-Netzeil, das mir eigentlich meine RGB-Beleuchtung befeuert (das 
bietet zwei Anschlüsse, einen davon kann man auch mit nem USB-Adapter 
als 1A-Quelle nutzen).
Leerlaufspannung liegt beide Male bei etwa 5,2V, damit hatte ich bei der 
Dimensionierung des Vorwiderstands für die Displaybeleuchtung schon als 
obere Grenze gerechnet...untere war 4,8V.

Bei 0,4A Belastung sinken beide allerdings schon recht stark ab, das 
Hubnetzteil gurkt noch bei 4,5V, das andere eher bei 4,3V rum. Bei 
Belastung von etwas über nem Ampere geht dann auch das Hubnetzteil in 
die Knie und hat noch 3,5V. Nun wird der Transistortester selbst mit 
Displaybeleuchtung kaum in solche Regionen kommen (Imax sind dort afaik 
220mA), aber wenn mal alles zusammen in Betrieb ist, sollte ich das 
vielleicht bedenken. Oder mir noch ein extrastarkes USB-Netzteil bauen 
;)
(vielleicht so als zusätzliche DC-DC-Einheit, das Lappinetzteil würde 
90W bringen, die ich derzeit eh nicht mittels LEDs verbraten kann)

Wo könnte so die untere Schmerzgrenze liegen?

von Markus F. (5volt) Benutzerseite


Lesenswert?

> Wo könnte so die untere Schmerzgrenze liegen?
Das hängt davon ab, wie genau die Messungen sein sollen...
Die Messung von allen Spannungen (also Dioden-Durchlassspannung und 
Transistor-Schwellspannung) ist auf jeden Fall 
betriebsspannungsabhängig:
Also wenn eine Diode 0,75V Flussspannung hat, dann zeigt der Tester ca. 
1V Flussspannung an, wenn die Versorgungsspannung vom Tester 4V statt 
der "korrekten" 5V ist.
Und manche Leistungs-MOSFETs brauchen zum Teil 4...5V Gatespannung, um 
überhaupt etwas durchzuschalten und damit vom Tester erkannt zu werden.
Bipolar-Transistoren und Logik-Level-FETs müsste man aber auch mit 
geringer Betriebsspannung noch problemlos erkennen können.

Das Problem ist eher, dass die meisten HD44780-LCDs unter ca. 4...4,5V 
nicht mehr ablesbar sind, weil die Kontrastspannung zu niedrig wird.
Also das Display lässt sich problemlos weiterhin ansteuern (das geht 
auch mit 3,3V noch), aber man sieht halt die angezeigten Zeichen nicht 
mehr.
Das geht nur, wenn man an den Kontrastspannungs-Anschluss eine Spannung 
anlegt, die etwas unter GND liegt (z.B. -2V). Eben so, dass das LCD gut 
ablesbar ist.

von Winfried DC0VD (Gast) (Gast)


Lesenswert?

Hallo allerseits,

durch einen Link im qrpforum.de (Amateurfunk) wurde ich auf diesen 
Transistortester aufmerksam. Das wäre eine große Bereicherung meines 
kleinen Messparks!
Ist auch der Atmega 8L8 DIP (Low Power?) hierfür geeignet?
Wenn ja, eine ganz bescheidene Frage: Könnte mir jemand diesen Atmega 
8L8 programmieren? (Ich will nicht groß in die Atmegaprogrammierung 
einsteigen) Ich möchte mir die vereinfachte Version - ohne automatische 
Abschaltung - auf Lochrasterplatine aufbauen. Bei den wenigen Bauteilen 
wohl kein Problem.


Gruß in die große Runde

Winfried

von Hubert G. (hubertg)


Lesenswert?

Wenn es dir aus Österreich nicht zu teuer ist.
Schau mal auf www.schorsch.at

von Mathias B. (bzzz)


Lesenswert?

Hi,

@Markus: Flussspannungen ausmessen ist jetzt nicht so mein primäres 
Interesse, ebenso Leistungsmosfets. Andererseits dürfte die Sache ja 
tatsächlich mit einer belastbaren Stromquelle gelöst sein, wenns 
wirklich mal hoch hergeht. Das ist momentan noch nicht der Fall, aber 
ich werds mir merken.

Das mit dem Displaykontrast wird man ebenfalls ausprobieren müssen, da 
ich bisher noch gar nicht mit Displays gearbeitet hab, und demnach auch 
keine Vergleichswerte kenne (und auch keins zum Testen da hab!). Auch da 
natürlich: Je stabiler man bei den 5V ist, desto problemloser. Ich sehs 
schon, irgendwann kreuz ich hier auf und such nach ner Netzteillösung, 
mit der man auch den kompletten Handypark einer mittelgroßen Firma 
zeitgleich laden könnte ;D


@Winfried: Den Atmega 8L8 hatte ich auch vorgesehen, der müsste passen. 
Kommt mit einem größeren Spannungsbereich aus als der 16er, taktet aber 
eben auch nur mit bis zu 8 MHz. Hier kein Ding, da man den 16er wohl 
ohnehin bremsen oder Veränderungen am Skript vornehmen müsste.

Was die Programmierung betrifft: Sofern du irgendwo noch auf einen 
nativen Parallelport zugreifen kannst, kommt dich der einfachste 
Programmer rein von den Bauteilkosten her auch kaum teurer als 1x Porto. 
Solltest du einfach bedenken, aber wenn dus natürlich fertig haben 
möchtest, wird sich wohl auch jemand dafür finden. Oder du nimmst die 
Schorsch-Version.

von Hubert G. (hubertg)


Lesenswert?

Sollte jemand einen ATmega8A verwenden, dann nicht vergessen die 
Faktoren für die Kapazitätsmessung anpassen. Bei mir waren die 
notwendigen Werte weit neben den Standardwerten.
unsigned int H_CAPACITY_FACTOR EEMEM = 250;
unsigned int L_CAPACITY_FACTOR EEMEM = 172;

von GermaniumFreak (Gast)


Lesenswert?

Leckstromberechnung währe wirklich eine Bereicherung dieses Projektes.

von Kluchscheißernder N. (kluchscheisser)


Lesenswert?

GermaniumFreak schrieb:
> Leckstromberechnung währe wirklich eine Bereicherung dieses Projektes.

Dann bau' es doch bitte ein. Oder benutze die Messmittel, die zur 
Germanium-Zeit aktuell waren.

MfG


P.S.: Ich gehe davon aus, dass Du den Leckstrom nicht berechnet,
sondern gemessen haben willst. ^^

von Vasya (Gast)


Lesenswert?

hubertg
bei mir auf ATMega8A die Kapazitäten misst in 1,5 Male grösser.
Du kannst das korrigierte Durchnähen ausstellen?

von Hubert G. (hubertg)


Lesenswert?

Das sind meine Werte:
unsigned int H_CAPACITY_FACTOR EEMEM = 250;
unsigned int L_CAPACITY_FACTOR EEMEM = 172;

von Vasya (Gast)


Lesenswert?

Ich kenne wo und, wie zu tauschen, deshalb nicht und ich bitte das 
fertige Durchnähen.

von Hubert G. (hubertg)


Lesenswert?

In welcher Sprache soll ich es machen, es gibt:
/*  Sprache
  GERMAN = deutsch
  ENGLISH = englisch
  POLISH = polnisch
  CZECH = tschechisch
  SLOVAK = slowakisch
*/

von Vasya (Gast)


Lesenswert?

ENGLISH = englisch
Am besten auf der englischen Sprache. Danke für die Hilfe.

von Hubert G. (hubertg)


Angehängte Dateien:

Lesenswert?

Version in English für ATmega8A

von Vasya (Gast)


Lesenswert?

Danke. Morgen werde ich erproben eben ich werde schreiben.

von Vasya (Gast)


Angehängte Dateien:

Lesenswert?

Heute hat - das Ergebnis selb der Kapazität in 1,5 Male grösser geprüft. 
FuseBits(PonyProg) wie auf der Zeichnung.

von Hubert G. (hubertg)


Angehängte Dateien:

Lesenswert?

Es tut mir leid, ich habe die falschen Files gepackt.
Das sollten jetzt die richtigen sein.

von Vasya (Gast)


Lesenswert?

Hubert, aller hat verdient!!! Danke für das korrigierte Durchnähen!!!
Aber ich habe in als den Unterschied ATMega8 von ATMega8A nicht 
verstanden?

von Hubert G. (hubertg)


Lesenswert?

Der Unterschied zwischen ATmega8 und ATmega8A ist nur in den "Electrical 
Characteristics"
Aus diesem Grund müssen die Korrekturwerte für die Kapazitäts-Messung 
unterschiedlich angepasst werden.

von Uwe (Gast)


Lesenswert?

Hallo !

ich habe heute die Platinen aus dem Artikel

Beitrag "Re: Transistortester mit AVR"

erhalten und mache mich dann das WE ans aufbauen !

Bin mal gespannt, wie der "Transistortester mit AVR" läuft.

Bei Bedarf kann ich noch eine Platine abgeben, FR4, einseitig, chemisch 
verzinnt.

von Peter Z. (flexopete)


Lesenswert?

Moin Uwe,

wäre an der Platine interessiert.

Gruß
Peter

von Uwe (Gast)


Lesenswert?

Hallo Peter,

mein Login geht leider nicht mehr und auch das ändern des PW schlägt 
fehl.

Bitte benutze diesen Link zur Kontaktaufnahme:

http://fa-nwt.akadns.de/blogs/email/index.php?s=Transistortester%20mit%20AVR

Danke.

von Profi (Gast)


Lesenswert?

Ist jetzt schon die Leckstrommessung mit drinnen, damit man mit dem 
DCA55 mithalten kann?

von Max M. (computerzoo)


Angehängte Dateien:

Lesenswert?

Moin moin,
auch ich habe mir gestern die Zeit genommen den Tester einmal 
aufzubauen. Bei der Suche nach einem passenden Display vielen mir diese 
Mini-LCDs von Pollin in die Hände. Da ich auch schon einen RC5-Tester 
gebaut habe, kam mir die Idee beide Tester in einem Gehäuse 
unterzubringen.
Herausgekommen ist dann dieses kleine Gerät auf dem Bild. Ich habe 
danach gleich angefangen die verschiedensten Bauteile durchzutesten. Bis 
auf wenige Ausnahmen wurde jedes Bauteil korrekt erkannt, wobei ich 
manchmal schon die Anschlüsse einmal durchtauschen musste, um ein 
brauchbares Ergebnis zu bekommen.
Macht weiter so!

von Hc Z. (mizch)


Lesenswert?

Profi schrieb:
> Ist jetzt schon die Leckstrommessung mit drinnen,

Könntest Du vielleicht aufhören, unter verschiedenen Pseudonymen nach 
Deiner Leckstrommessung zu quengeln?  Du führst Dich auf wie ein Kind im 
Supermarkt, das seinen Schokoriegel nicht bekommt.

Du hast den Source, bau's ein.

von DerdaOben (Gast)


Lesenswert?

Hc Zimmerer schrieb:
> Profi schrieb:
>> Ist jetzt schon die Leckstrommessung mit drinnen,
>
> Könntest Du vielleicht aufhören, unter verschiedenen Pseudonymen nach
> Deiner Leckstrommessung zu quengeln?  Du führst Dich auf wie ein Kind im
> Supermarkt, das seinen Schokoriegel nicht bekommt.
>
> Du hast den Source, bau's ein.

Vielleicht kann der ja garnicht programmieren. Schon mal daran gedacht?
Leckstrom währe wirklich nicht schlecht. Aber ob das ohne Referenz so 
einfach möglich ist, möchte ich mal bezweifeln. Dazu müssten schon 
mehrere Kalibrierwerte abgespeichert werden.

von Hc Z. (mizch)


Lesenswert?

Ein neuer Gast, und auch dieser schreibt „wäre“ mit h.

von DerdaOben (Gast)


Lesenswert?

Gäste leicht unerwünscht?

von Kluchscheißernder N. (kluchscheisser)


Lesenswert?

DerdaOben schrieb:
> Hc Zimmerer schrieb:
>> Profi schrieb:

Also Du selbst schriebst:

>>> Ist jetzt schon die Leckstrommessung mit drinnen,
>>
>> Könntest Du vielleicht aufhören, unter verschiedenen Pseudonymen nach
>> Deiner Leckstrommessung zu quengeln?  Du führst Dich auf wie ein Kind im
>> Supermarkt, das seinen Schokoriegel nicht bekommt.

Da hat er recht!

>>
>> Du hast den Source, bau's ein.

Das riet ich Dir auch schon.

>
> Vielleicht kann der ja garnicht programmieren. Schon mal daran gedacht?

Aha, Du sprichst von Dir in der dritten Person.
Du kannst also garnicht programmieren. Aber an Andere große Ansprüche 
stellen. Man könnte meinen, du könntest nur kluchscheißern, aber das ist 
mein Job, nicht Deiner, also pfusche mir bitte nicht ins Handwerk!

> Leckstrom währe wirklich nicht schlecht.

Das braucht heutzutage fast kein Mensch mehr, die Germanium-Zeit ist 
vorbei. Außerdem kann ich mir gut vorstellen, dass es Konflikte mit mit 
den anderen bereits implementierten Messverfahren geben könnte.

> Aber ob das ohne Referenz so
> einfach möglich ist, möchte ich mal bezweifeln. Dazu müssten schon
> mehrere Kalibrierwerte abgespeichert werden.

Eben, und deshalb sollte man wegen eines Features, das fast niemand 
braucht, die anderen bereits implementierten Features nicht gefährden.

Und nein, Du bekommst den Schokoriegel nicht....

MfG

von DerdaOben (Gast)


Lesenswert?

Habe nichts mit den anderem Typen zu tun. Ich kann ihm auch nur raten, 
sich selbst etwas zu basteln. Dafür ist das Projekt ja offen.

von Alexander S. (agentbsik)


Angehängte Dateien:

Lesenswert?

Das ist meine Variante des Transistortesters von Markus.
Ich hatte noch ein 20x4 LC-Display und reichlich Li.Ion Akkus aus alten 
Laptops im Keller. Daraus ist dann dieser überdimensionale Tester 
entstanden, den man auch als Ziegel verwenden könnte :).
Das Gehäuse besteht aus Leiterplattenmaterial. Die Akkuzellen 
(3s2p)(12.3V, 4.4Ah) werden einzeln überwacht.

Der Tester wird mit einem 5V Stepdown-Wandler versorgt und braucht ca 
0.8W bei eingeschaltetet Hintergrundbeleuchtung.

von Andrnet (Gast)


Lesenswert?

Alexander Sewergin
Gib mir bitte die Regelung und Firmware.

von RAIDER (Gast)


Angehängte Dateien:

Lesenswert?

The Displays with Cyrillic font don`t have Omega and µ (like uF) 
symbols. Can you enter these characters as drawn, like diode symbol?

von Markus F. (5volt) Benutzerseite


Lesenswert?

RAIDER wrote:
> The Displays with Cyrillic font don`t have Omega and µ (like uF)
> symbols. Can you enter these characters as drawn, like diode symbol?

Yes, of course this would be possible. But each drawn character needs 9 
bytes of EEPROM memory and multiple commands to send it to the LCD.
So, for all users of LCDs with the "standard" character set it would be 
a waste of EEPROM and flash memory.

von RAIDER (Gast)


Lesenswert?

Would you write two kind of firmware, one for standard character set and 
one for Cyrillic character set? If you not interested to write the 
"Cyrillic" firmware would you tell wich compiler use for programming?

von soptea (Gast)


Lesenswert?

Hello Mr Markus,
your transistor tester has a lot of fans (promeasure.ru , 
elektroda.pl,elforum.ro ).I did it myself, it works well only see a 
thrystor as a resistor ,but this is not a big trouble .
I want to ask you if you can modify/improve this project to use a three 
point measurement method for acurate "in circuit" measurement .
Let s say we check a resistor in circuit .One probe is always connected 
to chassis ground and the others two at the DUT terminals .By taking 
three measurement :
-one across DUT
-terminal 1 of DUT  to ground , the terminal 2 DUT is grounded by tester
-from terminal 2 of DUT  to the ground whith terminal 1 grounded by 
tester
Now we have an system of algebric ecuations with 3 unknowns ,the one of 
the result is the value of DUT .
One more thing,maybe the testing voltage should be kept low , let s say 
0.3 v ,and maybe use of variable voltage to test capacitors and coils .
Regards,
Radu

von Markus F. (5volt) Benutzerseite


Lesenswert?

RAIDER wrote:
> Would you write two kind of firmware, one for standard character set and
> one for Cyrillic character set?
Yes, I wrote a version which generates the characters not implemented in 
the cyrillic character set as custom characters.

=>All:

And because it became a real chaos with the different versions 
(languages, software UART, ...), I created a download page where it is 
possible to select the desired settings, and then download a ZIP archive 
containing only the selected files:

http://frickelpower.bplaced.net/ctest/

I didn't test it for all combinations of the settings, but I hope it 
will work!

soptea wrote:
> One more thing,maybe the testing voltage should be kept low , let s say
> 0.3 v ,and maybe use of variable voltage to test capacitors and coils .
This isn't that simple, because the ADCs will get a poor resolution: The 
minimum ADC reference voltage ist about 1.1V; and only the range between 
0 and 0.3V would be used.
So, the resolution is just about 8 bits.
Also, the test voltage of 0.3V must be created (for example) by voltage 
dividers. For adjustable test voltage, 3 DACs (digital to analog 
converters) would be necessary.
Of course this is possible. But I don't think in-circuit-testing of 
passive components (resistors, capacitors and inductors) is very useful, 
because these components mostly show visible damage when they're broken.
In-circuit-testing of semiconductors would be more useful, but this 
tends to give false results due to the circuitry around the part being 
tested.

von Salvatore M. (Firma: Privat) (salva)


Lesenswert?

Hallo Zusammen!!


Ich habe der Transistortester Gebaut, ohne autom. abschaltung,
und ich habe nur ein Display vom Displaytech 16x2,der nicht ganz, oder 
uberhaupt nicht Kompatibel ist mit der HD44780! wenn ich das gerät 
Einschalten schaltet nur die obere reihe aber nur lauter vierheck,kein 
ziffer
oder nummer, ich weis nicht ob ich der richtige display finde, aber ich 
erstmal sage danke an der autor für diese projekt, dann bitte ich ihm um 
eine version der firmware oder schaltplan der kompatibel ist mit der 
display vom displaytech.
Danke nochmals in Voraus.


mfg

Salva

von .x. (Gast)


Lesenswert?

Für ca. 2,79 Euro würde ich mich nicht trauen, jemand zu fragen, ob er 
sich die Arbeit macht, den Source Code zu ändern.
e.b.a.y Artikel Nr.: 160488401029

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Monteleone Salvatore schrieb:

> Ich habe der Transistortester Gebaut, ohne autom. abschaltung,
> und ich habe nur ein Display vom Displaytech 16x2,der nicht ganz, oder
> uberhaupt nicht Kompatibel ist mit der HD44780!

Sicher?

> wenn ich das gerät
> Einschalten schaltet nur die obere reihe aber nur lauter vierheck,kein
> ziffer oder nummer

Du kannst mal testen, ob ein Reset des AVR die Initialisierung des 
Displays verbessert. Dazu nicht die Spannung entfernen, sondern GND kurz 
mit dem Resetpin (Pin 1) des Atmega8 verbinden.

von Salvatore M. (Firma: Privat) (salva)


Lesenswert?

Hi Stefan.


Danke für deine hilfe,Ich habe probiert aber passiert trotzdem nicht!



Gruß Salva

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Du kannst dann warten bis ein anderer User genau dieses Display 
erfolgreich verwendet. Wenn du es eiliger hast: Mache einen Vergleich 
der Datenblätter der beiden Displays (dein Display und das Display aus 
dem Projekt). Wenn du dann angegeben kannst, was zu ändern ist, ändere 
ich das.

von Salvatore M. (Firma: Privat) (salva)


Lesenswert?

Hi Stefan!

Die anschlusse sind mehr oder weniger gleich ich glaube das hat mit der 
prozessor zu tun mein display hat der kontroller ST7066U-0A-B und driver 
ST7065C,Vielleicht hat auch mit der initialisierung zu tun und die reset 
zeit.


Gruß.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Kannst du ein Datenblatt des Controllers ST7066U-0A-B auftreiben? Das 
braucht man, wenn man die Initialisierung und Ansteuerung 
umprogrammieren will.

von .x. (Gast)


Lesenswert?


von .x. (Gast)


Lesenswert?


von Stefan B. (stefan) Benutzerseite


Angehängte Dateien:

Lesenswert?

@ Mods

.x. macht die ganze Pädagogik kaputt!

@ Salvatore

Im Anhang ist ein LCD Test mit geänderter Initialisierung. Die 
Änderungen sind:

Eine etwas längere Wartezeit zu Beginn lcd_init()
5ms Wartezeiten zwischen den Schritten der Initialisierung
Zweimal Function Set
zusätzlich Display Clear

Wenn du magst, teste das mit deinem Display. Mein HD4470 arbeitet auch 
mit dieser geänderten Routine.

von Salvatore M. (Firma: Privat) (salva)


Lesenswert?

Stefan  Danke  aber wo soll ich diese hex dateien laden in der AVR?

von gibts alles im Baumarkt (Gast)


Lesenswert?

Hallo Salvatore,
am Besten, Du fährst ganz schnell zum Prak.. Baumarkt, da gibts heute 
noch 20%.
Da kaufst Du einen Diamantbohrer 2mm, Silicon 20ml und schwarzen 
Acryllack (Spraydose mit 450ml).
Mit dem Diamantbohrer bohrst Du ein Loch in den AVR zwischen Pin4 und 
Pin17 genau mittig.
Da stopftst Du die hex Datei rein.
Mit Silicon dichtest Du das Loch dann ab.
Anschließend sprühst Du den schwarzen Acryllack darüber, damit kein 
Sonnenlicht an die Hex Datei kommt (UV Strahlen könnten die Hex Datei 
beschädigen).
Das sollte dann funktionieren - und wenn nicht - gibst Du alles Montag 
beim Baumarkt an der Info zurück und läßt Dir das Geld wiedergeben.

von Salvatore M. (Firma: Privat) (salva)


Lesenswert?

@ gast

wirklich!? das aber ich habe nicht gewusst!
Dann muss ich ausprobieren!.. sowiel ich weiss die routine für ein lcd 
initialisierung kann mann auch in der main dateien integrieren. Und weil 
Stefan hat mir die dateien separat gegeben hat, (Funktioniert trotzdem 
nicht). Wusste ich nicht was er damit meint.. Danke für den tip, die 
farbe muss nicht schwarz sein oder? kann man auch weiss oder blau 
nehmen?

von Calogero D. (Firma: swissgrd.va) (cdg)


Lesenswert?

Salvatore M. schrieb:
> Danke für den tip, die
> farbe muss nicht schwarz sein oder? kann man auch weiss oder blau
> nehmen?

Hallo Salvatore,
Du solltest schon die Vorschläge beachten die Dir
für den Transistortester und LC-Meter gemacht wurden,
ansonsten bleibt nur

"schwarz" für den Beitrag "Transistortester"
und
"mitternachtsblau" für "LC-METER/LC-Messgerät ATmega8 Assembler"

grün oder weiß geht zur Zeit überhaupt nicht,
die Bauvorschläge (mit LCD natürlich) kommt erst noch.

Du hast zwei Baustellen (s.o.),
beide mit dem Problem "Display geht nicht".

Warum kaufst/nimmst Du nicht ein passendes Display ?


Calogero

von Salvatore M. (Firma: Privat) (salva)


Lesenswert?

Calogero, Danke für dein tip, inzwischen hat sich erledigt ich habe die 
LCD
was mir die autor x. s.o. empfohlen hat aus ebay bestellt, ich bin neu 
am herumbasteln mit avr (glaube habt hier schon verstanden) bis jetzt 
habe meine sache mit PIC erledigt aber will jetzt auch mit atmel 
probieren,selber codieren kann ich NOCH nicht viel und wenn dann nur in 
c nich in asm obwohl die letzte ist die kurzeste weg zum 
maschinensprache.



Gruß Salva

von Josef S. (Gast)


Lesenswert?

Hallo
bei Verwendung eines ATMEGA88/48 muß der Sapannungsteiler zun Anschluß 
ADC5 geändert werden (R11, R12 bzw. R13)! Die interne Ref- Spannung 
beträgt dort 1,1V.
Auch beim ATMEGA8 liegt die Spannung an ADC5 bei 9V Versorgungsspannung 
schon sehr knapp an 2,5V. Bei 10,2V Eingangsspannung wird auch hier die 
Eingangsspannung zum ADC-Pin überschritten!
Danach muß auch die Software für Batterie schwach bzw. leer angepasst 
werden.

Gruß Josef

von Dietmar G. (malcom)


Lesenswert?

Hallo Markus Frejek,
dein Projekt ist klasse.
Ich finde es ist ein absolutes "MUSS HABEN".
Aufgebaut und funktioniert.
Sag wo die Spenden hin gehen sollen.
Wenn man sich überlegt, das Fa. Reichelt pro Gerät 45 € verlangt...
Vielen Dank für deine Leistung

Gruß Malcom

von Walter J. (oberallgeier)


Lesenswert?

Markus, das hübsche Werkzeug ist bei mir seit über einem Jahr 
störungsfrei in Betrieb - und mittlerweile unabkömmlich. Nochmal danke.

Frage: Gibt es für eagle irgendwo (wo?) das Symbol für den HD44xx aus 
dem Schaltplan vom 16.03.2009 ?

Ich habe mein Teilchen aufgebohrt auf nen m168 - und da gibts 
mittlerweile auch einen I2C-Stecker - und der Logger soll dazu kommen - 
und da wollte ich gerne eine saubere Dokumentation . . .

Danke im Voraus.

von RAIDER (Gast)


Lesenswert?

Markus Frejek schrieb:
> RAIDER wrote:
>> Would you write two kind of firmware, one for standard character set and
>> one for Cyrillic character set?
> Yes, I wrote a version which generates the characters not implemented in
> the cyrillic character set as custom characters.

I tested the firmware for LCD with Cyrillic character set, but the 
custom characters Omega and µ are depicted as black symbol on LCD. I use 
several types of displays, every time the same black symbol.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

RAIDER schrieb:

> I tested the firmware for LCD with Cyrillic character set, but the
> custom characters Omega and µ are depicted as black symbol on LCD. I use
> several types of displays, every time the same black symbol.

Did you forget to program the EPROM?

Without EPROM programming the empty EPROM is filled with 0xFF and when 
the firmware reads this as bitmask for the custom characters it will 
result in a black square on the LCD.

von RAIDER (Gast)


Lesenswert?

Stefan B. schrieb:
> RAIDER schrieb:
>
>> I tested the firmware for LCD with Cyrillic character set, but the
>> custom characters Omega and µ are depicted as black symbol on LCD. I use
>> several types of displays, every time the same black symbol.
>
> Did you forget to program the EPROM?
>
> Without EPROM programming the empty EPROM is filled with 0xFF and when
> the firmware reads this as bitmask for the custom characters it will
> result in a black square on the LCD.

Of course not. With an empty EEPROM there is nothing on the display. All 
texts are in EPPROM memory. There is a problem only with Omega and μ 
symbols, this characters are in Flash memory.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

How is the definition of LCD_CHAR_OMEGA and LCD_CHAR_U in lcd-routines.h 
of your firmware? Are these numbers suitable for your LCDs with Cyrillic 
character set (Datasheets)?

von RAIDER (Gast)


Lesenswert?

The Cyrillic LCD displays don`t have charters Omega and µ. Thats why 
they need to be drawn by firmware. I use firmware for Cyrillic LCD from 
http://frickelpower.bplaced.net/ctest/ but only the symbols Omega and µ 
are black square

von Stefan B. (stefan) Benutzerseite


Lesenswert?

The firmware from http://frickelpower.bplaced.net/ctest/ may be broken.

I tried to get Firmware, schematics and Sourcecode with options Atmega8, 
Language English and Cyrillic LCD

But the first line in main.c is //#define LCD_CYRILLIC anfd there is a 
#define GERMAN in line 35...

Try understand the sourcecode, remove the // and compile again.

von RAIDER (Gast)


Lesenswert?

I used only compiled firmware. I understand the source code, but I don`t 
now which compiler to use for compile it. I asked Markus Frejek, but he 
didn`t told me.

von Alexander S. (esko) Benutzerseite


Lesenswert?

RAIDER schrieb:
> but I don`t now which compiler to use for compile it.
It is GCC.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

I'll compile the source for you. And i can test the result with Atmega8 
and non-cyrillic LCD, Omega and µ in regular charset.

But you should provide the configuration.

Which microcontroller do you have?

[ ] Atmega8
[ ] Atmega48
[ ] Atmega88
[ ] Atmega168

which resistor values do you use?

[ ] default, 680 and 470k resistors
[ ] other:
    R_L_VAL = __
    R_H_VAL = __

Which language do you want?

[ ] GERMAN = deutsch
[ ] ENGLISH = englisch
[ ] POLISH = polnisch
[ ] CZECH = tschechisch
[ ] SLOVAK = slowakisch

Which LCD do you use?

[ ] non-cyrillic LCD, Omega and µ in regular charset
[X] cyrillic LCD, Omega and µ custom chars

Are the default calibration values for the capacity measurement OK?

[ ] yes
[ ] no, compile with:
    H_CAPACITY_FACTOR = __
    L_CAPACITY_FACTOR = __

von RAIDER (Gast)


Lesenswert?

Stefan B. schrieb:
> I'll compile the source for you. And i can test the result with Atmega8
> and non-cyrillic LCD, Omega and µ in regular charset.
>
> But you should provide the configuration.
>
> Which microcontroller do you have?

 [X] Atmega8
 [ ] Atmega48
 [ ] Atmega88
 [ ] Atmega168

 which resistor values do you use?

 [X] default, 680 and 470k resistors
 [ ] other:
     R_L_VAL = __
     R_H_VAL = __

 Which language do you want?

 [ ] GERMAN = deutsch
 [X] ENGLISH = englisch
 [ ] POLISH = polnisch
 [ ] CZECH = tschechisch
 [ ] SLOVAK = slowakisch

 Which LCD do you use?

 [ ] non-cyrillic LCD, Omega and µ in regular charset
 [X] cyrillic LCD, Omega and µ custom chars

 Are the default calibration values for the capacity measurement OK?

 [X] yes
 [ ] no, compile with:
     H_CAPACITY_FACTOR = __
     L_CAPACITY_FACTOR = __

Thank you very much!!!

von RAIDER (Gast)


Lesenswert?

Can it be used WinAVR (GNU GCC compiler for C and C++, software 
development tools for the Atmel AVR series of RISC microprocessors 
hosted on the Windows platform) for compile the firmware?

von Markus F. (5volt) Benutzerseite


Lesenswert?

Stefan B. wrote:
> The firmware from http://frickelpower.bplaced.net/ctest/ may be broken.

> I tried to get Firmware, schematics and Sourcecode with options Atmega8,
> Language English and Cyrillic LCD

The downloaded sourcecode isn't affected my the language settings; only 
the downloaded hex and eep files are changed.
I'll fix this soon!

@ RAIDER:
I use Atmel AVR Studio and WinAVR for compiling.

von billi b (Gast)


Lesenswert?

Könnten diejenigen, die Layouts beigesteuert haben, diese bitte in den 
Artikel einpflegen?
http://www.mikrocontroller.net/articles/AVR-Transistortester#Hardware
Ich suche was für SMD

von Alex H. (hoal) Benutzerseite


Lesenswert?

billi b schrieb:
> Könnten diejenigen, die Layouts beigesteuert haben, diese bitte in den
> Artikel einpflegen?
> http://www.mikrocontroller.net/articles/AVR-Transistortester#Hardware
> Ich suche was für SMD

Ist schon seit einigen Monaten drin:
http://svn.coremelt.net/avr/semiconductor_tester/board_mgr/

von Stefan B. (stefan) Benutzerseite


Angehängte Dateien:

Lesenswert?

@ RAIDER

This is the eep and hex file for m8, english and cyrillic lcd. But i 
have not much hope that this file solves your problem. Because Markus 
has already produced firmware with the same setting (see reply above). 
And when i tested this firmware with my regular non-cyrillic LCD i could 
only see black boxes with Omega and µ custom defined characters too.

von RAIDER (Gast)


Angehängte Dateien:

Lesenswert?

I succeed to build and translate in Bulgarian. In Firmware are no black 
boxes with Omega and µ custom defined characters. They are that need to 
be. Thanks a lot for help from Stefan B.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Ich hab grad mal das Teil neu geflasht und festgestellt dass Slovakisch 
als Standardsprache ausgewaehlt war. Hab das nun auf Englisch geaendert 
und die Spracheinstellung in das Makefile verlagert.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Ich hab grad mal das Teil neu geflasht und festgestellt dass Slovakisch 
als Standardsprache ausgewaehlt war. Hab das nun auf Englisch geaendert 
und die Spracheinstellung in das Makefile verlagert.
1
# available languages are: LANG_ENGLISH, LANG_GERMAN, LANG_POLISH, LANG_CZECH, LANG_SLOWAK
2
UI_LANGUAGE = LANG_ENGLISH

Alles in allem wirklich ein super Projekt!
Wer noch weitere Layouts fuer das Repo beisteuern will soll sie mir 
bitte zukommen lassen, z.B. per linuxgeek -at- freenet dot de.

Greets,
Michael

von Theo K. (dg0om)


Lesenswert?

Hallo, erst mal Gratulation zu dem gelungenen Projekt. Ich hab das Teil 
gestern abend mal schnell auf einen Testboard zusammengebaut und gleich 
einige Messungen gemacht. Funktioniert alles auf den ersten Blick. Zu 
der Referenzspannung an ADC5 hab ich verschiedene Schaltbilder gesehen. 
Einmal 9V-> 3,3k-> (10k || Z-D.5,1V )-> GND und ein weiteres 9V-> 10k -> 
3,3k-> GND. Was ist richtig, wie hoch und wie stabil sollte die 
Referenzspannung sein? Ist es nicht besser, sie aus der geregelten 5Volt 
zu bilden oder muß sie größer 5V sein?

von Hubert G. (hubertg)


Lesenswert?

An ADC5 ist keine Referenzspannung, hier wird die Batteriespannung 
gemessen und je nach Wert Batterie schwach oder Batterie leer angezeigt.

von Theo K. (dg0om)


Lesenswert?

HubertG, Danke für die schnelle Antwort. Ich will das Gerät nur in der 
Werkstatt am Steckernetzteil benutzen. Da ist die Funktion eigentlich 
überflüssig.
Muß mir mal überlegen, wie ich die Meßfunktion für andere Zwecke nutzen 
kann z.B. verschiedene Batteriearten mit umschaltbaren Spannungsteiler 
prüfen.

von Hubert G. (hubertg)


Lesenswert?

Dazu müsstest du aber dann auch die SW umschreiben, die Batteriespannung 
wird gleich am Anfang abgefragt.

von Theo K. (dg0om)


Lesenswert?

Ja, das ist richtig.Hab mal wieder nicht zu Ende gedacht.Der Aufwand 
lohnt nicht, ein Multimeter hab ich ja auch. Und es soll ja auch ein 
Transistor-Tester bleiben.

von radhoo (Gast)


Angehängte Dateien:

Lesenswert?

my implementation. works great, thanks!

my construction details are here: http://www.pocketmagic.net/?p=1599

von Markus F. (5volt) Benutzerseite


Lesenswert?

Now I updated dte download site:

http://frickelpower.bplaced.net/ctest

I put all the often used configuration stuff (language, LCD mode, 
software UART mode) in an new file called "config.h".
This file is automatically adapted to the selected values on the 
download page (for example, if you choose English as display language, 
the define in the config file is also changed to english.

And I made a mistake last time with the eep files for the cyrillic LCD.
I fixed this, and I think now also the Omega and µ sign should work with 
LCDs with cyrillic charset.

von hans (Gast)


Lesenswert?

Würde dieser Transistortester auch mit dem ATmega328 Funktionieren?

von Markus F. (5volt) Benutzerseite


Lesenswert?

@ hans:
Im Prinzip sollte das gehen. Nur die Referenzwerte für die 
Kapazitätsmessung stimmen dann nicht; und der Spannungsteiler für die 
Batteriespannungs-Messung passt auch nicht.
Der Mega328 ist kompatibel mit den kleineren Typen Mega48/88/168.
Für den Mega88 oder Mega168 gibt's auf meiner Download-Site aber auch 
noch keine Firmware zum Runterladen (muss ich endlich mal erstellen, 
wenn ich mal ein paar Mega88 oder Mega168 zur Hand habe)...

von Thomas G. (tgfuellner) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hallo Leute,

ich finde den Tester wirklich sehr brauchbar und nutze ihn regelmäßig.

Wie kontaktiert Ihr SOT23 Bauteile?
Bei mir klappt, der in den Bildern gezeigte Aufbau, ganz gut.

von Bogdan M. (bogdan_m)


Lesenswert?

Hi to all,
I have read all the thread, but my tester still doesn't work. I am using 
different LCD type: DEM16216 SGH/V and getting only black boxes in one 
or two rows. Anny idea? (I am not EE so please don't tell me abouth some 
compillers...) My knowledge is limited, I can burn at8 with lpt (stk200) 
and solder.
Regards,

von Herbert K. (avr-herbi)


Lesenswert?

@Thomas Gfüllner
Super Idee !
Frohe Weihnachten und einen Guten Rutsch ins Neue Jahr

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Bogdan M. schrieb:

> Hi to all,
> I have read all the thread, but my tester still doesn't work. I am using
> different LCD type: DEM16216 SGH/V and getting only black boxes in one
> or two rows. Anny idea? (I am not EE so please don't tell me abouth some
> compillers...) My knowledge is limited, I can burn at8 with lpt (stk200)
> and solder.
> Regards,

Bogdan, do you have at least a datasheet of your LCD or a link to a 
datasheet?

One row of black boxes on 16x2 LCD indicates usually a wrong software 
initialization and/or wrong timing during software initialization. 
Without knowledge of programming this kind of problems can be very hard 
to solve. Last time i saw this error there was a combination of bug in 
the delay functions in avr-libc 1.7.0 (check library version!) and a too 
weak power supply for tester plus LCD backlight (try without 
backlight!).

Two rows of black boxes on 16x2 LCD indicate mostly a wrong contrast 
voltage setting (contrast too dark/strong).

von Bogdan M. (bogdan_m)


Lesenswert?

Hi Stefan B.!

> Bogdan, do you have at least a datasheet of your LCD or a link to a
> datasheet?
Yes, here is link. 
http://www.datasheetcatalog.com/datasheets_pdf/D/E/M/1/DEM16216SYH-LY.shtml
I don' think that is much differences between last characters because 
all uses same driver.
> One row of black boxes on 16x2 LCD indicates usually a wrong software
> initialization and/or wrong timing during software initialization.
> Without knowledge of programming this kind of problems can be very hard
> to solve.
I don't have a clue about programming, sorry....
> Last time i saw this error there was a combination of bug in
> the delay functions in avr-libc 1.7.0 (check library version!) and a too
> weak power supply for tester plus LCD backlight (try without
> backlight!).
LCD is without back light,

> Two rows of black boxes on 16x2 LCD indicate mostly a wrong contrast
> voltage setting (contrast too dark/strong).
I have added a poti for contrast regulation, seems that something is 
working while tasting the knob both rows become brighter, then upper 
goes darker.
Nothing is displayed in any contrast setting.
Anny help...

von Stefan B. (stefan) Benutzerseite


Lesenswert?

>> the delay functions in avr-libc 1.7.0 (check library version!)

Any news about your C toolchain? You can attach the zipped version of 
your AVR Transistortester firmware too (including the HEX and EEP 
files!).

von Bogdan M. (bogdan_m)


Lesenswert?

Stefan B. schrieb:
>>> the delay functions in avr-libc 1.7.0 (check library version!)
I am burning with PonyProg, where can I find this "avr-libc" ?
I have just download zip file from link a few posts up & programmed hex 
& eep files. PonyProg returns "o.k." for both...
I have also trying few different hex & eep files but no success...
Fuse I have "as is" no change...

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Bogdan M. schrieb:

> I have just download zip file from link a few posts up & programmed hex
> & eep files. PonyProg returns "o.k." for both...
> I have also trying few different hex & eep files but no success...

Which one in detail? Maybe i can check these files and you don't have to 
look for avr-libc.

> Fuse I have "as is" no change...

That's OK.

von usuru (Gast)


Angehängte Dateien:

Lesenswert?

> Wie kontaktiert Ihr SOT23 Bauteile?
> Bei mir klappt, der in den Bildern gezeigte Aufbau, ganz gut.

Ich habe so etwas ähnliches. Das zangenähnliche Teil nennt sich 
Leimzwinge, gibt es im Baumarkt.

von usuru (Gast)


Angehängte Dateien:

Lesenswert?

Huch, da ist ein falsches Bild dabei ...

von Bogdan M. (bogdan_m)


Lesenswert?

Stefan B. schrieb:
>
> Which one in detail? Maybe i can check these files and you don't have to
> look for avr-libc.
I have download from: http://frickelpower.bplaced.net/ctest/
States:
* ATMega8 (recommended)
* Display: English
* Compiled firmware
* Schematics
* not inverted, for connecting to level shifter (such as MAX232) oder 
TTL   level UART
* For LCD with standard character set (containing µ und Omega symbol)

Is this o.k.?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

usuru schrieb:
> Huch, da ist ein falsches Bild dabei ...

Hab' das andere gelöscht.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Bogdan M. schrieb:

> I have download from: http://frickelpower.bplaced.net/ctest/
> States:
> * ATMega8 (recommended)
> * Display: English
> * Compiled firmware
> * Schematics
> * not inverted, for connecting to level shifter (such as MAX232) oder
> TTL   level UART
> * For LCD with standard character set (containing µ und Omega symbol)
>
> Is this o.k.?

This firmware is OK. I just tested it on my hardware. No problems.

Now it's rather difficult because you have to do an error search on your 
hardware. Some ideas:

Check with levelshifter (MAX232) and PC whether the hardware/firmware is 
working but the LCD is not.

If it's "only a problem with the LCD", try another one (other 
controller, other brand).

If it's a problem with the tester not working at all, inspect the 
hardware, do measurements (over all current consumption, voltage at 
strategic points...), show your hardware (photos, scans...).

von Bogdan M. (bogdan_m)


Lesenswert?

> Check with levelshifter (MAX232) and PC whether the hardware/firmware is
> working but the LCD is not.
with that I don't know, I don't have such equipment sorry...

> If it's "only a problem with the LCD", try another one (other
> controller, other brand).
I have tested with same type only with back light using for another 
instrument, same result...

> If it's a problem with the tester not working at all, inspect the
> hardware, do measurements (over all current consumption, voltage at
> strategic points...), show your hardware (photos, scans...).
I have made some minor mistake on board (don't think it was lethal for 
at8) , so now I must buy another processor and burned.
I have made test instrument from this page and works fine (same LCD, 
same AT8, same way of programming with PoyProg & STK200)
http://elfly.pl/multimetr/multimetr_en_DIP.htm

von Bogdan M. (bogdan_m)


Lesenswert?

I have found error, somehow was solder bridge much thinner than human 
hair. During inspection under big lens I have solve this.
Manny thanks for help and tips. Now it works with LCD DEM 16216 super.
I am really pleased.
Regards, Bogdan

von Bogdan M. (bogdan_m)


Angehängte Dateien:

Lesenswert?

and here is my layout from Eagle.
Now I must just find suitable box...

von Michael D. (mike0815)


Lesenswert?

Bogdan M. schrieb:
> and here is my layout from Eagle.
> Now I must just find suitable box...

Hi Bogdan,
this Layout is very nice!
For a siutable box I would use a transparent Plexiglas, it should be 
looks nice, I think!
Is it Possible to set your Eagl-File in here?

Greetings

von Bogdan M. (bogdan_m)


Angehängte Dateien:

Lesenswert?

> Is it Possible to set your Eagl-File in here?
>
I don't think that is possible ... I will try

von Bogdan M. (bogdan_m)


Angehängte Dateien:

Lesenswert?

Bogdan M. schrieb:
>> Is it Possible to set your Eagl-File in here?

looks that goes...
here is pdf file for those who will make this board and will need exact 
position of the holes, lcd window ...

von Michael D. (mike0815)



Lesenswert?

Hallo erstmal...

soeben habe ich den Transistortester fertig gestellt.
An dieser Stelle möchte ich ein dickes Lob an die Entwickler 
aussprechen!

Hatte mich dann doch für das Layout von Armin_Diehl entschieden, mußte 
es allerdings etwas modifizieren(Display).
Statt dem Brückengleichrichter habe ich die 1N4148 verwendet.
Das Display ist ein Displaytech 162C, (16x2) Controller KS0070B mit 
Backlight!
Die Firmware ist die
---TransistorTestNew.hex---
EEPROM
---TransistorTestNew_German.eep---
für den Mega8

> Autor: Salvatore M. (Firma: Privat) (salva)
> Datum: 25.10.2010 18:10

> Hallo Zusammen!!

> Ich habe der Transistortester Gebaut, ohne autom. abschaltung,
> und ich habe nur ein Display vom Displaytech 16x2,der nicht ganz, oder
> uberhaupt nicht Kompatibel ist mit der HD44780! wenn ich das gerät
> Einschalten schaltet nur die obere reihe aber nur lauter vierheck,kein
> ziffer...

Da muß der Fehler wohl woanders liegen, denn bei mir hat das Display auf 
anhieb funktioniert!
Der Kontrast kommt erst bis kurz vor Anschlag des Potis, evtl. müsste 
der 4K7 gegen einen 3K3 (R8 zu VCC) getauscht werden, ich teste das mal 
bei Gelegenheit.
Die Displaybeleuchtung ist sehr dunkel, für den Batteriebetrieb ist das 
ok.
Ansonsten müsste der 100R (R11) für den Netzstrom gebrückt werden.

Frage: Welchen Bereich deckt die Kapazitätsmessung ab? (Kann sein, das 
ich da was überlesen habe!)
Interessand wäre ab dem Picofarad-Bereich?!?

Anbei mal ein paar Fotos

Gruß, Michael

von Markus F. (5volt) Benutzerseite


Lesenswert?

Michael D. schrieb:
> Frage: Welchen Bereich deckt die Kapazitätsmessung ab? (Kann sein, das
> ich da was überlesen habe!)
Steht eigentlich in dem Artikel: Ca. 200pF...7000µF; aber ab 4000µF 
wird's recht ungenau (ich habe aber nicht herausgefunden warum das so 
ist).

von Günter N. (checkit)


Lesenswert?

Hallo, habe mir den Tester auch mal zusammen gebaut. Es läuft auch alles 
soweit. Nur mir ist im Kapazitätsbereich eine sehr hohe differenz von 
bis zu 50% aufgefallen. Bei einen 1nF Kondensator zeigt er mir 1,57nF 
und bei einem 100nF C sind es es immer noch 137nF. Größere Cs (Elkos) 
habe ich zur Zeit nicht zur Verfügung. Geht das nur mir so?
Habe meiner Lochrasterplatine auch einen ISP gegönnt. Kann das damit 
zusammen hängen?

Gruß
Günter

von Hubert G. (hubertg)


Lesenswert?

Ich habe einen ATmega8A in Verwendung, da gehören diese Zeilen 
angepasst.
1
//  unsigned int H_CAPACITY_FACTOR EEMEM = 394;     //  Standardwerte für M8
2
//  unsigned int L_CAPACITY_FACTOR EEMEM = 283;     //  Standardwerte für M8
3
    unsigned int H_CAPACITY_FACTOR EEMEM = 250;     //  Standardwerte für M8A
4
    unsigned int L_CAPACITY_FACTOR EEMEM = 162;     //  Standardwerte für M8A

von Günter N. (checkit)


Lesenswert?

Einen ATmega8A habe ich nicht im Einsatz.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Die Abweichungen werden von Markus mit Fertigungstoleranzen des AVR 
erkärt. Und dafür ist bereits eine Anpassung im Sourcecode vorgesehen.

Mein Transistortester (Atmega8, auch mit ISP Stiftleiste) hatte 
ebenfalls zu hohe Messwerte im Bereich niedriger Kapazitäten. Hier der 
Ausschnitt bei mir mit meiner Änderung für die Kondensatormessung:

1
/*  
2
  Faktoren für die Kapazitätsmessung bei Kondensatoren
3
  Diese Faktoren hängen von Fertigungstoleranzen des AVR ab 
4
  und müssen somit ggf. angepasst werden.
5
6
  H_CAPACITY_FACTOR ist für die Messung mit 470k-Widerstand 
7
                    (geringe Kapazität)
8
9
  L_CAPACITY_FACTOR ist für die Messung mit 680-Ohm-Widerstand 
10
                    (hohe Kapazität)
11
12
  Der gesamte Messbereich ist ca. 0,2nF bis 1000µF.
13
*/
14
#define H_CAPACITY_FACTOR 185 // war 394 im Original
15
#define L_CAPACITY_FACTOR 283

Auf die (heftigen) 185 statt 394 für meinen Aufbau (Lochraster) bin ich 
nach einer kleinen Messreihe gekommen. Messung (Ladezeit) zu hoch, dann 
Konstante (Skalierfaktor Ladezeit nach Kapazität) verkleinern usw..

Dabei habe ich ein paar Kondensatoren aus dem niedrigen Bereich genommen 
und zuerst für jeden Wert den korrigierten Wert berechnet

Für dein Beispiel:
1
Soll 100nF, Ist 137nF:
2
100/x = 137/394 => x = 288
3
Neuer H_CAPACITY_FACTOR 288
4
5
Soll 1nF, Ist 1,57nF:
6
1/x = 1,57/394  => x = 251
7
Neuer H_CAPACITY_FACTOR 251

Leider kein linearer Zusammenhang (X gleich), d.h. also für einen Wert 
entscheiden oder eine Art Mittelwert nehmen.

Ich habe mehr als zwei Messungen gemacht mit den typ. Kondensatoren aus 
dem "niedrigen" Bereich, die ich so verbaue, und den Mittelwert für den 
neuen H_CAPACITY_FACTOR berechnet. Bei anderen Bauteilen mit 
Gatekapazitäten habe ich noch nicht nachgesehen.

ADD: Ich habe anscheinend eine andere Source als Hubert. Egal, das 
Prinzip für die Korrektur bleibt gleich.

von Hubert G. (hubertg)


Angehängte Dateien:

Lesenswert?

Das ist der Source von der letzten Ausgabe, der Wert ist hier im EEPROM 
gespeichert. So wie auch die verschiedenen Sprachen.
Sollte aber, wie du schon geschrieben, im Prinzip egal sein.
Ich habe mir übrigens eine Mini-Version gemacht, 100x60x25mm.
Die hat sich schon auf einigen Flohmärkten bewährt.

von ... (Gast)


Lesenswert?

@hubert: wo hast du diese buchsenleiste für das displaykabel her?

von Günter N. (checkit)


Lesenswert?

Vielen Dank Stefan für Deine ausführliche Beschreibung.

Ich werde dann mal ein paar Messungen und die dazu gehörigen 
Berechnungen starten um dann meinen eigenen Mittelwert für 
"H_CAPACITY_FACTOR" zu bekommen.

Günter

von Hubert G. (hubertg)


Lesenswert?

Display und Buchse für das Folienkabel gibt es bei www.neuhold.at

von Hubert G. (hubertg)


Lesenswert?

Falscher Link, es ist http://www.neuhold-elektronik.at
N0037

von Günter N. (checkit)


Angehängte Dateien:

Lesenswert?

So mein Komponententester ist fertig und läuft sehr gut. Darum möchte 
ich mich an dieser Stelle auch bei den Entwicklern des Gerätes bedanken.

Der Tip von Stefan mit dem Referenzwert für die Kapazitätsmessung hat 
der genauigkeit des Gerätes sehr gut getan.

Dank der kleinen Größe von 125x70x30mm ist es universell Einsetzbar.

Günter

von Michael D. (mike0815)


Lesenswert?

Hallo an Alle und ein schönes neues Jahr wünsche ich!

Meine Begeisterung für den Transistortester steigt von Tag zu Tag!

Habe so einige Messungen mit Kondensatoren u. Widerständen durchgeführt, 
die Genauigkeit ist enorm!
Kondensatoren konnte ich bis 10000µF u. Widerstände bis 10Megaohm 
messen.
Nach unten habe ich Widerstände bis 1 Ohm locker Messen können(Vergleich 
mit Multimeter).

Zur Spannungsversorgung muß ich sagen, ist der Siebelko vor dem Regler 
eindeutig zu klein dimensioniert (100µF)! Ich habe Diesen gegen einen 
470µF ersetzt. Am Ausgang des Reglers wurde noch ein 220µF Elko ergänzt, 
jetzt läuft das Ganze um einiges stabiler, denn wenn die 
Displaybeleuchtung zugesschaltet wird, werden die Messungen ungenau.
Zu beobachten war das mit der Spannungsmessung am Ausg. des Reglers ab 
4,9V !!! Kurzum, sobald minimale Spannungsschwankungen nach dem Regler 
auftreten, wird's ziehmlich ungenau.

Zur Software:
In diesem Link:---  http://frickelpower.bplaced.net/ctest/ ---gibts nur 
kaputte Archive bei der Zusammenstellung, oder ist das nur bei mir so?

Gibt es eine aktuelle FW bzw. wo wird sie aktualisiert, bei den vielen 
Links blickt man fast nicht mehr durch...


Gruß Michael

von Holger P. (Gast)


Angehängte Dateien:

Lesenswert?

Frohes neues Jahr.

Auch ich habe mir das ganze mal angeschaut und nachgebaut. Spitze
Projekt, weiter so.

Meine Version ist 80mmx45mm groß und beidseitig bestück aber nur
einseitig geroutet. Komme sogar ohne Brücken aus.

Habe mich nach dem Schaltplan in der Projektbeschreibung gehalten und
lediglich die Hintergrundbeleutung mit eingebunden. Über ein 220Ohm geht
das mit dem Pollin-Display für 6.95 echt klasse. Auch der Kontrast ist
total OK mit den Vorgabe aus dem original Schaltplan.

Mit der Software hatte ich meine Probleme und zum erfolg führte dan die
Version aus dem SVN Archiv.

Die Software in der Projektbeschreibung unter Firmware inkl. Schaltplan
und Sourcecode wollte nicht, warum auch immer.

Wer nimmt sollte auch geben :-) Deswegen hier der Schaltplan in Eagle
wie auch das Layput.

Danke an den Entwickler.

Ach ja eine kleine Frage habe ich doch noch auf den Lippen. Wie kann ich 
die Kondesatormessung genauer bekommen die schwimmt noch ein wenig :-)

von Alexander B. (chasm)


Lesenswert?

Hi,

die Schaltung legt eine Spannung auf PC5/AD5.
Momentan verstehe ich nicht wo der Port im Programm verwendet wird. Kann 
mir jemand auf die Sprünge helfen?

von Holger P. (Gast)


Lesenswert?

Alexander B. schrieb:
> Hi,
>
> die Schaltung legt eine Spannung auf PC5/AD5.
> Momentan verstehe ich nicht wo der Port im Programm verwendet wird. Kann
> mir jemand auf die Sprünge helfen?

Für die Eingangsspannung. Schau mal genau. Damit wird die Batterie 
kontrolliert und dessen Status auf dem Display angezeigt. Fast leer bzw. 
leer

von Thomas Kiss (Gast)


Lesenswert?

Haufen Threads...sehr schönes Projekt, nun ich möchte es auch nachbauen. 
Welche Version ist aktuell für Atmega8 ? ( Hex File , weil ich nur 
Bascom benutze )..

Danke !!!

von Theo K. (dg0om)


Lesenswert?

Hallo, der Link zum Artikel, sehr lesenswert, ist
http://www.mikrocontroller.net/articles/AVR-Transistortester

Dort findest du auch den Quellcode und die Hex-Dateien.
Ich musste für den von mir benutzten ATMega8L8 im Quellcode jedoch 
folgende Änderung für die Kapazitätsmessung durchführen.

/*  Faktoren für die Kapatitätsmessung bei Kondensatoren
  Diese Faktoren hängen von Fertigungstoleranzen des AVR ab und müssen 
somit ggf. angepasst werden
  H_CAPACITY_FACTOR ist für die Messung mit 470k-Widerstand (geringe 
Kapazität)
  L_CAPACITY_FACTOR ist für die Messung mit 680-Ohm-Widerstand (hohe 
Kapazität)
  Der gesamte Messbereich ist ca. 0,2nF bis 1000µF.
*/
#define H_CAPACITY_FACTOR 394 <-- Hierfür den Atmega8L8 251 eingesetzt
#define L_CAPACITY_FACTOR 283

Ist auch im Thread von Stefan am 02.01.2011 schön beschrieben. Bei einem 
ATMega8-16PU, den ich auf dem Programmierboard benutze, war die 
C-Messung mit dem H_CAPACITY_FACTOR 394 jedoch in Ordnung.

Das solltest du bei der Benutzung der Hex-Files im Auge behalten.

von Alexander B. (chasm)


Lesenswert?

Holger P. schrieb:
> Alexander B. schrieb:
>> Hi,
>>
>> die Schaltung legt eine Spannung auf PC5/AD5.
>> Momentan verstehe ich nicht wo der Port im Programm verwendet wird. Kann
>> mir jemand auf die Sprünge helfen?
>
> Für die Eingangsspannung. Schau mal genau. Damit wird die Batterie
> kontrolliert und dessen Status auf dem Display angezeigt. Fast leer bzw.
> leer

Danke, manchmal sieht man den Wald vor lauter Bäumen nicht.

von Vlad T. (vlad_tepesch)


Lesenswert?

mal was anderes: fehlen dem 7805 in der Schaltung nicht ein paar Elkos?

von Michael D. (mike0815)


Lesenswert?

Hi,

Vlad Tepesch schrieb:
> mal was anderes: fehlen dem 7805 in der Schaltung nicht ein paar Elkos?

Ich habe am Eingang vom 7805 statt dem 100µF (ist wohl etwas undersized, 
wie ich finde), einen 470µF gesetzt und am Ausgang einen 100µF.
Ergänzt habe ich auch jeweils am Ein-u. Ausgang 100nF Kerkos, die 
sollten schon sein, jetzt läuftz das Ganze um Einiges stabiler, denn 
eine klleine Spannungsschwankung und die Messungen sind nicht mehr 
genau, habe ich festgestellt!
An der Display-Spanungsversorgung sowie an der LED-Beleuchtung, habe ich 
auch noch mal 100 nanos verbaut, kann auf keinen Fall schaden.

Ich habe die aktuelle Firmware aufgespielt, jetzt kommt ständig ein 
Timeout! Kann das an den Fusebits liegen oder ist das ein Bug?

Gruß Michael

von Michael D. (mike0815)


Angehängte Dateien:

Lesenswert?

hmm, kein Bug!
Die Fehlerquelle waren die Fusebits!
Habe das gerade mal mit dem Gaul überprüft: BODLEVEL u. BODEN waren 
aktiviert, jetzt funzt alles wie es soll!
Anbei mal 2 Shots, falls noch Jemand vor dem "Timeout!" -Problem stehen 
sollte...
1. Shot: Falsche Fusebits Einstellung.
2. Shot: Richtige Fusebits Einstellung.

Gruß Michael

EDIT: Schade das man den Atmega8 nicht 'Onboard' programmieren kann, 
jedes mal diese Aushebelei...

von Stefan B. (stefan) Benutzerseite


Lesenswert?

> EDIT: Schade das man den Atmega8 nicht 'Onboard' programmieren kann,
> jedes mal diese Aushebelei...

Kannst du nicht? Ich habe mir einen ISP Header montiert und kann in 
system programmieren. Soweit ich feststellen konnte, funktioniert mein 
ISP Programmer (STK200) trotz der Bauteile an den ISP-Leitungen.

von Michael D. (mike0815)


Lesenswert?

Hi Stefan,

Nein, habe den Header nachträglich montiert, die Leitungen direkt an 
PIN1 (Reset) u. 17(MOSI), 18(MISO), 19(SCK), da hängen ja die 
Widerstände dran, irgendwie lässt sich der Programmer da nicht mit ein 
(USB-ISP)!
Der SDK200, ist das nicht ein Paralleler?

Gruß Michael

von Happy (Gast)


Lesenswert?

Tolles Teil dieser Transistortester. Hab mir jetzt auch einen nachgebaut 
und seit ich ihn habe brauche ich ihn. :)

Eine Frage am Rande:
Hat schon jemand versucht/oder sich Gedanken gemacht, den Tester um ein 
Lc-Meter zu erweitern? Dann wäre es die ultimative eierlegende 
Wollmilchsau.

von Paul W. (paramac)


Lesenswert?

Ein verspätetes gutes neues Jahr allerseits!

Per Zufall bin ich vor Wochen auf diesen Thread gestoßen und war sofort 
begeistert. Vor allem die vielen positiven Rückmeldungen machten mich 
glauben, der Tester wäre leicht nach zu bauen.
Inzwischen habe ich meinen dritten Tester aufgebaut; der erste auf einer 
gekauften Platine von IT-WNS Shop, der zweite auf einem Breadboard und 
der letzte nun auf einer selbst geätzten Plaine (Vorlage Markus F.).

Alle drei funktionieren insofern, als ich die gemessenen Werte über UART 
im Terminalfenster angezeigt bekomme.

Ich schaffe es aber nicht, die Anzeige auf das LCD zu bekommen, wobei 
ich schon vier verschiedene Typen verwendet habe: TC1602A, TC1602E, 
TC1604A sowie ein kompatibles MiniLCD aus China. Alle Anzeigen zeigen 
nur eine Reihe Klötzchen (Egal wie ich die Kontrastspannung verstelle, 
etc).
Da die Werte korrrekt im Terminal gezeigt werden, gehe ich mal von einer 
richtigen Beschaltung aus.

Nachdem ich den kompletten Thread gelesen habe (Und alles ausprobiert 
was es an Hilfen für ähnliche Probleme gab), bin ich nun am Ende meines 
Lateins.

Wer kann mir noch weiter helfen? Jeder Tipp wird dankbar angenommen...

Gruß
Paul

von Hubert G. (hubertg)


Lesenswert?

Wenn die "Klötzchen" da sind, wird es wohl nicht initialisiert.
Liegt R/W auf GND.
Verzögerungszeiten beim init vergrößern.

von Vlad T. (vlad_tepesch)


Lesenswert?

Eine Frage zu Differenzen im Artikel und im SVN:

der Spanungsteiler zur Messung der Batteriespannung ist im Artikel 
anders rum.
Was ist denn richtig?

Artikel:
10k an VCC, 3k3 an GND

SVN
3k3 an VCC, 10k an GND mit 5V Z-Diode

Oder ist die SW an die anderen Messwerte angepasst?

von Theo K. (dg0om)


Lesenswert?

Guten Abend, 10k an Batterie Plus 9V und 3,3k an Masse ist richtig. 
Kannst es mal an einen regelbaren Netzteil testen. Die Z-Diode soll den 
AD schützen.

von Vlad T. (vlad_tepesch)


Lesenswert?

Theo K. schrieb:
> Guten Abend, 10k an Batterie Plus 9V und 3,3k an Masse ist richtig.
> Kannst es mal an einen regelbaren Netzteil testen. Die Z-Diode soll den
> AD schützen.

dann sind die eingecheckten Schaltpläne aber falsch.



das heißt auch, dass der AVR nur 1/4 der Batteriespannung sieht.


umgedreht mit 3/4 und der Z-Diode wär aber auch irgendwie logisch, da er 
da weniger als 5V sieht, wenn die Eingangspannung unter 6,7V fällt.


Beides ist verwendbar, benötigt nur jeweils unterschiedliche 
Schwellenwerte für die Batterie-Warnung.

von Vlad T. (vlad_tepesch)


Lesenswert?

Also ich komm noch nicht klar mit der Batteriespannungsmessung

ich hab im Code geschaut.
Dort wird mit der internen Referenz gemessen.
Der Vergleichswert ist

als Kommentar steht beim Schwellwert aber 7.6V
den 10:3.3 Spanungsteiler aus dem Artikel angenommen ergibt sich am 
Abgriff bei 7.6V aber etwas anderes:



Das heißt irgend etwas bei Schaltplänen, Code oder Kommentaren passt 
nicht zusammen.

Auf jeden Fall scheinen die Widerstände der eingecheckten Schaltpläne 
falsch zu sein. mit 3.3:10 passen die Werte überhaupt nicht.

kann dazu noch mal jemand eine Klarstellung posten.



Anmerkungen zum Code:
Ist ja ganz schönes Durcheinander ;)
- fertig berechnete Konstanten mitten im Code
- duplizierte Codeteile
- zweckentfremdete globale Variablen (hfe[0])
- lcd-bibliothek präfix nicht konsequent benutzt (Line1, Line2, 
SetCursor)

Trotzdem:
Super Projekt! Vielen Dank

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Vlad Tepesch schrieb:

> Auf jeden Fall scheinen die Widerstände der eingecheckten Schaltpläne
> falsch zu sein. mit 3.3:10 passen die Werte überhaupt nicht.

Ich benutze die Spannungsüberwachung nicht, weil ich keine Batterie 
verwende.

War die Schaltung mal für R2 2K7 statt 3K3 vorgesehen? Das würde zu dem 
ADC Schwellwert passen.

Zum Batterie-Spannungsteiler siehe auch 
Beitrag "Re: Transistortester mit AVR"

von Josef S. (Gast)


Lesenswert?

Hallo,
habe bereits am 1.11.2010 einen Kometar zur Spannungsüberwachung 
geschrieben. Hat keiner gelesen.
Ich verwende einen ATMEGA88 und habe den Spannungsteiler geändert, damit 
auch bei externer Spannungsversorgung bis 12V die Versorgungsspannung 
gemessen werden kann.
Gruß Josef

von Michael D. (mike0815)


Lesenswert?

Hallo Josef,

das mit der externen Spannungsüberwachung finde ich eine gute Idee!
Ich selber hatte mal Spannungsschwankungen weil sich eine 
Gleichrichterdiode verabschiedet hatte, den Fehler muß man erstmal 
finden.
Mit der Überwachung hätte ich viel Zeit gespart.
Willst du deine Änderungen preis geben? Muß da noch was im Code geändert 
werden?
Mit der Source habe ich irgendwie Probleme mit dem Kompilieren im 
AVR-Studio, jedes mal, wenn ich auf das Kompilierbutton drücke, kommen 
Fehlermeldungen und es werden im Ordner "DEFAULT", keine HEX u. EEP 
gebildet, was stimmt da nicht?

Gruß Michael

von Vlad T. (vlad_tepesch)


Lesenswert?

Michael D. schrieb:
> Willst du deine Änderungen preis geben? Muß da noch was im Code geändert
> werden?

eigentlich nur die schwellenwerte.

nicht im Studeo kompileren.
einfach in dem Verzeichnis make aufrufen.

vielleicht wäre es am besten, wenn man die beiden Widerstandswerte auch 
ins eeprom schreibt und den AVR selbst ausrechnen lässt?
da kann man auch gleich noch die unterschiedlichen Referenzspannungen 
berücksichtigen

von Josef S. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Michael,
Hex- Dateien werden in AVRStudio mit WINAVR erst nach fehlerfreier 
Kompilierung erzeugt.
Bei mir wird vor jeder Messung die Spannung angezeigt. Dazu habe ich ein 
paar Zeilen Code eingefügt und die Werte für die Spannungsüberwachung 
geändert.
Siehe Code im Anhang
Gruß Josef

von Michael D. (mike0815)


Lesenswert?

na toll,

@Vlad tepesch
> nicht im Studeo kompileren.
> einfach in dem Verzeichnis make aufrufen.

Jetzt bin ich überfordert, denn Programmieren kann ich garnicht, 
vorgebene Zeilen einfügen, dürfte nicht das Problem sein. Die 
Wiederstandswerde zu editieren wäre auch kein Ding.
Wenn ich die "transistortestnew.aps" aus dem FW-Ordner aufrufe, müsste 
das doch mit dem Kompilierknopp kompiliert werden, oder?
Die "aps" ist doch eine Projektdatei, bei anderen Projektdateien 
funktioniert das doch auch, z.B. beim LC-Meter, da klappt das wunderbar!

@Josef
> Hex- Dateien werden in AVRStudio mit WINAVR erst nach fehlerfreier
> Kompilierung erzeugt.

Eben, wo kommen in dem originalen Projekt denn die vielen Fehler her?

Ich habe mal in deinen Code geschaut, ist also eine generelle 
Spannungsüberwachung eingefügt!?! Finde ich äusserst praktisch und würde 
das gerne mal testen, dazu bräuchte ich aber eine Fehlerfreie "aps" !
Wäre es möglich, diese mal zu posten bzw. mit dem kompletten Code, damit 
ich wenigstens eine Basis habe. Vielleicht steht der Eine oder Andere 
genauso da wie ich?!?

Gruß Michael

von Vlad T. (vlad_tepesch)


Angehängte Dateien:

Lesenswert?

hab ganz übersehen, das da eine APS drin war


Ich hab die mal in Ordnung gebracht (Anhang):
suart.s und suart.h ins Projekt geschmissen
-DLANG_GERMAN als Compileroption hinzugefügt

Allerdings hab ich den Code aus dem SVN ausgecheckt, keine Ahnung ob 
sich die Projektstruktur zwischendurch geändert hat.

von Michael D. (mike0815)


Angehängte Dateien:

Lesenswert?

Wie g... ist das denn?
Hab's gleich mal getestet, Kompilieren ohne Fehlermeldung, ich bin 
begeistert, vielen Dank für das File!!!

Die Widerstandswerte werden ja in der main.c editiert, sehe ich das 
richtig? Gibt es noch etwas zu beachten? Muß "unsigned" in "define" 
geändert werden, oder kann das so bleiben?
Ich weiß, ich nerve...

Gruß Michael

von Josef S. (Gast)


Lesenswert?

Hallo Michael,
da .aps Dateien den kompletten Katalogzweig z.B. D:\Eigene 
Dateien\Projekte\WinAVR enthält kann diese Datei nicht so kopiert 
werden.
Anleitung für Übernahme eines Projektes mit AVR Studio:
1. Projekt neu erzeugen mit Eingabe des Projektnamen und Prozessor
   es ensteht eine Projekt.c Datei
2. mit der rechten Maustaste unter 'Source File' diese umbenennen auf 
main.c
3. entwerder durch copy-paste die Originaldatei übernehmen oder
   AVR Studio beenden und main.c ersetzen durch die echte main.c Datei
3. weitere .c und .h Dateien in Katalog hinkopieren
4. mit der rechten Maustaste unter 'Source File' weitere existierende .c 
Dateien einfügen
5. unter Project/Configuration options die Quarzfrequenz eingeben
danach sollte kompilieren möglich sein
Gruß Josef

von Vlad T. (vlad_tepesch)


Lesenswert?

Michael D. schrieb:
> Die Widerstandswerte werden ja in der main.c editiert, sehe ich das
> richtig?
Jain - das sind die Widerstandswerte für die TRansistormessungen.

Die Werte für die Batterieüberwachung stehen schon fertig umgerechnet im 
Code.

Das ist mehrfach unschön.
1. haben die Beiden Zielplatformen unterschiedliche Referenzspannungen
2. ist es ein wenig rechnerrei auf die passenden Widerstände zu kommen.
3. passen die Kommentare nicht zu den Werten

hier ist der Test der Batteriespannung.
1
  //Versorgungsspannung messen
2
  ReadADC(5 | (1<<REFS1));  //Dummy-Readout
3
  hfe[0] = ReadADC(5 | (1<<REFS1));   //mit interner Referenz
4
  if (hfe[0] < 650) {      //Vcc < 7,6V; Warnung anzeigen
5
    lcd_eep_string(Bat);    //Anzeige: "Batterie"
6
    if(hfe[0] < 600) {          //Vcc <7,15V; zuverlässiger Betrieb nicht mehr möglich
7
      lcd_eep_string(BatEmpty);    //Batterie leer!
8
      _delay_ms(1000);
9
      PORTD = 0;  //abschalten
10
      return 0;
11
    }
12
    lcd_eep_string(BatWeak);    //Batterie schwach
13
    Line2();
14
  }



Mir ist noch ein Fehler aufgefallen:

in readADC wird mit die Referenzspannungen geändert.
Laut Datenblatt ist die nächste Messung nicht verwendbar.
es müsste also eine Dummy-Messung eingeschoben werden.

Negative Auswirkungen hat das Momentan auf die 
Batteriespannungsmessungen und die erste Messung Pinmessung, wo jeweils 
ein undefinierter Wert zu 1/20 in das Ergebnis eingeht.

von Michael D. (mike0815)


Lesenswert?

Hallo Josef,
ich habe die "aps" von Vlad, durch die Originale vom 13.01.2011 ersetzt 
und das Kompilieren funktioniert, kann ich die hex u. eep, jetzt 
garnicht verwenden??? Immerhin bleiben die Fehlermeldungen aus!
Trotzdem danke für die ausführliche Anleitung, ist sehr hilfreich, finde 
ich ganz klasse von Euch!
...was ich da für eine Zeit im I-Net verbracht habe...man nutzt ja 
erstmal die Suchfunktion.

Gruß Michael

EDIT: Ich habe 0,1% Widerstände bestellt und werde das Teil nochmal 
nachbauen.
Allerdings mit der Spannungsüberwachung, mal schauen, ob da noch was 
rauszuholen ist, ich werde dann mal berichten

von Michael D. (mike0815)


Lesenswert?

Oha, jetzt haben wir hier parallel gepostet!

@Vlad
Ich meinte ja erstmal die Widerstandswerte für die Transistormessung!

Als nächste Frage wäre gewesen, welche Widerstände du für die 
Spannungsüberwachung eingesetzt hast, besser wäre vielleicht ein Auszug 
aus dem Schaltplan?!?

Gruß Michael

EDIT: Ich hab's gerade gesehen. Spannungsteiler:
1k5 und 10k für den Atmega 8
und für den Atmega88 600R und 10k, korrekt?

von Josef S. (Gast)


Lesenswert?

Hallo Michael,
Widerstände für Spannungsüberwachung korrekt, wers ganz genau haben will 
muß ausmessem und den 1,5k / 600 Ohm widerstand durch Paralellschalten 
mit einem zweiten Widerstand abgleichen.
Gruß Josef

von Michael D. (mike0815)


Lesenswert?

Hallo Josef,

oder man nimmt gleich 1% Tolleranz. Apropos Genauigkeit, könnte es etwas 
bringen, wenn man den AVR mit 1 MHz extern taktet?
Ich habe mal gehört, das der interne Takt nicht so genau sein soll?!?

Gruß Michael

von Josef S. (Gast)


Lesenswert?

Hallo Michael,
die Anzeige mit meinen Widerständen ist nicht sehr genau, also Anzeige 
mit Voltmeter vergleichen.
Gruß Josef

von Michael D. (mike0815)


Lesenswert?

Hallo Josef,
ich nehme mal, das du die Spannungüberwachung meinst?!?
Ich meinte die allgemeinen Messbereiche des Transistortesters, ob das 
mit einer externen Quarz-oder Oszillatortaktung etwas bringen würde, die 
Genauigkeit des Gerätes zu erhöhen!
Wenn ja, würde ich das im nächsten Layout mit einbauen.

Gruß Michael

von Vlad T. (vlad_tepesch)


Lesenswert?

leute macht euch nicht so einen Aufwand.
Das Teil ist als Schätzeisen gedacht, um ein paar Bauteile aus der 
Bastelkiste grob zu bestimmen.
zum beispiel, ob es jetzt ein Transistor ist, wie die Pins liegen und 
welche Stromverstärkung er grob hat, um zu wissen, ob er als digitaler 
Schalter zu gebrauchen ist.
Diesen Zweck erfüllt es super, vor allem für dieses 
Preis-Leistungsverhältnis.
Als präzises Messgerät taugt es nicht und ist es nicht gedacht, da 
helfen auch die besten 0.1% Widerstände nicht.

von Michael D. (mike0815)



Lesenswert?

Hallo Vlad,

> Als präzises Messgerät taugt es nicht und ist es nicht gedacht, da
> helfen auch die besten 0.1% Widerstände nicht.

Magst ja Recht haben, aber warum nicht testen, ob da noch was geht!?

Ich habe das Teil ständig im Einsatz, vorallem um endlich mal die 
SMD-Brocken zu prüfen.
Das Problem ist, die Teile zu messen ohne das sie abhauen,wenn man sie 
anfasst.
Da habe ich mir mal was überlegt und eine kleine Platine mit Anschlüssen 
dafür geätzt. Die Pltine ist gerade mal 25 x 35mm.
Zugegeben, das Layout könnte durchaus etwas schicker sein, aber naja, 
vielleicht kommen noch ein paar Ideen?!?

Der Vorteil dieses Adapters ist, das er frei in der Luft hängt, man kann 
die SMD's quasi auch von unten dingfest machen.
Um die Kupferbahnen etwas zu erhöhen, habe ich diese etwas "wulstiger" 
verzinnt, sonst gibt's nur teilweise Kontakt, zuviel ist auch nicht gut, 
da rutschen die Teile weg!
Man Fixiere das Teil auf das dafür vorgesehene Pad mit der Pinzette, 
dann zieht man einen Latexhandschuh an und drückt den Transistor mit dem 
Daumen "oben" und dem Zeigefinger "unten", leicht an.
Jetzt hat man noch eine Hand für den "Reset" frei, ohne einen Haufen 
Messstrippen verwenden zu müssen.

Anbei mal ein paar Fotos

Gruß michael

von Peter11 (Gast)


Lesenswert?

Hallo,
ich hab da mal ne Frage:
Wie ist den der schwarze Bestückungsdruck auf die große Platine 
gekommen?
Die Platine ist ja wohl nicht durch einen Drucker geschoben worden oder?
Viele Grüße Peter

von Wolfgang S. (wsm)


Lesenswert?

Hallo,

hab auch ne Frage:

Ich habe den Tester nachbegaut und schlechte Messwerte bei 
Kondensatoren.

Welche Bauteiltoleranzen bei Atmegas  sind dafür verantwortlich?

Lohnt sich der Austausch des Atmega8?

W.

von Wolfgang S. (wsm)


Lesenswert?

Bei mir kommt eine Meldung, dass ein Skript die Ausführung dieser Seite 
verlangsamt.

Wie lässt sich das vermeiden ?

W.

von Michael D. (mike0815)


Lesenswert?

Peter11 schrieb im Beitrag:
> Hallo,
> ich hab da mal ne Frage:
> Wie ist den der schwarze Bestückungsdruck auf die große Platine
> gekommen?
> Die Platine ist ja wohl nicht durch einen Drucker geschoben worden oder?
> Viele Grüße Peter

Hallo Peter,

Die Platine habe ich bestimmt nicht in den Drucker geschoben, das wär' 
ja mal was...
Nein, es ist ein Spiegeldruck in Schwarz auf ganz glatten, dünnen 
Papier(Katalogseite auf normales Druckerpapier geklebt)dann mit Platine 
durch einen modifizierten Laminator mehrmals gejagt(ca. 200-220 Grad), 
in Seifenlauge eingeweicht, leicht abgerubbelt, Klarlack drauf und schon 
braucht man keinen Plan mehr zum bestücken!
Die Anleitung dafür, gibt es hier im Forum: Rubrik "Platinen"

Hallo Wolfgang,
zu deiner Frage:
>  Welche Bauteiltoleranzen bei Atmegas  sind dafür verantwortlich?

Welche Widerstände verwendest du (Toleranz)? Die Widerstände sollten 
fast identische Werte aufweisen, ich habe da "Einige" vorher 
durchgemessen, damit das einigemaßen hinhaut! Ansonsten 1% Toleranz wäre 
vielleicht zu empfehlen.
Ich habe einige Mega8 getestet und konnte keinen gravierenden 
Unterschied feststellen, meine Erfahrung!

Zu dem Skript: Ich habe das auch manchmal, dann wieder nicht, keine 
Ahnung, was da vor sich geht?!?

Hat denn noch Jemand eine Idee, wie man den SMD-Adapter für den TTester 
verbessern könnte?

Gruß Michael

von Peter11 (Gast)


Lesenswert?

Hallo Michael,
Danke für die Antwort.

Hallo  Wolfgang + Michael,
das mit dem Script habe ich noch nie gesehen und ich lese (zu) häufig.
Ich benutze einen (alten) Firefox/3.5.7.

Viele Grüße Peter

von Michael D. (mike0815)


Lesenswert?

Hallo Peter,
ich habe zufälligerweise festgestellt, daß das Problem mit dem Skript 
nur dann auftritt, wenn du nicht eingeloggt bist!

@Vlad,

Ich habe  mal deinen Code für die Spannungsüberwachung eingefügt und die 
Widerstände vertauscht, also 10k zum Regler und 1k5 parallel zur 
Zehnerdiode.
Zum Abgleichen bin ich deinem Vorschlag gefolgt und habe so lange mit 
einem Präzisionspodi und einem Multimeter abgeglichen, bis die 
Spannungsmessung auf 2 Stellen nach dem Komma fast genau hinkommt.
Den Wert, den ich für den 1k5 ermittelt habe, war 1464 Ohm.
Einen Widerstand mit exakt diesem Wert, habe ich tatsächlich in der 
Kiste gefunden!
Da kann man mal sehen, wie die Spannung primär(vor dem Regler) 
zusammenbricht, wenn die Displaybeleuchtung einegeschaltet 
ist(Displaytec 162)!
Allerdings kann man die originale Software für diese Bestückung nicht 
verwenden! Es kommt sofort "Batterie leer" und danach ein "Timeout"

Gruß Michael

von Vlad T. (vlad_tepesch)


Lesenswert?

Michael D. schrieb:
> @Vlad,
Ich steh grad ein wenig auf dem Schlauch

>
> Ich habe  mal deinen Code für die Spannungsüberwachung eingefügt
meinen Code?
ICh hatte doch gar keinen gepostet, nur ein Zitat aus dem Quellcode
> und die
> Widerstände vertauscht, also 10k zum Regler und 1k5 parallel zur
> Zehnerdiode.
so steht es ja im Artikel (nur gibts da die Zenerdiode gar nicht)

> Zum Abgleichen bin ich deinem Vorschlag gefolgt und habe so lange mit
> einem Präzisionspodi und einem Multimeter abgeglichen, bis die
> Spannungsmessung auf 2 Stellen nach dem Komma fast genau hinkommt.
Das habe definiv nicht vorgeschlagen

von Michael D. (mike0815)


Lesenswert?

...hast recht, habe gerade noch mal nachgeschaut, das war der Josef!

Beitrag "Re: Transistortester mit AVR"

> ICh hatte doch gar keinen gepostet, nur ein Zitat aus dem Quellcode

...stimmt auch:
> "die Kommentare passen nicht zu den Werten"


Vielleicht sollte der Josef das mal berichtigen?!?

Was ein ein Durcheinander,

Gruß Michael

von Theo K. (dg0om)


Angehängte Dateien:

Lesenswert?

Leute, macht euch nicht verrückt. Das ist ein Tester und kein 
Präzisionsmessgerät. Am Steckernetzteil betrieben wird die 
Unterspannungswarnung sowieso nie benötigt. Ich hab mir zwei Geräte 
aufgebaut, einmal für Netzbetrieb mit Steckernetzteil und einer 
LCD-Anzeige mit Hintergrundbeleuchtung für den Werkstattbereich. Die 
Ein/Aus Logik hab ich hier weggelassen. Der Vorteil ist, mit 
eingesteckten Prüfling und Betätigung des Tasters bleiben die Werte im 
Display solange gespeichert bis eine neue Messung gestartet wird. Auch 
wenn der Prüfling danach entfernt wird bleiben die Werte bis zum 
Ausschalten in der Anzeige.
Ein zweites Gerät für unterwegs hab ich mit 9V-Block und der originalen 
Schaltung in ein Handgehäuse mit den kleinen Pollin-Display aufgebaut.

von Juppi J. (juppiii)


Lesenswert?

Michael D. schrieb:
> Hallo Peter,
>
> ich habe zufälligerweise festgestellt, daß das Problem mit dem Skript
>
> nur dann auftritt, wenn du nicht eingeloggt bist!


Bei mir tritt es auch dann auf!

von Hubert G. (hubertg)


Angehängte Dateien:

Lesenswert?

@Theo K.
Genau so ist es. Ich habe auch zwei Geräte, eines für die Werkstatt und 
eines für Unterwegs, macht sich auf Flohmärkten sehr gut wenn man so ein 
Super-Sonderangebot gleich mal Testen kann.
Das zweite Gerät ist jeweils ein Tester für Grundwellenquarze, 
Quarzoszillatoren und Uhrenquarze.

von skymann (Gast)


Lesenswert?

Hallo Leute!

Ich habe ein Problem mit der Programmierung von Atmega.
Ich benutze einen ISP-Programmer, aber ich kann leider nicht EEProm 
programmieren.
Der PC schreibt mir die ganze Zeit "Leaving Programming mode..FAILDE.
Kann mir werd herlfen?

Danke!
skymann

von Vlad T. (vlad_tepesch)


Lesenswert?

je nach dem wo du wohnst kannst du zum programmieren des Megas 
vorbeikommen, oder dir gegen Erstattung der Versandkosten und Preis 
einen programmierten zuschicken lassen.

Edit:
wenn du das Problem an der Wurzel lösen willst, dann mach einen neuen 
Thread auf und beschreib dein System (Programmer, Programmier-SW, Os, 
genauen Ablauf, Aussgabe) etwas genauer.

von Markus F. (5volt) Benutzerseite


Lesenswert?

Michael D. schrieb:
> Hat denn noch Jemand eine Idee, wie man den SMD-Adapter für den TTester
> verbessern könnte?
Vielleicht irgendwelche Federn als Kontakte verwenden; dann wäre eben 
die Kontaktsicherheit besser und man müsste die Bauteile nicht so fest 
andrücken.
Geeignete Federkontakte sollten sich in Steckverbindern (z.B. PCI-Slots) 
finden. Probiert habe ich das aber noch nicht...

Und zu dem "Skript-Problem": Bei mir (mit Firefox 3.6.13) tritt das 
nicht auf.

von Michael D. (mike0815)



Lesenswert?

Hi Markus,

> Vielleicht irgendwelche Federn als Kontakte verwenden; dann wäre eben
> die Kontaktsicherheit besser und man müsste die Bauteile nicht so fest
> andrücken.
> Geeignete Federkontakte sollten sich in Steckverbindern (z.B. PCI-Slots)
> finden. Probiert habe ich das aber noch nicht...

Wie stellst du dir das denn vor? Die SMD-Popel auf kleine Federkontakte 
zu fixieren könnte etwas schwierig werden, weil die ja gerne abhauen 
wollen?!?

Ich habe am WE noch 2 kleine Adapter geätzt(nur für Widerst. u. 
Kondensatoren), nur diesmal habe ich  Silberleitlack auf die Kontakte 
gepinselt.
Den Tester ist auf einer 8mm Plexiplatte befestigt. Unter der Platine 
habe ich in das Plexi ein 3mm Gewinde gebohrt.
Man kann jetzt die verschiedenen Adpter aufstecken und mit nur einer 
Schraube und einer 6mm Aluhülse Dingfest machen.
Das Aufsetzen der SMD's gestaltet sich dadurch etwas einfacher u. der 
Kontakt ist auch besser. Die Teile drücke ich mit einem leicht gewölbten 
CD-Schreiber (Kappe) auf, klappt bisher ganz gut und man hat immer noch 
eine Hand für das Restten frei!
Ich hänge mal ein paar Bildchen an...

Gruß Michael

von skymann (Gast)


Lesenswert?

Vlad Tepesch schrieb:
> je nach dem wo du wohnst kannst du zum programmieren des Megas.....

Hallo vielen Dank für dein Angebot, aber dieses Wochende habe ich das 
Problem gelöst.
Das Problem lag zwischen der Tastatur und dem Sessel :)

von Helmut R. (Gast)


Lesenswert?

Hallo Leute,
ich hab bei R.. 10 Atmega8-16PU mit der Seriennummer 1045 gekauft.
ich hab 5 Stück programmiert, Fuses richtig gesetzt und keiner geht in 
meiner erprobten Schaltung.
Ein Atmega8-16PU mit der Serie 0842G aus meinem Lagerbestand 
funktionierte auf Anhieb.
Wenn ich die neuen Atmegas mit Spielereichen füttere, Lauflicht, LCD 
Ansteuerung usw. kann ich keine Fehler feststellen.

Hat jemand bereits Erfahrung mit der Serie? Softwareanpassung?

Gruß Helmut

von Michael D. (mike0815)


Lesenswert?

Hallo Helmut,
ich hatte da auch mal ein Problem, das egal wo ich die zu messenden 
Bauteile reingesteckt habe, hat der Tester nur 2 Ports erkannt und zwar
(TP) 1 und 3. Auch die Messungen waren da für die Füsse!
Nach einem Tausch desselben Typs (Atmega8-16PU Serie 0931G), war wieder 
alles ok.
Jetzt dachte ich, daß der Atmega8 defekte Ports hat, komischerweise habe 
ich 21 Ports mit 21 LEDs mit einem Programmm angesteuert und konnte 
keinen Defekt feststellen.

Also für LED-Steuerung noch zu gebrauchen, für Messaufgaben eben nicht, 
man muß sie dann also nicht gleich in die Tonne kloppen


Edit: Mir ist gerade aufgefallen, das dieser Effekt erst dann auftrat, 
als ich in der Schaltung rumgelötet hatte, warscheinlich ein 
ESD-Problem!
Ab jetzt wird nur noch im ausgesockelten Zustand gelötet, dann ist man 
auf der sicheren Seite!

Gruß Michael

von Helmut R. (helmut-stromer)


Lesenswert?

Hallo Michael,
bei mir zeigen von 10 Bestellten Atmels 5 getestete den gleichen Effekt.
Gleiche Hardware, kein Löten nur im Sockel tauschen.

Die Atmels funktionieren auch im USBasp Adater nach Radig nicht.
LED wird angesteuert, und der PC bringt am USB unbekannte Hardware. 
Atmega mit anderer Seriennummer und alles ist OK.

Ich hab inzwischen bei einem anderen Händler 2 Stück zum testen mit der 
gleichen Seriennummer bestellt.

Vielleicht wurde R.. von seinem Distributor gelinkt.

Sobald ich die neuen zwei habe, geb ich bescheid, ob Serie oder 
Einzelfall.

Gruß Helmut

von Thomas S. (moinsmoins)


Lesenswert?

Hallo zusammen,

vielen Dank für dieses Projekt. Es war interessant und hat Spaß 
gemacht, es nachzubauen. Ich habe es auf einer Euro-Platine (Lochraster) 
incl. Netzteil und ISP-Anschluss für den AVRISP mkII aufgebaut und bin 
beim Zusammenbau auf folgende "Probleme" gestoßen:

- RST-Widerstand gegen GND angeschlossen (dank der orangenen 
Blinkanzeige des AVRISP mkII aber sehr schnell entdeckt ;) )
- billige Taster sind einfach blöd, nach den ersten paar (mehr oder 
weniger erfolgreichen) Bauteil-Tests hatte ich immer nur noch 
"Timeout"-Meldungen
- Zwischen den Anschlüssen für die Testpins muss wirklich sauber gemacht 
werden, da bei mir ein 470k Widerstand als Kondensator oder sogar als 
Transistor gemeldet wurde
- die LC-Displays von Poll** sind genügsam... selbst eine komplette 
Verpolung (1 auf 16 usw.) überstehen sie klaglos ;) Erkennungszeichen: 
Die oberste Zeile zeigt Rechtecke, die 2. Zeile ist leer.

Jetzt noch der Einbau in ein passendes Gehäuse und dann mal schauen, was 
als nächstes kommt ...

Gruß
Thomas

von Michael D. (mike0815)


Lesenswert?

Hallo Thomas,

Ich bin völlig zufrieden mit dem Teil, es mist ziehmlich genau, muß ich 
sagen!
Das Timeoutproblem hatte ich unter Anderem, auch durch 
Spannungseinbruch!!!
Das kam durch eine defekte 1N4148. Ich habe dann alle 
Gleichrichterdioden gegen 1N4004 getauscht, jetzt ist Ruhe.
Ist die Versorgungsspannung nicht stabil, mist man Mist!

Ausserdem habe ich die "Spannungsüberwachung" vom Josef, die vor jeder 
Messung angezeigt wird, mit in den Code eingebaut, sehr praktisch...
Hier der Link:
Beitrag "Re: Transistortester mit AVR"

Zeig mal deinen Aufbau!

Gruß Michael

von Thomas S. (moinsmoins)


Angehängte Dateien:

Lesenswert?

Hallo Michael,

da ich mit einem Netzteil statt Batterie arbeite, kann ich mit einer 
Spannungsüberwachung wohl nichts werden. Falls ich nochmal 
Timeout-Probleme haben sollte, werde ich größere Stütz-Kondensatoren 
einsetzen. Die eingesetzten Typen sollten aber an sich reichen.

Und du hast es so gewollt ;) Hier mein Aufbau (Schema und Realität) als 
Anhänge.

Einige Erläuterungen / Hinweise dazu:

Die 2-er-Jumper an der Power-LED und dem Push-Button dienen dem 
Anschluss der Pendants im Gehäuse.

Der 6-er-Jumper bei den Messwiderständen dient der Trennung der 
Leitungen beim Anschluss des AVRISP mkII, da ich hier im Thread gelesen 
hatte, dass jemand Probleme hatte (macht bei mir aber keinen 
Unterschied, sind also hier überflüssig... möglicherweise verschlechtere 
ich durch das Vorhandensein sogar die Messergebnisse... mal schauen).

Ich habe sowohl für den Kontrast als auch die Hintergrund-LED des 
LC-Displays jeweils Potis (10K und 1K) verwendet.

Nicht wundern, dass der Stecker für den Anschluss des LCD breiter ist, 
als er muss. Es handelt sich um ein eingekürztes IDE-Kabel.

Bei der verwendeten Lochraster-Platine handelt es sich um eine ohne 
durchgehende Lötstreifen. Sie sind nach jeweils 3 Anschlusslöchern ab 
Werk durchgetrennt.

Die Abstände des 230V-Teils zu der // den anderen Leitungen // Bauteilen 
sind eingehalten, die Unterseite ist entsprechend isoliert und der 
Einbau in ein passendes Gehäuse steht unmittelbar bevor. Das Bild zeigt 
also den Testaufbau.

Gruß
Thomas

Edit: P.S. Bei der Nachbearbeitung des Schaltplans ist leider die 
Verbindung von Pin28 gegen +5V abhanden gekommen.

von Thomas S. (moinsmoins)


Lesenswert?

Sorry,

noch ein Nachtrag (Editierzeit überschritten): Der verwendete 
Gleichrichter ist ein B80C1500, rund, und kein BC80C1500.

Gruß
Thomas

von Michael D. (mike0815)


Lesenswert?

moin Thomas,

> da ich mit einem Netzteil statt Batterie arbeite, kann ich mit einer
> Spannungsüberwachung wohl nichts werden.
In dem Fall ist das Wurscht, ob Batterie oder Netzteil, gemessen wird 
die Spannung immer(Primär)!
Aber du hast die Spannungsüberwachung garnicht eingebaut, wie ich 
sehe?!?

> Falls ich nochmal Timeout-Probleme haben sollte, werde ich größere Stütz-> 
Kondensatoren einsetzen. Die eingesetzten Typen sollten aber an sich
> reichen.
Wie gesagt, die Spannungsschwankungen haben bei mir zum Timeout und 
falschen Messergebnissen geführt. Festgestellt habe ich das durch messen 
der Spannung am 7805. Beim drücken der Resettaste,hat hatte sich die 
Spannung leicht verändert, prüfe das mal! Schickes Display, wo 
erstanden?
Die Displaybeleuchtung zieht auch gut Strom, auch das solltest du mal 
prüfen, ob da die 6 VA des Trafos ausreichen.

> Der 6-er-Jumper bei den Messwiderständen dient der Trennung der
> Leitungen beim Anschluss des AVRISP mkII, da ich hier im Thread gelesen
> hatte, dass jemand Probleme hatte
...stimmt, dem war so!
> (macht bei mir aber keinen
> Unterschied, sind also hier überflüssig... möglicherweise verschlechtere
> ich durch das Vorhandensein sogar die Messergebnisse... mal schauen).
könnte sein. Ich konnte bei meinem Aufbau keine ISP-Programmierung 
vornehmen, weder per USB noch parallel, warum auch immer, ich muß das 
Teil immer aus dem Sockel ziehen :-(

Gruß Michael

von Thomas S. (moinsmoins)


Lesenswert?

Hallo Michael,

Michael D. schrieb:
> Aber du hast die Spannungsüberwachung garnicht eingebaut,
> wie ich sehe?!?

Nein, bzw. doch... die ist direkt auf die +5 Volt Leitung gelegt. Hatte 
ich nur im überarbeiteten Schaltplan vergessen wieder einzuzeichnen.

> Wie gesagt, die Spannungsschwankungen haben bei mir zum Timeout
> und falschen Messergebnissen geführt. Festgestellt habe ich das
> durch messender Spannung am 7805. Beim drücken der Resettaste,
> hat hatte sich die Spannung leicht verändert, prüfe das mal!

Gemessen am 7805: Veränderung - wenn überhaupt - in der 3. 
Nachkomma-Stelle. Meines Erachtens nach zu vernachlässigen. Und diese 
Änderungen gab es auch, wenn ich das Gerät einfach nur eingeschaltet 
hatte.

> Schickes Display, wo erstanden?

Pollin: Best.-Nr. 94-120422, LCD TC1602A-09, 16x2, blau, 6,95 EUR (Stand 
24.02.2011).

> Die Displaybeleuchtung zieht auch gut Strom, auch das solltest du mal
> prüfen, ob da die 6 VA des Trafos ausreichen.

Habe ich geprüft, zumindest spannungsmäßig. Keine Veränderung am 7805, 
egal ob on / off. Und die Messergebnisse bleiben auch (weitestgehend) 
identisch (leichte Abweichungen in der Einer-Stelle dürften kaum von 
Bedeutung sein. Es ist ja kein Präsizionsmessgerät). Ehrlich gesagt 
hatte ich aber auch nichts anderes erwartet.

Gruß Thomas

von tt2t (Gast)


Lesenswert?

Wäre es nicht zweckmässig, für R1 bis R6 Präzisionstypen zu nehmen, die 
gibt es bei Reichelt zwar nur als bedrahtete Teile, aber Platz ist ja 
genug auf den Platinen.

Hat jemand einen Gehäuse-Vorschlag von reichelt für die SMD-Version?

von Hubert G. (hubertg)


Lesenswert?

Falls mit Batteriebetrieb ist die Kleinheit ohnehin limitiert. Schau mal 
den Beitrag von 02.01.2011 14:22 an, das Gehäuse gibts bei Reichelt.

von jam jam (Gast)


Lesenswert?

Moinn zusammen
Finde ich es nicht oder gibt es das prog nicht Bascom.

Prjekt ist toll und funktioniert auch prima. nur ich will kein Display 
sonder die ausgabe aus serielen bus legen in bascom könnt ich das aber 
nicht in c oder asm
dafür lohnt es sich nicht da reinzuarbeiten .

Also konkrett hatt jemand das teil mit zusätzlich der ausgabe über 
seriel.

gruß und danke

von Hubert G. (hubertg)


Lesenswert?

Das gibt es doch, in der Version die ich habe ist ein SW-Uart dabei.

von Hubert G. (hubertg)


Lesenswert?

Das gibt es doch, in der Version die ich habe ist ein SW-Uart dabei.
In BASCOM gibt es das Projekt meines Wissens nach nicht.

von Michael D. (mike0815)


Lesenswert?

Aha, in welcher Version ist das? Vielleicht könntest du den Code mal 
hier posten?

Gruß Michael

von Hubert G. (hubertg)


Lesenswert?

http://viewvc.coremelt.net/viewvc/avr/semiconductor_tester/firmware/
Hier zum Download, Quellcode und mit *.hex und *.eep Files

von jam jam (Gast)


Lesenswert?

Danke werds mal versuchen

von Dominik µ. (dominik_)


Lesenswert?

Hallo,

will auch mal mit µC anfangen.

Taugt das Pollin Board zum Proggn des Atmegas etwas?

von Thomas S. (moinsmoins)


Lesenswert?

Dominik µc schrieb:

> Taugt das Pollin Board zum Proggn des Atmegas etwas?

Siehe: 
[[http://www.mikrocontroller.net/articles/Pollin_ATMEL_Evaluations-Board]]

Gruß
Thomas

von Michael D. (mike0815)


Lesenswert?

bei 14,95€ für den Bausatz kann man eigendlich nicht viel verkehrt 
machen, denke ich, bis auf die kleine Umstrukturierung.
Oder man baut sich für noch kleineres Geld einen USBASP mit dem Mega8, 
habe ich in Betrieb und funzt wunderbar...

Die Atmegas bei Pollin sind viel zu teuer, wie ich sehe!

Gruß Michael

von Dominik µ. (dominik_)


Lesenswert?

Hallo, Leute!

Großes Lob an Markus Frejek & und an die anderen!


Gibts für den Transistortester auch ein aktuelles Layout?
Zum Tonertransfer-ätzen...


Mit freundlichen Grüßen,
Dominik

von Michael D. (mike0815)


Lesenswert?

no, hier natürlich:
http://viewvc.coremelt.net/viewvc/avr/semiconductor_tester/firmware/

und hier:
Beitrag "Re: Transistortester mit AVR"

und hier is' meins, da habe ich für das Display aber ein paar Brücken 
drinnen!
Ist übrigens auch mit der Tonertransfermethode gemacht.

hier ist noch eins:
Beitrag "Re: Transistortester mit AVR"

Gruß Michael

von jam jam (Gast)


Lesenswert?

MOin ich nochmal

ich habe da C Dsisplay DIP162-DNLED am Tester dran und alle Leitingen 
sind direkt verlötet.

Die Beschriftung auf der Rückseite ist eigentlich eindeutig aber ich 
habe nur eine Zeile mit schwarzen Blöcken und in der zweiten Zeile nix.
Also genau so wie in der Fehlersammlung beschrieben nur halt einzeln 
verdrahtet. Kann also nicht verdreht sein   was mach ich falsch ??
bin für jeden Tipp dankbar

Danke

von Michael D. (mike0815)


Lesenswert?

puh, das Display kostet über 23 Euro!
Hast du das Display schon mal woanders getestet?
Welchen Schaltplan, Layout hast verwendet?
Welche Soft hast aufgespielt, bei mir war mal eine falsche Software im 
Chip, da hatte das auch so ausgesehen!
Mach mal nen Shot...
Überprüf mal deine Lötkünste, sitzt der µC richtig im Sockel?

PS. ist deine Tastatur kaputt, oder waren die Finger zu schnell?

von jam jam (Gast)


Lesenswert?

Nein habe ich nocht wo anders getestet
der mega8 benimmt sich normal Spanungen an den driepolen schwanken und 
ändern sich wie wild mit einen Transi drann stellst sich schnell ein 
stabiler zusand ein .
Schaltplan und Software ist aus dem Forum
http://www.mikrocontroller.net/wikifiles/1/11/AVR-Transistortester_neu.zip

Lötstellen wurden mehrfach geprüft nicht nur von mir auch vom Kollegen
ist soweit ok

was mich wundert es benimmt sich genau wie in der Fehlerbeschreibung des 
Treads

"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). "

von Joe (Gast)


Lesenswert?

jam jam schrieb:
> dann ist bei Anschluss
> mittels Adapterkabel die Verbindung komplett verdreht

Dunkler Balken bedeutet nur, dass die Initialisierung nicht geklappt hat 
und sonst nichts.

Dafür gibt es 100 Ursachen.

Joe

von jam jam (Gast)


Lesenswert?

Ok nehm ich schon mal zur kenntnis  wie kann man da systematisch 
ansetzen um das problem einzugrenzen.  Hat wer nen fuktionierende 
Testsoftware
am besten in Bascom dann könnt ich's selber anpassen.

von Baskomiker (Gast)


Lesenswert?

Hallo,
wenn ich die Einträge davor lese und dann diesen Satz
"am besten in Bascom dann könnt ich's selber anpassen"
frage ich mich allen Ernstes, wozu bei BASCOM LCD Beispiele mitgeliefert 
werden, die man selbst anpassen kann....
siehe Verzeichnis "SAMPLES" bei der BASCOM Installation.
Die sind sogar bei der kostenlosen DEMO dabei.
Helau & Helaf & last die Bits krachen und die Bytes lachen ...

von Theo K. (dg0om)


Lesenswert?

Hallo, mal zum Thema Probleme... Habe gute Erfahrungen gemacht, wenn man 
den Controller vor einer Programmierung mehrmals löscht.

von FaSo (Gast)



Lesenswert?

Hallo,
hier ein kurzes Testprogramm nur für die LCD Anzeige:

Die PINS müssen wie unten verdrahtet sein.
(Das wäre wie hier 
http://www.mikrocontroller.net/wikifiles/1/11/AVR-Transistortester_neu.zip 
)

Ich kann es selbst nicht testen, da ich keinen ATmega8 mit LCD Anzeige 
hier habe. Ich habe es an einem ATmega16 getestet und dann "blind" für 
einen ATmega8 übersetzt.


Auf der Anzeige müßte erscheinen:
1234567890123456
*..............*


var LCD_D4 : sbit at PORTD0_bit;
var LCD_D5 : sbit at PORTD1_bit;
var LCD_D6 : sbit at PORTD2_bit;
var LCD_D7 : sbit at PORTD3_bit;

var LCD_D4_Direction : sbit at DDD0_bit;
var LCD_D5_Direction : sbit at DDD1_bit;
var LCD_D6_Direction : sbit at DDD2_bit;
var LCD_D7_Direction : sbit at DDD3_bit;

var LCD_RS : sbit at PORTD4_bit;
var LCD_EN : sbit at PORTD5_bit;

var LCD_RS_Direction : sbit at DDD4_bit;
var LCD_EN_Direction : sbit at DDD5_bit;

von jam jam (Gast)


Lesenswert?

Danke werds mal versuchen und dann berichten

von Thomas R. (tinman) Benutzerseite


Lesenswert?

eigentlich benutze ich den tester sein monaten ohne probleme, heute aber 
etwas seltsame ergebnisse bekommen.

Von 20 nagelneuen BFR96TS haben 12 hfe von ~960 und 8 hfe von ~105 (was 
zum BFR96TS passt).

Fw eigentlich jan 2010, ist mir aber nie aufgefallen das hfe falsch 
angezeigt wäre, möglicherweise bfr96ts fehlerkennung.

Falls jemand diese transistoren hat bitte kurz durchtesten.

von Salvatore M. (Firma: Privat) (salva)


Lesenswert?

Hi Holger!

Könntest bitte mir der link geben für die Firmware die Du benutzt hast?

Danke!

Gruß

von Nobody (Gast)


Lesenswert?

Ich kann zwischen Klemme 1 und 2 problemlos Widerstände (z.B. 10 Ohm) 
und Dioden (in beiden Richtungen) messen. Wenn ich aber Klemme 1 und 2 
direkt verbinde wird nicht Widerstand 0 Ohm angezeigt sondern Kein, 
unbek. oder defektes Bauteil.

Ist da noch ein Bug in der Software oder habe ich Mist zusammengelötet?

Abgesehen davon: Ein super Projekt und jeden Tag nützlich!

von Nobody (Gast)


Lesenswert?

Ist das noch keinem Aufgefallen? Wenn doch Transistoren etc. alle 
korrekt erkannt werden, wieso dann keine sehr kleinen Widerstände 
zischen 1-2?

von Reiner (Gast)


Lesenswert?

>Wenn doch Transistoren etc. alle korrekt erkannt werden, wieso dann keine sehr 
kleinen Widerstände zischen 1-2?

Weil Transistoren 3 (drei) Anschlüsse haben )-:
Ich habe dasselbe Verhalten festgestellt.  Das Problem ist die eine 
offene Messleitung.  Wenn die zu lang ist, fängt sich die Leitung jede 
Menge Netzbrumm etc ein.  Das Verkürzen der Messleitungen löst das 
Problem.

von Nobody (Gast)


Lesenswert?

Ich habe die dritte Leitung von der Platine abgelötet. Es gab leider 
keine Besserung.

Dann hatte ich eine neue Platine geätzt und bestückt, die zeigt das 
selbe Verhalten.

von Michael D. (mike0815)


Lesenswert?

Hi,

> Ich kann zwischen Klemme 1 und 2 problemlos Widerstände (z.B. 10 Ohm)
> und Dioden (in beiden Richtungen) messen. Wenn ich aber Klemme 1 und 2
> direkt verbinde wird nicht Widerstand 0 Ohm angezeigt sondern Kein,
> unbek. oder defektes Bauteil.

Das ist normal, wenn der Widerstand zu klein ist, dann wird ein defektes 
Bauteil angezeigt(Kurzschluss)! Ist der Widerstand etwas über 0 Ohm, 
dann wird "0 Ohm" angezeigt, d.h. der Widerstand "muß" über null Ohm 
sein, Nachkomma wird eben nicht angezeigt, dafür war es ja auch nicht 
gedacht.

Ich habe das gerade mal getestet, eine direkte Brücke an den Pins, zeigt 
das Defekte Bauteil an! Eine Pinzette z.B., 0 Ohm.

Gruß Michael

von Nobody (Gast)


Lesenswert?

Vielen Dank Michael, das beruhigt mich!

Gruß Nobody

von Dimi S. (ilovespeccy)


Angehängte Dateien:

Lesenswert?

Hier ist meine Variante.
Wollte schon länger diesen Transistortester bauen.
In einem Elektronikladen bei uns habe ich dieses Gehäuse gekauft.
Vielen dank an Markus Frejek für dieses tolles Projekt!!!

MfG aus Westerwald

von Sergey (Gast)


Lesenswert?

Markus, bitte Umsetzung der Messung des ESR-Kondensatoren!

von Koi (Gast)


Lesenswert?

@Sergey:
Wie wärs damit, die Grundlagen selbst zu erarbeiten und dann in den 
Quelltext einbauen? Den Quelltext findet man z.B. hier verlinkt:
http://www.mikrocontroller.net/articles/AVR-Transistortester
(ganz am Ende)

Auch wenn Du höflich "Bitte" gesagt hast, hat nicht jeder Lust und Zeit, 
Features für Andere zu programmieren.

Das Andere/man selbst an die Entwicklung anknüpfen können/kann - deshalb 
kann man ja hier den Quelltext anderen zur Verfügung stellen. Markus hat 
schon eine ganze Menge getan (auch für Andere). Dafür ein Danke an 
Markus.

von Hannes L. (hannes)


Lesenswert?

Koi schrieb:
> Auch wenn Du höflich "Bitte" gesagt hast,

In Verbindung mit dem Ausrufezeichen ist das aber keine "höfliche Bitte" 
mehr, sondern eher eine freche Forderung...

...

von Sergey (Gast)


Lesenswert?

Ich benutze den Dolmetscher google. Das Gerät ist einfach wunderbar, 
aber die Anwesenheit von ESR Meter würde ihn machen einfach super

von Sergey (Gast)


Lesenswert?

Ich entschuldige mich, wenn mein Antrag nicht richtig gemacht wurde

von Alexander Schmidt (esko) (Gast)


Lesenswert?

Hi Sergey,
dont use the google translator, nearly everyone in this forum 
understands english.

The hardare is not ideal suited for ESR measurements, so do you have an 
idea how to measure ESR with the existing tester hardware?


Benedikt K. schrieb:
> Elko auf um die Vcc/2 laden, über einen Widerstand z.B. 25mA in den Elko
> jagen und möglichst sofort die Spannung messen, so dass der Elko keine
> Zeit hat sich zu laden. Dann das ganze in die andere Richtung.
> Da man den Widerstand der den Strom liefert kennt, könnte man so einfach
> über den Spannungsteiler aus dem Widerstand und dem ESR diesen
> berechnen.
> Wird nicht sonderlich genau, aber als Anhaltspunkt sollte es gehen.
> Bei 100 Ohm Vorwiderstand liegt die Auflösung bei 200mOhm. Das ist nicht
> gerade gut, <50mOhm sollten es für brauchbare Messungen mindestens sein.

means translated:
preload the cap to Vcc/2 and then load it with an defined current of 
25mA. As the voltage should not have changed in this short intervall, it 
can be assumed to be left at Vcc/2. If you measure the voltage you can 
easily calculate the resistance R = voltage/current
the resolution is 200mΩ with an resistor of 100Ω.

von Michael D. (mike0815)


Lesenswert?

Sergey ist Ausländer, wie man sieht und sollte doch etwas Nachsicht 
walten lassen. Deutsch ist eines der schwersten Sprachen!

ESR-Meter, habe ich da was verpasst?

Diese Woche wird noch eine Lieferung vom Reichelt bei mir eintreffen. 
Geordert waren u.a. 680R 0,1% und 470k 0,1% Tol., jetzt waren die leider 
ausverkauft, da habe ich mich für die 510k als Ersatz entschieden. 
Reicht das aus, den neuen Wert in der Soft einzutragen oder sind 510k zu 
hoch?

Ich habe ja schon einen Prototyp am laufen, der mir schon sehr gute 
Dienste geleistet hat, daher mußß noch eine Referenz her.

Ich hätte da noch eine Idee, könnte man für die Displaybeleuchtung noch 
einen LCD-Dimmer realisieren? Ein Schaltungsvorschlag mit einem 
Transistor (an Pin13 evtl.)Basis mit 4k7 für den Dimmausgang, Emitter an 
GND, Kollektor mit 10R an die Kathode der Displ.-Beleuchtung.
Einen PWM-Ausgang für diverse Displays für den Kontrast, war ja schon 
mal im Gespräch, glaube ich?!?

Gruß Michael

von sergey (Gast)


Lesenswert?

@Alexander Schmidt
Meine Sprache - Russisch. Ich spreche Englisch schlecht. Deutsch weiß 
einfach nicht.
Ich denke, dass die Messung der ESR erforderlich ist, um das System zu 
verfeinern.

Zum Beispiel ist es möglich, auf diese Entwicklung zu bauen: 
http://koti.mbnet.fi/hsahko/elek/kv/esr/index.en.shtml

von sergey (Gast)


Lesenswert?

Sie können weiterhin etwas von hier: 
http://forum.cxem.net/index.php?showtopic=42955&st=0

von Uwe S. (de0508)



Lesenswert?

Hallo,

ich will euch noch den Aufbau auf der Platine von IT-WNS vorstellen.

Nicht wundern, auf der Platine fehlen noch die 680R 1% 
Metallfilm-Widerstände - diese sind mir gerade ausgegangen.

von Coviraylhik (Gast)


Angehängte Dateien:

Lesenswert?

Очень интересный прибор , и схема  моделируется в протеусе.

von Paul Baumann (Gast)


Lesenswert?

>Очень интересный прибор , и схема  моделируется в протеусе.

Übersetzung:
Ein sehr interessantes Gerät und die Schaltung ist mit Proteus? 
gezeichnet.

MfG Paul

von Stephan S. (uxdx)


Lesenswert?

Wäre es nicht möglich, noch eine Versionsanzeige einzubauen (z.B. in die 
2. Zeile während der Anzeige "Test läuft..."

von Markus F. (5volt) Benutzerseite


Lesenswert?

Stephan S. schrieb:
> Wäre es nicht möglich, noch eine Versionsanzeige einzubauen (z.B. in die
> 2. Zeile während der Anzeige "Test läuft..."
Ja, wäre im Prinzip möglich.
Aber was sollte ich da als jetzige Versionsnummer nehmen? Ich habe 
nämlich dafür bislang keine Versionsnummern verwendet...

von Marius S. (mimamau)


Angehängte Dateien:

Lesenswert?

Hallo Markus,
vielen vielen Dank für dieses tolle Projekt. Ich habe es heute mal 
nachgebaut und bin total begeistert! Das wird bestimmt eines meiner 
meißtgenutzten Meßgeräte (mit dem Digitalmultimeter).
Das ist übrigens mein erstes Layout und meine erste selbstgeätzte 
Platine. Das hat mit der Direct-Toner-Methode trotz der dünnen 
Leiterbahnen gut funktioniert.
Im Anhang findet ihr Fotos und die Dateien (Target 3001! 
PCB-Pool-Version).
Die Platine ist 84x44mm groß, so daß diese direkt unter das Display 
(183342-62 bei Conrad o. ä.) montiert werden kann.
Es handelt sich um die Version mit echtem Ein-/Ausschalter.
R11 muß nur bei einem Display mit Hintergrundbeleuchtung bestückt werden 
(meins hat keine Beleuchtung, konnte ich also nicht testen).
R9 ist für den Kontrast, bei meinem Display sieht es mit 6,8k ganz gut 
aus.
Nur der Taster hat irgendwie keine Funktion?!
Aso, ich hatte keine ultragenauen Widerstände da, hab einfach mit einem 
Meßgerät selektiert.
Der 'Allestester' wird jetzt erstmal auf ein paar Endstufentransen 
losgelassen... :)

von Michael D. (mike0815)


Lesenswert?

mein lieber man, du hast ja glatt 9 Leiterbahnen durch den Atmel gejagt, 
respekt, das trau' ich mich ja nicht mal...
Also einige Leiterbahnen hättest du ein wenig besser legen können, 
müssen an verschiedenen Stellen ja nicht so nah beieinander sein...
Aber trotzdem, wenn es funktioniert...

Gruß Michael

von Marius S. (mimamau)


Lesenswert?

Das war weitgehend der Autorouter von Target.
Und ja, es funktioniert, konnte gestern schon zwei defekte 
Endtransistoren ausmachen.

von Schimpl (Gast)


Lesenswert?

Ich habe den Tester eben aufgebaut und freue mich, doch zu früh. bei 
Transistoren wird nur eine Verstärkung um 700 angezeigt. Nein es kann 
nicht sein das 8 BD139 um die 700hFE haben, sie sollten um die >200 
iegen.
ich verwende Atmega 48.
Hat sonst jemand ein ähnliches Problem?

Mfg Schimpl

von Michael D. (mike0815)


Angehängte Dateien:

Lesenswert?

Hi Schimpl (interessanter Name)
Das wollte ich jetzt wissen und habe mal ein paar Exemplare gemessen.
Laut Datenblatt streuen die Teile zwischen 63 und 190 bei einem 
Kollektorstrom von 150mA.
Meine Teile zeigen mit dem Tester zwischen 83 und 128hFE an.
Anbei mal 4 Shots.

Der ATmega48 müsste doch schon randvoll sein mit der Sofware, oder?

Gruß Michael

von DB3JHF (Gast)


Lesenswert?

Wo kann ich denn die derzeit aktuelle Software finden? Eine 
Firmwareanzeige wäre meiner Meinung nach eine wirklich sinnvolle 
Ergänzung (vielleicht reicht einfach das Datum der Veröffentlichung).


Hier könnt Ihr unser (einseitiges) Layout finden (im KiCad-Format):

http://df0fkw.datenoase.de/index.php?option=com_content&view=article&id=112:vielseitiger-bauteiltester&catid=36:bastelprojekte&Itemid=67

Vielen Dank schon mal!
Jens, DB3JHF

Beitrag "KiCAD: Workshop im Raum Köln im 3. Quartal 2011"

von Gerd J. (geju)


Lesenswert?

Hallo die Runde !

Ich bin neu hier und möchte mir den Halbleitertester bauen.
Kann mir jemand sagen, wo ich die aktuelle (letzte) SW-Version für den 
ATMEGA8 hierfür finde ?

Vielen Dank im voraus

geju

von Michael D. (mike0815)


Angehängte Dateien:

Lesenswert?

Ok, dann stelle ich mal meine zur Verfügung.
Eingefügt ist die Spannungsüberwachung für Batterie und oder externe 
Spannungsquelle. Wird vor jedem Messen für ca. 2 Sek. angezeigt, wer's 
nicht haben möchte, kann's ja raus nehmen.
Die Widerstandswerte sind noch anzupassen, weil hier meine drin stehen:

  Genaue Werte der verwendeten Widerstände in Ohm.
  Der Nennwert für R_L ist 680 Ohm, für R_H 470kOhm
  Um das Programm auf Abweichungen von diesen Werten (z.B. durch 
Bauteiltoleranzen)
  zu kalibrieren, die Widerstandswerte in Ohm in die folgenden Defines 
eintragen:
*/
#ifdef UseM8
  unsigned int R_L_VAL EEMEM = 674;      //R_L; Normwert 680 Ohm
  unsigned int R_H_VAL EEMEM = 4690;      //R_H; Normwert 470000 Ohm, 
durch 100 dividiert angeben

#else

Viel Spass damit!

Gruß Michael

von Hubert G. (hubertg)


Lesenswert?

Oder hier: www.mikrocontroller.net/articles/AVR-Transistortester

von Gerd J. (geju)


Lesenswert?

Hallo Michael,hallo Hubert,

vielen Dank.

ich habe mal den EEPROM-Teil und den FlashTeil (von Michael) in ATMEGA8 
gebrannt, läuft jedoch bei mir nicht, Display zeigt Undefinierbares an.

Ich habe bisher die Version aus dem Link von Hubert, die läuft bei mir.

Ich weiss allerdings nicht, da letztere relativ alt ist, ob es 
inzwischen noch wesentliche Verbesserung gab, deshalb die Frage nach der 
aktuellen Version.

Gruß  Gerd

von Michael D. (mike0815)


Lesenswert?

Hallo Gerd,

> ich habe mal den EEPROM-Teil und den FlashTeil (von Michael) in ATMEGA8
> gebrannt, läuft jedoch bei mir nicht, Display zeigt Undefinierbares an.

was heisst Undefinierbares? Was zeigt der Tester denn an?

Da waren mal 2 Widerstände vertauscht worden, die für die 
Spannungsüberwachung zuständig sind(waren im orig. Schaltplan 
vertauscht)! Wenn du diese nicht mit eingebaut hast, dann funktioniert 
der Tester nicht richtig. Ich hatte die Software für dieses Future 
angepasst. Kann sein, das das der Grund ist.

Schau mal hier, da wird das beschrieben:

Beitrag "Re: Transistortester mit AVR"

Ich überprüfe noch mal das gepostete Projekt und korrigiere das dann!

Gruß Michael

von Geju (Gast)


Lesenswert?

Hallo Michael,

vielleicht liegt es daran.
Ich habe die "normale" Schaltung mit der Abschaltautomatik, ohne 
Spannungsüberwachung und meine SW entspricht dem Stand des Links von der 
Seite von it-wns (Artikel AVR-Transistortester von Markus F) die FW hat 
den Stand vom 2.1.2010.

Gruß  Gerd

von Alfred H. (Gast)


Lesenswert?

Hallo,

Super Projekt!
Vielen Dank an Markus F. und allen die mitgeholfen haben.

Ich hab mir die Schaltung auf Lochraster aufgebaut.
Schaltplan von Markus F. ohne automatischer Abschaltung.
Fuse laut Vorgabe gebrannt (lfuse = 0xc1, hfuse = 0xd9).
Schaltung funktioniert nicht (Zeichensalat am Display).

Nachdem ich verschiedene Softwareversionen probiert habe, und
keine Besserung eingetreten ist, habe ich andere Fuseeinstellungen
probiert.
lfuse = 0xe1 hfuse = 0xd9 ohne Brown-Out, mit slowly rising power.

Jetzt funktionieren alle Softwareversionen!

Da ich annehme, dass Ihr alle die Fuses nach den Vorgaben gebrannt
habt, ist mir dieses verhalten ein Rätsel.

Könnt Ihr mir einen Tip geben, wo ich suchen kann?
Danke!

MfG Alfred

von Michael D. (mike0815)


Angehängte Dateien:

Lesenswert?

Hallo Gerd,

ich habe doch glatt das falsche Projekt hier gepostet, hatte die Hex 
geflasht und es waren wirklich wirre Zeichen auf dem Display.
Jetzt habe ich das richtige Projekt ausfindig machen können, habe es 
auch gleich getestet!
Wie gesagt, ist das die modifizierte Version mit der 
Spannungsüberwachung, die nach jedem Reset angezeigt wird!
R11 = 1k5 und R12 = 10k
Bitte beachten, sonst gibt es Timout's

Das Projekt lade ich hier hoch und einen Screenshot mit den Fuses gleich 
mit!

Ich möchte dann einen Moderator bitten, den Post mit dem falschen 
Projekt zu löschen, sonst gibt es nur Verwirrung!

bis dann,
Gruß Michael

von geju (Gast)


Lesenswert?

Hallo Michael,
vielen Dank.

könntest Du bitte wie beim ersten Versuch die HEX-Files für Flash und 
EEPROM für den ATMEGA8 einstellen ? Ich tue mich mit den C-Files schwer. 
Vielen Dank.

Schönen Abend und Gruß
Gerd

von geju (Gast)


Lesenswert?

Hallo Alfred,
ich habe die Version vom 2.1.2010 mit den gleichen Fusebits zum Laufen 
bekommen. Brenner war usb, beim Parallelbrenner hatte ich, warum auch 
immer, Probleme mit dem EEPROM brennen.

Gruß
Gerd

von Michael D. (mike0815)


Angehängte Dateien:

Lesenswert?

hier is'...

da stehen jetzt aber meine ausgemessenen Widerstandswerte drin!
Hast du kein Atmel-Studio?
Die main.c editieren, auf das Kompilierbutton drücken und alles geht von 
selbst.

HEX und EEP im Anhang!

Gruß Michael

von Geju (Gast)


Lesenswert?

Hallo Michael,

vielen Dank.
Das mit dem Programm könnte ich ja auch mal probieren.  Meinst Du die 
Software: AVR-Studio 5 ?

Gruß
Gerd

von Alfred H. (Gast)


Lesenswert?

geju schrieb:

Hallo geju,

> ich habe die Version vom 2.1.2010 mit den gleichen Fusebits zum Laufen
> bekommen. Brenner war usb, beim Parallelbrenner hatte ich, warum auch
> immer, Probleme mit dem EEPROM brennen.

Auch diese Version hatte ich ohne Erfolg getestet. Mit avrdude (Linux)
und Pollin-Eval-Board ohne Fehler gebrannt. Nur mit lfuse=0xe1
funktioniert diese Version.

MfG Alfred

von Michael D. (mike0815)


Lesenswert?

moin Gerd,

> vielen Dank.
> Das mit dem Programm könnte ich ja auch mal probieren.  Meinst Du die
> Software: AVR-Studio 5 ?

nimm' die bloß nicht!!! Ich hatte die mir schon das 2. mal installiert 
und komme damit garnicht zurecht! Ausserdem ist das mords aufgeblasen 
mit über 600MB und Visual-Studio10 muß auch noch mit installiert werden, 
das brauch man jetzt nicht.
AVR-Studio 4.18, aktuelle Toolchain und WinAVR-20100110 wird benötigt!

Hallo Alfred,

> Auch diese Version hatte ich ohne Erfolg getestet. Mit avrdude (Linux)
> und Pollin-Eval-Board ohne Fehler gebrannt. Nur mit lfuse=0xe1
> funktioniert diese Version.

Das ist schon merkwürdig, denn oben im Screenshot, habe ich die 
aktuellen Fuses nur ausgelesen und dann eben gepostet...

Gruß Michael

von Alfred H. (Gast)


Lesenswert?

Hallo Michael,

>> Auch diese Version hatte ich ohne Erfolg getestet. Mit avrdude (Linux)
>> und Pollin-Eval-Board ohne Fehler gebrannt. Nur mit lfuse=0xe1
>> funktioniert diese Version.
>
> Das ist schon merkwürdig, denn oben im Screenshot, habe ich die
> aktuellen Fuses nur ausgelesen und dann eben gepostet...

Habe jetzt nochmal lfuse=0xc1 programmiert, dann mit dem Display vom
Pollin Addon-Board verbunden, funktioniert!

Das mit dem Addon-Board hatte ich vorher nicht getestet.

Da ist offensichtlich im Lochrasteraufbau der Wurm drin.
Werde mir das jetzt nochmal genau anschauen.

Danke!

MfG Alfred

von Markus F. (5volt) Benutzerseite


Lesenswert?

Gerd Ju schrieb:
> Kann mir jemand sagen, wo ich die aktuelle (letzte) SW-Version für den
> ATMEGA8 hierfür finde ?

http://frickelpower.bplaced.net/ctest/index.php?pglang=de

Diese Download-Site gibt's schon länger. Erstmal wollte ich die nicht in 
dem Artikel verlinken, weil ich erstmal sicherstellen wollte dass sie 
einwandfrei läuft. Das habe ich jetzt aber nachgeholt.

Schimpl schrieb:
> ich verwende Atmega 48.
Die ATMega48-Version von der Firmware ist uralt - ich empfehle nicht, 
die zu verwenden. Außer, jemand will unbedingt den Tester aufbauen und 
hat gerade keinen ATMega8 ;)

von Alex Freed (Gast)


Angehängte Dateien:

Lesenswert?

Sorry: I couldn't find the English version of the forum.

I added some code to measure Vp and Idss of JFETs. Wonder if I should 
post my sources somewhere...

von Herbert K. (avr-herbi)


Lesenswert?

Look here for the english version of this forum: http://embdev.net/

von Alex H. (hoal) Benutzerseite


Lesenswert?

Alex Freed schrieb:
> Sorry: I couldn't find the English version of the forum.

Don't worry. Since you are referring to Markus' component tester, here 
is the right place to do so.

> I added some code to measure Vp and Idss of JFETs. Wonder if I should
> post my sources somewhere...

I guess it would be best to post it as an attachment here in this 
thread. Then Markus can merge it into his version.

von Michael D. (mike0815)


Lesenswert?

Hi Markus,

>
http://frickelpower.bplaced.net/ctest/index.php?pglang=de

> Diese Download-Site gibt's schon länger. Erstmal wollte ich die nicht in
> dem Artikel verlinken, weil ich erstmal sicherstellen wollte dass sie
> einwandfrei läuft. Das habe ich jetzt aber nachgeholt.

Die Seite funktioniert jetzt, die Files müssen 2x entpackt werden!
Das letzte Update ist vom "12.12.2010"

Bei meiner Ver. ist nur die Spannungsanzeige, die vor jedem Test 
angezeigt wird mit eingebaut, ansonsten ist alles original!

Gruß Michael

von Alex Freed (Gast)


Lesenswert?

I looked at  http://embdev.net/ but didn't find anything related to the
"Transistortester". Currently I only added N type JFETS due to the lack 
of space in ATmega88. I plan to add a bit more code and move to 
Atmega168 that is almost the same price these days. Then I'll attach the 
sources - both versions.

P.S. Hard to believe my grandfather spoke a lot better German than 
English :)

von geju (Gast)


Lesenswert?

Hallo die Runde,

nachdem der Tester jetzt fertig ist mit Gehäuse usw. habe ich mal einige 
Teile aus meinen Beständen geprüft.
Dabei ist mir folgendes aufgefallen.

Bauteil :  BTA08

manche Teile werden als Triac angezeigt, andere als NPN mit hfe=0

Weiß jemand, ob da in der SW ein Fehler ist, oder ob das am Bauteil 
liegt,
vielleicht liegt es auch den Messbedingungen (Batterie 9 Volt ?)

Gruß

Gerd

von Michael D. (mike0815)


Lesenswert?

Hallo Gerd,
BTA08 wird als Triac erkannt und die anderen, gleichen Typen nicht?
Die Batterie kann es ja wohl nicht sein, wenn die Spannung stabil ist, 
würde dir das Display ja anzeigen, wenn du meine Hex drauf hast.

Ich habe für die "fetten Transistoren", eine 3Pol. Messstrippe, die 
verfälscht mir aber bei anderen Bauteilen die Messung. Ich habe mir für 
z.B. SMD, Adapter gebaut, die ich direkt auf den Tester stecke.

Je kürzer die Messstrecke, desto genauer die Messung...man fängt sich ja 
manchmal das Netzbrummen mit den Strippen ein!

Gruß Michael

von Amanita (Gast)


Lesenswert?

Mein Komponententester funktioniert ebenfalls hervorragen, vielen Dank 
für das klasse Projekt!
Ich habe mir die Originalversion mit automatischer Abschaltung gebaut.

Ein Bug (?) ist mir aber aufgefallen:
Wird eine Spannungsreferenz vom Typ KIA431 (=TL431) angeschlossen, 
erscheint für ca. 3 Sekunden wir üblich die Meldung "Test läuft..." - 
dann schaltet sich der Tester kommentarlos ab!?

von Uwe S. (de0508)


Lesenswert?

Hi der TL431 ist keine "Spannungsreferenz" sondern ein Shunt Regulator, 
den man auch als Spannungsregler einsetzen kann.

von Michael D. (mike0815)


Lesenswert?

> ...die Meldung "Test läuft..." -
> dann schaltet sich der Tester kommentarlos ab!?

Das darf er ja dann auch, weil Regler nicht gemessen werden können!

> Hi der TL431 ist keine "Spannungsreferenz" sondern ein Shunt Regulator,
> den man auch als Spannungsregler einsetzen kann.

...der eine Spannungsreferens 2,5V besitzt.

von Amanita (Gast)


Lesenswert?

Michael D. schrieb:
> Das darf er ja dann auch, weil Regler nicht gemessen werden können!

Dürfen tut er das natürlich schon - verständlich ist es aber überhaupt 
nicht:

Z-Dioden werden als antiparellele Diode bzw Diode, je nach Zenerspannung 
erkannt. Spannungsregeler als 'unbekanntes oder defektes Bauteil'.
Immer bleibt der Tester aber ca. 10 Sekunden an.

Das eigenartige beim 431 ist, dass sich der Tester kommentarlos 
innerhalb von 3 Sekunden (!!!) selbst abschaltet.

von Hubert G. (hubertg)


Lesenswert?

Bei mir zeigt er einen npn mit hfe0 und Diode Uf 1,503V an

von Michael D. (mike0815)


Lesenswert?

Hubert G. schrieb :
> Bei mir zeigt er einen npn mit hfe0 und Diode Uf 1,503V an

Hubert, jetzt weiß aber keiner, was für ein NPN das ist?!? Darlington 
oder...es gibt auch normale Transistoren mit B, E Widerständen, könnte 
auch die Messungen verfälschen.

Ich habe letztes Jahr über einen ATMega8 mit einem defekten Port 
berichtet, der hatte dann ähnlichen Müll angezeigt!
Dann gibt es da noch die Exemplarstreuung. Da hatte ich auch einige 
Unterschiede bei den Messungen feststellen können, z.B. bei der 
Spannungsmessung, waren das fast 1 Volt Differenz zum anderen ATMega8.

Mal die verbauten 470k u. 680R gemessen und dann in den Code 
eingetragen?
Und wie schon gesagt, lange Messstrippen sind nachteilig!

Gruß Michael

Edit:
> Das eigenartige beim 431 ist, dass sich der Tester kommentarlos
> innerhalb von 3 Sekunden (!!!) selbst abschaltet.

Ich popel da mal eine raus, das will ich jetzt wissen...

von Hubert G. (hubertg)


Lesenswert?

Ich habe einen TL431 reingesteckt und getestet, hätte ich wohl noch 
erwähnen sollen.

von Michael D. (mike0815)


Angehängte Dateien:

Lesenswert?

Ha, der Hubert ist ein Spassvogel :-)))
...der TL431 (AZ431) ist ein Shuntregler und kein Transistor!

Aber davon abgesehen, ich habe den mal in den Tester gesteckt und raus 
kam...siehe Foto!
5 Stck. habe ich da getestet und zeigen alle dasselbe an.

von Hubert G. (hubertg)


Lesenswert?

Von was war in den letzten paar Einträgen hier die Rede?
Den du da hinein gesteckt hast ist wohl auch ein Transistor.

von Michael D. (mike0815)


Lesenswert?

ja, eben. Das verwundert mich etwas, das dieser Regler als Transistor 
erkannt wird, obwohl das gar keiner ist...
Wird denn dasselbe bei dir angezeigt? Der Verstärkungsfaktor liegt bei 
über 860, das ist schon gewaltig.

Gruß Michael

von Hubert G. (hubertg)


Lesenswert?

Hab doch schon geschrieben, bei mir zeigt er einen npn mit hfe0 und 
Diode Uf 1,503V an.
Das bei drei Stück gleich.

Aber "Amanita" wird es wohl eher ums abschalten nach 3sec. gegangen 
sein. Das ist bei mir nicht der Fall.

von Amanita (Gast)


Lesenswert?

Hubert G. schrieb:
> Aber "Amanita" wird es wohl eher ums abschalten nach 3sec. gegangen
> sein. Das ist bei mir nicht der Fall.

So ist es!
Ich muss dazusagen, dass alle 431er aus verschiedenen Platinen, v.A. 
Mainboards ausgeföhnt wurden, ich habe jetzt nochmals 6 Stück im TO-92 
und 2 im SO-8 Gehäuse getestet, immer genau das selbe Verhalten.

Dabei ist der Tester ansonsten super, auch die Genauigkeit ist 
überraschend.
Warum nur mein Gerät so exzentrisch ist, werde ich dann wohl nicht 
erfahren.

Eine Anregung hätte ich noch:
Anstatt die Anschlüsse zu nummerieren, wäre es komfortabler, wenn die 
Farben der Klemmen angegeben würde.
Auf einem 4zeiligen Display würde dann stehen

NPN hFE=856  Uf=711m
B = rot
C = blau
E = schwarz

von babak (Gast)


Lesenswert?

hi markus and all users
thanks for these project
i made this project all thing is correct
but it has problem wiht Resistor
for example Resistor is 10 Kohm in lcd show 99.7 inside 9.7
infact the dot location is incorrect but for ohm for example
10 ohm show 9.7 ohm that is correct
please say to me where is the problem?????

von Bastelwilliger (Gast)


Lesenswert?

Guten Tag rundherum,

angetan von den vielen positiven Beschreibungen wollte ich den Tester 
auch gerne nachbauen.
Da ich aber derzeit weder ätzen noch Amtels brennen kann, bezog ich mich 
auf folgendes Angebot:

http://www.adl509.at/portal/download/TECHNIK/Transistortester/transistortester_v04/Transistortester_V04_Bestellungen_und_Versand_1.pdf

in dem von OE5VLL (Erwin Hackl) ein Bausatz hierzu angepriesen wurde.
Hier wird auch ausgeführt, dass man vor einer Bestellung per Mail 
nachfragen sollte, ob denn Bausätze gerade verfügbar seien.

Das tat ich und hatte den Herrn Hackl inzwischen zweimal angeschrieben, 
mit der Bitte, mir doch mitzuteilen, ob denn ein solcher Bausatz noch 
verfügbar sei.


ABER: Für mich absolut unverständlich, Hr. Hackl hatte beide Mails 
abgerufen.
Nur antwortet er (wenigstens mit einem kurzen JA oder NEIN) einfach 
nicht!

Dieses Gebaren verstehe ich nicht.

Tschüss
ein Bastelwilliger

von Hubert G. (hubertg)


Lesenswert?

Da muss was schief gegangen sein, er meldet sich sonst schon.
Schau mal hier http://www.schorsch.at/

von Bastelwilliger (Gast)


Lesenswert?

@hubertg

Ich habe eben Deinen Rat befolgt und dort angefragt, auch an Hubert.
Ich denke, das bist Du auch? :-))

Vielleicht kann ich dann doch noch meinen reichlichen Vorrat ausmessen.


Danke, danke, besonders an Markus F.

Tschüss

von Michael L. (fliegermichl)


Lesenswert?

Hallo,

ich habe das myAVR Board mit der Erweiterungsplatine myAVRLCD. Da sind 
die 4 Datenleitungen leider nicht von PD0..PD3 sondern von PD4..PD7 
verdrahtet.
RS und E können ja leicht in der lcd-routines.h angepaßt werden. Nur 
eben die 4 Datenleitungen nicht.

Ich würde den Transistortester gerne mit diesen Komponenten und einer 
kleinen zusätzlichen Erweiterungsplatine aufbauen, welche dann nur noch 
die 6 Messwiderstände und einen Sockel für den Prüfling bräuchte.

Leider bin ich in Sachen C nicht fit genug, die lcd-routines.* an oben 
genannte Verdrahtungsänderung anzupassen.

Vermutlich müssen nur einige Konstanten geändert werden. Vielleicht kann 
mir ja jemand auf die Sprünge helfen, was hier angepasst werden muß.

Mit freundlichen Grüßen
Michael Läßig

von Alexander S. (esko) Benutzerseite


Lesenswert?

Du könntest einfach den Sourcecode von Erweiterte LCD-Ansteuerung 
einfügen und es dann compilieren. Wenn es funktioniert kannst du deine 
Version ja auch auf die offizielle Seite (AVR-Transistortester) 
stellen.

von Michael L. (fliegermichl)


Lesenswert?

Danke für die schnelle Antwort.

Das erweiterte LCD Tutorial hat nach Anpassung der richtigen Ports in 
der lcd.h auf Anhieb funktioniert. Für die Anwendung im Transistortester 
müssen noch einige zusätzliche Routinen aus dem orginalen lcd-routines.* 
übernommen werden, aber das werde ich hinbekommen.

Wenn es dann komplett ist, werde ich diese Version auch zur Verfügung 
stellen.

von groovy (Gast)


Angehängte Dateien:

Lesenswert?

Benedikt K. schrieb:
> Michael L. schrieb:
>
>> Ein Problem habe ich aber noch mit der Anzeige. Ich habe mit 2 Displays
>> getestet (Art-Nr. 120 545 und 120 469 von Pollin, beide HDD44780
>> kompatibel), aber die Anzeige bleibt leer.
>
> Die Init ist nicht ganz vollständig:
> In Zeile 69 der lcd-routines.c, nach dem 3 maligen Senden von 0x02 fehlt
> noch folgender Code:
> LCD_PORT = (LCD_PORT & 0xF0 & ~(1<<LCD_RS)) | 0x02;
> _delay_ms(1);
> lcd_enable();
> _delay_ms(1);
>
> Damit wird der Bus auf 4bit eingestellt.

Hallo,

habe auch oben genanntes Problem, allerdings mit einem anderen Display 
(Datenblatt im Anhang). Als Layout habe ich folgende Variante:
Beitrag "Re: Transistortester mit AVR" von Michael B. 
fertigen lassen.
Die aktuelle Firmware und EEPROM habe ich gerade nochmal getestet. Dort 
ist ja obige Änderung bereits enthalten.
Bei Druck auf den Taster leuchtet die LED 12 Sekunden auf, aber das 
Display bleibt leer.
Habe ich etwas übersehen?

von Michael L. (fliegermichl)



Lesenswert?

Hallo,

ich habe den Transistortester mit dem MyAVR Board mal "aufgebaut".
die lcd Routinen stammen von dem oben erwähnten Tutorial
Erweiterte LCD-Ansteuerung.

Ich habe dort nur noch zusätzlich die in den orginalen lcd-routinen.* 
verwendeten defines Line1(), Line2() usw. hinzugefügt, sowie die 
Routinen zum laden von Strings aus dem EEPROM.

Wie auf den Bildern zu sehen ist, habe ich PC5 mit HI verbunden, da 
ansonsten die "Batterie leer" Meldung zuschlägt. Die grüne LED soll den 
Zustand der automatischen Abschaltung widerspiegeln.

Die notwendigen 6 Testwiderstände und den Servostecker, welcher den 
Prüfling aufnimmt, habe ich auf einer von myAVR erhältlichen 
Erweiterungsplatine untergebracht.

In der anhängenden ZIP Datei ist der komplette AVR Studio Ordner mit 
allen Quellen und dem compilierten Ergebnis.

Ich werde mir den Transistortester jetzt nochmal auf Lochraster und in 
ein hübsches Gehäuse (so ich denn eines finde) bauen.

Falls hierzu irgendwelche Fragen auftauchen, nur her damit :-)

Viele Grüße
Michael

von Michael L. (fliegermichl)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe den Bauteiltester jetzt noch mal auf Lochraster mit 
automatischer Abschaltung aufgebaut.
Die Datenleitungen zum Display habe ich jetzt auch wie in Markus' 
orginal an Pd0..Pd3 und somit habe ich auch die orginale Quelle 
compiliert und gebrannt.

Eine kleine Änderung wollte ich noch gern machen, nämlich daß er mir 
beim ersten einschalten eine Versionsnummer und die aktuelle 
Batteriespannung anzeigt.

Dabei habe ich aber ein kleines Problem.

Die Spannung wird ja vom Spannungsteiler R11 / R12 genommen.
Bei 9 Volt sollte hier 9 * 3.3 / (10 + 3.3) = 2.233V anliegen was einem 
Faktor von 4.0306 entspricht.

Im Quellcode main.c steht bei der Messung der Versorgungsspannung, daß
ein ADC Wert von 650 ca. 7.6V entsprechen und 600 ca. 7.15V.

Gemessen wird mit der internen Referenzspannung von 2.56V.

Im ATMEGA8 Datenblatt steht, daß der ADC Wert U = ADC * URef / 1024
zu interpretieren ist. Wenn ich hier die 650 einsetze, bekomme ich aber
650 * 2.56 / 1024 = 1.625. Das mit dem Faktor 4.0306 multipliziert 
ergibt 6.549 und somit ein Volt Komma ebbes weniger als 7.6.

Könnte mir einer von Euch erklären, wo hier mein Fehler sitzt. 
(Vermutlich wie meistens vor dem Bildschirm :-)

Viele Grüße
Michael

von M92 (Gast)


Lesenswert?

Hallo,

Ich hab mir den Tester auch mal nachgebaut. Nachdem getestet wurde kommt 
bei mir kommt immer
1
Kein,unbek. oder
2
defektes Bauteil
egal ob was dran hängt, oder nicht. Habs mal mit nem normalen Transistor 
und nem 10k Widerstand probiert.

Die Messung lässt sich auch über den Taster erneut starten.
Hat einer ne Idee, wo das Problem liegt?

Gruß
Michael

von Michael L. (fliegermichl)


Lesenswert?

Diese Meldung erscheint normalerweise immer dann, wenn nichts an den 
Tester angeschlossen ist.
Von daher würde ich vermuten, daß das zu testende Bauteil keinen 
gescheiten Kontakt zu den Testwiderständen hat.

Das läßt sich ja leicht mit einem Multimeter prüfen.

Gruß
 Michael

von M92 (Gast)


Lesenswert?

Hallo,

habs nochmal durchgemessen. Es stimmt mit dem Schaltplan überein. Im 
Ruhezustand hab ich an den Testpins jeweils ca. 1,5V. Wenn ich während 
eines Tests mit dem Multimeter nachmesse, dann seh ich, dass die 
Spannung ansteigt, abfällt und sich dann wieder auf die 1,5V einstellt.

Aber erkennen tut er nix. Habs nochmals mit ner Diode probiert und 
anschließend mit nem BC337.

Gruß
Michael

von M92 (Gast)


Lesenswert?

Hallo nochmals,

ich hab den Fehler gefunden. Mir ist aufgefallen, dass der AVR nach 
längerer Einschaltzeit warm geworden ist. Da bin ich dann draufgekommen, 
dass es an den AD-Versorgungspins liegen könnte. Also durchgemessen und 
siehe da - Kurzschluss zwischen AREF und AGND... Schön, dass die AVRs so 
robust sind. :)

Schnell repariert - funktioniert perfekt. Danke für das tolle Projekt!

Gruß
Michael

von bingo (Gast)


Lesenswert?

> Eine kleine Änderung wollte ich noch gern machen, nämlich daß er mir
> beim ersten einschalten eine Versionsnummer und die aktuelle
> Batteriespannung anzeigt.

Das ist eine gute Idee, das wurde ja schon mal weiter oben 
vorgeschlagen. Kannst Du die fertige HEX dann auch posten oder ins SVN 
einstellen?

von Hubert G. (hubertg)


Lesenswert?

Ich zeige zwar nur die Versionsnummer an, die Batteriespannung sollte 
aber auch kein Problem sein.
Diese Zeilen beim Sprachunabhängigen EEPROM-String einfügen:
1
unsigned char Geraet[] EEMEM = "Halbleiter- R/C-";
2
unsigned char Version[] EEMEM = "Tester Vers.1.36 ";

und diese Zeilen im Code einfügen. Die oberste und unterste Zeile sind 
aus dem Originalcode und nur wenige Zeilen nach dem Beginn von main.:
1
  lcd_init();
2
3
 _delay_ms(400);    /* Wenn beim Start die Taste gedrückt bleibt,
4
         dann wird Text und Version angezeigt */
5
        
6
    if (!(PIND & (1<<PIND7))){
7
           lcd_eep_string(Geraet);    // Transistortester
8
      Line2();
9
         lcd_eep_string(Version) //Versionsnummer  anzeigen
10
       _delay_ms(2000);
11
      lcd_clear();
12
      }
13
14
  #ifdef UseM8

Wird die Taste kurz gedrückt startet der Test, wird sie lang gedrückt 
kommt vorher die Versionsnummer, dann startet der Test.

von Michael L. (fliegermichl)


Lesenswert?

Hallo,

ich habe das mit der Anzeige der Batteriespannung realisiert. Ich glaube 
aber, daß Markus zu kleine ADC Werte für 7.6V bzw. 7.15V annimmt.

Der Spannungsteiler R11/R12 besteht aus einem 10k und einem 3.3 k 
Widerstand.

Wenn die Spannung über beide 9 V besträgt, so liegt gemäß der Formel
U12 = Uges * R12 / (R11 + R12) an R12 und damit am ADC Pin 2.233 Volt 
an.
2.233V zu 9V entpricht einem Faktor von 4.0303.
Der am ADC Pin gemessene Wert muß mit diesem Faktor multipliziert 
werden, damit man Uges bekommt.

Im Datenblatt des ATMega8 ist zu finden, daß die Spannung am ADC Pin

ADC Wert * Referenzspannung / 1024 ist.

bei der Messung der Versorgungsspannung nimmt Markus für 7.6V einen ADC 
Wert von 650 an.

650 * 2.56 / 1024 = 1.625. Das multipliziert mit 4.0303 ergibt aber 
6.549.

Ich habe die Versorgungsspannung entsprechend dieser Formeln ermittelt 
und die stimmt auch mit dem gemessenen Wert überein. Die 0.2V 
Spannungsabfall an der CE Strecke von T3 hab ich jetzt mal ignoriert.

Ist ja ohnehin nur ein Gimmick, mir war das aber eben aufgefallen.

Gruß
 Michl

von Michael D. (mike0815)


Lesenswert?

Hallo Michael,
die Parameter für die Spannungsanzeige sind, glaube ich, von Hubert?? 
Ist schon ein bißchen her...

Jedenfalls habe ich diese so übernommen und es wird vor jeder Messung 
kurz die Spannung angezeigt.
So funktioniert es bei mir:
1
  //Versorgungsspannung messen
2
  ReadADC(5 | (1<<REFS1));  //Dummy-Readout
3
  hfe[0] = ReadADC(5 | (1<<REFS1));   //mit interner Referenz
4
// EINGEFÜGT---------------------------------------------------------------------------
5
// Anzeige der Versorgungsspannung
6
// Spannungsteiler wurde so gewählt das am ADC Auflösung 0,02V beträgt
7
// z.B. 420 entspricht 8,40V
8
// ATMEGA8 R = 10k / 1,5kOhm
9
// ATMEGA88 R = 10k / 600 Ohm
10
  Line2();
11
  lcd_string ("Batt = ");
12
  ra= hfe[0] / 50;        // (ra= 2*hfe[0] / 100) Ganze Volt
13
  rb = 2*hfe[0] - ra* 100;    // 1/100 V
14
  lcd_string(utoa(ra, outval, 10));
15
  lcd_string (",");
16
  if (rb <10) {          // "0" einfügen wenn z.B. 9,04V
17
    lcd_string ("0");
18
    }
19
  lcd_string(utoa(rb, outval, 10));
20
  lcd_string ("V");  
21
//  lcd_string (hfe1);
22
  _delay_ms(1000);        //Wert 1 sec anzeigen
23
24
  Line1();
25
// ÄNDERUNG----------------------------------------------------------------------------- 
26
    if (hfe[0] < 410) {        //Vcc < 8,2V; Warnung anzeigen
27
    lcd_eep_string(Bat);    //Anzeige: "Batterie"
28
    if(hfe[0] < 360) {          //Vcc <7,2V; zuverlässiger Betrieb nicht mehr möglich
29
      lcd_eep_string(BatEmpty);    //Batterie leer!
30
      _delay_ms(2000);
31
      PORTD = 0;  //abschalten
32
      return 0;
33
    }
34
    lcd_eep_string(BatWeak);    //Batterie schwach
35
    Line2();
36
  }
37
  //Test beginnen---------------------------------------------------------------------

Gruß Michael

von Michael L. (fliegermichl)


Lesenswert?

Hallo Michael,

irgendwie kann ich Deine Berechnungsmethode nicht so ganz 
nachvollziehen.
Wenn ich den Spannungsteiler 10k 1.5k zu Grunde lege, bekomme ich aber 
bei einem ADC Wert von 410 7.858V heraus anstatt 8.2V

Miß doch bitte einfach mal die Spannung am 7805 Eingang und vergleich es 
mit der angezeigten Spannung.

Ist schon irgendwie spannend mit der Spannung :-)

Gruß
 Michl

von Michael D. (mike0815)


Lesenswert?

Hallo Michl (aus Lönneberga?) Spässle!

> bei einem ADC Wert von 410 7.858V heraus anstatt 8.2V

ja, eben! So viel aus dem Akku saugen, wie geht und dann wird dicht 
gemacht!
Bei einem Low-Drop, würde ich natürlich noch weiter runter gehen...bis 
"kurz" vor die Kotzgrenze!
... danach wird ja nicht mehr genau gemessen, jede Spannungsschwankung, 
nimmt der Mega8 mir übel.

Gruß Michael

EDIT: Achso, ich hatte mit dem DMM die Eingangsspannung gemessen und mit 
der Anzeige des µC verglichen. Danach habe ich einen bzw. 2 Widerstände 
parallel geschaltet um auf meine angezeigte Spannung vor dem 8705 zu 
kommen! In diesem Fall, waren es 22k und 1k5 um auf den Wert zu kommen.
Bei einem anderen Atmel, sieht das wieder anders aus, wegen der 
Exemplarstreuung gibt es da schon Unterschiede.

von Mathias B. (bzzz)


Lesenswert?

Soo, wie weiter oben schonmal angerissen funzt der Tester auch mit 5V 
Versorgungsspannung ohne 7805 vorndran, und obendrein tut er das auch 
auf einem Atmega16, der mit allerlei Störgrößen auf einem Breadboard 
haust. Man muss es AVR Studio beim kompilieren nur sagen und die 
ADC-Pins auf PORTA statt C setzen, da der 16er ja ein wenig anders 
aufgebaut ist.

...machen sollte man das aber vielleicht nur, wenn grade kein 8er o.ä. 
zur Hand ist, man gern nen Euro mehr für null Mehrleistung ausgibt, gern 
40-Pin-DIPs verbaut, oder man einfach zu beschränkt ist, einen 8er zu 
programmieren ;) (für Hilfe wär ich dankbar!)

von Jos B. (josbouwer)


Lesenswert?

http://frickelpower.bplaced.net/ctest/index.php?pglang=en gibt ein 
Bestand dass nicht geönffnet werden kann. Hat Jemand eind Lösung?
(Entschuldigung für mein Deutsch, ich bin Holländer).

Sehr interessantes Topic. Gibt es irgendwo ein TotalLösung, so dass 
alles was geändert is und zugefgt ist einfach zu finden ist?

Freundlichem Gruss,

Jos

von Kurt (Gast)


Lesenswert?

Hallo Freunde,
ich bekomme die eep-Datei mit Ponyprog nicht gebrannt.
Unter Program Options sind die Häkchen gesetzt.
Was mache ich falsch.

von Michael L. (fliegermichl)


Lesenswert?

Hallo,

mit dem MyAVRProgTool hat das eep brennen bei mir auch nicht geklappt.
Mit AVR Studio geht es problemlos.

Gruß
 Michael

von M92 (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

hier hab ich noch ein Bild von meinem Aufbau.
Eignet sich auch ganz gut, um die Flussspannung von LEDs zu ermitteln.

Gruß
Michael

von Klaus D. (kolisson)


Lesenswert?

Nun möchte ich auch gern mal etwas dazu sagen.
Ich möchte nict, dass es jemand in den falschen Hals bekommt.
Ich möchte auch nicht dass die Entwicklungsarbeit irgenwie niedergemacht
wird.

Ich lese das schon lange mit und frage mich wirklich:

"wozu braucht man das eigentlich ?  "

Ich bin ja zu vielen Schweinereien bereit aber bisher den Sinn der Sache 
noch nicht erkannt.

Vielleicht kann mir einer auf die Sprünge helfen.

Klaus de Lisson

von Hubert G. (hubertg)


Lesenswert?

Also ich bastle sehr viel, arbeite dabei hauptsächlich mit dem 
Steckbrett.
Dabei verwende ich kaum neue Bauteile. Die Halbleiter, Kondensatoren und 
Elkos kommen automatisch in den Tester. Das geht schneller als nachher 
Fehler suchen und spart, wenn auch nicht sehr viel, Geld.

von Mikrocontroller P. (Gast)


Lesenswert?

Markus Frejek schrieb:
> Bei
> Transistoren wird auch noch der Verstärkungsfaktor angezeigt.
> Der Tester ermittelt auch automatisch die Anschlüsse des Transistors.
> Ist ein recht nützliches Gerät, finde ich. Transistoren mit unbekannten
> Pin-Belegungen und unbekannter Funktionstüchtigkeit hat man immer
> wieder.

Klaus De lisson schrieb:
> Nun möchte ich auch gern mal etwas dazu sagen.
> Ich möchte nict, dass es jemand in den falschen Hals bekommt.
> Ich möchte auch nicht dass die Entwicklungsarbeit irgenwie niedergemacht
> wird.
>
> Ich lese das schon lange mit und frage mich wirklich:
>
> "wozu braucht man das eigentlich ?  "
>
> Ich bin ja zu vielen Schweinereien bereit aber bisher den Sinn der Sache
> noch nicht erkannt.
>
> Vielleicht kann mir einer auf die Sprünge helfen.
>
> Klaus de Lisson


Lies mal das Eingangsposting, ist ein sehr nützliches Gerät bei der 
Reparatur und Identifizierung unbekannter Transistoren (Pollin 
Transistor Sortimente oder bei der Rep. versch. Geräte)

von Klaus D. (kolisson)


Lesenswert?

mikrocontroller p_73 schrieb:
> Lies mal das Eingangsposting, ist ein sehr nützliches Gerät bei der
> Reparatur und Identifizierung unbekannter Transistoren (Pollin
> Transistor Sortimente oder bei der Rep. versch. Geräte)

Ja sicher, bei solchen Sammeltüten kann ich mir das vorstellen.
Ich konnte mir nur nicht vorstellen dass solche Tüten oft Verwendung
finden. Ich werfe z.B. immer alles weg von dem ich nicht weiss
was es ist.

k.

von Mikrocontroller P. (Gast)


Lesenswert?

Klaus De lisson schrieb:
> mikrocontroller p_73 schrieb:
>> Lies mal das Eingangsposting, ist ein sehr nützliches Gerät bei der
>> Reparatur und Identifizierung unbekannter Transistoren (Pollin
>> Transistor Sortimente oder bei der Rep. versch. Geräte)
>
> Ja sicher, bei solchen Sammeltüten kann ich mir das vorstellen.
> Ich konnte mir nur nicht vorstellen dass solche Tüten oft Verwendung
> finden. Ich werfe z.B. immer alles weg von dem ich nicht weiss
> was es ist.
>
> k.

Kann ich mir auch schlecht vorstellen ;) Da kauf ich mir um das Geld 
lieber 100 BC546 ;)

von Daniel (Gast)


Lesenswert?

Hallo,

ich würde den Tester auch gerne nachbauen. allerdings statt der internen 
Referenzspannung würde ich gern eine externe verwenden. leider kenne ich 
mich mit C-Programmierung nicht aus. kann mir hier jemand helfen? ich 
habe den Teil wo die Referenzquelle definiert ist glaube ich gefunden:
1
unsigned int ReadADC(uint8_t mux) {
2
  //ADC-Wert des angegebenen Kanals auslesen und als unsigned int zurückgegen
3
  unsigned int adcx = 0;
4
  ADMUX = mux | (1<<REFS0);
5
  for(uint8_t j=0;j<20;j++) {  //20 Messungen; für bessere Genauigkeit
6
    ADCSRA |= (1<<ADSC);
7
    while (ADCSRA&(1<<ADSC));
8
    adcx += ADCW;
9
  }
10
  adcx /= 20;
11
  return adcx;
12
}

was müsste ich bei ADMUX stattdessen angeben? und wo ist die Höhe der 
Referenzspannung im Code definiert?

von Hubert G. (hubertg)


Lesenswert?

ADMUX = mux | (1<<REFS0);
Hier wird AVCC als Referenz festgelegt.
Kommt einige Male im Code vor.
Wenn REFS0 und REFS1 auf 0 sind, dann ist ext.Referenz gewählt.
Ansonst einen Blick ins Datenblatt werfen.

von Daniel (Gast)


Lesenswert?

Hubert G. schrieb:
> ADMUX = mux | (1<<REFS0);
> Hier wird AVCC als Referenz festgelegt.
> Kommt einige Male im Code vor.
> Wenn REFS0 und REFS1 auf 0 sind, dann ist ext.Referenz gewählt.
> Ansonst einen Blick ins Datenblatt werfen.

das habe ich im Datenblatt schon gesehen. ich weiß aber nicht genau wie 
der Befehl dafür in C-Code lautet, dass ich REFS0 und REFS1 auf 0 
setzte...

von Hubert G. (hubertg)


Lesenswert?

Indem du das weglässt:  | (1<<REFS0)

von Daniel (Gast)


Lesenswert?

ok, vielen Dank dir. weil es ja schon mit 0 initiert wird vermutlich.

aber die Sache kommt ja wirklich ein paar mal vor. soweit ich das 
verstanden habe wird ja normalerweiße mit AVCC (5V) gemessen und an 
anderer Stelle auch mal auf interne Ref (2,5V) umgeschaltet. das würde 
es ja mit einer fixen externen gar nicht gehen. ich sehe, das ist etwas 
komplizierteres für. ich lass es jetzt einfach und baue es 
normal/original.

von Peter ⛄ W. (Firma: Huddel und Brassel Ltd.) (jaffel) Benutzerseite


Angehängte Dateien:

Lesenswert?

Ein Freund und ich haben diesen Tester nachgebaut. Funktionierte auf 
Anhieb, muss aber noch etwas abgeglichen werden. Aber das ist eher 
Nebensache, es soll ja ein Tester und kein Messgeraet sein.

Es lohnt sich sowas griffbereit am Basteltisch zu haben.

Ich / wir bedanken uns recht herzlich bei Markus Frejek (5volt) fuer 
dieses tolle Projekt.

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

von Peter ⛄ W. (Firma: Huddel und Brassel Ltd.) (jaffel) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hier noch der vom Kumpel. Auf dem Bild ist er noch nicht ganz fertig.

Die Gehaeuse sind uebrigens von Reichelt. GEH KSB 02B

Das Kleinere haette vermutlich auch noch gepasst.

von Daniel S. (longshine)


Lesenswert?

ich habe den Tester nun nachgebaut.
kann mir jemand helfen was ich am Sourcecode verändern muss, dass ich 
statt dem Atmega8 einen Atmega88 oder Atmega168 verwenden kann?

die gekürzte Version mit dem Atmega48 funktioniert bei mir ohne 
Probleme. wenn ich einen Atmega8 in die Schaltung setzte zeigt das 
Display nichts an und er schaltet sich nicht von selber ab - als wenn 
das Programm hängen würde. ich bin mir sicher die richtigen Dateien 
geflasht zu haben und die Fusebits stimmen auch.
zum Test habe ich mal selbst ein kleines LCD-Programm geschrieben. auf 
dem Atmega48 läuft es, am Atmega8 nicht. ich denke der hat einen Schuss 
weg. leider habe ich im Moment keinen anderen zur Hand. einen Atmega88 
oder Atmega168 hätte ich noch.

von Peter ⛄ W. (Firma: Huddel und Brassel Ltd.) (jaffel) Benutzerseite


Lesenswert?

Es gibt doch fuer alle Typen gleich das fertige iHEX mit dazu, laufen 
die auch nicht ?

von Daniel S. (longshine)


Lesenswert?

ähm die gibts doch nur für Atmega8 und 48

von Peter ⛄ W. (Firma: Huddel und Brassel Ltd.) (jaffel) Benutzerseite


Lesenswert?


von Alexander S. (esko) Benutzerseite


Lesenswert?


von Daniel S. (longshine)


Lesenswert?

die Seite kenn ich schon Alexander. aber wo gibts da das Hexfile? da 
steht doch extra:
ATMega88 (noch nicht fertig kompiliert verfügbar)

von Peter ⛄ W. (Firma: Huddel und Brassel Ltd.) (jaffel) Benutzerseite


Lesenswert?

Ich habe Dir doch den Link gepostet, replace Atmega8 / Atmega88 was 
willst Du denn jetzt NOCH ?
Willst Du jetzt noch das fertige iHEX fuer Deinen µC oder wie stellst Du 
Dir das vor ?

von Hubert G. (hubertg)


Angehängte Dateien:

Lesenswert?

Hat sich problemlos kompilieren lassen. Hab allerdings nur einen 
Transistor, Diode, Elko und Kondensator getestet.

von Daniel S. (longshine)


Lesenswert?

die App-Note kannte ich auch schon, nur leider kann ich kein C - weshalb 
es mir schwer fällt die die Sachen im Code zu verändern.

Danke Hubert. das Hex läuft bei mir nun endlich. ist das mit 
invertiertem UART oder ohne?

ein Fehler hab ich gefunden. liegt das am Mega88 oder am Programm 
selbst?
und zwar beim Testen einer LED sagt er mir:

Diode: A=3;K=2
Uf=2012mV

soweit richtig. wenn ich die LED aber umgepolt (A=2;K=3) anschließe sagt 
er mir:

N-JFET
GDS=213

von Frank (Gast)


Lesenswert?

Eine evtl. sinnvolle Erweiterung wäre auch ein USB-Anschluss und eine 
geeignete Anzeige-Software auf dem PC/Mac - z.B. mit CSV-Export. Dann 
wäre das Gerät auch gut für Inventuren oder Bestandsaufnahmen zu 
gebrauchen ...

Ausserden käme über USB problemlos Strom herein.

von Daniel S. (longshine)


Lesenswert?

Frank schrieb:
> Ausserden käme über USB problemlos Strom herein.

"problemlos" würde ich das nicht nennen. ich habe an USB schon 
unbelastet zwischen 4,5 und 5 Volt gemessen. bei 4,5V würde vielleicht 
die analoge Refernz nicht mehr stimmen. oder man macht halt alles über 
die interne Refernzspannung

von nur so (Gast)


Lesenswert?

Da stünde man vor der Entscheidung V-USB mit HID-class oder über die 
serielle Schnittstelle mit FT-232-Chip.

von Hubert G. (hubertg)


Lesenswert?

@Daniel S.
Ich tippe mal drauf das da ein HW-Problem bei dir ist.
In meinem Testaufbau kommt bei allen Möglichkeiten die richtige Anzeige.
Es sollte UART invertiert sein, hab ich aber nicht getestet.

von Daniel S. (longshine)


Lesenswert?

Ok, danke. Wie finde ich das in der HW? Anders herum funktioniert es ja.
Könntest du mir auch die Sourcedateien schicken - ich müsste die 
Widerstandswerte anpassen.

von Hubert G. (hubertg)


Angehängte Dateien:

Lesenswert?

Du hast ja für jede Diodenrichtung drei Möglichkeiten zum einstecken. 
Vielleicht kannst du da erkennen welcher Pin der Bösewicht ist.
Natürlich kontrollieren ob die richtigen Widerstandswerte am richtigen 
Platz sind, Kurzschlüsse usw. beachten.

von Peter ⛄ W. (Firma: Huddel und Brassel Ltd.) (jaffel) Benutzerseite


Lesenswert?

Sag mal, wie waere es mal selbst das Hirn zu bemuehen ? Es steht ALLES 
hier in diesem Thread !

> ich habe an USB schon
> unbelastet zwischen 4,5 und 5 Volt gemessen.

Ob das wohl an dem Billigstnetzteil liegen koennte ? USB wird 
naemmlich von dort direkt gespeist.

Frank schrieb:
> Eine evtl. sinnvolle Erweiterung wäre auch ein USB-Anschluss und eine
> geeignete Anzeige-Software auf dem PC/Mac - z.B. mit CSV-Export. Dann
> wäre das Gerät auch gut für Inventuren oder Bestandsaufnahmen zu
> gebrauchen ...

Auch das steht hier im Thread. Vielleicht mal lesen ?

@Hubert G. (hubertg)

Schoen das sich doch immer wieder ein _Dummer_findet, der die Faulheit 
anderer unterstuetzt.
Kommt mir irgendwie so vor wie in der Schule, da fand sich auch immer 
irgendein Trottel, dem man die Hausaufgaben mit nach Hause geben konnte.

von usuru (Gast)


Lesenswert?

> Die Gehaeuse sind uebrigens von Reichelt. GEH KSB 02B

ich habe das hier 
http://www.reichelt.de/Kunststoff-Kleingehaeuse/SD-10-SW/index.html?;ARTICLE=16994

von Daniel S. (longshine)


Lesenswert?

danke für die Sourcedateien.

was meinst du genau mit ALLES? das einzigste was ich über LEDs gefunden 
habe ist:

>> ich hab mal eine Frage und zwar ist es möglich mit dem Tester auch
>> die Durchlaßspannung von LEDs zu ermitteln ?
>
> Ja, bis 2,5V. Ich werde diesen Wert aber nochmal etwas erhöhen, so auf
> 3,5V bis 4V. Das sollte für fast alle LEDs reichen.
> Höher als 4V sollte man aber vermutlich nicht gehen (dann wird die
> Wahrscheinlichkeit, dass irgendwelche Bauteile fälschlicherweise als
> Diode erkannt werden recht groß).
>
> LEDs werden als Diode angezeigt, mit entsprechender Durchlassspannung
> (ca. 2V bei Standard-LEDs).

von Peter ⛄ W. (Firma: Huddel und Brassel Ltd.) (jaffel) Benutzerseite


Lesenswert?

Das koennte vielleicht daran liegen, dass Du der EinZIGe mit diesem 
Fehler bist, bei mir funktioniert es naemlich auch in beiden Richtungen.

von Hubert G. (hubertg)


Lesenswert?

@Peter W. (jaffel)
Dafür bin ich der jenige, hoffentlich nicht einzige, der weiss warum es 
funktioniert.
Der in der Schule für die anderen die Hausaufgaben gemacht hat, war zwar 
der Dumme, die anderen sind aber blöd geblieben.

von Peter ⛄ W. (Firma: Huddel und Brassel Ltd.) (jaffel) Benutzerseite


Lesenswert?

Hubert G. schrieb:
> Der in der Schule für die anderen die Hausaufgaben gemacht hat, war zwar
> der Dumme, die anderen sind aber blöd geblieben.

Siehst Du, GENAU DAS meinte ich. Also mach' Du weiter fuer Andere die 
Hausaufgaben mit, damit bloss niemand was dazu lernt.

von Daniel S. (longshine)


Lesenswert?

es war wirklich ein HW-Fehler: R4 (470k) war gebrückt. nun geht es, 
danke.

ich versteh was ihr meint - ok. trotzdem danke für deine Hausaufgaben 
Hubert

von Michael D. (mike0815)


Lesenswert?

nabend,

zur Spannungsversorgung des Testers habe ich hier was geschrieben:
Beitrag "Re: Transistortester mit AVR"

Spannungsschwankungen werden bei den Messergebnissen nicht verziehen, 
was durch verschiedene Lastwechsel bei USB-Spannungen schon mal 
auftritt, meine Erfahrung.

> Frank schrieb:
> Eine evtl. sinnvolle Erweiterung wäre auch ein USB-Anschluss und eine
> geeignete Anzeige-Software auf dem PC/Mac - z.B. mit CSV-Export. Dann
> wäre das Gerät auch gut für Inventuren oder Bestandsaufnahmen zu
> gebrauchen ...

> Peter W. schrieb:
> Auch das steht hier im Thread. Vielleicht mal lesen ?
hab' ich da was überlesen? In welchem Monat war das denn?
Das über UART(Terminal) ausgelesen werden kann, weiß ich ja, von einer 
anderen Software allerdings, weiß ich jetzt nichts

Gruß Michael

von Peter ⛄ W. (Firma: Huddel und Brassel Ltd.) (jaffel) Benutzerseite


Lesenswert?

Michael D. schrieb:
> Spannungsschwankungen werden bei den Messergebnissen nicht verziehen,

Logisch, wenn es waerend der Messung schwankt. Das wage ich aber mal 
zu bezweifeln.

> was durch verschiedene Lastwechsel bei USB-Spannungen schon mal
> auftritt, meine Erfahrung.

Kann eigentlich nicht, da USB direkt am Netzteil haengt. Bei 30A werden 
die 50mA sicher nichts ausmachen. Auch wenn nur 4,5V anliegen, was bei 
einem PC Netzteil wohl kaum vorkommt, wird sich der µC damit zufrieden 
geben.
Hier wird anscheinend ein "BauteilTester" mit einem Messgeraet 
verwechselt.

Michael D. schrieb:
> Das über UART(Terminal) ausgelesen werden kann, weiß ich ja, von einer
> anderen Software allerdings, weiß ich jetzt nichts

Wurde danach denn gefragt ?
Wenn xy das so moechte, soll er sich die Software doch schreiben. Ich 
sehe da keinen Sinn drin, irgendwelche Daten, nicht zuordbarer Bauteile 
in eine Liste zu packen. Wenn ich doch weiss was ich z.B. fuer einen 
Transistor habe, steht ueblicherweise drauf, wozu brauche ich dann den 
Tester, geschweige denn eine Software, die mir U_BE oder hfe abspeichert 
?
Als Bezeichnung schreibt man dann in die Liste "Transistor, Unbekannt, 
PNP, hfe345, U_BE 789mV" und schmeisst den in das Fach zu den anderen 
200 Unbekannten mit den selben Werten, oder wie muss man sich das 
vorstellen ?
Ich meine, dann kann ich auch das Terminal nehmen und die Daten in eine 
Excel Tabelle uebertragen. Fuer was braucht man da eine spezielle 
Software und vor allem, was soll die koennen ?

Das Geraet ist doch eher dazu gedacht Bauteile grob auf Funktion zu 
testen, ohne umstaendliche Messungen zu veranstalten. ODER evtl. um ein 
unbekanntes Bauteil grob zu identifizieren, wobei ich hier den Sinn auch 
nicht wirklich verstehe.

von Michael D. (mike0815)


Lesenswert?

moin,

> Kann eigentlich nicht, da USB direkt am Netzteil haengt. Bei 30A werden
> die 50mA sicher nichts ausmachen. Auch wenn nur 4,5V anliegen, was bei
> einem PC Netzteil wohl kaum vorkommt, wird sich der µC damit zufrieden
> geben.
Da muß ich dir Recht geben, 4,5V am USB wären da zu wenig und extreme 
Schwankungen sollten bei einem PC-Netzteil nicht vorkommen, wenn dem so 
ist, sollte man das Teil austauschen.

> Wurde danach denn gefragt ?
Deswegen frage ich ja...
> Wenn xy das so moechte, soll er sich die Software doch schreiben. Ich
> sehe da keinen Sinn drin, irgendwelche Daten, nicht zuordbarer Bauteile
> in eine Liste zu packen. Wenn ich doch weiss was ich z.B. fuer einen
> Transistor habe, steht ueblicherweise drauf, wozu brauche ich dann den
> Tester, geschweige denn eine Software, die mir U_BE oder hfe abspeichert
> ?
Mit den Messungen habe ich z.B. Leistungstransistoren gleichen Typs mit 
unterschiedlicher hFe selektiert, fand ich für mich sehr hilfreich!

Wie auch immer...unbedingt erforderlich wäre eine solche Software jetzt 
nicht, aber wer sich dafür berufen fühlt, warum nicht?
Ob Sinn oder Unsinn, liegt immer noch im Auge des Betrachters und man 
sollte jetzt nicht so aggressiv darauf reagieren!

Gruß Michael

von Peter ⛄ W. (Firma: Huddel und Brassel Ltd.) (jaffel) Benutzerseite


Lesenswert?

Michael D. schrieb:
> Mit den Messungen habe ich z.B. Leistungstransistoren gleichen Typs mit
> unterschiedlicher hFe selektiert, fand ich für mich sehr hilfreich!

Dagegen ist ja auch nichts einzuwenden, sofern das Geraet in der Lage 
ist dies auch halbwegs genau zu machen. Das habe ich noch nicht 
verglichen.
Mir ist auch nicht klar, warum man Transistoren selben Typs nach ß 
sortieren sollte.

Nur was soll dann die Software damit anstellen ? Bleiben wir doch bei 
den Transistoren.
Die Software kann doch dann nichts anderes als den Verstaerkungsfaktor 
abspeichern. Man musste also manuell eintippen welcher Transistor das 
war und den Transistor dann auch noch beschriften, dass man ihn 
wiederfindet.

Sorry, aber das ist nun wirklich Unsinn.

von ambo k. (ambo)


Lesenswert?

I have built the AVR transistor tester. It works very well.

However, I want to further increase accuracy with regards to resistance 
and capacitance measurement.  I've used 1% resistors for the 680R and 
470K resistors.

However, I notice that the output of my 78L05 5V regulator is something 
around 4.9V only.  Can this be compensated for in s/w?  I'm trying to 
search for a #define for the VCC but somehow I cannot figure out where 
to make the adjustments.

I'mstill trying to figure outhow all this thing works from the source 
code.

Thanks in advance.

von Thomas S. (thomas_s74)


Lesenswert?

Hallo,

ich habe vor kurzem den Transistortester aufgebaut und festgestellt, 
dass dieser die Kapazitäten viel zu hoch angibt. Aus 100nF werden 152,00 
nF und aus 1000µF werden 1399.51 µF. Transistoren, Widerstände und 
Dioden werden jedoch relativ genau angegeben.

Alles ist korrekt verdrahtet und nirgendwo sind Flussmittelreste.

Wisst Ihr, was da falsch läuft?

MfG
Thomas

von Theo K. (dg0om)


Lesenswert?

Hallo Thomas, Schau dir mal die Beiträge auf dieser Seite ab den Datum 
02.01.2011 an, da findest du eventuell die Lösung für dein Problem.

von Hubert G. (hubertg)


Lesenswert?

Die Lösung liegt hier:
1
#ifdef UseM8
2
3
  /*  Faktoren für die Kapatitätsmessung bei Kondensatoren
4
    Diese Faktoren hängen von Fertigungstoleranzen des AVR ab und müssen somit ggf. angepasst werden
5
    H_CAPACITY_FACTOR ist für die Messung mit 470k-Widerstand (geringe Kapazität)
6
    L_CAPACITY_FACTOR ist für die Messung mit 680-Ohm-Widerstand (hohe Kapazität)
7
    Der gesamte Messbereich ist ca. 0,2nF bis 7300µF.
8
  */
9
//  unsigned int H_CAPACITY_FACTOR EEMEM = 394;     //  Standardwerte für M8
10
//  unsigned int L_CAPACITY_FACTOR EEMEM = 283;     //  Standardwerte für M8
11
    unsigned int H_CAPACITY_FACTOR EEMEM = 262;     //  Standardwerte für M8A
12
    unsigned int L_CAPACITY_FACTOR EEMEM = 177;     //  Standardwerte für M8A
13
#endif

Edit: Die Werte für den Mega8A gelten auch für Mega8 neuerer Fertigung

von Peter ⛄ W. (Firma: Huddel und Brassel Ltd.) (jaffel) Benutzerseite


Lesenswert?

Bei so kleinen Kapazitaeten auch auf die Leitungslaenge /Verlegung und 
guten Kontakt achten.

von Thomas S. (thomas_s74)


Lesenswert?

Ok danke für die Antworten.

Ich bin allerdings nicht so gut, was das programmieren angeht. Ich nehme 
an, dass der Wert im Sourcecode geändert werden muss? Allerdings finde 
ich nur die fertige hex Datei.

Sorry wenn die Frage etwas blöd klingt, aber wie änder ich den Wert 
genau?

MfG
Thomas

von Thomas S. (thomas_s74)


Lesenswert?

Ok ich hab die C datei gefunden. Wenn ich auf "build" klicke seh ich, 
dass die LCD routines nicht drin sind. Wo müssen die Routines aus dem 
Downloadordner von µc.net denn rein?

von Hubert G. (hubertg)


Lesenswert?

Ins gleiche Verzeichnis wie die c Datei.

von Thomas S. (thomas_s74)


Angehängte Dateien:

Lesenswert?

Ja aber ich bekomme beim "Buildt" unten die Fehlermeldung, dass er die 
Befehle nicht kennt.

von Michael D. (mike0815)


Lesenswert?

mit was kompilierst du denn?
Nimm mal die hier, lässt sich auf jeden Fall kompilieren!
Da ist auch die richtige APS für's AVR-Studio4.18 dabei.

Beitrag "Re: Transistortester mit AVR"

voher die Anpassung vom Hubert noch reinsetzen.

Gruß Michael

von Marc R. (hypsocormus)


Lesenswert?

Ich hab mich auch mal drangemacht dieses praktische Gerät nachzubauen.
Nur leider tut sich auf dem Display nix. Keine Anzeige noch nicht mal
ein Mucks... Ich habe das Display (
http://www.reichelt.de/Hintergrund-gruen/LCD-162C-...)
von Reichelt verwendet. Ist das geeignet? Oder wo könnte sich noch ein
Fehler eingeschlichen haben?

von Thomas S. (thomas_s74)


Lesenswert?

Hallo,

auch mit der neuen Datei bekomme ich beim "Build" immer diese Meldungen. 
Irgendwie hab ich das Gefühl, dass ich zu doof bin da die LCD Routines 
mit einzubeziehen. Naja woher soll ich auch wissen wie das geht. Hat mir 
ja niemand beigebracht. Es kommen immer meldungen wie ... undeclared 
(first use in this function). Also denke ich, das da was fehlt.

Ich nutze AVR Studio 4.18

von Thomas S. (thomas_s74)


Lesenswert?

Marc R. schrieb:
> Ich hab mich auch mal drangemacht dieses praktische Gerät nachzubauen.
> Nur leider tut sich auf dem Display nix. Keine Anzeige noch nicht mal
> ein Mucks... Ich habe das Display (
> http://www.reichelt.de/Hintergrund-gruen/LCD-162C-...)
> von Reichelt verwendet. Ist das geeignet? Oder wo könnte sich noch ein
> Fehler eingeschlichen haben?

Bei mir muss ich nach dem Flashen nochmal die Datei fürn EEPROM nochmal 
drauf machen, auch wenn sie schon vorher draufgemacht wurde. Also zuerst 
die hex drauf und danach die .eep und dann sollte alles gehen.

Wenn die .eep nicht drauf ist bleibt mein display auch leer. Oder du 
hast den Kontrast vergessen.

von Marc R. (hypsocormus)


Lesenswert?

Ich hab jetzt mal versucht den Controller mit dem AVR Studio 5 zu 
beschreiben. Der Flash geht problemlos. Beim EEprom kommt jedoch die 
Fehlermeldung "Verifying EEPROM...Failed! address=0x0000 expected=0x22 
actual=0x2d" . Was kann ich da jetzt machen?

von Mathias B. (bzzz)


Lesenswert?

Nochmal drüberflashen. Evtl. zwischendrin erasen - ich hab auch einen 
Atmega, der gern solche Fehler ausgibt. Nach einem Erase-Zyklus nimmt er 
alles perfekt an, schieb ich direkt eine neuere Datei drüber, muss ichs 
2-3x wiederholen, bis alles korrekt angekommen ist.

von Thomas K. (torres)


Angehängte Dateien:

Lesenswert?

Habe den Tester auch nachgebaut, er funktioniert richtig gut.

Ich habe allerdings ein paar kleine änderungen vorgenommen.

1. LCD-Display mit oder ohne Beleuchtung oder keins von beiden, dafür 
eine Status-LED.

2. Eine Externe Spannungsversorgung, bei der die Batterie im Gerät 
bleiben kann.

3. Eine ISP-Schnittstelle, um bei einer Programmaktualisierung, nicht 
den ganzen Bauteiltester zerlegen zu müssen.

4. Banenbuchsen um vorhandene Prüfkabel zu verwenden.

5. Ein Poti, zum einstellen des kontrastes am Display.

Ein großes dankeschön an Markus für dieses Projekt.

Gruß torres

von Uwe S. (de0508)


Lesenswert?

Hallo,

ich habe auch den "Transistortester mit AVR" aufgebaut, siehe den 
Beitrag

Beitrag "Re: Transistortester mit AVR"

und bin zufrieden.

Aber wenn man doch noch weiter gehen möchte und alle Transistoren, Fets 
und Dioden vermessen will, dann muss man dieses Kennlinienschreiber 
haben !

*Kennlinienschreiber von Andreas, DL4JAL*

- http://www.dl4jal.eu/kls/kls.html

Hier noch ein Bild vor dem endgültigen Einbau in ein Euro-Gehäuse:

- http://www.qrpforum.de/index.php?page=Attachment&attachmentID=10166

Da alle Layouts, die Firmware und das WinOS/Linux Programm offen gelegt 
sind, ist ein Nachbau sehr einfach möglich.

.

von Ludovic (Gast)


Lesenswert?

Hi All,

Thanks to Markus for making and sharing this project.
Unfortunately I don't know AVR and I ordered an ATMEGA 8L by mistake. I 
saw in the datasheet that this part only work at 8MHz instead of 16MHz 
for the ATMEGA 8.

Would it work? If yes, does I have to change something?
:-/

Thank you for your help!
Ludovic

von Daniel S. (longshine)


Lesenswert?

it will work and no, you don't have to change something. because the 
ATMEGA8 COULD run in 16Mhz, but the tester uses the internel 8Mhz 
RC-oscillator. this works with the ATMEGA8 and the ATMEGA8L

von Ludovic (Gast)


Lesenswert?

Great news, thanks for your answer! I'm going to start it right now!
;-)

von Thorsten S. (whitejack) (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

habe gerade diesen Thread hier gefunden, hatte mir leider den Tester von 
ATLAS schon bei Reichelt gekauft.

Der Vollständigkeit halber hier ein Bild vom Inneren des Kauftesters.

Gruß,
TS.

von Don R. (don_r)


Lesenswert?

Hi , Excuse its in English but I dont speak German

I am interested in simulating the transistor testor in Proteus.

I saw a video of it done by Alyas and wrote him asking if he would allow 
me to try his .DSN file for myself. He wrote that someone had already 
made the .DSN file available on this site , but as the site is in German 
I cant read it or find it .

Could someone please give me a link to it so I may download it and try 
it for myself

Regards
Don

von Alexander S. (esko) Benutzerseite


Lesenswert?

Don R. schrieb:
> I saw a video of it done by Alyas
Who is Alyas, where have you met?

> He wrote that someone had already made the .DSN file available on
> this site , but as the site is in German I cant read it or find it .
Its this post written in russian: 
Beitrag "Re: Transistortester mit AVR"
with this file: http://www.mikrocontroller.net/attachment/112570/AVR.rar

von Don R. (don_r)


Lesenswert?

Alexander Schmidt schrieb:
> Don R. schrieb:
>> I saw a video of it done by Alyas
> Who is Alyas, where have you met?
>
>> He wrote that someone had already made the .DSN file available on
>> this site , but as the site is in German I cant read it or find it .
> Its this post written in russian:
> Beitrag "Re: Transistortester mit AVR"
> with this file: http://www.mikrocontroller.net/attachment/112570/AVR.rar


Alyas had a video on You tube ( removed now )
but his page is here http://alyas-elab.blogspot.com/


The file you pointed two was just what I wanted thank you

I ran it in proteus and all worked well except for capacitors which read 
about 50% - 60% low

Thanks for the help
Don

von Gerhard G. (xjrler)


Angehängte Dateien:

Lesenswert?

Hallo,

mein Name ist Gerhard und ich beschäftige mich erst seit kurzer Zeit mit 
AVR´s.
Ich habe den Transistortester mit automatischer Abschaltung nachgebaut - 
in den MEGA8 das bestehnde HEX File gebrannt - und das Teil funktioniert 
einwandfrei - ein absolut tolles Projekt und Danke an alle daran 
Beteiligten.

Parallel dazu habe ich versucht meine "eigene" HEX Datei aus den 
vorhandenen *.c und *.h Dateien zu erstellen. Ich habs mit AVR Studio4 
und AVR Studio5 probiert. Daran bin ich leider kläglich gescheitert und 
ich bekomme immer eine Menge Fehlermeldungen.


Anbei eine Beschreibung wie ichs mit dem AVR Studio 5 versucht habe.

Start AVR Studio5

new projekt
  executable project
  Auswahl ATMEGA8

Einfügen der Daten - siehe Bild1.JPG und Bild2.JPG



Fehlermeldungen :-( siehe Bild3.JPG


Wäre super wenn mir jemand weiterhelfan kann.

lg

Gerhard

PS: Google sowie auch die Suchfunktion hat mich nicht wirklich weiter 
gebracht.
ich habe win 7, und ein MYAVR Board

von Peter ⛄ W. (Firma: Huddel und Brassel Ltd.) (jaffel) Benutzerseite


Lesenswert?

Versuche mal WinAVR mit einem vernuenftigen Programm, dann funktioniert 
es auch mit der Compiliererei. Dieses Durcheinandergewuerfel verstehe 
nicht mal ich, wie soll ein Compiler das verstehen ?
Ein Makefile zu erstellen ist auch Sinnvoll wenn man AVRStudio / WinAVR 
benutzt.
Fuer den Anfang koenntest Du versuchen den originalen Quelltext zu 
kompilieren.

http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial

Im Uebrigen hat dies ueberhaupt nichts mehr mit dem Tester zu tun.

von Gerhard G. (xjrler)


Lesenswert?

ich verwende das AVR Studio5 mit WINAVR.
Einache Programme kann ich auch kompilieren  - ich hab aber das Problem 
wenn das ganze aus mehreren *.h oder *.c´ Dateien besteht.

Ich werde das Thema aber auslagern - mit dem Tester hats ja wirklich 
nichts zu tun

Gerhard

von Michael L. (michaelx)


Lesenswert?

Hallo Gerhard,

ganz so einfach, nur irgendwelche Dateien ins Projekt ziehen, geht es 
leider nicht.
Du kannst z.B. nicht 2 main() Funktionen haben. Die eine sehe ich in 
AVRGCC1.c, und die 2. steckt in der main.c, da ich nach dem was ich sehe 
mal annehme, dass du die Dateien vom Transistortester in dein Projekt 
gezogen hast.
Aber noch ne Frage: Warum hast du denn nicht das von Markus 
mitgelieferte Projekt-File geöffnet?

Grüße. Michael

PS: Ich habe das Projekt von Markus (etwas ältere Version) auf dem 
Rechner, grad noch mal getestet (mit AVR-Studio 4), es lässt sich ohne 
Fehler und Warnungen erstellen.

von Christian R. (holle)


Lesenswert?

Hallo,
ich bin ein Neuling, was Mikrocontroller betrifft. Vor 2 Jahren habe ich 
zwar "angefangen", aber wegen Zeitmangel auch gleich wieder aufgehört 
;-)

...nun, ich bin von deinem Projekt begeistert und möchte den 
Transistortester unbedingt nachbauen, doch dazu habe ich noch eine 
Frage.

Wenn ich mehr Widerstände verwenden würde, als nur den 680 und den 470k, 
dann würden sich die Messergebnisse (insbesondere bei den Widerständen) 
doch verbessern lassen, oder? ...also zumindest bei Werten, die genau 
dazwischen liegen.
Wurde das nicht gemacht weil es sich nicht lohnt (Verbesserung zu 
gering), oder nur weil die Ports nicht ausreichen?
Wenn es nur wegen der Ports ist, würde sich da eher ein 2. AVM anbieten, 
oder ein "Größerer" oder könnte man das auch mit Multiplexern erweitern?

Und dann hätte ich da noch eine Frage...
wäre es möglich damit auch Spulen zu messen? Wenn der AVM nicht die 
nötige Frequenz erzeugen kann, dann wäre es doch vielleicht möglich 
verschiedene Quarze zu verwenden, oder?
Klar, dann reichen die Ports auch wieder nicht, aber das könnte man dann 
doch wieder mit Multiplexern oder weitere/größere AVMs realisieren, 
oder?

Bitte nicht gleich steinigen. Das soll nicht heißen, dass mir der 
Transistortester nicht ausreichen würde, sondern es sind lediglich 
Fragen die mir spontan beim lesen des Projekts aufgekommen sind.

Gruß, Christian

von Karl-Heinz K. (kubi48)


Lesenswert?

Hallo zusammen,
ich wollte in diesem sehr langem Thread darauf aufmerksam machen,
daß ich in einem neuen Thread (topic/248078#new, Stichwort 
"Transistortester AVR") auf meine Veränderungen und Optimierungen der 
Transistortester Software hingewiesen habe.
Wenn Interesse besteht, die Änderungen in ein gemeinsames Projekt 
aufzunehmen, bin ich gerne bereit daran mitzuarbeiten.
Den Stand meiner eigenen Weiterentwicklung habe ich als Zip-File in 
meinem eigenen Thread schon veröffentlicht.
Vielleicht passt die Art der Formatierung oder ähnliches nicht zu der 
bisherigen Art, das würde ich aber ggf. auch anpassen.

Grüße
Karl-Heinz Kübbeler

von Uwe S. (de0508)


Lesenswert?

Karl-Heinz,

danke für die Ergänzungen, hier der komplette Link:

Beitrag "Transistortester AVR"

.

von Ronnie T. (ronnie_t) Flattr this



Lesenswert?

Here is my version of this project..

Very nice project..Thank you Markus F.

von Fritz F. (fr-frosch)


Lesenswert?

Sehr schönes Projekt, Danke!
Nur die Röhrentestfunktion vermisse ich noch ;D

von Jörg L. (nuckey)


Lesenswert?

ers mal herzlichen dank an markus und alle die am diesem projekt 
mitwirken.
habe mir dit uff lochraster jelötet und funzt ;))
jetz bin ick dabei allet raus zu kramen, um zu testen.
hier kommen einige ungereimtheiten zusammen.
"normale elkos zb 10 µf" erkennt er ,aber smd kond. 10µf erkennt er als 
diode .

bin etwas verunsichert ob ick doch allet richtig jelötet habe.

wie jehabt tolle sache ,bin bejeister.

mfg nuckey

von Alexander S. (esko) Benutzerseite


Lesenswert?

Jörg Lehmann schrieb:
> "normale Elkos z.B. 10 µF" erkennt er, aber SMD Kond. 10µf erkennt er als
> Diode.

Hast du bei den SMD Kondensatoren plus und minus verwechselt?

von Jörg L. (nuckey)


Lesenswert?

nee hatte beide kombi. jetestet.

habe dehn smd kondensator mal mit oszi - komp.-tester jeprüft und vom 
bild her und dehm wat im begleitheft steht müsste dit smd kondensator 
10µf + diode sein.dit bild sieht aus wien P nur mit janz kurzen jerade 
also verkrüppeltet P.
könnte ne Kap.-Diode sein ??
darlingtontranssen zeigt er mit 0 hfe und dioden symbol.

mal sehn wat dit teil zu dehn russentransen sagt ;)

jibt dit eigentlich ne fehlerkennungs liste ??

mfg nuckey

von Pascal H. (pase-h)


Lesenswert?

Hallo,
Ich habe mir jetzt auch mal den Transistortester nachgebaut, jedoch 
werden bei mir laufend falsche Bauteile angezeigt.
Z.B. ein BC548 wird mir als JFET angezeigt,
je nachdem wie ich meinen IRF540 anschließe, ist er mal eine Diode oder 
Kondensator, oder er wird nach langem rumprobieren richtig angezeigt.

Ich habe jetzt auch alle Flussmittelreste entfernt, jedoch messe ich 
immer einen JFET mit GDS 231.

Die Firmware habe ich von folgender Seite:
http://frickelpower.bplaced.net/ctest/index.php?pglang=de

Mfg
Pascal

von Hubert G. (hubertg)


Lesenswert?

Ich habe die Version von hier:
http://svn.coremelt.net/avr/semiconductor_tester/
Das sollte die Letzt-gültige sein.

von Karl-Heinz K. (kubi48)


Lesenswert?

Pascal H. schrieb:
> Ich habe mir jetzt auch mal den Transistortester nachgebaut, jedoch
> werden bei mir laufend falsche Bauteile angezeigt.
> Z.B. ein BC548 wird mir als JFET angezeigt,
> je nachdem wie ich meinen IRF540 anschließe, ist er mal eine Diode oder
> Kondensator, oder er wird nach langem rumprobieren richtig angezeigt.

Hallo Pascal,
ich möchte Dich auf meine Testversion der Transistortestersoftware 
aufmerksam machen, die in ihrer letzten Version eines Selbsttest des 
Transistortester beinhaltet. Das könnte Dir bei der Analyse der Ursache 
helfen. Näheres zu meinen Änderungen und der Testfunktion steht in der 
mitveröffentlichen PDF-File.
Siehe www.mikrocontroller.net/topic/248078#new ("Transistortester AVR" 
im  "µC & Elektronik" Thread.
Grüße
Karl-Heinz

von Tomas Starcok (Gast)


Lesenswert?

Hello

I have little problem with pin swapping on portD (display port...)

My solution:

Atmega - display
PD0(2) - D7(14)
PD1(3) - D6(13)
PD2(4) - D5(12)
PD3(5) - D4(11)

My code:

//Eigentliche LCD-Zugriffs-Funktion; 4-Bit-Modus
void lcd_send(unsigned char data) {
unsigned char swap[16] = 
{0x00,0x08,0x04,0x0C,0x02,0x0A,0x06,0x0E,0x01,0x09,0x05,0x0D,0x03,0x0B,0 
x07,0x0F};
   // oberes Nibble setzen
  LCD_PORT = (LCD_PORT & 0xF0) | swap[((data >> 4) & 0x0F)];
  _delay_us(5);
  lcd_enable();
   // unteres Nibble setzen
  LCD_PORT = (LCD_PORT & 0xF0) | swap[(data & 0x0F)];
  _delay_us(5);
  lcd_enable();
  _delay_us(60);
  LCD_PORT &= 0xF0;
}

This code is write correctly, but the tester doesn´t start-up correctly, 
sometimes starts right on one tenth start-up, otherwise the display 
shows nothing...

I don´t understand why it doesn´t work correctly.

Any ideas how to fix it?

von Michael D. (mike0815)


Lesenswert?

I had the same problem, it was one pin kontact, sometimes it worked and 
sometimes not.
The problem eather can be the init. of the Display. Maybe you need more 
delay for it! What Display-Type you have?
Or try another one...

Regards
Michael

von Tomas Starcok (Gast)


Lesenswert?

I tested three types of displays, two chinese and one with original 
Hitachi controller HD44780 chips...Each type has the same problem with 
displaying

Can it be caused by using function "field" in the code?

Thanks for answers.

von Tomas Starcok (Gast)


Lesenswert?

Is there anyone who has debugged this program to 4MHz internal RC 
oscillator ?

When I set F_CPU to 4000000UL (4MHz) and write fuses correctly to 4MHz 
internal RC oscillator, program don´t work well, program can not measure 
the resistors (shows the capacitor) and the measured capacitor shows 
nearly 4 times more capacity

von Ronnie T. (ronnie_t) Flattr this


Lesenswert?

I tried the other circuit with power down but unfortunately I was not 
able to power it on..

Are the 3 transistors critical for operation? I replaced BC547 with 
2N3904 ( I reversed the placement because of different EC placement)

Also is the 33k (R10) critical? I replaced it with 39k since I can't 
find 33k in my bin at the moment..

Everytime I press the switch only about 1.6VDC present at the COLLECTOR 
of T3 (BC557).

Did I missd something?


TIA

von Thomas R. (tinman) Benutzerseite


Lesenswert?

Michael G. schrieb:
> Thomas R. schrieb:
>
>> hast du auch SAS/SCSI raid mit backup, redundante leitung und zwei dns
>> server ?
>
> Nicht dass es etwas zur Sache tun wuerde: Gespiegeltes Hardware-RAID,
> dediziertes Backup und redundante DNS-Server sind vorhanden.

tjo, wo ist die coremelt.net jetzt?

von MeinerEiner (Gast)


Lesenswert?

Thomas R. schrieb:
> tjo, wo ist die coremelt.net jetzt?

svn ist auch tot. Vielleicht Michael mal anschreiben.

von Andreas (Gast)


Lesenswert?

Hallo
ich würde das Projekt sehr gerne nachbauen da ich leider erst vor 
einigen Monaten mit assembler angefangen habe fällt mir das ganze sehr 
schwer und ich würde gerne auch etwas daraus lernen, auch der Schaltplan 
ist für mich sehr schwer nachzuvollziehen da ich noch nie mit dem 
ATMega8 gearbeitet habe. Gibt es nicht eine etwas leichtere Variante wo 
nur eine Auto Erkennung von NPN und PNP-Transistoren  und der Ermittlung 
des Verstärkungsfaktors und der Basis-Emitter-Durchlassspannung  bei 
Transistoren. Um schnelle hilfe würde ich mich sehr freuen

von Michael D. (mike0815)


Lesenswert?

Hallo Andreas,
dieser Thread wird nicht mehr so gepflegt, sind ja auch schon 5 Seiten.
Hier geht's weiter, wo der Transistortester quasi als Komponenten-Tester 
weitergeführt wird:

Beitrag "Transistortester AVR"

schau mal vorbei...

Gruß Michael

von Luis Alberto (Gast)


Lesenswert?

Hallo Freund Andreas, können Sie die Atmega8-U16, in diesem Projekt. 
Dank

Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.