Forum: Mikrocontroller und Digitale Elektronik Hallsensor TLE4976L an Atmega8


von Schimi S. (schimi)


Lesenswert?

Hallo,

ich möchte den TLE4976L Hallsensor (Datenblatt 
http://www.infineon.com/dgdl/TLE4976xData20Sheet_20V1_1.pdf?folderId=db3a304412b407950112b408e8c90004&fileId=db3a304412b407950112b409170900c3) 
zusammen mit einem ATMega 8 Mikrocontroller verwenden. Dabei denke ich 
an die im Datenblatt vorgeschlagene Beispielschaltung um den vom Sensor 
ausgegebenen Strom in eine Spannung umzusetzen und diese als Eingang für 
den Mikrocontroller zu verwenden.

Jedoch heißt es im Datenblatt

This gives a typical signal voltage level VSIG of 0.8 V in the Off state 
and 1.4 V in the On state.

Ich vermute, dass das ein Problem am Mikrocontroller gibt, da dies keine 
eindeutigen 0 und 1 Zustände sind (zumindest kommt mir die Hysterese 
zwischen "On" und "Off" sehr gering vor). Habe ich da ein generelles 
Verständnisproblem oder hat jemand einen Vorschlag wie ich konkret für 
diesen Sensor vorgehen sollte?

Vielen Dank!

von Lehrmann M. (ubimbo)


Lesenswert?

ob das ein problem darstelle kann ich dir auch nicht sagen - ich mach 
PIC.
Steht eigentlich alles im Datenblatt was für die verschiedenen Inputs 
high / low bedeutet (min  max  avg). =>> Datenblatt lesen / google . 
Findet sich meist bei den Tabellen am Anfang wo Vcc / Temperatur, etc. 
angegeben ist.

Ansonsten braucht man eine Komparator. Der hat dann eindeutig 0 bzw. 5V 
am Ausgang - Schwellspannung einstellbar (dafür nimmt man dann meist ein 
Poti).
Auswendig fällt mir da z.B. der LM311N ein - wenn mich nicht alles 
täuscht ist das ein waschechter Komparator. Mal Tante Guuuugl Befragen

von Schimi S. (schimi)


Lesenswert?

Vielen Dank für die schnelle Antwort.

Der Tipp mit der Temperatur war sehr hilfreich, denn ich hatte natürlich 
bereits im Datenblatt nachgeschaut, war aber nicht fündig geworden.

Also für Vcc = 5V ergibt sich
V_inputlowmax ist 0.2*Vcc = 1 V
V_inputhighmin ist 0.6*Vcc = 3 V

Dementsprechend lag ich mit meiner Vermutung gar nicht so falsch. Nur um 
ein Missverständnis auszuschließen: Ich kann durch beliebige Wahl des 
Widerstands R_L wie er im Datenblatt des Sensors angegeben ist die 
gewünschte Differenz von V_inputlowmax und V_inputhighmin nicht 
herstellen, da ja der jeweilige Strom durch den Sensor vorgegeben ist?

Danke auch für den Tipp mit dem Komparator. Gäbe es eine Alternative mit 
dem Mikrocontroller die Zustände Strom_an und Strom_aus zu 
unterscheiden, da ich gerne einen weiteren IC in meiner Schaltung 
vermeiden möchte?

von Schimi S. (schimi)


Lesenswert?

Ich habe noch ein wenig recherchiert:

Wäre es eine Möglichkeit mit einem geeigneten Widerstand den Sensor auf 
einen der AD-Eingänge des uC zu führen und dann eben über einen 
einfachen <>-Vergleich einen gewissen Spannungswert am Sensor als 0 und 
ab einem anderen Spannungswert 1 zu definieren?

Könnte es da für diesen Sensor andere Probleme geben, an die ich jetzt 
nicht denke? (Ich bitte mir die grundsätzlichen Fragen nachzusehen, ich 
stehe noch ein wenig am Anfang der uC Programmierung)

von Halli (Gast)


Lesenswert?

Hallo was möchust genau machen bitte ?
Einen Stom mit einem Hall- Sensor messen ?
Dafür wäre der ungeeignet, da das nur ein Hall- Schalter ist d.h.
bei einer bestimmten Feldstärke ein und einer anderen Feldstärke aus
schaltet (s. Datenblatt). Einen (analogen) Strom kanst Du damit nicht 
messen !

von spess53 (Gast)


Lesenswert?

Hi

Es reicht ein Widerstand. Der Sensor hat ein Is von 6mA im Low- und 14mA 
im Highzustand. Ein AVR erkennt, bei VCC0=5V, L bis maximal 0,3VCC 
(1,5V) und H ab 0,6VCC (3V). Der RL (Figure 5) muss so dimensioniert das 
diese Pegel bei den Strömen erreicht werden:

  1,5V/6mA  = 250R
  3,0V/14mA = 187,5R

D.h. für RL gilt also 187,5R<RL<250R

Ein 220R-Widerstand sollte diese Bedingung erfüllen.

MfG Spess

von spess53 (Gast)


Lesenswert?

Hi

Nachtrag: Damit die minimale Versorgungsspannung des Sensors eingehalten 
wird
muss er mit mindestens 6V versorgt werden.

MfG Spess

von Schimi S. (schimi)


Lesenswert?

@Halli:

ich dachte ich hätte das einigermaßen verständlich gemacht, es geht 
nicht darum Strom zu messen, sondern den resultierenden Strom des 
Hallsensors in brauchbare Zustände 0 und 1 zu wandeln, so dass der uC 
damit etwas anfangen kann. dazu folgende überlegung:

(@spess53)

eine ähnlich Rechnung hatte ich mir natürlich auch überlegt, nur sind 
bei mir die Parameter etwas anders. Ich habe im Datenblatt (wie oben 
geschrieben) für V_inputlowmax = 0.2*Vcc gefunden.
Dementsprechend ergibt meine Rechnung:

R_L*I_Low < 0.2 * Vcc -> R_L < 167 Ohm
R_L*I_High > 0.6 * Vcc -> R_L > 214 Ohm

na und da gibt es ja offensichtlich Probleme. Wäre also eine Lösung die 
AD Eingänge des uC zu wählen und so über einen beliebigen Widerstand 
(z.B. R_L = 200 Ohm) entsprechend alles unter 1.5 Volt als 0 und darüber 
als 1 zu interpretieren?

(und soweit ich das aus dem DB lese braucht man nur min. 6 Volt, falls 
man noch zusätzlich den Widerstand R_S einbaut, sonst reichen auch 3 
Volt)

von Walter (Gast)


Lesenswert?

da musst du wohl den Preis für die 2-Drahtleitung zahlen...
(es gibt z.B. alternativ den TLE4905 mit Opencollektorausgang und 3 
Anschlüssen)

du kannst übrigens auch einen Comparator im Mega8 nehmen, dann musst du 
nicht auf denn Interrupt verzichten wie bei der AD-Wandlung

von Schimi S. (schimi)


Lesenswert?

@ Walter

leider kann ich den 3-drahtigen Sensor nicht nehmen, da ich einen 
hochsensiblen Sensor brauche (zumindest in Vergleich der Datenblattwerte 
scheint der TLE4976 da gut abzuschneiden, ausprobieren konnte ich es 
leider noch nicht..)
Danke für den Tipp mit dem internen Komparator. Da ich aber 4 Sensoren 
pro uC benutzen werde, ist das auch nicht optimal.

Oweia, das hatte ich mir einfacher vorgestellt..

von spess53 (Gast)


Lesenswert?

Hi

>Ich habe im Datenblatt (wie oben geschrieben) für V_inputlowmax = 0.2*Vcc 
>gefunden.

In welchem Datenblatt?

MfG Spess

von Schimi S. (schimi)


Lesenswert?

@Spess

Hier zum Beispiel auf Seite 242

http://www.atmel.com/dyn/resources/prod_documents/doc2486.pdf

(Du hattest dich aber auch verrechnet, insofern wird das Fenster schon 
eng selbst wenn 0.3*Vcc als V_inputlowmax stimmen sollte und da sind 
Schwankungen beim Strom noch nicht berücksichtigt.

3,0V/14mA = 214 Ohm und nicht 187,5R )



Danke für die Bemühungen!

von spess53 (Gast)


Lesenswert?

Hi

Nun dann ändert sich das zu:

167,5R<RL<250R

MfG Spess

von Schimi S. (schimi)


Lesenswert?

Hi

danke für die Hilfe zu dieser späten Stunde, aber einer von uns steht 
doch auf dem Schlauch (im Zweifel ich):

Ich hatte doch oben meine Rechnung aufgeschrieben:

R_L*I_Low < 0.2 * Vcc -> R_L < 167 Ohm
R_L*I_High > 0.6 * Vcc -> R_L > 214 Ohm

(R_L < 1V / 6 mA = 167 Ohm
 R_L > 3V / 14 mA = 214 Ohm)

Na und das geht offensichtlich nicht..

von Halli (Gast)


Lesenswert?

Ja, ist klar , habe ICH wohl nicht richtig verstanden, nachdem ich das 
Datenblatt nur flüchtig überflogen habe. Würde einen ADC nehmen für die 
Pegelanpassung oder evt. anderen Hall- Sensor (z.B. Micronas, 
Allegro)...

von Schimi S. (schimi)


Angehängte Dateien:

Lesenswert?

Hallo

Ich habe mir die verschiedenen Optionen durchgeschaut und denke, dass 
ein Comparator (extern) sicherlich die beste Lösung ist. Ich würde dazu 
den LM393 wählen und habe mal einen Schaltplan gezeichnet.

Meine Überlegungen waren folgende:
Ich vergleiche 5 Volt mit der Spannung die am Widerstand R1 abfällt:
Falls der Sensor low schaltet fließt I_L (= 6mA), falls er high schaltet 
I_H (=14maA).
Demensprechend gelten 2 Ungleichungen:

R1*I_L < 5V
R1*I_H > 5V

R_L = 590 Ohm sollte also passen. Auf die Eingänge Vcc+ und Vcc- des 
Comparators führe ich 5V und GND, so dass als SIGNAL 5V anliegen falls 
der Sensor schaltet und GND falls nicht..

Wäre nett wenn jemand kurz drüber schauen könnte!

von Schimi S. (schimi)


Angehängte Dateien:

Lesenswert?

Ich glaube ich habe selbst schon einen Fehler entdeckt.. V+ und V- 
sollten wohl vertauscht sein, damit an V- immer 5V liegen und an V+ 
entsprechend ein Wert größer 5V falls der Sensor schaltet und kleiner 5V 
falls nicht.

Wie gesagt, es wäre glaube ich ganz gut wenn nochmal jemand drüber 
schauen könnte..

Dankeschön

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.