125 KHz Signal

OP #7816738
Lesenswert?

Hallo, ich möchte gerne das Triggersignal von TPMS Sensoren erzeugen. Das sind lt. Datenblatt 125 KHz.

Wie kann ich so ein Signal preiswert erzeugen und auch senden? 5mW sollten auf der Werkbank reichen?

Beitrag "TPMS Sensor Schrader EZ Programmierung"

Reicht soetwas? https://www.ebay.de/itm/167110807844?

#7816748
Lesenswert?

Reicht soetwas? https://www.ebay.de/itm/167110807844?

Vermutlich. Aber es reicht vermutlich jeder beliebige Microcontroller auf der Welt mit einem grob passend teilbaren Quarz um da 125khz raus zu holen. Und wenn die Genauigkeitansprueche nicht so hoch sind, was ich mal vermute, dann reicht sogar einer mit internen kalibriertem RC-Oszillator. Also dann z.B CH32V003 fuer 0.1Euro.

Und die Modulation sollte der dann gleich mit erledigen koennen.

Vanye

#7816764
Lesenswert?

Die billigen TPMS Trigger ("TPMS Relearn Opel/GM") lassen sich relativ problemlos umbauen und auch die ASK Modulation (viele TPMS Sensoren erwarten mehr als nur einen 125 kHz Träger) ist damit einfach machbar. Dann muss der Mikrocontroller sich nur noch um die Modulation kümmern.

Mehr dazu siehe u.a. hier:

Beitrag "Funktion Reifendruckanlerngerät EL-50448; OEC-T5; Welches Bauelement ist das?"

OP #7816845
Lesenswert?

Dieter S. schrieb:

Die billigen TPMS Trigger ("TPMS Relearn Opel/GM") lassen sich relativ problemlos umbauen und auch die ASK Modulation (viele TPMS Sensoren erwarten mehr als nur einen 125 kHz Träger) ist damit einfach machbar.

Liegt alles bereit, bin vorbereitet.

Nur ist bei meinem Opeltrigger der Chip unkenntlich gemacht und meine Skills reichen nicht aus um anhand der Leiterbahnen zu erkennen wo der Chip angestuert wird :(

Angehängte Dateien:
#7816886
Lesenswert?

Dein Gerät ist anders/moderner als das hier:

Beitrag "Funktion Reifendruckanlerngerät EL-50448; OEC-T5; Welches Bauelement ist das?"

https://www.mikrocontroller.net/attachment/453233/EL-50448.jpg

Bei dem ist noch alles ohne Mikrocontroller aufgebaut.

Du könntest aber vermutlich bei Deinem Gerät einfach den Mikrocontroller entfernen und den Rest für die Erzeugung des Signals verwenden. Das werden wohl Q7 und Q8 erledigen, man sollte sich ansehen (Oszilloskop) wie die angesteuert werden und das dann genauso mit dem eigenen Mikrocontroller machen.

OP #7816899
Lesenswert?

Hallo Dieter, Du denkst U2 ist ein MC? Den kann ich entlöten, ich habe eine Station.

Die drei Anschlüsse unten sind LED_GND, LED1 , LED2. Oben Links scheint durchkontaktiert auf eine Groundplane auf der anderen Seite.

Bleiben noch zwei Anschlüsse. VCC und ein Ausgang?

Ist das alles 9v oder sieht jemand Spannungswandler?

Was sind Q7/Q8?

#7817020
Lesenswert?

Auf die Schnelle ohne Garantie, aber der Aufbau könnte so wie auf dem Bild im Anhang sein.

"1" am Mikrocontroller ist für das Messen der Batteriespannung.

"2" ist für das Ausschalten, wenn man die Einschalt-Taste drückt wird wohl eine Selbsthaltefunktion rund um Q1 und Q2 für eine Versorgung des Mikrocontroller sorgen bis dieser über "2" wieder abschaltet.

Die grüne Linie zeigt eine vermutliche Verbindung auf der anderen Platinenseite, die gelbe Linie ist das 125 kHz Signal vom Mikrocontroller.

Die beiden anderen IO Pins vom Mikrocontroller sind für die beiden LEDs.

Wie hoch Vcc ist (vermutlich 5 Volt oder 3.3 Volt) musst Du selber messen.

Angehängte Dateien:
OP #7817106
Lesenswert?

Dieter S. schrieb:

Was möchtest Du denn mit dem TPMS Sensor machen? Wenn er nicht nur einen 125 kHz Träger sondern auch eine Modulation mit den richtigen Daten braucht könnte es schierig werden.

Ja, dann wird es blöd. Ich hoffe darauf das es keinen Sinn macht für so eine Anwendung gross was zu Modulieren.

In einem Sensor ist das hier verbaut: https://www.nxp.com/products/NTM88

Die möchte ich verbauen und per SDR+Raspi auf ein Display im Cockpit anzeigen.

OP #7817498
Lesenswert?

Übrigens misst mein Multimeter am besagten Ausgang vom MC und auch an der Antenne 126,9kHz :-o

Ich habe den IC jetzt runter und einen ESP32 an GND und den Signalpin gelötet.

Die Platine ist mit 9v bestromt, wenn ich die Taste drücke zieht es 4mA, was Hoffnung macht das das die "Sendestufe" Q7/Q8 ist ...

#7817510
Lesenswert?

Welle 🧐 S. schrieb:

wenn ich die Taste drücke zieht es 4mA

Das klingt wenig, aber Du erzeugst wohl auch noch keine 125kHz, oder?

Welle 🧐 S. schrieb:

was Hoffnung macht das das die "Sendestufe" Q7/Q8 ist ...

Ist es definitiv, und L1 und C7 bilden den Reihenschwingkreis, den ich weiter oben erwähnt habe. Das Ding ist ähnlich wie ein RFID-Reader aufgebaut, bloss ohne Demodulator.

OP #7817561
Lesenswert?

So, also mit dem ESP32 habe ich nun 125.3kHz an der Antenne, die Platine zieht 50mA wenn ich "sende".

Leider weckt das die Sensoren nicht auf :(

Ist natürlich nur ein Rechtecksignal.

1
#define LEDC_DUTY_RES           LEDC_TIMER_9_BIT // Duty resolution
2
#define LEDC_DUTY               (900) // Duty Cycle 50% > ((2*LEDC_DUTY_RES)*50)
3
#define LEDC_FREQUENCY          (125000) // Frequency in Hertz

Mist. Macht es Sinn mit den Duty Cycle zu spielen?

Angehängte Dateien:
#7818117
Lesenswert?

Wie so eine Modulation beispielhaft aussehen könnte steht ja in dem bereits weiter oben verlinktem Thread:

Beitrag "Funktion Reifendruckanlerngerät EL-50448; OEC-T5; Welches Bauelement ist das?"

Die Modulation ist in den allermeisten Fällen OOK (also ein/ausschalten des Träger). Nur wenn man nicht weiss welche Daten der TPMS Sensor erwartet und mit welcher Geschwindigkeit hilft das wenig.

Wenn Du nur beim Fahren die Daten den TPMS Sensors auswerten möchtest braucht Du aber sehr wahrscheinlich kein Trigger-Signal. Die meisten TPMS Sensoren fangen an regelmäßig zu Senden wenn sich das Rad dreht (die Beschleunigung wird erkannt). Allerdings mußt Du immer noch herausfinden wie die RF Daten zu interpretieren sind.

#7818125
Lesenswert?

Du brauchst das wake up pattern von dem Auto, zu dem die Sensoren gehören. Wenn sie nicht angelernt sind, muss man erst die gesamte Prozedur fürs anlernen durchführen. Inzwischen gibt es auch Sensoren, die auf Beschleunigung reagieren. Hängt aber von Modell und Hersteller ab,was genau du brauchst. Nur mit einem Träger passiert jedenfalls nichts. Die Sensoren müssen Strom sparen und wenn sie auf jedes andere 125 kHz Signal eines vorbeifahrenden Autos reagieren würden, wären sie schnell leer.

OP #7818250
Lesenswert?

Hallo Leute, ist klar, WakeUp pattern.

Ich habe hier Sensoren wie z.b. die VDO-Redi die lassen sich mit einem Träger aktivieren.

Ich dachte halt, das das bei allen Sensoren so ist, weil wozu gross ein Pattern auswerten.

Anlernen muss ich die nicht, ich habe einen SDR im LKW, der empfängt die Aussendungen und leitet die an ein Display.

Beitrag "Re: vdo redi sensoren"

Ich habe auch schon Akkuschrauber (Gyrosensor) und Pumpflasche (Druckverlusst) versucht. Tiefschlaf.

OP #7818282
Lesenswert?

Dieter S. schrieb:

Beim weiter oben verlinkten TPMS Trigger ohne Mikrocontroller beträgt die Stomaufnahme über 80 mA wenn er das 125 kHz Signal erzeugt (Betrieb an Netzteil mit 9 Volt).

Mir fällt hier gerade was auf! Die Stromaufnahme ändert sich je nach Dutycycle des ESP 125kHz Signals!

Bei 50% sind es 40mA bei 10% schon 60mA - ich probiere es nochmal mit 1%.

ich werde trotzdem das Tool bestellen :)

#7818367
Lesenswert?

Stephan schrieb:

Du brauchst das wake up pattern von dem Auto, zu dem die Sensoren gehören. Wenn sie nicht angelernt sind, muss man erst die gesamte Prozedur fürs anlernen durchführen. Inzwischen gibt es auch Sensoren, die auf Beschleunigung reagieren. Hängt aber von Modell und Hersteller ab,was genau du brauchst.

Da kocht jeder sein eigenes Süppchen, Hauptsache kompliziert.

Der Ford Mondeo Mk4 mit Siemens-VDO-Sensoren hatte in jedem Radhaus ein Antennchen. Da wurde nichts angelernt, sondern einfach abgefragt und auf Wunsch im Borddisplay angezeigt.

Das war zu Nutzerfreundlich und musste geändert werden.

Der Mk5 will die Sensoren angelernt haben. Die scheinen zyklisch zu senden oder auch außer der Reihe, wenn sich der Reifendruck deutlich verändert. Immerhin ist auch der noch so nett, mir die Werte anzuzeigen.

Angehängte Dateien:
OP #7818538
Lesenswert?

Manfred P. schrieb:

Stephan schrieb im Beitrag #7818125: Da kocht jeder sein eigenes Süppchen, Hauptsache kompliziert.

Hallo Manfred, was ich nicht verstehe, wozu die Hersteller so ein Aufwand betreiben ... warum legen die den Sensor nicht so lange schlafen bis ein Druck detektiert wird und senden ab dann, wenn der Gyrosensor Werte liefert ... egal, was solls.

#7818548
Lesenswert?

Welle 🧐 S. schrieb:

warum legen die den Sensor nicht so lange schlafen bis ein Druck detektiert wird und senden ab dann, wenn der Gyrosensor Werte liefert

Es geht darum Energie zu sparen solange der Sensor nur im Lager liegt und noch nicht verbaut wurde. Es ist alles abgeschalten bis auf den LF Detektor (der kann so konfiguriert werden dass er selbständig ein vorher festgelegtes SYNC Feld in den LF Daten erkennt und dann den Mikrocontroller aufweckt, der kümmert sich dann um die Auswertung der restlichen Daten).

OP #7818585
Lesenswert?

Dieter S. schrieb:

Welle 🧐 S. schrieb im Beitrag #7818538: Es geht darum Energie zu sparen solange der Sensor nur im Lager liegt

Hallo Dieter, ist ja klar, mich wundert: verbraucht der LF weniger Strom als den ADC des Drucksensor zu samplen und bei einen Schwellwert den Rest aufzuwecken.

Der muss ja vorher nicht senden.

Klar es muss ein Timer laufen, aber der LF verbraucht ja auch Strom? Oder wird der durch die HF induziert?

#7821298
Lesenswert?

Welle 🧐 S. schrieb:

Noch eine Frage die Sinuswelle beginngt an der fallenden Flanke, müsste die nicht exact an der steigenden Flanke enden?

Nein, Phasenverschiebungen sind völlig normal.

Nur wenn das funktionierende Triggergerät während der Aussendung die Phasenlage ändert, ist Aufmerksamkeit geboten, aber das dürfte einfaches OOK verwenden, vermutlich Manchester-codiert.

Welle 🧐 S. schrieb:

T ist die Periodendauer? 8uS (micro, 1hoch6)?

Genau, 10^-6, um genau zu sein.

#7821312
Lesenswert?

Welle 🧐 S. schrieb:

Ich habe paralell dazu ein passendes Tool und ein SDR (SDRplay1A) im zulauf ... der kann wohl bis 100kHz runter.

Ich würde das wie gesagt eher mit dem Oszi machen, 125kHz sind dafür ja keine Hürde.

Aber für "echte" HF ist der RSP1A ein schönes Spielzeug. Unter Windows kann ich Dir für den Alltagsgebrauch SDR Console empfehlen, das läuft einwandfrei damit.

#7821343
Lesenswert?

Welle 🧐 S. schrieb:

Ja, mir ist noch nicht ganz klar, wie ich am/mitm Oszi das Signal dekodieren kann?

OOK ist nur ein Ein- und Ausschalten des Trägers. Bei passend eingestellter Zeitbasis siehst Du also also auf dem Oszi abwechselnd einen breiten Balken (Träger ein) und eine dünne Linie (Träger aus).

Wenn Dein Oszi genug Speicher hat und die Zoom- und Cursor-Messfunktionen brauchbar sind, kannst Du das damit gut analysieren.

#7826898
Lesenswert?

Welle 🧐 S. schrieb:

kann ich das Signal von ESP32 schonmal gut erkennen ... erstaunlicherweise auch ohne gedrückte Sendetaste.

Warum erstaunlicherweise? Wenn Du Dein Signal direkt in die Endstufe einspeist, funktioniert der Taster, der dem Original-Controller den Befehl zum Senden gegeben hat, natürlich nicht mehr.

Welle 🧐 S. schrieb:

Was blöd wird, das LF Signal besteht aus Manchester Code und etwas properitären.

Wenn das Triggersignal immer identisch ist, musst Du nicht mal das Protokoll analysieren. Im Fall von OOK brauchst Du dann nur eine Abfolge von Zeiten mit und ohne Träger.

OP #7826952
Lesenswert?

Hmmm schrieb:

Warum erstaunlicherweise? Wenn Du Dein Signal direkt in die Endstufe einspeist, funktioniert der Taster, der dem Original-Controller den Befehl zum Senden gegeben hat, natürlich nicht mehr.

Nee, nee - der Taster verbindet anscheinend auch erst das Signal mit der Endstufe. Der Pegel geht dann richtig hoch und das Teil zieht dann 80mA. Ich habe dann Teilweise 12V an der Antenne! Du siehst auch am Wasserfall wie das Signal ohne Verstärkung aussieht und an welcher Stelle mit verstärkung.

Wenn das Triggersignal immer identisch ist, musst Du nicht mal das Protokoll analysieren. Im Fall von OOK brauchst Du dann nur eine Abfolge von Zeiten mit und ohne Träger.

Ja, ich hoffe noch, dass der/die Hersteller es nicht als Notwendig erachtet haben, die Möglichkeiten auszuschöpfen, weil man kann noch 4 Byte TriggerID mitsenden. Also:

Manchester Properitär Manchester [Premable] [SYNC PATTERN] [ID, ID]

Per Default (SDK) reichen aber Preamble + Syncpattern.

#7826970
Lesenswert?

Welle 🧐 S. schrieb:

Nee, nee - der Taster verbindet anscheinend auch erst das Signal mit der Endstufe. Der Pegel geht dann richtig hoch und das Teil zieht dann 80mA. Ich habe dann Teilweise 12V an der Antenne!

Natürlich hat in der ursprünglichen Schaltung der Taster überhaupt erst mal die 9 Volt der Batterie durchgeschalten, sonst wird Q8 gar nicht mit Spannung versorgt (um die 9 Volt).

Und an dem weiter oben verlinktem TPMS Trigger ohne Mikrocontroller ist die Spannung an der Antenne noch viel höher (ist ja bei dem Schwingkreis auch zu erwarten).

#7827126
Lesenswert?

Auf den von mir verwendeten TPMS-Trigger-Geräten war es so das der Taster den uC mit Spannung versorgt hat und dieser dann über einen Ausgang den Taster überbrückte (so ne Art Selbsthaltung). Hat man den Taster dann losgelassen funkte der uC somit noch eine Weile weiter bis er am Ende der Sequenz den Ausgang low schaltete und sich selbst damit von der Spannungsversorgung abkoppelte.

Wie aber schon oben beschrieben sollte man diesen ganzen Teil übergehen und mit einer permanent gespeisten Endstufe nur noch das Trägersignal erzeugen. Die Programmierung des uC würde übrigens ungemein einfacher wenn die Endstufe den 125 kHz Träger direkt selbst erzeugen würde. Es gibt auch Geräte die das so haben, man muss nur wissen welche... selten zeigt ein Verkäufer ja die "Innereien" die darauf schließen lassen würden.

Aber Du bist ja schon viel weiter und machst den Träger mit dem uC selbst.

Spannendes Projekt übrigens. Mir ist es damals leider nicht gelungen meine Ford Mondeo MK4 Sensoren mit einer solchen Schaltung zu triggern da ich die genaue Triggersequenz nicht ermitteln konnte. Meinem Fahrzeug fehlen die Sendeantennen und einen Profi-Kodierer für 600,-€ wollte ich mir dann auch nicht zulegen...

OP #7827205
Lesenswert?

Olli Z. schrieb:

Spannendes Projekt übrigens. Mir ist es damals leider nicht gelungen meine Ford Mondeo MK4 Sensoren mit einer solchen Schaltung zu triggern da ich die genaue Triggersequenz nicht ermitteln konnte. Meinem Fahrzeug fehlen die Sendeantennen und einen Profi-Kodierer für 600,-€ wollte ich mir dann auch nicht zulegen...

Hallo Olli, ich hoffe noch das die Sensoren wie im in deren Appnote beschrieben, nur mit einen Standardsequenz getriggert werden :) Wenn die allerdings Custom ID.s verwenden muss ich leider das Tool mal bestellen.

Was mich wundert wie die 3rdparty Hersteller an die ganzen Codes kommen. Die geben ja auch regelmässig updates raus.


Den SDRPLAY schicke ich wieder zurück, der empfängt zwar super bis 100kHz aber ich bekomme den nicht mit URH zum laufen. Ging gestern wieder bis 02:oo Uhr :/

OP #7827208
Lesenswert?

Achso für die Nachwelt. Ich hatte das 125kHz Signal im/mit dem EPS32 ja mit einer einfachen LED PWM erstellt, ABER.

Es gibt was cooleres: ESP32 RMT.

https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-reference/peripherals/rmt.html

1
#include "freertos/FreeRTOS.h"
2
#include "freertos/task.h"
3

4
#include "driver/rmt_tx.h"
5
#include <driver/rmt_common.h>
6
#include <driver/rmt_encoder.h>
7

8
rmt_encoder_handle_t encoder = NULL;
9
rmt_channel_handle_t tx_chan = NULL;
10

11
uint8_t bytes_to_send[5] = {0x00, 0x00, 0x00, 0x44, 0xca}; // only some test bytes, can be everything
12

13
void rmt_tx_init() 
14
{
15

16
    rmt_tx_channel_config_t tx_chan_config = {
17
        .clk_src = RMT_CLK_SRC_DEFAULT,         // select source clock
18
        .gpio_num = 33,                         // GPIO number
19
        .mem_block_symbols = 64,                // memory block size, 64 * 4 = 256 Bytes
20
        .resolution_hz = 1 * 1000 * 1000,       // 1 MHz tick resolution, i.e., 1 tick = 1 µs
21
        .trans_queue_depth = 4,                 // set the number of transactions that can pend in the background
22
        .flags.invert_out = false,              // do not invert output signal
23
        .flags.with_dma = false,                // do not need DMA backend
24
    };
25
    ESP_ERROR_CHECK(rmt_new_tx_channel(&tx_chan_config, &tx_chan));
26
    ESP_ERROR_CHECK(rmt_enable(tx_chan));
27

28
    rmt_carrier_config_t tx_carrier_cfg = {
29
        .duty_cycle = 0.40,                     // duty cycle 
30
        .frequency_hz = 125000,                 // KHz
31
        .flags.polarity_active_low = true,      // carrier should be modulated to high level
32
        .flags.always_on = false,               // If set, the carrier can always exist even there's not transfer undergoing
33
    };
34
    //ESP_ERROR_CHECK(rmt_apply_carrier(tx_chan, &tx_carrier_cfg)); // modulate 125kHz carrier to TX channel
35
 
36
}
37

38
void loop() 
39
{
40
rmt_tx_init();
41

42
    rmt_transmit_config_t tx_config = {
43
        .loop_count = 0, // no transfer loop
44
    };
45

46
    rmt_bytes_encoder_config_t bytes_encoder_config = 
47
    {
48
        .bit1 = {
49
        .duration0 = 100, // us
50
        .level0 = 1,
51
        .duration1 = 100, // us
52
        .level1 = 0,
53
        },
54
        .bit0 = {
55
        .duration0 = 50, // us
56
        .level0 = 1,
57
        .duration1 = 50, // us
58
        .level1 = 0,
59
        },
60
        .flags.msb_first = 1
61
    };
62

63
    ESP_ERROR_CHECK(rmt_new_bytes_encoder(&bytes_encoder_config, &encoder));
64
 
65
        while(1)
66
        {
67
        ESP_ERROR_CHECK(rmt_transmit(tx_chan, encoder, bytes_to_send, sizeof(bytes_to_send), &tx_config));
68
        }
69

70
vTaskDelete(NULL);        
71
}
72

73
void app_main()
74
{
75

76
    xTaskCreatePinnedToCore(*loop,"loop",4096,NULL,1,NULL,1);
77

78
}

Carrier hatte rauskommentiert um die Manchester Daten am Oszi sehen/vergleichen zu können.

#7827215
Lesenswert?

Welle 🧐 S. schrieb:

Hallo Olli, ich hoffe noch das die Sensoren wie im in deren Appnote beschrieben, nur mit einen Standardsequenz getriggert werden :)

Welche "Standardsequenz"? Es gibt eine Auswahl an möglichen SYNC Signalen, dann folgen jeweils optional ID und Daten. Und weil die allermeisten TPMS Sensoren mehr können als nur aktiviert zu werden (u.a. Factory Test) wird da relativ sicher mehr als nur der SYNC verwendet um verschiedene Kommandos zu unterscheiden.

Abgesehen davon: Man braucht auch noch die richtige Datenrate.

Was mich wundert wie die 3rdparty Hersteller an die ganzen Codes kommen. Die geben ja auch regelmässig updates raus.

Indem sie mit den Herstellern zusammenarbeiten.

OP #7827235
Lesenswert?

Dieter S. schrieb:

Welle 🧐 S. schrieb: Welche "Standardsequenz"? Es gibt eine Auswahl an möglichen SYNC Signalen, dann folgen jeweils optional ID und Daten.

Hallo Dieter, das 9T Pattern (SYNC Signal), ist per default hinterlegt. Aber es gäbe auch nur noch 2 andere, dass lässt sich leicht durchtesten. Wenn die eine ID nutzen, werde ich die dann sehen wenn ich das Werkstatttool mitschneide.

OP #7827469
Lesenswert?

Olli Z. schrieb:

Von https://fccid.io/ ?

Nee, ich bin bei NXP registriert und habe Zugriff auf deren Appnotes. Ich weiss ja was für ein Chip verbaut ist.

https://www.nxp.com/products/NTM88

Auf dem Bild ist deren Vorschlag für die LF Gun. Quasi das was ich mit dem Amazon Opel Teil mache.

https://www.mikrocontroller.net/attachment/659104/GiJ9L_lWIAAJE-m.jpeg

Auf dm Bild ist ein Hamaton HTS-T01A und ein Schrader 3700.

OP #7827980
Lesenswert?

Update: der SDRPlay1B (150 EUR) ging wieder retoure. Er liess sich nur mit SDRConnect betreiben, die Software ist eine Zumutung, URH ging auch nicht :-/

Ich brauche auf jeden Fall URH support.

Heute kam ein Nooelec RTL-SDR v5 (44 EUR) der läuft sofort mit SDR# und URH! Der ist wesentlich empfindlicher! Ich konnte die MiniWhip weit entfernt irgendwo im Raum aufstellen und konnten das unverstärkte Signal erkennen! Auf Sendung geht der Träger im SDR# durch die Decke, bzw. das Raushlevel auf Null!

Beim dem SDRPlay1B musste ich die Antenne 10cm vor den Ferritkern legen.

Angehängte Dateien:
#7827984
Lesenswert?

Welle 🧐 S. schrieb:

Update: der SDRPlay1B ginf wieder retoure. Er liess sich nur mit SDRConnect betreiben

Dann hast Du etwas falsch gemacht, der läuft definitiv mit anderen Anwendungen.

Welle 🧐 S. schrieb:

Ich brauche auf jeden Fall URH support.

Du treibst einen Riesenaufwand für etwas getastete 125kHz.

Welle 🧐 S. schrieb:

Der ist wesentlich empfindlicher!

Auch das klingt danach, dass Du etwas falsch gemacht hast. Das RTL-SDR-Zeug ist zwar nicht schlecht, aber der 8-Bit-ADC ist schon eine Einschränkung.

OP #7828005
Lesenswert?

Hmmm schrieb:

Welle 🧐 S. schrieb:

Update: der SDRPlay1B ginf wieder retoure. Er liess sich nur mit SDRConnect betreiben

Dann hast Du etwas falsch gemacht, der läuft definitiv mit anderen Anwendungen.

Bei mir nicht. Ich habe ein taufrisches XUbuntu aufgesetzt und alles nach Anleitung installiert ... mit beiden APIs - v2 und v3 - nischt! Ich mache das schon eine Weile. Ist aber auch nicht wichtig.

Welle 🧐 S. schrieb:

Ich brauche auf jeden Fall URH support.

Du treibst einen Riesenaufwand für etwas getastete 125kHz.

Was soll ich sagen, andere schauen stundenlang Fussball im TV? Aber schau dir das an: https://www.youtube.com/watch?v=-uxmmlQr3lA Das ist Aufwand!

Welle 🧐 S. schrieb:

Der ist wesentlich empfindlicher!

Auch das klingt danach, dass Du etwas falsch gemacht hast. Das RTL-SDR-Zeug ist zwar nicht schlecht, aber der 8-Bit-ADC ist schon eine Einschränkung.

Wie geschrieben, das unverstärkte Signal kann ich mit dem Nooelec fast im ganzen Raum emfangen. Beim SDRPlay nur direkt daneben, viel falsch machen kann man da nicht ... ?! Ich habe das Signal ja auch mit SDR# aufgezeichnet und im URH geladen, dick und sauber.

Ist aber auch egal - die Sache ist die, wenn ich mir ein 600 Eur Tool leihe kann ich nicht tagelang damit rumprobieren - da muss das erste Bild sitzen.

#7828011
Lesenswert?

Das 125 kHz Signal läßt sich fast trivial aufzeichnen: Schwingkreis nahe beim Sender, Gleichrichter (Diode) und das Resultat mit einem einfachen Logic Analyzer aufzeichnen. Bereits mehrfach so gemacht mit diversen TPMS Triggern und Tools, das ist vollkommen problemlos.

#7828026
Lesenswert?

Welle 🧐 S. schrieb:

Ich habe ein taufrisches XUbuntu aufgesetzt und alles nach Anleitung installiert ... mit beiden APIs - v2 und v3 - nischt!

Bei mir läuft die API zumindest unter Windows problemlos.

Es könnte aber auch damit zusammenhängen, dass aus Deinem ursprünglich genannten RSP1A plötzlich ein RSP1B wurde. Mag sein, dass einige Software erstmal ein Update braucht, damit sie mit dem neueren umgehen kann.

Welle 🧐 S. schrieb:

viel falsch machen kann man da nicht

Doch, sicher, die Gain-Einstellungen machen z.B. eine Menge aus.

Welle 🧐 S. schrieb:

Ist aber auch egal - die Sache ist die, wenn ich mir ein 600 Eur Tool leihe kann ich nicht tagelang damit rumprobieren - da muss das erste Bild sitzen.

Dann solltest Du vielleicht einfach mal auf die Leute hören, die sowas schon gemacht haben. Meine Aussage "Oszilloskop reicht" war schon exakt so gemeint.

#7829952
Lesenswert?

Weil ich nicht so der "Funker" bin und andere die das lesen vielleicht auch nicht, wollte ich mal das was ich bislang so ermittelt habe teilen. Vermutlich werde ich dafür einiges an Kritik und Belehrungen einstecken müssen, aber das ist ok, wenn sie konstruktiv ist und nicht nur despektierlich.

Die Kommunikationsart die wir hier besprechen hat ja im Grunde nichts mit Funk im herkömmlichen Sinne zu tun. Für ein Funksignal im 125 kHz Band bräuchte es wohl auch eine etwas größere Antenne (~2,1 km lang) mit der man dann aber vermutlich weltweit kommunizieren könnte. Vielmehr ist das worüber wir hier reden eher eine elektromagnetische Kopplung via Induktion, ähnlich einem Transformator ohne Metallkopplung der Spulen. Die sendende Spule erzeugt ein pulsierendes Magnetfeld welches in der empfangenden Spule eine Spannung induziert. Ohne weitere Maßnahmen die dann auch eine gewisse Ausrichtung zur Folge hätten sind solche Effekte eben nur in sehr kurzen Distanzen zu bewältigen. Der Vorteil dieser Art der Kommunikation ist wohl das sie sich nicht so stark durch Metall und Flüssigkeiten dämpfen und ablenken lässt, sich also für "rauhe Umgebungen" eignet in dem niedrige Baudraten kein Problem sind.

Für meinen Versuchsaufbau hatte ich mir als Test-Sender für ein paar Euro einen RDKS-Trigger Handsender gekauft (siehe Bilder). Als Empfänger einen LF-RFID Baustein mit der Bezeichnung RDM6300, wobei es mir da in erster Linie um die Antenne ging, da ich nicht das Material und die Erfahrung habe sowas selbst herzustellen.

Ich habe dann verschiedene Versuche durchgeführt, zuerst einfach das induzierte Magnetfeld der Antenne mit einem Oszi gemessen, während ich den Handsender davor halte. Interessant fand ich, das meine Antenne schon so irgendwas empfängt (antenna_freerun.png). Aber deutlich erkennbar wenn man den Sender startet (antenna_direct.png) in (antenna_direct_zoom.png) sieht man schön die Sendefrequenz und in (antenna_direct_single_wave.png) kann man sie 125 kHz auch schön rausmessen.

Damit kann man aber noch nicht sooo viel anfangen, zumindest nicht wenn man es mit einem Mikrocontroller auswerten möchte. Es geht also darum aus dem induzierten Signal ein Digitalsignal zu wandeln. Dazu hatte ich mir zunächst die Schaltung auf dem Board angeschaut und einen Schaltplan dafür gesucht. Dabei habe ich festgestellt das es von diesen Boards dutzende Varianten gibt. Dann habe ich mir einen rausgesucht den ich halbwegs lesen und vor allem auch nachbauen konnte (RDM6300_reader_schematic.png).

Weil mich die einzelnen Stufen interessierten habe ich zunächst (1) aufgebaut und wieder das Signal mit dem Oszi gemessen. Danach Teil (2), was neben der Gleichrichtung wohl eine Art Hochpassfilter enthält, bevor es auf Teil (3), einen invertierenden Verstärker mit durch Spannungsteiler angehobenem Nullpunkt. Dieser steuert dann in (4) einen Transistor welcher dann als so ne Art 1-Bit A/D Wandler wirkt und wird nochmal durch einen invertierenden OpAmp wieder Pegelgleich zum Eingangssignal geschaltet. Daraus erhält man dann ein schönes Digitalsignal (digital_signal.png) welches sich für den Eingang eines Mikrocontrollers eignet.

Miss man die Periodendauer des kürzesten Symbols erhält man die Baudrate des Signals (determine_baudrate.png), in meinem Fall 3.900 Baud.

Ab hier beginnt nun die Signaldekodierung. Gut erkennbar ist der SYNC mit den 17 Bits (synch_frame.png). Man muss aber hier schon wissen was man sucht... das geschulte Auge mag vielleicht auch die Kodierung noch erkennen (Manchester?). Nach den 17 Bits folgen ja dann die Bytes laut Protokoll.

Für solche Signale sind SDRs doch eher unnötig, wenn nicht sogar sinnlos? Das wäre doch was für einen Logik-Analyzer.

#7834516
Lesenswert?

Ich habe versucht mich über das Thema RFID aufzuschlauen, hatte damit bislang keine Berührungspunkte. Wenn ich es richtig verstanden habe funktioniert die Kommunikation so, das sich der passive Transponder in erster Linie aus dem mit 125 kHz getakteten Magnetfeld des Lesegerätes speist. Im Grunde ist das Prinzip das eines Übertragers/Trafos ohne Ferritkern. Das Magnetfeld der Spule des Lesegerätes induziert eine Spannung in der Spule des Empfängers und des darauf befindlichen Mikrochips. Damit der seine Daten senden kann schließt er für eine logische "0" die Empfangsspule für die Dauer eines Symbols (8 µS) kurz. Das bewirkt in der Spule des Lesegerätes einen Spannungsabfall der Amplitude. Dieses erkennt den Unterschied und liefert am Ausgang der AM-Demodulationsstufe eine 0.

Somit aber wäre ja mein Ansatz eine herkömmliche LF RFID-Leseplatine für den Empfang der LF-Botschaft eines RDKS-Systems zu verwenden falsch? Zum auslesen/mitschneiden ist sicher ein guter Teil der Schaltung sinnvoll, also (1) und zumindest der Teil bis hinter die Diode von (2).

Was dann danach bis zum OpAmp folgt ist vermutlich schon auf die AM-Demodulation ausgerichtet und nicht mehr sinnvoll? Die OpAmp-Stufe mit dem Transistor ist dann sicher auch falsch dimensioniert.

Das ist damit ein Ergebnis erhalten habe könnte ein Stück weit Zufall sein. Das Binärsignal von meinem Handsender sieht zwar gut aus, aber es lies sich nicht mit Manchester ordentlich dekodieren, zumindest hatte die LA-Software damit so ihre Probleme...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren