RIM1802G -LowCost GSM

| assistant | ~6min


Projektdatum: 18.10.2010

 

[dropcap]I[/dropcap]ch stand vor der Aufgabe ein Bienenhäuschen mit moderner Technologie zu vereinen.
Es sollte möglich sein, von jedem Standort aus die aktuelle Temperatur im innern des Häuschens abzufragen. Da das Häuschen leider auch bereits Opfer von Vandalenakten geworden ist, musste auch eine Alarmanlage angebracht bzw. integriert werden.

Doch wie erreicht man eine standortunabhängige Erreichbarkeit? Genau, nur mittels Funk. Und da das heutige Mobilfunknetz ja mehr als genügend ausgebaut ist, bietet es sich an dieses auch zu nutzen.

Gängige GSM-Module sind entweder komplex in der ansteuerung oder exorbitant teuer, so dass man sich diese nicht einfach mal so schnell kaufen kann ohne sicher zu sein, das richtige zu haben.

Also habe ich Google bemüht und bin nach einiger Zeit auch fündig geworden.

Bei der Suche kam das GSM-Modem der Firma Research In Motion oder kurz RIM heraus. Die Modellbezeichnung lautet RIM1802G. Also wurde dieses Modem für günstige 20CHF (15€) bestellt.

 

Nach einigen Tagen kam dann auch endlich das langersehnte Modem mit der Post.

Auf der Mikrocontrollerseite weist das Modem einen 22-Poligen Verbinder mit einem Pinabstand von 1mm auf.

einen Passenden Stecker ist z.B. jener von Molex: 210390382

Nach kurzer Eingabe von „RIM1802G“ in der Suche von Google war klar, dass es etwas dauern würde die Datenblätter zu finden. Beim Antennenausgang befindet sich ein MMCX Anschluss.

 

Damit ihr nicht die gleichen Probleme mit den Datasheets habt, habe ich diese für euch bereitgestellt. Siehe dazu bitte die Links im Sidebar-Menu.

Zusammen mit diesen Dokumenten sollte es ein leichtes sein das Modem zum laufen zu kriegen. Dachte ich zumindest!

Stromversorgung

Zuerst gilt zu beachten, dass dieses Modem eine Betriebsspannung von 3.5V – 4.75V benötigt. Des weiteren befindet es sich in den Grundeinstellungen auf 115200 baud.
Alle 4.616ms benötigt es für eine Zeit von 577us einen Strom von bist zu 2.0A.

Laut Spezifikationen darf die Speisung nicht mehr als 20 mVpp Rippel aufweisen.
Auf dem Board der Modems befinden sich bereits einige 70uF Kondensatoren parallel zu VCC.

Eine einfache Diode 1N4007 macht bereits aus 5V -> 4.3V noch einen Kondensator zur Siebung und die Stromversorgung ist grundsätzlich schon einmal gelegt.

Meine Schaltung sieht folgendermasen aus:

Die 5V Speisung ist für den AVR. 3V ist für ein paar logische Pegel des Modems und die 4.5V sind für das GSM Modem.

 

Pegelwandler AVR <-> RIM1802G

Da man seinen (in diesem Fall ein AVR) Mikrocontroller ja meistens mit 5V verwenden möchte, muss man hier nun Pegelwandlung vornehmen.

Ich habe zwar im laufe meiner Entwicklung festgestellt, dass die Eingänge wohl über kurz oder lang 5V tollerant sind, da diese jedoch im Datenblatt explizit als 3V Eingänge definiert sind, möchte ich auf eine Pegelwandlung nicht verzichten.

Ein MAX232 ist hier fehl am Platz da dieser dafür ausgelegt ist, 5V RS232 in +/-12V RS232 zu wandeln.

Deshalb wurde ein eigener Wandler entworfen. Dieser Funktioniert einwandfrei. Auch mit einer Baudrate von 115200baud

Die IN Pins sind die Sendeleitungen der Geräte. Also an 5VIN kommt z.B. TX des AVR’s

 

Pinkonfiguration des RIM1802G

Damit man mit dem Modem „sprechen“ kann, muss man zuerst noch ein paar Pins „anbinden“ (an ein gewisses Potential anschliessen)

Hier siehst du, was du wie verbinden musst!

Pin des Modems Wohin verbinden / Beschreibung
21 TX des Modems. Hier kommen die Daten raus! 3VIN
20 RX des Modems. Hier kommen die Daten rein! 3VOUT
5,9,16,18 Mit GND verbinden
6,11,12 Mit Low Current LED’s verbinden für den Status
7,8 Mit 4.5V Verbinden (Power)
17,19 Miteinander verbinden (~DSR und ~DTR)
10 Auf Logisch „1“ daher mit 3V verbinden
1,2 Mikrofon (Optional)
3,4 Lautsprecher (Optional)

In den Datenblättern steht bei Pin 21 RX und bei Pin 20 TX. Dies ist aus sicht des Mikrocontrollers!

 

Kommunikation per RS232

Nun kann man das Modem ein erstes mal per RS232 ansteuern. Zu beachten ist, dass es sich zu beginn im 115200baud Modus befindet.

Die Baudrate lässt sich per AT-Command einstellen und speichern!

Wichtig zu beachten ist, dass man nach jedem gesendeten befehl ein Carriage Return (CR) und einen LineFeed (LF) sendet. Ansonsten hat man das Problem welches ich gehabt habe. Man sitzt stundenlang vor seiner entwicklung und vermutet den Fehler überall und bemerkt erst nach laaanger Zeit, dass das Programm hTerm nicht automatisch einen CR und LF sendet. Dafür war die Freude, dass es dann doch geklappt hat umso grösser  .

 

Erste Befehle

Zum testen der Verbindung sendet man als erstes

AT   //Status Befehl
\r   //Carriage Return
\n   //Line Feed

Nach dem Befehl „AT“ muss das Modem mit „OK“ antworten. Andernfalls befindet sich irgendwo ein Fehler.

Hat man eine Simkarte eigelegt, so kann man mit folgenden Befehlen die Registration im Netzwerk auslösen.

AT+CPIN=0000   //Übergibt den PIN-Code der SIM-Karte (0000)
\r   //Carriage Return
\n   //Line Feed

Mit dem Befehl AT+CPIN=0000 überträgt man dem Modem den Pincode. Dieses versucht diesen nun bei der SIM-Karte aus und wenn dies erfolgreich war, meldet es sich im Netzwerk an. Hat man die LED’s an den PIN’s 6,11 und 12 angeschlossen, so zeigen diese nun einen Verbindungsaufbau (Blinken), sowie die Verfügbarkeit des Netzes und damit die erfolgreiche Einwahl (Coverage) an.

Weitere Befehle findet man im AT-Command Guide.

Besonderheiten

Das Modem weist zwei mir bekannte besonderheiten auf.

Zum einen gibt es eine simple Möglichkeit eine serielle Modem-Verbindung zwischen zwei RIM1802G herzustellen. Dazu genügt ein entsprechender AT Befehl sowie die Telefonnummer des anderen Modems. Alles was nach erfolgreicher Verbindung über die RS232 Schnitstelle gesendet wird, wird 1:1 am anderen Modem empfangen und auch entsprechend wieder ausgegeben. Dies ist solange der Fall, bis eine zuvor definierte EXIT-Zeichenfolge gesendet wird.

Die zweite Besonderheit bei diesem Modem ist, dass man an Pin 1 und 2 direkt ein Mikrofon anschliessen kann und bei Pin 3 und 4 einen Lautsprecher.

Nach einem getätigten Anruf mittels ATD Befehl kann man das Modem über das Mikrofon und den Lautsprecher als „normales“ Mobiltelefon verwenden!

 

Viel Spass beim Experimentieren und Entwickeln