Hallo zusammen, mein Problem besteht darin, dass ich ein Handy an einen Atmel AVR L8535 Microcontroller anschießen möchte. Dazu verwende ich zur Zeit noch das STK200 und BASCOM zur Programmierung. Später soll es dann ein eigenes Board werden. Ich möchte verschiedene SMSen an das Handy schicken und darauf soll der Controller dann reagieren. Hat sich jemand schonmal mit sowas beschäftigt? Wäre klasse wenn ich wüßte wie ich das Datenkabel anschließen muß und was ich in BASCOM einstellen bzw. welche Befehle ich da verwenden soll. Hab mich noch nie mit der seriellen Schnittstelle bzw. UART beschäftigt. Evtl. weiß auch jemand ne gute Seite zum nachschauen. Danke schon mal im voraus.
Gib mal bei der Suche dieses Forums "Handy Siemens" ein, das dürfte einige Ergebnisse liefern.
Danke! Hab da schon echt viel gefunden. Hatte den ganzen Tag damit zu tun. Jedoch hab ich nichts darüber gefunden wie man konkret in Bascom einen AT Befehl ans Handy schickt oder mit dem AVR einen empfängt. Kann mir also jemand sagen was ich für Konfigurationen in den Kopf schreiben soll und vor allem wie liest man vom Handy über UART in den AVR und dann auch noch bitte mit BASCOM.
Hi. mit Bacom kenn ich mich aus. Aber du brauchst doch einfach aus der STDOUT einen Befehlt senden. Bei C geht das mit "printf". Wichtig ist das du die Übertragung auf 9600Baut stellst. An der Rückmeldung hänge ich noch. Habe bisher es noch nicht hinbekommen die Rückmeldung auf dem Display dazustellen. Wenn das senden eines Befehls nicht klappen sollte, schau dir das Handykabel an. Wir haben hier 1-2Wochen nach einem Programmierfehler gesucht. Zu guter letzt war es das Kabel das an bestimmten PINs noch 5V+ Spannung gebraucht hat. Lieferte das Experementierboard nicht. Timo
Danke! Bist du sicher, dass ich 9600Baud einstellen muß? Hab bisher immer 19200 eingestellt. Im HyperTerminal Programm hats so zumindest dann funktioniert. Hab das mit der Spannungsversorgung aus dem Forum auch gelesen. Anscheinend ist im Datenkabel ne Elektronik drin die noch versorgt werden will. Werd ich mal probieren und ne Spannung anlegen. Hab bisher das Datenkabel einfach eins zu eins an das STK200 angeschlossen. Hoffe das ist richtig so. OK, das mit der Standartausgabe leuchtet mir ein, bloß wie stelle ich die STDOUT auf die serielle Schnittstelle das Controllers. Da muß man doch bestimmt irgendwelche Definitionen im Kopf des Programms vornehmen. Der Befehl um etwas auf die STDOUT zu geben heisst in BASCOM vermutlich PRINT('at+c....'). Kann mir das jemand bestätigen. Mogi
Hi. Also probiere es mit 19.xxx baut erst einmal aus. Mein Kumpel mit dem ich das zusammen mache hat sein Siemens irgendwie umgestellt von 9 auf 19... Baut. Standardmäßig ist 9600. Wichtig ist halt nur das du das dieses als Fehlerquelle ausschließt falls es nicht auf anhieb klappt. Also in C ist die Standardausgabe automatisch auf dem Serialport, da musst du nix einstellen. Nach jedem AT Befehl musst du ein "Newline" als Abschluss setzen. Unter C ist das \n\r. P.S. Schau dir mal den Anhang an, vielleicht ist der ja interessant für dich ;-) Grüße, Timo
Riesigen Dank für den Anhang!! Genau sowas hab ich gesucht. Hab nun mal mit dem Oszi gemessen ob am Stecker der ins Handy geht auch was ankommt. Also das tuts. Allerdings hab ich kein Speicheroszi und kann nicht beurteilen ob das sowas wie ein Paket ist. Es ist also vermutlich so, dass hier auch als STDOUT die serielle Schnittstelle angesprochen wird. Glaub aber nicht dass ich "newline" machen muß, weil ja was angekommen ist. Vermute also, dass es ne einstellungssache ist. Muß man evtl. das Handy erst irgendwie aktivieren, dass es serielle Daten empfängt?
schau mal hier: nobbi.com Ich habe das gleiche vor, ich warte nur noch auf mein Datenkabel :-(
Hi, kein Problem. Habe noch ein paar PDFs das sind aber gute 10MB. Für andere Handytypen. Also das newline gibt an, wann der befehl zuende ist. Also nicht ganz unwichtig ;-) Er sendet ja Zeichenweise. Grüße, Timo
Hast recht ich glaub ich muß "newline" machen. Hab das in nem Beispiel gefunden. Mittlerweile hab ich das STK200 per Hyperterm angeschlossen und mein UART vom Controller schickt mir die richtigen Daten zum PC. Jetzt auch noch mit carriage return. Print "atd+491710815;" // wählt ne Nummer Print Chr(13) ; Chr(10); // macht carriage return Soweit so gut. Handy macht aber trotzdem nix. Hab jetzt auch noch ne Spannung von 10V am Pin 4 des Datenkabels angeschlossen. Stand im Forum. Handy macht nixxx. So ein Mist!!!!
10V??? boah... alsooo ist das nicht ein wenig viel? Hau die bloss nicht das Handy kaputt. Kannst du in Pascal auch direkt Hexzeichen eingeben? Benutzt du das Experimentiertboard von Microkontroller? Da habe ich drei PINs auf +5V gelegt. Aber nie direkt immmer mit Diode und Widerstand. Macht das ";" nicht schon ein newline?? Timo
10V ist schon OK. Klar kann ich Hexzeichen eingeben. Die Progrommiersprache heißt aber BASCOM. Ist meiner Meinung nach viel einfacher als Pascal oder C, obwohl ich sonst C lieber mag. Experimentierboard ist glaub ich von ATMEL steht zumindest drauf. Heißt STK200 und ist ziemlich verbreitet. Ich glaub das STK500 hat noch ein paar mehr Möglichkeiten, aber mir reichts. Komm aber immer noch nicht weiter. Hab grad überlegt mit dem Controller mal einen Befehl vom PC Hyperterm aufzunehemen. Weiß aber nicht wie ich den im Controller abspeichern soll. Bitte helft mir!
Hi, ahh nun bin ich auch schlauer. Also die Zusätzliche Spannung legst du ja wegen dem im Kabel vorhanden Pegelwandler an. (max232) Weil die Betriebsspannung meist nicht anliegt. So war es zumindest bei mir. Da nützt dir das Anschließen vom Computer nichts. Du kannst aber die generelle Comunikation einmal testen. Also Board über ein Nullmodemkabel an den Rechner. Terminalprogramm auf. Flusskontrolle auf None stellen. Da sieht du ja dann was er an den Rechner sendet. Selbst das eingeben vom Terminal und auf dem Display Anzeigen. Muss aber nicht am Handy laufen, halt zwecks der Betriebsspannung des MAX. Warum programmierst du dann das nicht in C? Grüße, Timo
Habs nun getestet. Das mit der Aufzeichnung eines Befehls vom PC im Controller mein ich. Hat auch gleich geklappt. Finds halt komisch, dass es in allen Richtungen geht, d.h. vom Controller zum PC, vom PC zum Controller und ja noch vom PC zum Handy. Nur so wie ichs brauch vom Controller zum Handy gehts nicht. Kann es sein, dass ich die Spannung falsch angschlossen hab??? Warum nicht in C? Weils für meine Diplomarbeit ist und ich das mal in BASCOM machen wollte. Danke übrigens, für die schnellen Anworten. Hoffe wir finden das Problemchen noch. Kann eigentlich gar nichts großes sein.
Hi, ein kumpel macht das auch gerade für seinen Techniker. Ich nur just for fun. Das Problem wird dann an deinem Kabel liegen. Er hat bestimmt 1-2 Wochen probiert bis er auf den Fehler gekommen ist. Nimm das Kabel auseinander... schau mal, eigentlich müsste ein max2323 eingebaut sein. Ich hänge Dir einmal das Datenblatt an, dann kannst du sehen wo er die Betriebsspannungen haben will. So, nun gehts ab zur Abendschule... bin ab 22h wieder online ;-) Timo
Hi, warum schließt du das Handy eigentlich nicht direkt an den µC an? Bei mir klapp folgende Schaltung einwandfrei und sicher: http://www.semlabs.com/avr_siemenshandy.gif Den benötigten Lumberg-Stecker bekommst du ganz einfach, indem du dir eine billig Freisprecheinrichtung ("Knopf im Ohr") besorgst und diese ausschlachtest. Ganz wichtig: Nach jedem Befehl hexadezimal A und D (bzw. dezimal 10 und 13) senden, sonst funktioniert es nicht. Das Hyperterminal macht dies automatisch, darum funktioniert es damit aber mit dem µC nicht. Folgende Links helfen dir vielleicht noch weiter: http://www.nobbi.com bzw. http://www.nobbi.com/phones.htm http://www.ct.heise.de/mobil/artikel/2002/06/17/datenkabel/
Hi Timo, Bestimmt ist da ein MAX232 drin, bloß wie kann ich die Steckerbelegung rausbekommen. Hab Angst, dass ich da was falsch anleg und es dann raucht. Der Stecker ist dummerweise eingeschweißt und gehört mir nicht. Hi Semme, danke für die Links. Hab da auch schon vorher viel gefunden. Denke auch, dass das am Kabel liegen muß. Werd mir dann mal einen Stecker besorgen und deinen Vorschlag ausprobieren. Das mit mit dem 10 und 13 senden ist meiner Meinung nach auch sehr wichtig. Hab da nämlich beim Senden vom Controller zum PC gemerkt, dass dadurch ein RETURN ausgeöst wird. Also sehr wichtig.
Hi Leute, habs endlich hinbekommen. Man muß also den Stecker vom Handydatenkabel und STK200 1 zu 1 auflegen, dabei aber PIN 2 und 3 vertauschen. Das ist deswegen so, damit man das STK200 direkt am PC mit einem 1 zu 1 Kabel anschließen kann. Dann kommt aber noch der Knackpunkt. Man muß am Pin 4 des Handykabels +5V anschließen (am Besten nur am Handykabel, also Verbindung zum STK200 kappen) und von dieser Spannung GND am PIN 5 (hab die Verbinung von STK200 und Handykabel drin gelassen). Dann funktionierts auch mit dem Nachbarn (ähm Handykabel mein ich). Dann schreibt man noch in BASCOM dieses kleine Progrämmchen und wird einfach angerufen. $baud = 19200 'Baudrate für C35i $crystal = 4000000 'AT90L8535 Enable Interrupts Config Serialin = Buffered , Size = 20 Config Serialout = Buffered , Size = 20 Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.7 , Rs = Portc.6 'da hab ich mein LCD dran Config Lcd = 16 * 2 '16Zeichen 2Spalten Dim Name As String * 32 Name = "atd+49171(eure Telefonnummer);" 'kann auch direkt nach PRINT kommen; siehe unten! Cls Do Lcd Name 'Anzeige im LCD des AT-Befehls Wait 1 Print Name 'Ausgabe des Stings an die STDOUT Print Chr(13) ; Chr(10); ' Macht das absolut nötige RETURN Wait 1 Loop End So einfach ist das!! Danke Leute für die Unterstützung!!!!!!!!1
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.