Forum: Mikrocontroller und Digitale Elektronik LED als Fotodiode (war: Brauche Hilfe bei Schaltplan)


von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

Johann L. wrote:

(Originalthread ab hier:
Beitrag "Re: Brauche Hilfe bei Schaltplan" )

>>> ADC hatte ich erst garnich versucht, weil man sehr hochohmig messen
>>> muss.
>>
>> Da ich ja nicht die aufgeladene Sperrschichtkapazität messen wollte,
>> sondern direkt das Produkt von Fotostrom und Ri des ADC, geht das
>> schon einigermaßen.  Statisch ist der ADC recht hochohmig (nur das
>> Nachladen des S&H-Kondensators kostet ein wenig Strom).

> Da kommt's dann doch drauf an, wie hoch die Sample-Kapazität ist. Wenn
> die in der Größenordnung der Sperrschicht-Kapazität ist oder darüber,
> dann misst man nicht was man will. Zudem wirkt die (Foto)diode doch auch
> dann als Integrator über den Fotostrom, den Fotostrom direkt messen tut
> man nicht, oder?

Die Sample-Kapazität dürfte höher als die Sperrschichtkapazität sein,
aber warum stört das?  Man muss doch nur dein Eingang des S&H-Glieds
lange genug an der Fotodiode lassen, damit der Fotostrom diesen
aufladen kann.  Ableitend wirkt dann praktisch nur der Leckstrom des
Gates bzw. der S&H-Schaltung.

>> Naja, war nur ein schneller Versuch.  Deine Methode kann ich aber
>> nicht benutzen, da ich nicht ausreichend an den Komparator heran
>> komme (ein Pin davon ist bereits anderweitig verbaut).

> Evtl. geht interne V_ref, dan braucht man keine externe V_ref und spart
> einen Pin. Wenn der A/D-Wandler (zeitweise) nicht gebraucht wird, kann
> man den AC über dein Input-MUX des ADC verdrahten und hat dann 7 bzw. 9
> Pins zur Auswahl, wo man messen möchte. In dem Fall eine internen V_ref
> muss man gegen GND schalten, nicht gegen VCC.

Kannst dir ja mal die Schaltung vom tiny230 ansehen, ich hänge mal die
aktuelle Version an.  Das ist ein ATtiny44/84, da kann man zwar jedes
Pin als ADC-Eingang nehmen (das hat mich ja auf die Idee gebracht, die
LED als Fotodiode zu nehmen), aber meine beiden LEDs waren schon
vorbelegt, und ich habe insgesamt nur 4 Pins für die Applikation frei,
die noch dazu im Schlaff sinnvoller Weise keinen Ruhestrom ziehen
dürfen, damit man eine lange Batterielebensdauer erreicht.  Damit
verbieten sich irgendwelche permanenten Spannungsteiler.

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Jörg Wunsch wrote:

> Die Sample-Kapazität dürfte höher als die Sperrschichtkapazität sein,
> aber warum stört das?  Man muss doch nur dein Eingang des S&H-Glieds
> lange genug an der Fotodiode lassen, damit der Fotostrom diesen
> aufladen kann.  Ableitend wirkt dann praktisch nur der Leckstrom des
> Gates bzw. der S&H-Schaltung.

Ich weiß nicht, wie eine S&H-Schaltung im Detail aufgebaut ist. Denke 
die hat 2 Zustände: Einen hochohmigen (H) und einen niederohmigen (S). 
In S wird die interne C geladen, und die Ladung dafür muss vom externen 
C kommen. Man hat also C*U=const. Oder gibt's da noch Treiber wie 
Impedanzwandler die Ladung zuschiessen? Aber selbst die haben 
Kapazitäten am Eingang.

Aber ich bin da kein Experte und reime mir vieles aus meinem 
Bastler-Wissen zusammen. Manchen korrekt, manches eben auch inkorrekt.

>> Evtl. geht interne V_ref, dan braucht man keine externe V_ref und spart
>> einen Pin. Wenn der A/D-Wandler (zeitweise) nicht gebraucht wird, kann
>> man den AC über dein Input-MUX des ADC verdrahten und hat dann 7 bzw. 9
>> Pins zur Auswahl, wo man messen möchte. In dem Fall eine internen V_ref
>> muss man gegen GND schalten, nicht gegen VCC.
>
> Kannst dir ja mal die Schaltung vom tiny230 ansehen, ich hänge mal die
> aktuelle Version an.  Das ist ein ATtiny44/84, da kann man zwar jedes
> Pin als ADC-Eingang nehmen (das hat mich ja auf die Idee gebracht, die
> LED als Fotodiode zu nehmen), aber meine beiden LEDs waren schon
> vorbelegt, und ich habe insgesamt nur 4 Pins für die Applikation frei,
> die noch dazu im Schlaff sinnvoller Weise keinen Ruhestrom ziehen
> dürfen, damit man eine lange Batterielebensdauer erreicht.  Damit
> verbieten sich irgendwelche permanenten Spannungsteiler.

Die Schaltung ist mir zu hoch :-)

Ich nehme mal an es geht um PA0-3?

Ist die Schaltung fix oder kannst du noch was dran ändern? Wozu ist denn 
der Taster? Der verschwendet doch einen Port...

Wie werden die LEDs betrieben? Statisch? Hard/Soft-PWM? Egal?

Ist das ne T-Messung an PA3? Wieso hängt da der Tester mit dran?

Wozu ist die Schaltung überhaupt?

Spannungsteiler wäre kein Problem. Einfach gegen nen freien Port und 
nicht gegen VCC resp. GND.

Johann

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Johann L. wrote:

> Ich weiß nicht, wie eine S&H-Schaltung im Detail aufgebaut ist. Denke
> die hat 2 Zustände: Einen hochohmigen (H) und einen niederohmigen (S).
> In S wird die interne C geladen, und die Ladung dafür muss vom externen
> C kommen.

Ich müsste mich auch nochmal erkundigen, aber ich gehe davon aus,
dass der Zustand S ein ziemlich lang anhaltender ist, während H
für die eigentliche Wandlungsdauer zuständig ist.  Damit hat
während S die Fotodiode aber genug Zeit, den Hold-Kondensator
aufzuladen.  Es sollte sich also irgendein Gleichgewicht einstellen,
bei dem ich hoffte, dass es einigermaßen proporzional zur Beleuch-
tungsstärke ist.

> Ich nehme mal an es geht um PA0-3?

Ja.

> Ist die Schaltung fix oder kannst du noch was dran ändern? Wozu ist denn
> der Taster? Der verschwendet doch einen Port...

Das Ding ist eigentlich ein Experimentierboard für die Funk-
datenübertragung mit IEEE 802.15.4.  Ein Taster ist schon eher
zu wenig, wenn man da noch irgendeine Art von ,,Menü'' unterbringen
möchte. ;-)

> Wie werden die LEDs betrieben? Statisch? Hard/Soft-PWM? Egal?

Irgendwann. :-)  In meiner einfachen Test-Applikation blinkt die
eine kurz, während ein Frame übertragen wird.  Die andere ist dort
erstmal unbenutzt, daher habe ich sie als Fotodiode benutzt.  Das
war erst einmal eher eine Schnapsidee.

> Ist das ne T-Messung an PA3?

Ja.

> Wieso hängt da der Tester mit dran?

Weil ich keine weiteren Pins frei hatte. ;-)  Während der Taster
gedrückt ist, kann man also keine Temperatur messen.  Aber es wird
ja auch irgendjemand irgendwann mal den Taster wieder loslassen.

> Spannungsteiler wäre kein Problem. Einfach gegen nen freien Port und
> nicht gegen VCC resp. GND.

Mach ich ja schon für die T-Messung.  Noch mehr ist aber mit nur
vier Pins für die Applikation kaum drin.

Der Sleep-Strom liegt übrigens unter 100 nA (worauf ich einigermaßen
stolz bin, denn oft genug ist es nicht der Aktiv- sondern der
Sleep-Strom, der die Batterielebensdauer bestimmt).

> Wozu ist die Schaltung überhaupt?

Reines Demo-Board.  Eine Art persönlicher Ehrgeiz um nachzuweisen,
dass man für ,,Zigbee'' (genauer: IEEE 802.15.4) keineswegs zwingend
einen Boliden von 64 oder mehr KiB Flash-ROM benötigt.  Das Ganze
sollte also eher die Grenze nach unten mal austesten.  Da scheint
ein ATtinyX4 einigermaßen die sinnvolle Grenze zu sein.  Ein
ATtinyX5 wäre noch kleiner, aber dann würde alles zur puren
Selbstbeweihräucherung mutieren, da man praktisch keine Pins mehr
für eine (irgendwie geartete) Applikation frei hat.

Es ist also ein Minimalismus-Test.

von Ulrich (Gast)


Lesenswert?

Die Sample and Hold Phasen teilen sich auf in 1,5 Zyklen Sample und 11,5 
Zyklen Hold. Die zyklen beziehen sich auf den AD takt. Wenn der AD 
längre Pausen macht, sollte das eher zu Holdzeit dazukommen.

Die Sample Kapazität ist irgendwo in den Datenblättern drin, müßte so um 
die 5-10 pF sein, also vergleichbar mit der Sperrschicht kapazität.
Es ist aber nicht klar das der Sample Kondensator nach der Messung 
entladen ist, da könnte auch die Ladung von der Letzten Messung noch im 
wesenlicher draufsein.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Ulrich wrote:
> Die Sample and Hold Phasen teilen sich auf in 1,5 Zyklen Sample und 11,5
> Zyklen Hold. Die zyklen beziehen sich auf den AD takt. Wenn der AD
> längre Pausen macht, sollte das eher zu Holdzeit dazukommen.

Das wäre komplett unlogisch: das würde ja bedeuten, dass er ein Sample
von viel früher dann halten würde als dem Zeitpunkt, zu dem die Messung
ausgelöst wird.

Ist allerdings wirklich nicht sehr genau beschrieben im Datenblatt, da
dort immer nur "Sample&Hold" als Ganzes steht.

von Ulrich (Gast)


Lesenswert?

Die sample and hold Stufe soll das signal für die eigentliche Messung 
puffern. Die eigentliche Wandlung sollte bei einen 10 Bit Wandler 10 
oder 11 Takte dauern. Die Abtastung muß also davor geschehen, und da 
sind halt nur 2-3 Takte Zeit, wenn die ganze Wandlung 13 Takte dauert.
Eine kurze Sample Phase hat den Vorteil, das man ggf. durch 
Unterabtastung auch schnelle Signale noch einfangen kann.

Im Datenblatt ist immerhin genau beschreiben, das die Sample Phase nach 
1,5 Zyklen zu ende ist.
Was bei Pausen in der Wandlung passiert ist nicht so ganz klar. Der Mux 
noch kurz vor der Messung umschalten kann, würde ich vermuten das die 
Wartezeit vor einer Messung (d.h. bevor ADSC gesetzt wird) nicht für 
eine verlängerte Sample Phase genutzt wird.

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Wenn es nur um eine Demo geht, könnte die Temperaur doch auch über den 
internen T-Sensor des µC gemessen werden?

Dann wären 4 Ports frei und könnten zB 3 LEDs und 3 Taster bedienen. 
Damit geht schon gut eine Menü-Steuerung und auch mehrere Taster 
gleichzeitig zu drücken. Allerdings keine Helligkeits-Messung mit einer 
leuchtenden LED, da wür's schon 2 Ports nur für den Spannungsteiler 
belegen...

Hast du schon mal ne differenzielle Messung versucht, also mit ADC-Gain?

von Ulrich (Gast)


Lesenswert?

Wenn man bedenken hat wegen des Stromes in der sampling phase könnte man 
einen Kondensator von etwa 10 nF parallel zur LED schalten. Der sollte 
genug Ladung speichern können für den Sampling vorgang. Der AD sollte 
dann ziehmlich die Leerlaufspannung der LED messen. Das sollte in etwa 
logarithmisch von der Helligkeit abhängen.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Ulrich wrote:

> Im Datenblatt ist immerhin genau beschreiben, das die Sample Phase nach
> 1,5 Zyklen zu ende ist.

Ja, aber es steht nicht da, wann sie beginnt. ;-)  Zumindest nicht
für den Fall, dass man nicht mit dem kürzest möglichen Timing (also
free running mode) fährt.  Ich würde erwarten, dass der S&H-Konden-
sator bei aktiviertem ADC (ADEN = 1) ab der Aktivierung des
entsprechenden MUX-Kanals bereits am Eingang klemmt.

> Eine kurze Sample Phase hat den Vorteil, das man ggf. durch
> Unterabtastung auch schnelle Signale noch einfangen kann.

Dafür kann man dann nur mit einer sehr niederohmigen Quelle arbeiten.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Johann L. wrote:

> Wenn es nur um eine Demo geht, könnte die Temperaur doch auch über den
> internen T-Sensor des µC gemessen werden?

Ja, wobei der vermutlich noch ungenauer als so'n KTYxx ist.

> Dann wären 4 Ports frei und könnten zB 3 LEDs und 3 Taster bedienen.

Vielleicht mache ich ja mal eine Rev C dieses Boards...

> Hast du schon mal ne differenzielle Messung versucht, also mit ADC-Gain?

Habe ich, war aber ergebnislos.  War aber nur ganz kurz getestet, kann
sein, dass ich da was vermasselt habe (z. B. nicht lange genug gewartet,
ich glaube, der programmable gain amplifier da braucht seine Zeit, bis
er erst einmal in Schwung gekommen ist).

von Mike J. (Gast)


Lesenswert?

Zu deiner Frage: Du könntest doch den Fotostrom über einen 2MOhm 
Widerstand messen.

von Ulrich (Gast)


Lesenswert?

Einen extra Widerstand wird man nur brauchen, wenn die 
Helligkeitsmessung Temperaturunabhängig sein soll. Dann wird man aber 
kaum ohne Gain auskommen. Sonst reicht die Kennlinie der LED aus. Auch 
so ist die Spannung die man an den meisten LEDs mißt relativ klein. 
Schon mit einem normalen DMM (10 MOhm Eingangswiderstand) kommt man bei 
normaler Beleuchtung oft nur auf z.B. 10 mV. Der Fotostrom bewegt sich 
also im nA Bereich. Schon wengen der Leckströme am Eingang kann man also 
nicht zu viel erwarten.

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Jörg Wunsch wrote:

>> Hast du schon mal ne differenzielle Messung versucht, also mit ADC-Gain?
>
> Habe ich, war aber ergebnislos.  War aber nur ganz kurz getestet, kann
> sein, dass ich da was vermasselt habe (z. B. nicht lange genug gewartet,
> ich glaube, der programmable gain amplifier da braucht seine Zeit, bis
> er erst einmal in Schwung gekommen ist).

Ne differenzielle Messung hab ich nie versucht, geht ja auch nicht mit 
einem ATmega8. Aber das Ergebnis habe ich erwartet, die ADC taucht 
einfach nicht für so hochohmige Messungen.

Mit einem Transimpedanzwandler über 10MOhm passierte auch absolut nix, 
das einzige was einfach umzusetzen war, war die Zeitmessung per InCapt.

Für 2 LEDs und 1 Taster würden aber schon 5 Ports draufgehen:

1: VCC für Spannungsteiler (abschaltbar)
2: Spannung für AC+ (ist VCC-eps) vom Spannungsteiler
3: Anode für LEDs
4: Kathode für LED1 (AC- mit Hell-Messung)
5: Kathode für LED2 und Taster

1 und 3 müsste man zusammenlegen können, so daß man auf 4 Ports 
rauskäme:

P1 == LED1> == R3 == AC+
P1 == R1 == AC- == R2 == GND
P1 == LED2> == R4 == P2 == T == R5 == GND

R1, R2 machen den Spannungsteiler
R3, R4 sind V-Widerstände der LEDs
R5  ist für Taster (T)

Johann

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.