aktualisiert
05.08.2010
|
Mit dem Atmega 8 ein Siemens
Handy ansteuern !
|
Ziel soll es hier sein mit dem
Microcontroller Atmega 8 ( von der Firma Atmel) in Verbindung mit einem
Handy eine Telefon Nr. anzurufen !
Da ich leider wenig Literatur oder Infos im Web gefunden habe (in
Verbindung mit der Programmiersprache Bascom) bzw. dass was ich
gefunden habe war größtenteils so voller Fehler ,
das ich
beschlossen habe diese Informationen so wenig wie irgend möglich
zu nutzen und habe selber Experimentiert um das gewünschte Ziel zu
erreichen.
Um das Handy mit dem Atmega zu verbinden gehe ich erst einmal
über den Zwischenschritt das ich erst einmal das Handy direkt vom
PC aus anspreche,
dazu benötige ich ein Original Datenkabel von
Siemens, weil dieses Kabel einen Pegelwandler inne hat.
Der
Pegelwandler ist notwendig weil die Schnittstelle des PC's ( COM oder
auch RS232 genannt) mit einer völlig anderen Spannung arbeitet als
das Handy.
Um diesen Spannungsunterschied anzupassen ist der
Pegelwandler notwendig.
|
Handy vom Rechner aus ansteuern
|
Benutzt wird COM
Port 5 mit einem Adapterkabel von Hama (USB auf Seriell) bei einer
Übertragung von 1200 Baud vom PC nach Atmega
Mit Siemens Handy S45 und auch mit dem Me45 kann das Modem angesprochen
werden. |
Also das Original Datenkabel am COM Port
des PC angeschlossen die andere Seite am Siemens Handy S45, dann
Terminal Programm im PC aufrufen einfacher halber das Interne Terminal
Programm im Programmiertool " Bascom".
Adresse des COMport evtl. ändern dann eine Baudrate von 1200
eingeben Parity=0 und 8 Datenbits und 1 StopBit .
Dann folgenden Befehl ins Terminal Programm eingeben
" AT+CGMI"mit anschließendem "Return"
natürlich ohne Ausführungszeichen.
Darauf antworte das Handy
mit der Antwort "Siemens"
Folgende Befehle kann man auch noch testen:
"ATAT+CGMR" gibt die Software Version aus
" +CGMM" gibt die Modellbezeichnung aus
|
|
"AT+CGSN"
gibt die IMEI aus
"AT+CBC "gibt den Batteriezustand in % aus
Wenn mann erst einmal so weit gekommen ist, hat man schon einmal die
Sicherheit, das der Rechner mit dem Handy kommunizieren kann. Weil die
Antwort"OK" aus dem Handy kommt. Falls
keine Antwort kommt kann man Testweise einmal die Baudrate ändern
auf beispielsweise 2400 oder evtl noch höher. Sollte das auch
keinen Erfolg bringen sollte man sich vergewissern ob man die richtige
COM Schnittstelle ausgewählt hat, auch da kann man einfach mal
spielen und andere Schnittstellen testen. Mit der Eingabe von
"ATE0" wird das Echo ausgeschaltet, und die Tastatureingabe wird dann
nicht mehr angezeigt. Mit
"ATE1" wird das Echo wieder eingeschaltet und die eingegebenen Ziffern
werden wieder sichtbar.
|
|
Mit der Eingabe
von "AT+CMGF=?" wird eine Null zurück gegeben die Bedeutung
weiß ich noch nicht ? |
Handy vom Mikrokontroller aus
ansprechen
|
Mit folgender Schaltung versuche ich nun das
Handy anzusprechen:
Die Schaltung besteht aus:
1. |
Atmega8L |
Der Atmega 8 mit der Zusatzbezeichnung" L"
läuft auch noch mit Spannungen weit unter 5Volt, das ist
nötig damit man später evtl. die Betriebsspannung aus dem
Handy entnehmen kann. |
2. |
Display |
Ein Standard Display mit 2 mal 16 Zeichen steckbar,
benötigt man evtl zur Programmentwicklung. |
3. |
Programmierschnittstelle |
Um den Controller mit Bascom zu programmieren |
4. |
Led Gelb |
Betriebsspannungsanzeige |
5. |
Led Grün |
Empfangsanzeige zeigt an ob der Prozessor Daten vom
Handy erhält |
6. |
Led Rot |
Sendeanzeige zeigt an ob der Prozessor Daten zum Handy
sendet. |
7. |
ISP Schnittstelle |
Um das Programm vom Rechner in den Mikrokontroller zu
übertragen |
|
|
|
Und so sieht die Schaltung aus, an der oberer
Seite erkennen wir eine 16 Polige Sockelleiste auf der kann bei Bedarf
das Display aufgesteckt werden.
Auf der linken Seite befindet sich der
ISP Steckanschluß zum programmieren des Controllers, etwas
darunter dann die Drei Led's ( siehe Tabelle oben).
Weil sich am Handy
kein passender Spannungsabgriff finden ließ hab ich mit etwas
Draht 2 Akkus in Reihe befestigt und habe damit eine
Betriebsspannung
von 2,65 Volt, diese reicht weitgehend , allerdings funktioniert bei
dieser geringen Spannung das evtl. zu verwendete Display nicht.
Links neben der Gelbe Led befindet sich ein Jumper mit dem die
Betriebsspannung abgeschaltet werden kann.
Etwas oberhalb der Akkus auf der rechten Seite befindet sich zwei
Jumper der grüne ist der Öffner Kontakt der rechts daneben
ohne Brücke ist der Schließer
Kontakt um den Anruf mit dem
Handy auszulösen.
Die Betriebsspannung sollte auf jeden Fall unter
5 Volt liegen, meiner erster Versuch mit 5 Volt scheiterte weil die
Pegelanpassung nicht korrekt war,
erst als ich die Betriebsspannung
verringerte bis auf unter 3 Volt konnte eine Verbindung mit dem Handy
aufgebaut werden,
nach weiterer Abnahme der Spannung konnte auch
unter 2 Volt keine Verbindung mehr aufgebaut werden.
Ergo sollte die Spannung zwischen 2 und3 Volt liegen , idealerweise
also 2,5 Volt
|
|
|
|
|
|
Schaltung mit aufgestecktem Display
aus
|
Und so als fertiges Modul
|
|
Handy Schnittstelle
|
Abbildung des Handy
Steckers (Lumberg Stecker) mit den benutzen Anschlüssen
|
|
Pinbelegung am Siemens ME45 und
S45Handy Stecker
|
Pin
|
Beschreibung
|
1 |
Masse |
Wird vom Ladegerät verwendet 5Volt
400mA |
2 |
|
Wird vom Ladegerät verwendet 5Volt 400mA |
3 |
|
Wird vom Ladegerät verwendet 5Volt 400mA |
4 |
|
|
5 |
Datenausgang |
Serieller Datenausgang (Daten gehen aus dem Handy raus)
|
6 |
Dateneingang |
Serieller Dateneingang ( Daten gehen ins Handy rein) |
|
Weil ich nun
gerade einmal dabei war die Pin's am Handy Stecker zu messen, hier noch
einige Spannungsverläufe die allerdings in dem hier vorgestellten
Projekt nicht relevant sind, habe die Spannungen gemessen um
herauszufinden an welchem Pin ich die Spannung für meine
Mikrokontroller Schaltung abgreifen kann, leider musste ich
feststellen, das einige Pin's zwar die benötigte Spannung hatten
diese aber mein Minimaler Belastung ( 0,2 bis 0,3 mA) zusammenbrachen.
Hab noch nicht Zweifelsfrei herausgefunden welche Funktionen sie
haben.Aber dazu komme ich evtl noch bei Späteren Projekten.
Das es nicht möglich war die Betriebsspannung für den
Mikroprozessor aus dem Handy zu entnehmen, bzw die Spannung nicht am
Stecker abgreifbar war,hab ich mich entschlossen auf der Platine zwei
Akkus Mignon (AA) mit einer Kapazität von 2600mA aufzubringen und
hab jetzt die Nötige Spannung für den uC . Eine Messung ergab
das die Akkus eine Spannung von 2,65 Volt abgaben, und der
Mikrocontroller bei dieser Spannung einen Strom von 2,2 bis 2,7mA
aufnahm, das würde theoretisch für eine Laufzeit von
annähernd 36 Tage ergeben |
Pin 2
|
Pin 3
|
Pin 4
|
Pin 5
|
|
|
|
|
500mv/D
Spannung bricht zusammen wenn der uC angeschlossen wird, obwohl der
Controller gerade einmal 2 bis 3 mA zieht. |
500mV/D
Spannung bricht bei einer Stromentnahme von ca 0,2mA ein |
Frequenz 0 ,70 Hz
1V/D
|
500mV/D
|
Datenkabel
|
Das Datenkabel
sollte ein Original von Siemens sein, weil es viele meist billige
Handelsübliche gibt ,die nicht alle die Vorraussetzungen
erfüllen.Im Original Datenkabel von Siemens befindet sich ein MAX
232 in SMD Technik |
|
|
|
|
|
Zeile
|
Programm
|
Beschreibung
|
1. |
$regfile "m8def.dat" |
'Definiert den Atmega als Atmega 8 |
2. |
$baud = 19200 |
' Datenübertragungsrate für RS232 Datenkabel |
3. |
$crystal = 1000000 |
'Taktfrequenz angeben |
4. |
Ddrd = &B00000100 |
' Port D.2 als Ausgang setzen |
5. |
Portd=&B00011000 |
'Pull Up setzen für PinD.3 und D.4 |
6. |
Config Lcd = 16 * 2 |
'definiert das LCD Display in Art und Größe |
7. |
Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.3 ,
Db6 = Portb.2 , Db7 = Portb.1 , Rs = Portc.5 , E = Portb.5 |
' Definition der Display-Anschlüsse |
8. |
DIM inaktiv As Byte |
Variable setzen |
9. |
DIM Anrufzeit As Byte |
Variable setzen |
10. |
Inaktiv=60 |
Vorgabezeit in Variable ablegen |
11. |
Anrufzeit=19 |
Vorgabezeit in Variable ablegen |
12. |
Wait 4 |
'Pause von 4 Sekunden |
13. |
Cls |
'Display löschen |
14. |
Portd.2=0 |
|
15. |
Do |
|
16. |
Portd.2=1 |
|
17. |
if PinD.3=1 ThenWaitms 20 |
|
18. |
if PinD3=1 Then Gosub Alarm |
|
19. |
if PinD.4=0 Then Waitms 20 |
|
20. |
if PinD.4=0 Then Gosub Alarm |
|
21. |
Waitms 300 |
|
22. |
PortD.2=0 |
|
23. |
Loop |
|
24. |
End |
|
25. |
:Alarm |
|
26. |
LCD"ATDP+49XXXXXXXX;" |
Nummer wählen und abnehmen |
27. |
Print"ATDP0XXXXXXXX" |
Anzeige der Nummer auf Display |
28. |
Wait Anrufzeit |
|
29. |
Print "AT+CHUP" |
Hörer wieder auflegen |
30. |
Wait Inaktiv |
|
31 |
Return |
|
|
Programm runterladen hier:
|
Mögliche Probleme
|
Controller wählt die Rufnummer baut aber
keine Verbindung auf ,das gleiche Problem besteht wenn vom
Terminalprogramm. aus die Nr gewählt wird. |
Hinter der zu wählenden Telefon Nr.ist das
Semikolon vergessen worden .z.B. (Print "ATDP+49XXXXXXXX;"]
|
Benötigte Teile:
|
PC oder Laptop |
|
|
Siemens Handy S45
|
|
|
Original Siemen Datenkabel für Handy S45 |
|
|
Atmega8 L |
|
|
Aktualisiert 30.05.2019
|
|
copyright by Ms 2009
|
|
|