Forum: Mikrocontroller und Digitale Elektronik TransistorTester: Frage


von Bernd (Gast)


Lesenswert?

Auszug aus dem PDF des Transistortesters 
https://www.mikrocontroller.net/wikifiles/d/d9/Ttester_ger111k.pdf

"In diesem Fall wird die Schwellspannung gemessen, indem die Spannung 
des Gates langsam mit dem 470k-Widerstand nach VCC und GND gezogen wird, 
darauf wartend, dass das digitale Eingangs-Signal auf der Drain-Seite 
schaltet, wobei dann die Gate-Spannung gelesen wird."

Wie kann man die Spannung z. B. mit einem Pin des ATMega328 langsam 
nach oben oder nach unten ziehen?

von Ulrich F. (Gast)


Lesenswert?

Gatekapazität über einen Widerstand laden und entladen....

von Bernd (Gast)


Lesenswert?

Danke für die Antwort. Werde testen, wie gut das funktioniert.

von Bernd (Gast)


Lesenswert?

In der Simulation (BS170, VCC 5 V, Vgate 2 V, Rgate 470 KOhm) dauert es 
12 µs bis Vth erreicht wird. Das ist ziemlich schnell und verträgt sich 
nicht mit dem langsam aus dem obigen Zitat. Der µC muss in dieser Zeit 
permanent 2 Spannungen überwachen! Ist da noch ein Trick dabei oder 
übersehe etwas?

von Ulrich F. (Gast)


Lesenswert?

Bernd schrieb:
> Der µC muss in dieser Zeit
> permanent 2 Spannungen überwachen!
Nein.
Als Startsignal wird der Digitale Übergang genutzt.
Und dann muss 1 mal gemessen werden.

Also nur eine analoge Messung pro Messzyklus.

von Bernd (Gast)


Lesenswert?

Die fallende Flanke am Drain des FETs startet die analoge Messung?

Habe schon versucht in der SVN die Routine mit dieser Messung zu finden. 
Konnte nichts finden, da der Code etwas unübersichtlich ist.

von bianchifan (Gast)


Lesenswert?

Warum stellst Du deine frage nicht im Wartungsthread?
Beitrag "Transistortester AVR"

Bernd schrieb:
> Konnte nichts finden, da der Code etwas unübersichtlich ist.

Maybe, aber der Hauptzweck ist nun mal die Erkennung unbekannter 
Bauteile, die irgendwie an drei Pins dran geklatscht wurden.
Dem zufolge finden sich Deine gesuchten Kernroutinen auch in CheckPins.c

// measure Threshold voltage of Gate
ADMUX = TristatePin | (1<<REFS0);
// measure TristatePin, Ref. VCC
tmp16 = 1;      // round up ((1*4)/9)
for(ii=0;ii<11;ii++) {
   wdt_reset();
   ChargePin10ms(TriPinRL,0);  // discharge Gate 10ms with RL
   R_DDR = HiPinRL | TriPinRH;  // slowly charge Gate
...
}

von Bernd (Gast)


Lesenswert?

> Warum stellst Du deine frage nicht im Wartungsthread?

Warum sollte ich? Jedesmal hunderte von Beiträgen laden ist nicht lustig 
und hier bekomme ich doch auch eine Antwort :)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.