Hallo zusammen,
nachdem heute genau das richtige Sch...wetter dafür ist, habe ich die nächste Version des Konverters fertig gemacht.
Die Liste der übertragenen Parameter wurde deutlich erweitert:
- LQI
- Empfängerspannung
- Spannung 1
- Spannung 2
- Strom
- Ladung
- Drehzahl
- Temperatur 1
- Temperatur 2
- Höhe
- Steigrate
- Geschwindigkeit
Außerdem werden die MSB Adressen jetzt automatisch nach folgenden Regeln ermittelt:
Die Adressen für LQI (Adresse 1) und Empfängerspannung (Adresse 0) sind fest zugeordnet.
Für alle anderen Parameter werden jeweils die niedrigsten vorhandenen Adressen mit passender Werteklasse verwendet.
Bei den Spannungen gibt es eine Besonderheit für den Fall, dass (neben der Rx Spannung) nur eine Spannung auf dem Bus vorliegt:
- ist die Adresse 2, bleibt sie der Spannung 1 zugeordnet (RVLQ Frame, max. 25,5V)
- ist die Adresse größer als 2, wird sie für Spannung 2 verwendet (User Data Frame, voller Messbereich)
Ich konnte die Adressermittlung mit einem E-Sense für alle Parameter außer Temperaturen und Geschwindigkeit testen.
Es gibt aber keinen echten Grund, warum das nicht für alle Parameter funktionieren sollte (außer ein blöder Tippfehler im Code
).
Was die Messung von Temperatur und Geschwindigkeit angeht, bin ich leider blank (mangels Sensoren
).
Die Drehzahl werde ich später noch mit dem MSB Expert Regler in meiner FunCub testen.
Aber generell ist hier natürlich Euer Feedback höchst willkommen.
Ich habe übrigens die Geschwindigkeit nicht in Knoten umgerechnet, sondern die MSB Einheit und Auflösung beibehalten (0,1 km/h).
Auch habe ich bei den Spannungen A1 und A2 von einer Skalierung auf den 13,2 V Default Darstellungsbereich der Taranis abgesehen.
Eine zweifache Skalierung ist technisch sub-optimal, es ist besser, den Skalierungsbereich im Sender auf 25,6 V zu ändern.
Beim Start dauert es ein paar Sekunden, bis die Telemetrie aktiviert wird.
Da das M-Link Modul nach dem Einschalten immer kurzzeitig gültige Telemetriedaten signalisiert (auch bei ausgeschaltetem Empfänger),
wird nach dem Start zunächst eine definierte Anzahl von M-Link Datenpaketen ignoriert.
Dann wird eine definierte Anzahl von M-Link Datenpaketen mit gültigen Telemetriedaten zur Ermittlung der MSB Adressen ausgewertet.
(Dabei werden auch noch keine FrSky Telemetriedaten gesendet.)
Erst Danach wird die Telemetrieausgabe aktiviert.
Erstaunlicherweise erkennt der Konverter sogar, wenn während des laufenden Betriebes einzelne Sensoren ab- und wieder angesteckt werden.
(mit gewissen Verzögerungen, die vom Verhalten des M-Link Sendemoduls bestimmt sind)
Das kann ich mir aus dem Code allein nicht wirklich erklären, es muss damit zu tun haben, was das M-Link Modul in so einem Fall sendet.
Wird der Empfänger komplett ausgeschaltet, werden die Telemetriedaten nach wenigen Sekunden abgeschaltet und die entsprechende Warnung kommt.
Beim erneuten Einschalten des Empfängers passiert natürlich genau das umgekehrte.
Wichtig ist noch, dass die MSB Adressen nur einmal beim Hochfahren ermittelt werden.
Wenn man also den Empfänger ausschaltet, ohne den Sender (mit Konverter) auszuschalten, und dann mit anders konfigurierten Sensoren
wieder einschaltet, erkennt der Konverter die geänderte Konfiguration nicht.
Das dürfte aber auch kein in der Praxis relevanter Fall sein (man könnte es sicher ändern, im Moment sehe ich da aber keine Bedarf).
Viel Spaß beim Testen.
Gruß
Reinhardt