PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Handy und RS232



Xwill
10.02.2009, 18:00
Probiere schon seit kurzer Zeit eine SMS mit einem S45 Handy aufzubauen und scheitere schon beim ersten Schritt, der Kommunikation.
Wenn ich "AT" schicke sollte doch das Handy ein "OK" zurückmelden!
Das Handy antwortet mit "AT". Wenn ich das ganze über ein Hyperterminal probiere,
meldet das Handy "OK". Auch andere AT-Befehle funktionieren.

Was mache ich falsch an meiner Kommunikation?


'SMS Aufbauen, mit Siemens S45i,9600

$regfile = "m16def.dat"
$crystal = 8000000
$hwstack = 32
$swstack = 10
$framesize = 40

$baud = 9600

Config Lcd = 16 * 2
'Ddrd = &HFF
Config Lcdpin = Pin , Db4 = Portb.5 , Db5 = Portb.4 , Db6 = Portb.3 , Db7 = Portb.2 , E = Portb.6 , Rs = Portb.7
Config Lcdbus = 4
Dim S As String * 2

Cls
Wait 1
Config Serialin = Buffered , Size = 4
Enable Serial
Enable Interrupts
Echo Off

Print "AT"

Locate 1 , 1
Lcd "Sende: AT"
Wait 2

If Ischarwaiting() = 1 Then

Input S
Wait 2


Locate 2 , 1

Lcd "Antwort: " ; S ;
Wait 2

Else
Locate 1 , 10
Lcd "Error"
End If
End

ThomasW
10.02.2009, 18:12
Hallo Xwill

Ich kenne leider deinen Aufbau nicht , aber ich würde erstmal nur das AT zum Handy mit dem Atmel senden und am Terminal den Empfang vom Handy überwachen um zu sehen was nicht funktioniert.

Mfg

Xwill
10.02.2009, 18:47
Hallo Thomas,
Am Atmel ist ein Max232 der übers Datenkabel (mit Lumbergstecker) am Handy hängt.
Das Datenkabel mit Handy funktioniert, dieses tut ja auch mit dem Hyperterminal.
Der Atmel kann auch mit dem Hypert. kommunizieren (dort kommt z.B. das AT an, und ich kann OK zurückschicken, was dann am LCD angezeigt wird).

ThomasW
10.02.2009, 19:07
Hallo

wie geschrieben step by step um rauszufinden ob das Handy den gesendeten AT befehl liest und dann Ok zurück sendet.

Es könnte am Timing liegen zb: AT mit der Tastatur ist langsamer
oder Print sendet ( glaube ich 10 und dann 13 ) versuch mal
Print "AT" + CHR(13) ;

Thomas

ThomasW
10.02.2009, 19:12
Xwill

sende mir mal deine e-Mailadresse per PN dann gibts ein anderes
Termialprogramm damit kannst du mehr sehen.

Mir ist noch folgendes aufgefallen

$crystal = 8000000

hast du einen Quarz ? oder den Internen Oszilator
bei 8 Mhz hast du sowieso einen % Fehler in Übertragung.

Besser wäre ein 11059200 Mhz Quarz = 0 % Fehler

Bei internem Oszilator Osccal angleichen

Mfg

jojo3
11.02.2009, 06:20
Bist du dir mit der Baud-Rate 9600 sicher?
Mein C35 möchte da 19200 Baud!

Xwill
11.02.2009, 10:20
Hallo Thomas
Ich nehme einen ext Quarz mit 8MHz, aber vielleicht hast du recht einen speziellen zu nehmen, habe das in anderen Code`s auch schon gesehen.

Hallo jojo3
Das S45 geht mit 9600 und 19200, hat wahrscheinlich autom. Bauderkennung.
Ich habe auch ein C35 das geht nur mit 19200Baud.

jojo3
11.02.2009, 19:08
also meines funktioniert mit dem internen 8MHz Oszillator einwandfrei.
Mir ist allerdings noch eingefallen, das ich das RTS-Signal beschalten mussste, es ging zwar mit Hyperterminal ohne, aber das Handy "wollte" das.

Xwill
24.02.2009, 07:56
Also ich wollte mich nochmal melden und habe mit dem guten
Teminalprogramm herausgefunden, daß das Handy ein Echo
zurückschickt. Man kan das Handy anweisen mit ATE0 kein Echo
oder ATE1 mit Echo. Daher die Verwirrung mit dem zu erwartenden
"OK" vom Handy. Im Moment bin ich noch an der Geschichte
mit SMS im PDU-Format aufbauen. Habe schon Code`s gefunden
und melde mich später noch einmal!
Danke an die Mithilfe und dem Teminalprogramm von ThomasW.