Hallo, Ich baue zur Zeit an einem mobilen GPS-Datenlogger. Die Stromversorgung (3,3V) erfolgt per Step-Up DC/DC-converter aus zwei Zellen. Das GPS-Modul ist ein GlobalSat EM-402 (SirfStar-Xtrac; 3,3V). Im kontinuierlichen Modus des Daten-Loggers fließen 250mA (ohne GPS nur 20mA). Das ist zu viel! Ich möchte so alle 10s (oder noch länger -> am besten variabel einstellbar) ein gültiges GPS-Signal. Zur Zeit kommen die Daten alle 1s über die RS232. Ich habe gelesen, dass die Stromversorgung des Moduls über den TricklePower-Mode (Sirf Message-ID 151) einstellbar ist. Was ist das? Im Datenblatt steht etwas von einem Tastverhältnis (duty cycle) der CPU-Rechenleistung. Geht da die Genauigkeit verlohren? Meine Frage: Wer hat Erfahrungen mit dem TricklePower Mode, oder wie man effektiv per Software das Modul an-/ausschaltet (ohne Kaltstart)? Wenn ich die Rechenleistung beeinflussen kann, stellt sich mir die Frage, warum die nicht gleich geringer gewählt wurde... Ich meine, den "Turbo-Knopf" am 386SX-PC hat auch niemand ausgeschaltet! Danke! Mfg, Philipp
Phillip, ich habe vor mehreren Jahren mit u-Blox GPS Empfängern mit SIRF-II Chipsatz gearbeitet. Es gibt eine AN von u_blox dazu und eine Excel Sheet zur Berechnung der Stromersparnis in TPM. Man kann es aber leider nicht mehr im WEB finden und von u-blox gibt es das nicht mehr. Wenn du mir eine mail schickst, kann dir die AN und das XLS Sheet zukommen lassen.
Hallo botnec, Danke für den Tipp! Ich habe das Application Note im Web gefunden. http://www.dpwolfer.ch/wintrack/tpmappnote.pdf So wie ich das verstehe, kann ich das Tastverhältnis (Track-Mode+CPU-Mode / Sleep-Mode) und die Dauer des Tracking frei wählen. Es werden jedoch "Vorzugswerte" angegeben... Was ist denn sinnvoll als max. Dauer des Track-Mode ? Weiterhin steht da, dass man nur während des "On"-Zustandes mit dem Modul kommunizieren kann. Zur Zeit habe ich einen UART-Interrupt laufen. Kann ich da einfach am Ende der Kommunikation vom Modul meine Befehle hinschicken oder ist das Modul dann bereits im "Off"-Zustand. Philipp
Ich meine das GPS.G2-X-02003.pdf und das GPS.G2-X-02004.xls Da steht eigentlich alles drin.
Danke an botnec für die Hilfe!! Leider bin ich dem Energiesparmodus nicht sehr viel weiter gekommen. Erfolgreich implementiert sind: - ein Umschalten auf 19,2kBaud - bei Gerätestart wartet mein Controller (ATmega32) auf eine Kommunikation bei 4,8 oder 19,2 kBaud (sowohl NMEA als auch Sirf Binary) und schaltet dann auf NMEA (19,2 kBaud) um - GPS-Fixes werden aus NMEA "decodiert" [GGA, GSV, RMC] - weiterhin warte ich auf die OkToSend-Message "PSRF150" um den TricklePower-Modus zu erkennen Energiesparmodus: ----------------- Sowie ich ein richtiges NMEA-Protokoll empfangen habe, versuche ich in den TricklePower-Modus zu gelangen. Dazu muss ich nach Sirf-Binary umschalten, den Modus aktivieren und wieder nach NMEA zurück: 1. nach Sirf-Binary: "$PSRF100,0,19200,8,1,0*39\r\n" 2. TricklePower einstellen (siehe unten) 3. wieder NMEA: 0xA0,0xA2,0x00,0x18, 0x81,2, 1,1,0,1,1,1,5,1,1,1,0,1,0,1,0,0,0,1,0,0,0x4B,0, 0x00,0xDE, 0xB0,0xB3 Das Hin- und Herschalten scheint zu funktionieren, da ich anschließend wieder NMEA empfange. Als Energiesparbefehle habe ich folgendes versucht: - Set TricklePower Parameters - Message ID 151 [] - Advanced Power Management - Message ID 53 - Set Low Power Acquisition Parameters - Message ID 167 und Kombinationen dieser. Leider funktioniert das nicht, der Stromverbrauch liegt weiterhin bei 180mA (gesamt) - [ohne GPS: 20mA]. Ich habe gelesen, dass der Sirf star II X-trac eigentlich alle diese Befehle versteht (unter anderem im SiRF Binary Protocol Reference Manual [Tabelle 2-3]). An einer anderen Stelle im Internet allerdings, dass er nur ID 53 kann. Weiterhin habe ich beim Hersteller (GlobalSat) des Moduls (EM-402) nachgefragt, was für Modi unterstützt werden. Die Antwort lässt aber noch auf sich warten. Fragen: ------- - Muss man eine Reihenfolge der Befehle einhalten? - Welche Befehle müssen gesendet werden? - Wie erkenne ich, dass der Sirf-Chip meine Befehle nicht versteht? - Welcher Quelle kann ich trauen - welche Befehle kann die X-trac Software im SirfII? Vielen Dank für eine Antwort! PS: Anbei auch ein Code-Ausschnitt
>Im >kontinuierlichen Modus des Daten-Loggers fließen 250mA (ohne GPS nur >20mA). >Das ist zu viel! Allerdings. Lt. Datenblatt braucht das Teil 70-80 mA, je nachdem welches Datenblatt man zu Rate zieht ;) Jetzt schreibst Du: >....Leider funktioniert das nicht, der Stromverbrauch liegt weiterhin bei >180mA (gesamt) - [ohne GPS: 20mA]. Was stimmt denn nun? 250 mA oder 180 mA Gesamtverbrauch? Der Stromverbrauch des Boards alleine laege ja nach Deinen Angaben zwischen 230 und 160 mA. Das kommt hin wenn es zum Beispiel einen Kurzschluss der Antennenversorgung gibt ;) Es ist in jedem Fall zu viel. Hast Du mal den Stromverbrauch vom GPS Board alleine ohne angeschlossenen Controller gemessen? Mit Antenne und ohne Antenne? >- Wie erkenne ich, dass der Sirf-Chip meine Befehle nicht versteht? Na z.B. daran: >- weiterhin warte ich auf die OkToSend-Message "PSRF150" um den >TricklePower-Modus zu erkennen This message is sent when the receiver is in a power-saving mode. One message is sent just before the receiver’s power is turned off (with Send Indicator set to 0), and one is sent once the power has been restored (with Send Indicator set to 1). Bekommst Du diese Message mit Send Indicator 0 bzw. 1? juergen
Hallo, Die zwei verschiedenen Stromangaben kommen von den zwei verschiedenen Messbereichen meines Multimeters. :-) >Was stimmt denn nun? 250 mA oder 180 mA 180mA Es ist ein DC/DC-Wandler auf meiner Platine der aus den 3V Batteriespannung die 3,3V für alle Komponenten macht. Dessen Wirkungsgrad wird wohl so bei 70-80% liegen, sodass die 180mA nicht so sehr falsch sind. Messen könnte ich das schon genauer... Ein Kurzschluss ist auszuschließen, da ich ja meine Position richtig aus dem NMEA ermittle. >Bekommst Du diese Message mit Send Indicator 0 bzw. 1? Diese Message erhalte ich nicht, daher schlussfolgere ich ja, dass ich mich nicht im TricklePower-Modus befinde. Zur Erkennung, ob der Befehl richtig empfangen wurde, machen sich die Sirf-Binary-Output-Messages ID 11 & ID 12 gut. Leider erhalte ich keine der beiden nachdem ich Befehle an das Modul gesendet habe. Wann werden diese "Bestätigungen" denn gesendet? Sofort nach Erhalt des Commandos? In welcher Reihenfolge müssen welche Befehle gesendet werden? Anbei das Datenblatt des Moduls. Danke Philipp
Phillip, wie ich schon geschrieben habe, benutze doch zunächst mal SIRFDEMO um die Kommunikation zwischen PC und dem RX zu testen. Das Tool kann alles protokollieren, sodass du hier mal grundsätzlich die Kommandos und eventuelle Antworten deines Rx in Ruhe anschauen kannst , ohne deinen eigene HW und SW. (habe ich aus so gemacht).
Hallo. >Die zwei verschiedenen Stromangaben kommen von den zwei verschiedenen >Messbereichen meines Multimeters. :-) :) >>Was stimmt denn nun? 250 mA oder 180 mA >180mA >Es ist ein DC/DC-Wandler auf meiner Platine der aus den 3V >Batteriespannung die 3,3V für alle Komponenten macht. Dessen >Wirkungsgrad wird wohl so bei 70-80% liegen, sodass die 180mA nicht so >sehr falsch sind. Aehem... das heisst also dass Du die Stromentnahme aus der Batterie misst ??? Also vor dem Wandler? Dann kommt das durchaus hin wenn die Batteriespannung niedrig, die Batterien also fast leer sind. Das liegt aber dann sicher nicht am Wirkungsgrad des Wandlers. Selbst wenn der nur 70% hat und die Batterien voll sind sollte es deutlich weniger sein. >Messen könnte ich das schon genauer... Mach das mal ;) Mit vollen/neuen Batterien! Und zwar nach dem Wandler, nicht davor. Dass die Stromaufnahme aus der Batterie immer hoeher wird je leerer sie wird ist ja wohl logisch. Sie entspricht nur dann der Stromaufnahme von Board und Controller wenn sie exakt 3.3 Volt betraegt. Probier es mal mit einem Netzgeraet aus, dann kannst Du das gut sehen. >>Bekommst Du diese Message mit Send Indicator 0 bzw. 1? >Diese Message erhalte ich nicht, daher schlussfolgere ich ja, dass ich >mich nicht im TricklePower-Modus befinde. Kann IMO auch gar nicht so funktionieren. s.u. >Zur Erkennung, ob der Befehl richtig empfangen wurde, machen sich die >Sirf-Binary-Output-Messages ID 11 & ID 12 gut. Leider erhalte ich keine >der beiden nachdem ich Befehle an das Modul gesendet habe. Die bekommst Du aber auch nur nach Request, das heisst Du musst sie fuer die jeweilige Aktion anfordern. Ob das auch fuer Trickle Power funktioniert wage ich zu bezweifeln. Dafuer gibt es ja extra die ID 18 die das automatisch macht ohne Request und zwar als SiRF Message. Ich vermute aber mal dass das bei Deinem Modul ohnehin nicht so funktionieren kann da Du nur einen Ausgangsport hast. Von NMEA auf SiRF zurueckschalten bringt da nix. Das Teil hat ja nur einen Port. Input nur SiRF und Output NMEA oder SiRF. >Wann werden diese "Bestätigungen" denn gesendet? Sofort nach Erhalt des >Commandos? Ja, wenn Du ID 18 meinst und einen 2. SiRF Output Port haettest. >In welcher Reihenfolge müssen welche Befehle gesendet werden? So wie ich das Datenblatt verstehe stellst Du zuerst auf NMEA um (sollte eigentlich per default ohnehin NMEA sein) und sendest lediglich das Trickle Power Command. Fertig. Du muesstest dann eine Aenderung der Stromaufnahme messen koennen. Kannst Du das Teil eigentlich auf NMEA und 19.2 umstellen oder laeuft NMEA immer nur mit 4800? juergen
Hallo, Die Batterien sind noch recht frisch. Der Messwert 180mA kommt aus dem Messbereich 10A - also stark fehlerbehaftet! Der andere Messbereich scheint eine Macke zu haben... Die Hardware, die mir zur Zeit zur Verfügung steht ist eben nicht so toll. Auch kann ich kaum Änderungen an der Hardware vornehmen, da ich mich auswärts befinde... > Also vor dem Wandler? Ja! > Die bekommst Du aber auch nur nach Request, das heisst Du musst sie fuer > die jeweilige Aktion anfordern. Wie stelle ich das ein? Welche Sirf-Binary-Message ist das denn? > ... kann da Du nur einen Ausgangsport hast. Das hat damit nichts zu tun, da man ohne Probleme zwischen den Protokollen wechseln kann. NMEA -> SiRF: $PSRF100 SiRF -> NMEA: ID 129 Bei beiden Kommandos kann man die Baud-Rate frei einstellen. Im TricklePower Modus kann man nur mit dem Modul sprechen, wenn es wach ist. Daher gibt es die OkToSend-Messages: NMEA: $PSRF150,1*3F SiRF: ID 18 > ... nach NMEA um ... und sendest lediglich das Trickle Power Command. Gibt es denn einen NMEA - Standard-Befehl für das Umstellen? Im NMEA Reference Manual steht da nichts! uBlox hat einen eigenen "NMEA-Befehl" (PSRF107). Ich habe aber ein GlobalSat-Modul !! Philipp
Hallo Philipp. Wir reden von 2 verschiedenen Dingen, Stromverbrauch bzw. Stromaufnahme Deines Geraetes und Trickle Power Mode des Moduls: >Die Batterien sind noch recht frisch. Der Messwert 180mA kommt aus dem >Messbereich 10A - also stark fehlerbehaftet! Der andere Messbereich >scheint eine Macke zu haben... Na gut, so kannst Du natuerlich kaum richtig messen. >> Also vor dem Wandler? >Ja! Zum Stromverbrauch bzw. zur Stromaufnahme: Loes Dich mal zunaechst vom Stromverbrauchsdenken und betrachte stattdessen mal die Leistungsaufnahme bzw. die Leistungsbilanz der Batterien, dann wird es klarer: Mal angenommen das Modul braeuchte 80mA und der Rest 20 mA, also in Summe 100mA. Dann betraegt die Leistungsaufnahme bei 3.3 Volt genau 330mW. Wenn Deine Batterie auf 2 Volt abgesunken ist dann muesstest Du aus der Batterie fuer diese Leistung 330/2 = 165 mA ziehen, bei einem *idealen 100%* Step Up Wandler. 2 neue Batterien (AA Alkaline) in Serie liegen zwar bei 3 bis 3.2 Volt, fallen aber unter Belastung extrem schnell ab: Der Strom steigt an... Kurzum, die gespeicherte Energie bei Alkaline kannst Du nie voellig ausschoepfen da diese Teile bei zunehmendem Entnahmestrom immer staerker abfallen. Und fuer groessere Entladestroeme sind sie schlicht ungeeignet. Da waeren Akkus besser. Nimmst Du dagegen z.B. Lithium Batterien sieht es anders aus: Anfangsspannung um 1.6 Volt pro Zelle. Unter Last faellt die Spannung auf etwa 1.4 Volt im Mittel bis kurz vor Ende. Mit anderen Worten, das Spannungsniveau bleibt relativ stabil/hoch, ergo ist auch der Entnahmestrom halbwegs stabil und vergleichsweise niedrig, man kann deshalb auch die gespeicherte Energie fast komplett ausreizen. Eine Energizer L2 hat rund 3000 mAh. Bei obigem Rechenbeispiel wuerden 2 Zellen mit relativ konstant 2.8 Volt fuer rund 9 Stunden reichen, abzueglich Wandlerverluste. Mit AA Alkaline wirst Du kaum die Haelfte der Zeit schaffen, aber eine Menge Restkapazitaet haben die Du nicht nutzen kannst. Umso wichtiger ist IMO ein moeglichst effektiver Step Up Wandler. Sowas gibt es mit Wirkungsgrad deutlich besser als 70-80 %. Ich verwende dafuer einen Max 756 EPA. Zum Trickle Power Mode: Sorry, da hab ich etwas Unsinn geschrieben, es ist halt lange her dass ich mich mit SiRF befasst habe ;) Ich hab mir jetzt noch mal die SiRF Binary und SiRF NMEA Messages genauer angesehen: Deine Vorgansweise ist korrekt. Du musst zuerst auf SiRF Binary umschalten, dann den Trickle Power Mode aktivieren und danach auf NMEA zurueckschalten. Beachte dabei dies hier: Note - In TricklePower mode, update rate is specified by the user. When switching to NMEA protocol, the message update rate is also required. The resulting update rate is the product of the TricklePower Update rate and the NMEA update rate (i.e., TricklePower update rate = 2 seconds, NMEA update rate = 5 seconds, resulting update rate is every 10 seconds, (2 X 5 = 10)). Mit NMEA Input Command 103 kannst Du aber dann im NMEA Mode die update rate wieder veraendern ohne auf SiRF Binary zurueckzugehen. >..im TricklePower Modus kann man nur mit dem Modul sprechen, wenn es wach >ist. Daher gibt es die OkToSend-Messages: Yep, so verstehe ich das Manual auch. Du musst lt. Manual auf OkToSend warten bevor Du wieder auf NMEA umschaltest. >> ... nach NMEA um ... und sendest lediglich das Trickle Power Command. >Gibt es denn einen NMEA - Standard-Befehl für das Umstellen? Im NMEA >Reference Manual steht da nichts! S.o. Ich hab mich da geirrt. Also noch mal in Kurzfassung: Bring das Teil in den SiRF Binary Mode. Stell den gewuenschten Trickle Power Mode ein. Warte auf OkToSend. Dann stell auf NMEA um und lass es so. Eine andere update rate kannst Du dann ja immer noch unter NMEA mit 103 vornehmen. Wenn Du im Trickle Power Mode die Stromaufnahme des Modules auf die Haelfte senken kannst wuerdest Du die Laufzeit von Lithium Batterien erreichen ;) Und falls Du mit SiRF Demo arbeiten willst koennte das hier hilfreich sein: http://www.gpspassion.com/forumsen/topic.asp?TOPIC_ID=25575 juergen
Vielen Dank an botnec und Jürgen! Da ich zur Zeit keine Möglichkeit habe mit dem PC und einem Programm wie SirfDemo mit dem GPS-Modul zu kommunizieren, habe ich mir etwas eigenes für meinen Controller geschrieben. Und siehe da: ------------- Der Sirf-Befehl ID 151 "Set TricklePower Parameters" wird von meinem Modul NICHT erkannt. Auch der Befehl ID 167 "Set Low Power Acquisition Parameters" wird mit ID 12 "Command Not Acknowledgement" beantwortet. Das ist offenbar eine Besonderheit der XTrac(2)-Software! Nur der Befehl ID 53 "Advanced Power Management" wird angenommen und ist offenbar die EINZIGE Möglichkeit den Energieverbrauch dieses Moduls zu senken. [Dies konnte ich auch in einem anderen Forum lesen - allerdings ohne jede Quellenangabe.] Erst dann erhalte ich die "OkToSend"-Messages als Zeichen, dass ich mich in einem Energiesparmodus befinde. Bei dem Befehl ID 53 gibt es zwei Modi: --------------------------------------- 1. der Power-Duty-Cyle wird "geregelt" --> unregelmäßige Ausgabe der Fixes 2. die Ausgabe der Fixes erfolgt regelmäßig --> im Extremfall (bei schlechter Sicht) ist das Modul im kontinuierlichen Modus. Der Duty-Cyle lässt sich im Bereich 5% .. 95% einstellen. Die Fixes können im Bereich 10s .. 255s ausgegeben werden. Leider ist mein Messgerät wirklich nur ein Schätzeisen... Anzeige (ohne GPS-Modul) = 0.02A Anzeige (GPS full power) = 0.20A Anzeige (GPS "trickle") = 0.15A Ich habe hier bewusst "Anzeige" geschrieben! Mir kommt der Unterschied zwischen "trickle" und "full power" etwas wenig vor! Im GPS-Datenblatt steht etwas von 80mA - da ist doch die Antenne mit dabei oder? [Ich kann das nicht überprüfen, da Antenne und Modul FEST verbunden sind.] @ jürgen: Als DC/DC-Wandler verwende ich einen MAX1709 (zugegeben: etwas überdimensioniert) - Wirkungsgrad: (nach Datenblatt) @ 200mA bei >80% Philipp
Hallo Philipp. >Und siehe da: >Der Sirf-Befehl ID 151 "Set TricklePower Parameters" wird von meinem >Modul NICHT erkannt. Auch der Befehl ID 167 "Set Low Power Acquisition >Parameters" wird mit ID 12 "Command Not Acknowledgement" beantwortet. Hmm. Laut Tab. 2-3 (supported input messages) sollte das aber gehen. >Das ist offenbar eine Besonderheit der XTrac(2)-Software! Jeder SiRF-Grosskunde hat die Moeglichkeit die Software zu aendern bzw. auch begrenzt eigene Features zu implementieren. Vielleicht hat da GlobalSat was veraendert. Frag die doch mal. Hinzu kommt dass SiRF seine Software auch recht zuegig aendert. Das waren fuer mich auch u.A. die Gruende eben nicht mit SiRF Chips zu arbeiten. Immerhin geht ja wenigstens ID 53. >Bei dem Befehl ID 53 gibt es zwei Modi: Kommt drauf an wie man zaehlt ;) >Der Duty-Cyle lässt sich im Bereich 5% .. 95% einstellen. >Die Fixes können im Bereich 10s .. 255s ausgegeben werden. Und zusaetlich kannst Du die Fix-Qualitaet (Horizontal-Vertical Error) festlegen ;) SNIP >Leider ist mein Messgerät wirklich nur ein Schätzeisen... >Anzeige (ohne GPS-Modul) = 0.02A >Anzeige (GPS full power) = 0.20A >Anzeige (GPS "trickle") = 0.15A >Ich habe hier bewusst "Anzeige" geschrieben! Mir kommt der Unterschied >zwischen "trickle" und "full power" etwas wenig vor! Wirklich umwerfend ist das noch nicht, aber ein Anfang. Es haengt natuerlich auch davon ab welchen der Modi mit welchen Parametern Du verwendet hast. Versuch es mal interessehalber mit den Maximalwerten. >Im GPS-Datenblatt steht etwas von 80mA - da ist doch die Antenne mit >dabei oder? Zumindest sagt das Datenblatt nix Anderes. >@ jürgen: >Als DC/DC-Wandler verwende ich einen MAX1709 (zugegeben: etwas >überdimensioniert) - Wirkungsgrad: (nach Datenblatt) @ 200mA bei >80% Ja, das ist minimalst ueberdimensioniert ;) juergen
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.