www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmega (5V) <-> I2C <-> Sensor (3.3V), wie verbinden?


Autor: i2c (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich möchte einen Sensor mit meinem Atmega verbinden. Dazu stellt der 
Sensor einen I2C-Bus zur Verfügung. Das alles wäre ja gar kein Problem, 
hätte ich eine L-Version des Atmegas, der auch mit 3.3 V auskommt. Habe 
ich aber nicht, deshalb muss ich irgendwie schauen wie ich das nun 
verbinden kann.
Hat jemand eine Idee, natürlich sollte sie möglichst einfach sein (am 
liebsten mit Widerständen...). Wenn ich es mit Spannungsteilern mache, 
dann schätze ich mal, dass ich Probleme bekomme mit der Kommunikation 
vom Sensor zum Atmega? Die SCL-Leitung lässt sich so sicher 
"bearbeiten". Aber ob die Pegel noch stimmen um vom Sensor zu lesen? Hat 
da jemand eine Idee?

Danke für Tipps

Autor: i2c (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, ich bins nochmal. Ich poste hir mal noch den Link zu dem 
Datenblatt des Sensors. Da steht: Supply Voltage: 2.x bis 3.6 V, unter 
absolute maximum ratings steht aber Vdd = 6V. Was meint ihr, kann ich 
ihn also mit 5 V betreiebn, das wäre doch die einfachste Möglichkeit.
Hab ein bisschen schiss, dass er kaputt geht, ist ja nicht der 
billigste...

Datenblatt:
http://www.st.com/stonline/products/literature/ds/...

Autor: Michael Wittmann (miwitt001)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bevor du den Sensor mit 5Volt grillst, versuch doch einfach ob der 
Atmega evtl mit 3,3 volt auskommt.

Ich hab jetzt net genau geschaut, wie der Sensor ausgelesen wird, aber 
ich denke über irgendein digitales Signal...
Der AVR sollte 3,3 Volt schon als High Pegel erkennen (Bsp ATmega8 ab 
0,6Vcc, wären 3 Volt), so dass du den Ausgang vom Sensor direkt an den 
AVR anschließen kannst.
Falls das ganze bidirektional läuft, würde ich in die andere Richtung 
einen Widerstand an den AVR-Pin hängen, danach ne 3,3Volt Z-Diode gegen 
Masse (Polung !!) und dann auf den Sensoreingang. Die Diode "schneidet" 
dann einfach die Spannung über 3,3 Volt ab, der Widerstand is da damit 
der Strom im AVR-Pin nicht zu hoch wird.

mfg

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nimm deinen non-L AVR und betreibe ihn mit 3,3V. Der entstammt der 
gleichen Fertigung, wurde nur nicht bei 3,3V getestet.

Autor: i2c (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, das ist natürlich auch eine Variante.
Falls das Trotzdem Probleme bereitet, merke ich das sofort, oder gibts 
dann sporadische Aussetzer, die man dann nur schwer nachvollziehen kann?

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eher letzteres fürchte ich. Wenn du sicher gehen willst, dann fahr den 
Takt etwas unterhalb der 8MHz-Grenze. Ist aber ziemlich 
unwahrscheinlich. Viel wahrscheinlicher ist der Ärger, wenn du den 
Sensor ausserhalb fährst.

Autor: i2c (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, dann werde ich das mit .3 Volt Spannungsversorgung testen.
Jetzt habe ich aber noch das Problem, dass ich 4 Servo-Signale einlese, 
die bei High-Pegel 5 Volt ausgeben. Muss ich da umbedingt einen 
Spannungsteiler pro kanal nehmen, oder kann ich auch bloss inen 
Widerstand nehmen, der Atmega hat ja glaube ich intern Dioden an Vdd 
bzw. GND, welche zu eiten beginnen, sobald eine Spannung grösser bzw. 
kleiner als Vdd bzw. GND ist. Ertragen diese auch die Ströme, die ein 
I/O verträgt? Ich hätte jetzt einen ca. 1k Widerstand genommen, damit 
wären die Ströme so um ca. 2mA pro Kanal, ist das i.O.?

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Schurtdioden produktiv zu nutzen ist zwar nicht elegant, wird aber 
recht häufig gemacht.

Autor: i2c (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tjs, die Eleganz ist wohl schon mit 3.3 Volt Betriebsspannung für einen 
nicht-L-Typen verloren gegangen ;) Bei Atmel wird sogar eine 
Nulldurchfgangserkennung mit einem I/O über einen Widerstan direkt am 
230V-Netz vorgeschlagen, da ist mein Ding gerade human!!
Was würdest du für einen Wert für die Widerstände vorschlagen?

Autor: E. M a t t h i a s (hias)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich würd das Problem so lösen:
Seite 10
http://www.standardics.nxp.com/support/documents/i...

Hias

Autor: Sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde es auch mit zwei Mosfettransistoren lösen.
Da der Sensor das einzigste Bauteil ist,
das mit den 3,3v laufen soll, würde ich also
die 7 Bauteile einfügen.

2 x Mosfet und 2 x Pullups auf der 3,3V Seite,
Spannungsregler und 2 Kondensatoren.
Bei SMD ist der Platzbedarf ja nicht so hoch....

Gruß Sven

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.