Über Spannungen und deren (Einschalt-)folgen

Was ist cooler als ein Logic 16 von Saleae? Natürlich ein Logic Pro 16!

Neben den 16 Kanälen, die (bei 4 Kanälen) mit bis zu 500 MS/s samplen können (100 MS/s bei 16 Kanälen) kann man selbige auch analog aufzeichnen lassen. Das macht die Sache zwar langsamer und es benötigt sehr viel Speicher, aber es bieten sich interessante Möglichkeiten. Nein, es wird kein Oszilloskop daraus. Auch wird es kein Datenlogger. Das Gerät eröffnet wie ich finde eine neue Geräteklasse – einen Hybriden, der es ermöglicht, für Oszilloskope zu breite Busse digital zu analysieren und dabei – wohl bemerkt in den gegebenen Grenzen – auch das Analogverhalten der Signale anzusehen.

Es gibt einen Anwendungsbereich, für den der Pro wie geschaffen ist: Power-up-Sequenzen. Als Bastler kennt man sie nicht, weil man sie nicht braucht. In komplexeren Systemen gibt es oft viele Spannungen, deren Einschaltreihenfolge und teilweise auch die Art des Einschaltens von großer Wichtigkeit ist, da sonst Komponenten entweder nicht richtig funktionieren oder sogar Schaden nehmen. Nehmen wir einfach mal ein Handy: Beim Einschalten bekommt die CPU nicht einfach Strom, zunächst muss das Power Management hochfahren, das den Rest regelt. Anschließend bekommt der Arbeitsspeicher Strom, dann der Prozessor. Dann kommt der Takt. Danach kann langsam die Peripherie hochgefahren werden – Sensoren, Audio, Display und alles andere.

Um es sehr einfach zu umreißen: Würde das Display bzw. dessen Hintergrundbeleuchtung als aller erstes Strom bekommen, würde man als allererstes – weil der ganze Rest noch gar nicht läuft – irgendwelchen Mist auf dem Display sehen. Bei meinem alten China-Scope (Unitrend 2042) war das zum Beispiel der Fall. Wertig wirkt das nicht.

Um das GPS-Modul etwas besser kennenzulernen, sollte man wissen, wann es wo welche Spannung braucht. Mittlerweile habe ich auch den letzten Fädeldraht angelötet. Um keine Kurzschlüsse am Konnektor zu erzeugen, kratzte ich (schweren Mutes) die Flex zum Empfänger auf und verging mich an ihr – mal hoffen, dass der Draht und die Flex hält:

gnss_powerseq_Leitung4

Das GNSS-Modul ist zunächst getrennt – um zu sehen, welche Spannungen die Kamera zur Verfügung stellt. Zu Beginn der Messung ist die Kamera vom Strom getrennt und wird anschließend über das Akkufach versorgt und bleibt für den Benutzer auch aus. Trotzdem tut sich was:

gnss_powerseq_aus

An Pin 1 – im Foto oben (wie in den Posts von gestern) links liegen 3 V an. Pin 2 ist GND und daher in diesem Kontext uninteressant. Pin 3 hat 3,3 V. Pin 4 bis 7 floaten vor sich hin – das dürften alles Datenleitungen sein. An Pin 8 liegen wiederum 2,43 V an.

Im nächsten Screenshot sieht man die Stärke des Pro:

gnss_powerseq_aus_timing

Cursor A1, B1 und C1 liegen so gut wie möglich aufeinander. A2 zeigt die Verzögerung von Pin 3 zu 1 und 8, wobei man darüber streiten kann, ob hier tatsächlich eine Sequenz gefahren wird – schließlich sind es nur knapp 120 µs Unterschied. Was man mit einem normalen Logic Analyzer nicht gesehen hätte – und mangels Kanälen an einem Oszi auch nicht ist das Verhalten beim Hochfahren der Spannungen aller Kanäle. Bei Pin 1 dauert das ca. 6,35 ms, bei 3 und 8 ca 8,8 ms, wobei Pin 8 etwa eine drittel Sekunde früher komplett hochgefahren ist. Ich wollte aber niemanden mit Cursorn erschlagen.

Auch nach einer Viertel Stunde ändert sich nichts. Das Modul wird also dauerhaft mit Strom versorgt. Das ergibt auch Sinn – um einen schnellen GPS-Fix zu erhalten, ist es wichtig, dass die Uhr im Empfänger dauerhaft läuft. Die Auswirkung auf die Betriebsdauer des Akkus spürt man so gut wie gar nicht, weil man den Unterschied nicht kennt 😉

Schaltet man die Kamera ein, zeigt sich folgendes Bild:

gnss_powerseq_an

Es ändert sich lediglich was an Pin 5 – das ist der UART-Tx (zum GNSS-Modul). Im „Stüpfel“ weiter rechts, werden ein paar Byte übertragen:

gnss_powerseq_nebensprechen Leider kann man keine Analyzer auf Analogsignale anwenden – das fehlt dem Logic noch. auf Pin 6-8 sieht man leichtes Nebensprechen – ob es tatsächlich an den Signalen oder meinem bescheidenen Aufbau liegt, kann ich nicht sagen, vermute aber letzteres.

Wenn man in den Kameraoptionen die GPS-Funktion abschaltet, tut sich erst einmal nichts. Im Gegenteil, alle Stromversorgungen bleiben an. Allerdings ist nicht sicher, ob es einen Enable gibt und dieser auf Kameraseite ein Open Drain mit Pull-up im Modul ist.

Interessant ist ebenfalls, dass die Kamera auch nach dem Ausschalten noch eine ganze Weile mit dem Modul zu kommunizieren versucht. Entweder ist es der klägliche Versuch, das Modul in den Tiefschlaf zu schicken oder etwas anderes. Auf jeden Fall bleibt der UART noch relativ genau 30 Sekunden aktiv, bevor er abschaltet. Die Versorgungsspannungen bleiben aber – wie erwartet – danach aktiv.

So, nun einmal mit Modul – wieder zunächst das Anklemmen der Versorgung im Akkufach:gnss_powerseq_mit_modul_aus

Ok, ein leichter Unterschied. Die Versorgungspins bleiben wie erwartet gleich. Pin 4 dümpelt nach wie vor vor sich hin (hätte ich ihn wirklich anlöten müssen?) Pin 5 hat nun auch hier seine 1,8 V. Da muss wohl ein Pull-up im Modul verbaut sein. Pin 6 ist nun auch aktiv. Nach dem kleinen Knick bei ca. 0,75 s steigt die Spannung übrigens von 1,7 auf 1,8 V – vielleicht der Pull-Up des Prozessors der Kamera? An Pin 7 liegen nun dauerhaft 1,8 V an. Entweder der Ausgang eines GNSS-internen Spannungsreglers oder Interrupts oder sonstwas?

Nach nicht ganz einer Sekunde ist der Spuk auf jeden Fall vorbei, die Kamera ist wieder im Tiefschlaf. Was vorhin nicht zu sehen war: Bis auf der Versorgung an Pin 3 werden alle abgeschaltet. Das muss für die Uhr im Empfänger sein.

Um nicht mit ganz so vielen Screenshots zu spammen, hier mal Power-up und Power-down zusammengefasst und dazu die absoluten Zeitstempel. Wer rechnen will, gerne:

  • A1: 0,604856 s (versteckt hinter B1)
  • B1: 0,604999 s
  • A2: 0,611305 s
  • B2: 1,560646 s
  • C1: 1,560977 s

gnss_powerseq_mit_modul_aus_zoom

Kommen wir nun zum Einschalten der Kamera mit Modul:

gnss_powerseq_mit_modul_an

Das meiste ist bereits bekannt, ich hab nach wie vor keine Ahnung, was Pin 4 macht. Vielleicht wird er ja high, wenn es einen GPS-fix gibt? Nächste Frage. Nun gibt es auch auf Pin 6 und 7 ein Signal. Pin 6 ist augenscheinlich der Rx vom Application Processor, also Tx vom GNSS. Der bisschen breitere Block an Pin 5 ist das Hochladen der Almanach-Daten. Die sporadischen Stüpfel an Pin 6 die Bestätigung davon. An Pin 7 liegen konstant 1,86 V an. Sieht entweder nach dem Ausgang eines Spannungsreglers oder doch einem anderen Signal aus. Bis jetzt konnte ich dort nichts beobachten.

Was die Spannung an Pin 8 macht ist mir ehrlich gesagt auch nicht klar. Sie springt auf 1,6 V hoch um kurzzeitig wieder auf die ohne Modul beobachteten 2,41 V zu schalten, wieder runterzugehen und dann doch wieder kurz auf 1,6 V zu springen. Die kurze „high-Phase“ fällt mit den ersten zwei gesendeten Blöcke zusammen. Diese waren das „Hello world“ des Chipsatzes (siehe vorletzter Blogpost). Vielleicht gehört das zur Initialisierung. Wenn man bedenkt, dass hier mutmaßlich der Spannungsregler stärker belastet wird und dadurch einbricht: tolle Initialisierung.

Um vielleicht doch noch herauszufinden, wofür Pin 4 und 7 sind habe ich im Menü Geotagging ein- und ausgeschaltet – ohne Auswirkung auf auf die Signale.

Nachdem die Kamera nun seit 1 Milliarde Samples bei 1 MHz, also etwas mehr als 16 Minuten, keine Regung beim GNSS-Icon zeigte, muss ich leider davon ausgehen, dass entweder der Empfänger oder die Kamera einen Schuss weg hat. Das Mistding versucht anscheinend noch nicht einmal, Satelliten zu suchen.

Aus den Traces habe ich die UART-Daten extrahiert und einem NMEA-Parser zum Fraß vorgeworfen. Mehr als leere RMC- und GGA-Botschaften kam nicht heraus. Hmpf – da ist wohl wirklich nix zu reißen – und nun auch nichts mehr zu verlieren. Mit meiner Lieblingslötspitze (der Hohlkehle) geht es an das Shielding.

Nanu, da ist ein Bauteil nicht ganz so, wie es sein sollte:

gnss_powerseq_noshieldEtwas mit der Pinzette gezupft und das andere Pad vom Kondensator war abgehoben. Bzw. blieb eher auf der Leiterkarte hängen. Ich bin mir sehr sicher, dass das nicht ich war. Beweisen kann ich es aber nicht. Wieder notdürftig angelötet tut sich… …nichts.

Das Oszi spricht: beide Quarze schwingen. der oben im Bild mit 32 kHz, der unten mit ca. 16,4 MHz. Klingt plausibel.

Jetzt ist auch sicher, welcher Chip verbaut ist – ein MTK3339AV. Google spuckt zwar kein Datenblatt aus, aber das Teil wird mit ähnlicher Antenne flächendeckend verkauft. Adafruit hat ein Datenblatt zu einem Modul mit diesem Chipsatz.

Der Versuch, das Teil zum Laufen zu bekommen wäre damit (vorerst) beendet, leider.

Drei verschwendete Abende? Nein. es war auf jeden Fall interessant, das Modul zu erforschen, auch wenn es sich schlussendlich als Kaputtnik herausgestellt hat.