Forum: Mikrocontroller und Digitale Elektronik µC <--> Handy Interface (Spannungsteiler?)


von Neuling (Gast)


Angehängte Dateien:

Lesenswert?

Hi Leute,

ich möchte gerne mit einem µC ein Handy mittels AT Befehlen steuern.
Das Problem ist, dass der µC mit 5V versorgt wird und daher auch die 
Pegel 5V TTL sind. Das Handy besitzt Pegel zwischen 0....2,7V  3V  
3,3V (Im Internet hab ich mehrere verschiedene Angaben gefunden).
Ich möchte gerne ohne große Anpassungen das Handy mehr oder weniger 
direkt über einen Spannungsteiler an den µC anschließen.
Dazu hab ich eine kleine Skizze angefertigt - ich hoffe ihr könnt die 
mal kurz anschauen und mir mitteilen ob das passen kann.
Was mich noch ein bisschen beunruhigt sind die Pegel die der µC liefert.
Im Datenblatt hab ich folgende Werte gefunden:

Output low voltage, ports 1, 2, 3, 4   = 0,45V
Output high voltage, ports 1, 2, 3, 4, except P1.6/SCL, P1.7/SDA =2,4V

Auf der Seite www.nobbi.com steht bezüglich den Pegeln folgendes:
"Um auch den Worst-Case-Fall sauber abzudecken, solle der LOW-Pegel auf 
den Logikleitungen nicht über 200mV liegen, HIGH sollte besser als 2V 
sein."

Der High Pegel würde ja größer als 2V sein, aber der Low Pegel dürfte 
mit 0,45V Probleme machen...
Kann man da etwas machen?


Danke!

Grüße
Neuling

von Michael H* (Gast)


Lesenswert?

ja das mit den spannungsteiler funktioniert schon, nur verzieht es dir 
bei hohen datenraten die flanken, wenn du deinen spannungsteiler zu 
hochohmig machst. bei zu niederohmigen widerständen gegen masse forderst 
du den ausgang deines atmels.
klar kanns klappen, aber fail-safe sind da pegelwandler:
http://www.mikrocontroller.net/articles/Standardbauelemente#Logik

grüße, holli

von Neuling (Gast)


Lesenswert?

Hi holli,

ich glaube ich werde wie du es vorgeschlagen hast auf Nummer sicher 
gehen und einen Pegelwandler (74HC4050) einsetzen.
So wie ich das Datenblatt von dem IC verstanden habe, garantiert mir der 
dann auch einen "schönen" Low Pegel (<200mV) den das Handy braucht.
Klingt also ausgezeichnet.

Danke!

Grüße
Neuling

von Elbegucker (Gast)


Lesenswert?

Hi
Du wirst doch höchstwahrscheinlich ein Handy-Datenkabel verwenden oder 
nicht?

Falls du ein USB-Datenkabel verwendest, könntest du einen FTDI (USB to 
RS232) nutzen. Der würde dann die vom Datenkabel (bzw. dessen Bauteil) 
gelieferten Signale wieder in die für die Usart-Schnittstelle benötigten 
Signale umwandeln. Allerdings gibts FTDI nur als SMD.

Falls du ein Datenkabel mit SUB-D nutzt, so wird in diesem ein MAX232 
sein.
In der Regel soll/wird das Datenkabel mit dem PC verbunden. Die serielle 
Schnittstelle des PC arbeitet allerdings mit +-12V. Der Max232 wandelt 
die vom µC gelieferten Signale in die benötigten +-12V um.
Wenn du solch ein Kabel nutzt brauchst du einen weiteren MAX232, um die 
+-12V wieder auf 5V 0V zurückzuwandeln.

Falls du das "nackte" Datenkabel (ohne Platine) nutzen möchtest, 
könntest du einen Max 3232 nehmen (3 to 5V).


Ich selbst habe gerade auch ein Handy mit nem µC verbunden.
Was hast du denn damit vor?

von Neuling (Gast)


Lesenswert?

Hi Elbegucker,

ich hab mir 2 Schaltungen gebaut bzw möchte mir 2 Schaltungen aufbauen:
Einmal eine Schaltung mit dem ich über den PC AT-Befehle an das Handy 
schicken kann und eine zweite Schaltung mit der es möglich ist AT 
Befehle vom µC(ist ein 8051 Derivat) an das Handy zu schicken.
Die erste Schaltung hab ich mir mit einem MAX232 aufgebaut, das hat auch 
funktioniert. Aber jetzt funktioniert das komischerweise nicht mehr. Ich 
nehme an der Fehler ist, dass der MAX232 die Pegelanpassung auf 5V 
vornimmt aber das Handy nur 3V Pegel verträgt. Jetzt möchte ich den 
MAX232 durch einen MAX3232 ersetzen.
Die zweite Schaltung soll dann ein µC <-> Handy Interface werden.
Ich hab nur ein "nacktes" Kabel.
Ich hab mir dazu ein Programm geschrieben das mir einen PDU String 
erzeugt den ich dann an das Handy schicken kann. Im Prinzip möchte ich 
dann mit Hilfe einer SMS Messwerte übertragen. Ich würd ja gerne eine 
andere Art der Datenübertragung wählen, aber SMS scheint das praktischte 
und günstigste zu sein. Oder hast du eine andere Idee?

Grüße
Neuling

von Elbegucker (Gast)


Lesenswert?

Hi

Die erste Schaltung hab ich mir mit einem MAX232 aufgebaut, das hat auch
funktioniert.

Es hat also die Verbindung zum PC geklappt.

Aber jetzt funktioniert das komischerweise nicht mehr. Ich
nehme an der Fehler ist, dass der MAX232 die Pegelanpassung auf 5V
vornimmt aber das Handy nur 3V Pegel verträgt.

Vielleicht nochmal zur Funktionsweise des MAX232:
Dein Handy arbeitet wahrscheinlich mit 0V-3V (frühere haben auch mal mit 
5V gearbeitet), die serielle Schnittstelle des PC aber mit +-12V. Der 
MAX232 wandelt die für den PC benötigte Spannung von 3V auf -12V und von 
0V auf +12V, sodass der PC mit den Signal des Handy etwas anfangen kann.

Eine Verbindung des Handys mit MAX232 an µC wird nicht funktionieren, da 
der Mikrocontroller ja nur mit 0V-5V arbeitet. Also wenn würde es nur 
ohne MAX232 gehen. Allerdings liefert dein Handy nur bis zu 3V, das ist 
dem µC aber zu wenig. (Habe selbst auch versucht das Handy direkt mit 
dem µC zu verbinden, hat nicht geklappt. Gekreuzte Adern habe ich nicht 
vergessen: Handy RX mit µC TX, etc.) Du müsstest also eine Pegelwandlung 
von 3V auf 5V vornehmen. Das könntest du dann mit dem MAX3232.

Was du auch könntest:
Nimm zwei MAX232.
Der eine wandelt dann die 3V auf -12V und der andere wandelt das ganze 
wieder zurück von -12V auf +5V. Das funktioniert. Hatte diesen Aufbau 
auch zeitweise.


Wohin möchtest du denn deine Messwerte übertragen?
Mir ist noch nicht ganz klar wie/was du machen willst.
Ich weiß nicht, ob es dir hilft. Aber Bluethooth unterstütz auch 
AT-Befehle. Habe darin aber keine Erfahrungen.
Nur mal am Rande was für ein Handy nutzt du denn?

von Neuling (Gast)


Lesenswert?

Hallo,

Also das mit dem MAX232 wusste ich nicht, ich dachte immer das der 
Pegelwandler 5V <-> 12V wandelt...
Ich hab mich bei meiner Schaltung größtenteils an die Schaltung von 
Nobbi gehalten. http://nobbi.com/phones.htm
Der verwendet da einmal den MAX232 für 5V Geräte und dann den MAX3232 
für 3V Geräte.

>(Habe selbst auch versucht das Handy direkt mit
>dem µC zu verbinden, hat nicht geklappt. Gekreuzte Adern habe ich nicht
>vergessen: Handy RX mit µC TX, etc.)

Das beruhigt mich, denn ich hätte ebenfalls versucht das Handy 
ausgekreuzt mit dem µC zu verbinden - hat aber auch nicht geklappt.
Ich hab einen Fehler bei meinem Programm vermutet, aber wenns bei dir 
auch nicht funktioniert hat, dann lebt ja die Chance :)

>Du müsstest also eine Pegelwandlung
>von 3V auf 5V vornehmen. Das könntest du dann mit dem MAX3232.

Hab mir jetzt sowohl den MAX3232 als auch den 74HCT4050 bestellt. 
Irgendwie wirds sicherlich klappen.

>Wohin möchtest du denn deine Messwerte übertragen?
>Mir ist noch nicht ganz klar wie/was du machen willst.

Also ich hab einen µC, der über einen Sensor Messwerte sammelt. Diese 
Messwerte möchte ich gerne an eine Datenverarbeitungsstation senden.
Die Messwerterfassung steht dabei einige Kilometer weit entfernt, daher 
fallen die üblichen Verdächtigen(Kabel,Bluetooth,Infrarot...etc) weg.
Eigentlich wollte ich das in einem anderen Thread besprechen, aber das 
passt hier so gut rein: Ich hab mir dann eine kleine Liste mit Vorteilen 
und Nachteilen für die mir bekannten Datenübertragungsarten angelegt.

-) GPRS:

+ geringe Kosten,byteweise Verrechnung
- TCP/IP Stack notwenig --> schwer zu realisieren(außer man hat einen 
AVR und greift auf was fertiges zurück)

-) SMS zur Datenübertragung

+ relativ einfach
- eventuell teuer --> richtiger Tarif
- Handy auf Gegenseite zum Empfang der Daten notwendig
- max 160Zeichen/SMS

-) CSD

- teuer
- max 9,6kb/s
+ Implementierung relativ einfach
- Handy auf Gegenseite notwendig

-) HSCSD

+ schneller als CSD
- teuer
- kaum verfügbar bei Provider(alle haben GPRS)

-) SMS zur Datenübertragung (+ SMS to Email Gateway)

+ nur 1 Handy nötig
- weniger als 160 Zeichen/SMS
+ gleiche Kosten wie normale SMS
- Provider muss diesen Dienst bereitstellen




Für mich klingt im Moment das letztere am besten.

>Aber Bluethooth unterstütz auch
>AT-Befehle. Habe darin aber keine Erfahrungen.

Bluetooth hab ich mir auch angesehen, doch da gibts Probleme mit meinem 
Bluetooth Modul am µC, da sich sowohl das Bluetooth Modul am µC als auch 
das Handy wie Slaves verhalten - keiner will Master spielen.

>Nur mal am Rande was für ein Handy nutzt du denn?

Im Moment probier ichs mit dem Siemens S55.

Übrigens, danke für deine Hilfestellung!

Grüße
Neuling

von Elbegucker (Gast)


Lesenswert?

Denke auch, dass die Möglichkeiten nicht sehr groß sind.
Es sei denn du speicherst die Messdaten auf einem EEPROM und möchtest 
dann jede Woche oder so von deiner Messwerterfassung zur 
Datenverarbeitungsstation laufen, um dann die Daten zu übertragen ;-)

Was es allerdings noch gibt:
Du kannst dein Handy auf verschiedene Modi umstellen
1.) voice call
2.) data call
3.) fax
per AT-Befehl. Vielleicht ist das was für dich.

Die Schaltungen bei Nobbi werden wohl stimmen, wenn deine Kommunikation 
zum PC klappt. Die verwendeten Kondensatoren für den MAX232 und 3232 
hängen vom genauen TYP ab. Da musst du ist Datenblatt schauen. Die Werte 
können unterschiedlich große sein z.B. 1u oder 4,7u je nach Typ. 
Hauptsache ist nur, dass die Kondensatoren groß genug sind. Sie werden 
zum Aufladen für die +-12V benötigt.

Wofür du den 74HCT4050 nutzt weiß ich nicht.
Der im Schaltplan verwendete 78(L)05 dient nur zur Spannungsregelung.
An den Eingang wird eine Spannung über 6/7V angelegt (bis zu 35V oder so 
möglich) und am Ausgang kommen 5V raus. Damit wird der MAX betrieben.
Du kannst auch deine 5V vom Controller nehmen.


Hier gibt es AT-Instruction Sets für (Sony Ericsson)
http://developer.sonyericsson.com/getDocument.do?docId=65059

Ich habe auch noch eins fürs Siemens S25. Ich kann es noch uploaden, 
wenn du willst.
Die unterstützten Befehle kannst du auch mit AT* abrufen.

Sonst kann ich noch http://pinouts.ru/ (auf englisch nicht russisch) 
empfehlen.

See you

von Neuling (Gast)


Lesenswert?

Hmm, das ist echt komisch.
Vor einigen Tagen konnte ich mit meiner Schaltung noch eine 
Kommunikation Handy <--> PC herstellen, doch mittlerweile klappt es 
nicht mehr(habs schon mit 2 verschiedenen Siemens Handys versucht), 
obwohl ich eigentlich nichts geändert habe.
Jedes Mal wenn ich das Handy mit meiner Schaltung verbinde und versuche 
etwas zu senden, dann dreht sich das Handy ab(Akku voll). Liegt da ein 
Kurzschluss vor?
Kann die Kommunikation dadurch nicht zustande kommen, dass ich statt 
einem MAX3232 einen MAX232 einsetze der größere Pegel erzeugt?

verzweifelter
Neuling

von Elbegucker (Gast)


Lesenswert?

Hi

>Kann die Kommunikation dadurch nicht zustande kommen, dass ich statt
>einem MAX3232 einen MAX232 einsetze der größere Pegel erzeugt?

Also nochmal:
Der MAX3232 wird zur Verbindung zwischen Handy und Mikrocontroller 
genutzt. Sollst du dein Handy über einen MAX3232 an den PC verbunden 
haben, wird das nicht funktionieren. Der MAX 3232 erzeugt keine +-12V 
für den PC.

Wenn du dein Handy mit dem PC verbinden willst, muß du den anderen 
Baustein also den MAX232 nutzen.

Kurzfassung: MAX3232 Handy - Mikrocontroller
             MAX232  Handy - PC   oder auch Mikrocontroller - PC

Was deine Verbindungen angeht, kann ich da nur mutmaßen. Wenn bei zwei 
Handys das selbe passiert wird es wohl an deiner Verkabelung liegen.
Ich würde einfach die Verbindungen, welche Uart und MAX betreffen 
rausrupfen und dann dies nochmal von vorne verkabeln.
Wo du die TXD und RXD Pins am Handy findest kannst du unter 
www.pinouts.ru nachschauen. Wie du dein Handy RXD und TXD kannst du ja 
unter www.nobbi.com oder auch hier 
http://www.mikrocontroller.net/articles/AVR-Tutorial:_UART nachschauen

>Jedes Mal wenn ich das Handy mit meiner Schaltung verbinde und versuche
>etwas zu senden, dann dreht sich das Handy ab(Akku voll). Liegt da ein
>Kurzschluss vor?

Achso jetzt versteh ich, was du mit Handy abdrehen meist: Es schaltet 
sich aus.
Ja das mit dem Kurzschluß kann sein. Ich hatte sowas bei meinem 
fliegenden Aufbau auch. Nun weiss ich nur nicht mehr genau woran es lag, 
da ich nicht nur die TXD und RXD Leitung verwendet habe. Aber schau mal 
nach, ob sich die RXD und TXD Leitung berühren.


Des weiteren: Als Terminalprogramm empfehle ich dir HTERM anstatt 
Hyperterminal. Dort musst du nur deine Baudrate angeben und noch bei
send on enter: CR-LF einstellen. Man kann dann sehr schön sehen, was 
vom Handy zurückgeschickt wird. Vor allem was \n oder \r angeht.

von Elektrolyt (Gast)


Lesenswert?

hi, vielleicht kannst du uns noch sagen, was für ein handy das ist?
Handy mit PC verbinden macht man üblicherweise mit einem Datenkabel der 
einen max232 enthält, vorausgesetzt serielle verbindung. Wenn das ein 
handy mit USB ist, dann siehts wieder ganz anders aus, aber ist in 
deinem falle ja wohl nicht. Warum das jetzt nicht mehr funktioniert, 
kann an den uart einstellungen liegen oder wenn du zwischendurch mal 
dran gebastelt hast und du findest den fehler nicht, neuaufbauen...

Ansonsten kann ich dir aus erfahrung sagen, dass es mit der oben 
angegebenen schaltung bei einer seriellen verbindung zwischen controller 
und handy (Handyseitig 3.3V und controllerseitig 5V) funktioniert. Ich 
hatte allerdings probleme mit hyperterminal. Handy mit datenkabel und 
at-befehle klappt bei hyperterminal, aber das handy mit dem controller, 
da wollte hyperterminal mich einfach nicht mitlauschen lassen, was mit 
dem Hterm allerdings gut klappt.
bei den zdioden kannste ein wenig probieren, nimm so 2.7V-3.3V. Extout 
sind 5V. Die Widerstände musst du halt noch sinnvoll für deine 
gegebenheiten dimensionieren und die verbindung steht dann...
kannst uns ja auf dem laufenden halten....

MFG Elektrolyt

von Elektrolyt (Gast)


Angehängte Dateien:

Lesenswert?

die schaltung...

von Elektrolyt (Gast)


Lesenswert?

wobei du die D2 und R2 auch weglassen kannst und eventuell von der basis 
von T1 noch ein R gegen masse...

mfg Elko

von Bastler (Gast)


Lesenswert?

Ich habe da eine Frage.

Läuft der uC denn nicht auch mit 3,3V?
Wenn nicht, gibt es sicher einen Low-Voltage Typ des Prozessors den du 
verwendest.
Denn so erspart man sich die Pegelwandler und kann den uC direkt 
anhängen.
(Ich hänge in solchen Fällen noch einen 10 Ohm Widerstand zur 
Strombegrenzung in Serie und dass war's.)

von Neuling (Gast)


Lesenswert?

Erstmal danke für die zahlreichen Antworten.

Bevor ich mich weiter auf die Ansteuerung mit dem Mikrocontroller 
konzentriere möchte ich zuerst die Kommunikation mit dem PC - Handy 
wiederherstellen.
Was ich immer noch nicht kapiere(vielleicht bin ich wirklich zu blöd) 
ist der MAX232 und dessen Funktionsweise in meiner Schaltung (Handy 
<-->PC).
Ich habe diese Schaltung aufgebaut: http://nobbi.com/images/splan_5v.png
Ich war bis jetzt immer der Meinung, dass der MAX232 ein Pegelwandler 
ist der die +-12V von der RS232 auf TTL kompatible (0-5V) Pegel bringt.
Dies würde sich auch mit meiner Spannungsmessunge decken, die ich 
zwischen GND und RxD des Handys vorgenommen hab --> 4,6V.
Doch laut diverser Informationen dürfen die Pegel beim Handy nur 
zwischen 0...3,3V liegen. Und ich habe die Befürchtung, dass ich durch 
den Einsatz des MAX232 und des zu großen Spannungspegels etwas am Handy 
zerstöre.

Ich weiß nicht ob ich falsch denke oder einfach zu dumm bin, aber für 
mich macht der MAX232 (im Moment) keinen Sinn. Ich hoffe mir kann jemand 
helfen


ps: Ich besitze das Siemens S55

Grüße
Neuling

von Elbegucker (Gast)


Lesenswert?

Hi

>Dies würde sich auch mit meiner Spannungsmessunge decken, die ich
>zwischen GND und RxD des Handys vorgenommen hab --> 4,6V.
>Doch laut diverser Informationen dürfen die Pegel beim Handy nur
>zwischen 0...3,3V liegen. Und ich habe die Befürchtung, dass ich durch
>den Einsatz des MAX232 und des zu großen Spannungspegels etwas am Handy
>zerstöre.

Okay das mit den 3V war vielleicht nicht ganz korrekt.
Neuere Handys (soweit sie nicht schon usb besitzen) arbeiten mit 
3V-Pegel, also CMOS Technologie. Ältere (dazu gehört dann auch dein 
Handy) haben noch mit TTL-Logik (5V) gearbeitet.
CMOS und TTL haben unterschiedliche High / Low Pegel, sodass man die 
unterschiedlichen Bausteine nicht einfach so verbinden kann.
http://www.elektronik-kompendium.de/sites/dig/0205171.htm

Die von dir gemessene Spannung wird korrekt sein. Ich war voher davon 
ausgegangen, dass dein Handy mit CMOS arbeitet, daher die 3V.
Eine Befürchtung, dass du  etwas zerstört hast musst du glaube ich nicht 
haben. Den MAX232 wirst du aber trotzdem brauchen.

Ich habe mal eben nachgeschaut wie du das Handy über Max232 an PC 
verbindest.

MAX232:
Pin7: PC_RX
Pin8: PC_TX
Pin9: Handy_RX     (Pin 4 beim Handy)
Pin10: Handy_TX    (Pin 3 beim Handy)

Da dein Handy nun mit TTL Logik arbeitet, bin ich mir ziemlich sicher, 
dass du dein Handy ohne Baustein (MAX3232) mit dem Mikrocontroller 
verbinden kannst.

von Neuling (Gast)


Lesenswert?

Hi,

ich glaub ich habe den Fehler gefunden - eine Leitung war 
kurzgeschlossen.
Somit funktioniert die Verbindung mit dem PC wieder so eingermaßen. 
Danke!

Doch leider steht mir jetzt das nächste Problem(mal abgesehen von den 
Pegeln) ins Haus und zwar wie ich das mache mit dem Uart.
Der µC hat nur einen Uart, über den er auch programmiert wird. Den 
Mikrocontroller kann ich nicht tauschen, es sei denn ich finde etwas 
pinkompatibles(halte ich für ausgeschlossen). Jetzt bleibt die Frage wie 
ich das realisieren soll, ich hab hier verschiedene Ansätze gefunden:

-) Rx,Tx multiplexen
-) Uart Baustein
-) Software Uart

Der Grund warum ich gerne 2 Uarts hätte:

Rein theoretisch könnte ich ja auch nur mit einer Uart Schnittstelle 
auskommen indem ich zuerst den µC mit dem PC programmiere und dann das 
Handy anschließe und mit einem Taster den PDU String sende. Nur sehe ich 
dann nirgends ob der String tatsächlich angekommen ist bzw was das Handy 
zurückgeschrieben hat.
Ich hoffe ihr versteht.

Ist hier jemand schon mal auf so ein Problem gestoßen und hat eine 
einfache Lösung gefunden?

Gruß
Neuling

von Neuling (Gast)


Lesenswert?

@Bastler: Der µC hat eine Betriebsspannung von 5V.

von Elbegucker (Gast)


Lesenswert?

Hi
kann dir nur so viel sagen:
Wenn du in C programmierst wirst du bestimmt etwas zum Thema 
Software-Uart finden. Ich selbst programmiere den µC über ISP und habe 
somit die UArt Schnittstelle frei. Man kann den Controller aber auch 
über andere Schnittstellen wie JTAG programmieren.
Desweiteren gibt es µC mit mehreren uart-schnittstellen (z.B. ATMega)

von Neuling (Gast)


Lesenswert?

Eine Möglichkeit die mir noch eingefallen ist, wäre ein RS232 Sniffer 
der mir die Daten auffängt.
Puuh,soviele Möglichkeiten...

µC mit mehreren Uarts kommen leider nicht in Frage,da die alle nicht 
pinkompatibel zum 8051 sind.

von Neuling (Gast)


Lesenswert?

Habs jetzt hinbekommen - ich kann mit dem µC eine SMS verschicken :)

Die Lösung ist die, die Elbegucker vorgeschlagen hat:

GND(µC) ---- GND(Handy)
Tx(µC) ------ Rx(Handy)
Rx(µC) ------ Tx(Handy)

Habs ohne Pegelwandler oder Spannungsteiler angeschlossen und es 
funktioniert.
Ich werde das die nächsten Tage noch ausführlicher testen wie stabil das 
ist, scheint aber zu klappen!

Danke an alle!

Gruß
Neuling

von Elektrolyt (Gast)


Lesenswert?

top, hast du vielleich lust deine SMS-Routine hier zu uppen? wenn du den 
myarv-usb-programmer besitzt, kannst du die verbindung mit nur einer 
uart am pc mitverfolgen...
gruß Elko

von Avr N. (avrnix) Benutzerseite


Lesenswert?


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.