Forum: Mikrocontroller und Digitale Elektronik TLE4998 - 5V/10V Schnittstelle über 7810?


von User N. (panzerkeks) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich möchte meinen Infineon TLE4998 Hallsensor über sein TwoWireInterface 
mit meinem ATMega8 auslesen.
SDA ist Low=0V / High=5V - aber SCL liegt an VDD des Sensors und wird 
mit Low=5V / High=10V betrieben.

Mein Lösungsansatz war, einen 7810 zu verwenden, dessen Eingang mit den 
praktischerweise vorhandenen 24V, Ausgang mit der SCL des Sensors und 
Masse mit der SCL des µCs (0V/5V natürlich) zu verbinden.

Murphys Law hat seine Gültigkeit bewiesen und es funktioniert erstmal 
nicht.

Meine Frage ist jetzt: Liegt das an meiner Schaltung, oder an meiner 
Programmierung?

Im Anhang das Programming-Guide des Sensors. Auf Seite 12 stehen Infos 
zu Spannung und Timing.

Gruß,
pk

von User N. (panzerkeks) Benutzerseite


Lesenswert?

Ups, ich meinte nicht 7810 sondern 7805!

von User N. (panzerkeks) Benutzerseite


Lesenswert?

Hat keiner eine Idee? kann man das so machen?

von Alex (Gast)


Lesenswert?

Hi,
Du könntest einen 7805 nehmen und den GND Pin über eine 5,1V Zener
Diode an MCU Masse legen, damit ziehst Du Dir den 7805 Ausgang ebenfalls
nach oben. Parallel zu der Zenerdiode CE eines NPN Transistors, die 
Basis über Vorwiderstand an MCU Output.
"L" --> 10V an Vdd
"H" --> 5V an Vdd

Mit dem Kap am 7805 Ausgnag stellst Du Dir die Flanke ein, wenn nötig 
mit niedrigem Vorwiderstand.

Grüße,

Alex

von User N. (panzerkeks) Benutzerseite


Lesenswert?

Danke für die Antwort :)

> "L" --> 10V an Vdd
> "H" --> 5V an Vdd
Der Sensor möchte aber 10V für High und 5V für Low.

> Mit dem Kap am 7805 Ausgnag stellst Du Dir die Flanke ein, wenn nötig
> mit niedrigem Vorwiderstand.
Aha! Vielleicht sind meine Flanken gar nicht steil genug. Habe einen 
10µF C hinter dem 7805 und keinen R...

lg pk

von holger (Gast)


Lesenswert?

>Aha! Vielleicht sind meine Flanken gar nicht steil genug. Habe einen
>10µF C hinter dem 7805 und keinen R...

Nimm einen 7805 und einen 7810.
5V und 10V schaltest du dann jeweils per PNP Transe drauf.

von User N. (panzerkeks) Benutzerseite


Lesenswert?

Hmm aber dann brauche ich ja 2 Pins am µC?

Und die Version die ich im 1. Post beschrieben habe funktioniert nicht?
(SCL des µCs an Masse des 7805, Out des 7805 an SCL des Sensors)

von holger (Gast)


Lesenswert?

>Hmm aber dann brauche ich ja 2 Pins am µC?

Mit ein bißchen nachdenken und zusätzlichen Transen
geht das auch mit einem Pin.

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Spannungsteiler und geschalteter OpAmp bzw. Multiplexer.
Oder ein LM317 dessen Spannungsteiler geschaltet wird. Oder oder.

Wie sieht denn die Vorgabe vom Hersteller aus? Der muß sich ja auch an 
irgendwas orientiert haben und zumindest eine Applikation mit einem 
Controller kennen. Mal fragen.


Gruß -
Abdul

von itsmee (Gast)


Lesenswert?

Wenn man Daten aus dem Teil auslesen will (also als Sensor verwenden 
möchte), einfach den Datenpin an eine Capcom-Unit (mit Pullup versehen) 
angängen. Thats all! Bestenfalls noch ein paar Schutzelemente, nur zum 
Basteln reichen aber 100nF auf Vdd und 1nF + 2k2 Pullup am Datenpin.

Der P-Typ hat einen Standard-PWM-Ausgang und liefert Magnetfeld, der 
S-Typ hat ein digitales SENT Interface (SAE J271, der Standard wird in 
modernen Autos statt den guten alten Analogsensoren verwendet) und 
liefert Magentfeld + Temperatur.

Applikationsschaltung und wie die Daten zu interpretieren sind steht in 
der Produktspec.

Das o.g. Interface ist nur das Programmier-Interface(!) da wirst kaum 
eine "offizielle" Applikationsschaltung der Ansteuerung finden. Ist 
nicht für den Normalbetrieb, sondern nur für EOL-Programming 
(end-of-line) gedacht (und Infineon liefert Tools+Support für 
"Professionals" dazu).

Es gibt Programmer+Software z.B. von Hitex zu kaufen (kriegt man glaube 
ich auch auch bei Farnell, ...), die macht dann auch den TC-Abgleich des 
Sensors u.s.w.  By the way, den 7805 so zu verschalten und den Takt 
darüberzulassen wird nicht gut gehen. Die Pegel müssen sauber und ohne 
Über/Unterschwinger erzeugt werden. Der "richtige" Programmer verwendet 
da DACs mit Leistungs-Opams und kann damit 0...25V oder so beliebig 
erzeugen (ist ein Universalprogrammer für diverse Sensoren von denen).

Klar, die Lösung ist nichts für den kleinen Geldbeutel - weil nicht für 
Bastler sondern für Laboreinsatz gedacht (wird auch wie ein Messgerät 
kalibriert ausgeliefert)...

Alternative:

Statt dem "echten" Dac kann man eine R-Leiter mit OPV verwenden (einfach 
mal google anwerfen oder hier

http://www.mikrocontroller.net/articles/Operationsverst%C3%A4rker-Grundschaltungen#Der_Addierer_.28Summierverst.C3.A4rker.29

beginnen).

Mehr als 1 Pin pro Sensoreingang wird zum "ordentlichen" Programmieren 
aber immer nötig sein, da man folgendes schalten muss: Vdd = 0/5/10V, 
Vout = 0/5/19.3V (die 19.3V müssen zudem recht genau sein).

von itsmee (Gast)



Lesenswert?

Ein Dokument, welches 2 Anwendungen zeigt:
- Positionssensorik
- Stromsensorik

Beide verwenden "1-Draht" Kommunikation, also nur 1 Datenpin am µC 
nötig. Durch Open-Drain kann man den Sensor auch problemlos auf einem 
3.3V oder 5V uC betreiben (einfach den Pullup gegen die uC-Versorgung), 
während der Sensor z.B. an einem Akku oder Netzteil direkt (bis 16V ist 
erlaubt) hängt - im Auto könnte das die Autobatterie sein. Mit dem neuen 
SPC Typ (ein Addon zu SENT) kann man auch bidirektional dem  Sensor den 
Messbereich einstellen (wichtig bei Stromsensoren, damit man kleinere 
Ströme genauer messen kann).

Auf der Infineon-Seite findet man noch mehr...
Die Specs stelle ich nicht hier her - kann sich jeder selbst holen (die 
sind auch deutlich größer) :-)

von User N. (panzerkeks) Benutzerseite


Lesenswert?

hallo zusammen

ich war eine woche in italien, tut mir leid.

also ich bräuchte das programmier-interface, weil ich darüber den wert 
der hallsonde nochmal um 4 bitsgenauer kriege (16Bit TWI statt 12Bit 
PWM) und zusätzlich noch die Sensortemperatur auslesen kann. Außerdem 
muss ich den Messbereich erstmal einstellen können, was sich aber auch 
"temporär", ohne speicherschreiben, machen lässt. (ich glaube die 19,3V 
waren zum Speicherbeschreiben?)

Das mit der DAC Thematik werde ich mir nochmal genauer ansehen.

lg pk

von Alex (Gast)


Lesenswert?

Hallo PK,

Du hattest geschrieben:

> "L" --> 10V an Vdd
> "H" --> 5V an Vdd
Der Sensor möchte aber 10V für High und 5V für Low.

--> dann invertier doch das Bit bevor Du es ausgibst :))
Also bei mir hat das Prinzip funktioniert, allerdings war das der 
TLE4990.

Grüße,

Alex

von User N. (panzerkeks) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hi

Sorry, ich muss das jetzt doch nochmal aufwärmen.
Ich hab die Platine auf doppelt so viel Platz neu aufgebaut und
festgestellt, dass es dann plötzlich funktioniert hat, genau so, wie ich
es mir vorgestellt hatte - mit dem 7805 zwischen SCL(µC) und
SCL(Sensor).

Jetzt habe ich allerdings folgendes Problem: Ich muss dem Sensor einen
Power-On-Reset geben können. D.h. einfach Vdd auf 0V ziehen.
Ich dachte mir, kein Problem, hängst du halt einen NPN in die Leitung
als Schalter rein.
Hat nicht funktioniert. Dann hab ich mal einen PullDown Widerstand gegen
0V zwischen  Transistor und Sensor gelegt. Geht auch nicht. Und ich hab
einfach keine Ahnung warum...

Funktioniert das so, wie ich es im Anhang gezeichnet habe, nicht? warum
nicht?

lg, pk

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.