PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 1,8V UART Pegel an AVR



Christoph2
30.12.2011, 15:20
Hallo,

ich möchte ein GPS Modul (Sirf IV) per UART an einen ATmega328 anschließen, der die empfangenen Daten dann auf eine SD-Karte schreibt (GPS Logger).
Kommunikation findet nur vom GPS-Modul zum AVR statt, umgekehrt nicht (der RX Pin des GPS und der TX Pin des AVR werden nicht angeschlossen).

Das GPS Modul läuft aber mit 1,8V, und gibt daher an der UART auch nur einen 1,8V Pegel aus. Der mega328, die SD-Karte und alles andere läuft mit 3,3V.
Da der GPS Logger sehr klein werden soll, würde ich gerne ohne Levelshifter auskommen.

Ich habe im Datenblatt nachgesehen, ab welchem Pegel der mega328 eine "1" am UART Eingang erkennt, aber habe nichts gefunden. Mir ist auch kein gescheiter Suchbegriff eingefallen...

Sind die Atmel uCs TTL oder CMOS Bauteile?
Ich habe nämlich folgende Tabellen gefunden: http://www.elektronik-kompendium.de/sites/dig/0205171.htm
Laut denen erkennt er 1,8V noch nicht als HIGH. Aber es gibt ja auch noch andere Technologien als TTL und CMOS oder?

Weiß das vielleicht jemand?

lg Christoph


EDIT:
Hier ein Link zum Datenblatt:
http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CDkQFjAB&url=http%3A%2F%2Fatmel.com%2Fdyn%2Fresources%2Fpro d_documents%2F8271S.pdf&ei=tNT9TqLTLIX04QSO79CNCA&usg=AFQjCNHfD4CdNHp1TBNMV0sRIyb8TICO6Q

Besserwessi
30.12.2011, 16:29
Die Daten stehen schon im Datenblatt, gleich am Anfang von Elektrical characteristic. Da steht für V_IH als Mindestwert 0,6 * Vcc. Das wären 2 V, also etwas zu viel. Wenn man die Spannung für den µC auf etwa 2,9 V reduziert, könnte es gerade noch gehen. Die Atmels sind CMOS, aber halt nicht mit fest 5 V sondern relativ variabel.

Es gäbe da ein paar Möglichkeiten:
1) Man nutzt den analogen Komperator als Eingang, mit der Bandgapspannug (1,1 V) als Schaltschwelle. Allerdings muss man die UART dann in Software machen.
2) Man nutzt einen Pegelwandler. Die kleinste Version wäre vermutlich einfach eine Diode oder ein Widerstand in Reihe, und dann den internen Pullup aktivieren. Das ist aber relativ hochohmig, und entsprechend eher langsam. Für eine UART mit 9600 Baud könnte es aber reichen, wenn die Leitung nicht so lang ist und man wenig Störungen hat.

3) Man versucht es, und hofft das man einen Chip bekommt der etwas früher anspricht. Mit etwas Glück geht es mit dem Widerstand von Vorschlag oben, aber auch noch ohne den Pullup - das spart einem den Strom vom Pullup.

Bumbum
30.12.2011, 16:46
Ich habe diese Probleme in einem GPS-Tracking-System mit 2 NPN (z.B. BC847) Transistoren und 3 Widerstände (in 0805) gelöst. Das funktioniert 100% ig und ist sicher. In SMD ist der Platzbedarf auch minimal. Was hälst du davon?

Viele Grüße
Andreas

Bumbum
30.12.2011, 16:47
...wenn ich nochmal überlege sind es sogar nur 2 Widerstände...

Christoph2
30.12.2011, 17:36
Hi,

danke für die schnellen Antworten!

In der zwischenzeit habe ich mir ein Pspice Tutorial durchgelesen und mal versucht so einen Pegelwandler zu simulieren, falls ich einen brauche.

Die Variante mit zwei npn Transistoren ist klar, die funktioniert sicher. Einer passt den Pegel an, aber invertiert unerwünschterweise, der andere negiert dann nochmal.
Aber sollte es nicht auch mit einem PNP Transistor gehen?

Also ich habs simuliert, und laut pspice funktioniert es auch (er wandelt 1,8V auf ca. 2,5V, der Kollektorstrom ist dabei 260uA), nur weiß ich nicht ob es dann in der Praxis auch funktioniert...


Ich habe mal Screenshots gemacht:

21001
21002
21003


lg Christoph

Besserwessi
30.12.2011, 20:45
Man kann das so machen mit dem PNP Transistor. Den Widerstand an der Basis kann man auch noch weglassen, wenn sichergestellt ist, das der AVR immer Spannung hat, wenn das GPS welche hat.

Man kann sogar den Transistor durch eine Diode (so wie Basis.Emitter) ersetzen und wenn man mag die 10 K am Ausgang durch den µC internen Pullup Widerstand (ca. 50 K) (sofern der sich bei Rx als Eingang aktivieren läßt).

In beiden Fällen kann ein kleiner Strom im µA Bereich (mit der Diode mehr als mit dem Transistor) von der 3,3 V Seite zur 1,8 V Seite fließen. Wenn man sicher sein will, dass die 1,8 V Seite nie mehr als 1,8 V sieht müsste man noch einen Widerstand vom Eingang nach GND dazu nehmen.

Christoph2
02.01.2012, 16:34
Danke, dann werde ich das so probieren!


In beiden Fällen kann ein kleiner Strom im µA Bereich (mit der Diode mehr als mit dem Transistor) von der 3,3 V Seite zur 1,8 V Seite fließen. Wenn man sicher sein will, dass die 1,8 V Seite nie mehr als 1,8 V sieht müsste man noch einen Widerstand vom Eingang nach GND dazu nehmen.

Damit der Basisstrom des Transistors über den Widerstand nach GND abfließen kann statt über das GPS Modul meinst du, oder?
Ich habe mal 10k genommen, sollte passen oder?


21043


lg
Christoph

Besserwessi
02.01.2012, 18:18
Genau, es geht um den kleine Basisstrom. In Diesem Beispiel wäre das etwa 0,8 V / 10 K / hfe , also eher weniger als 1 µA. Dafür würde dann auch schon ein Widerstand von 2 M ausreichen, denn man sich aber ggf. auch sparen kann, denn so ein bisschen Strom sollte das GPS Modul vertragen.