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?
> 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
Hallo Vanye, danke. ESP32 hätte ich hier, Du meinst einfach per PWM so ein Signal generieren? https://www.az-delivery.de/blogs/azdelivery-blog-fur-arduino-und-raspberry-pi/funktionsgenerator-mit-dem-esp32-teil1 Aber wie bekomme ich das in die Luft?
:
Bearbeitet durch User
Nimm einfach einen 4,000 MHz Quarz, z.B. im hc49 Package und schließe ihn an den CD4060 an und greife die fertigen 125 kHz am Ausgang Q5 ab. Um für die Amplitudenmodulation einen maximalen Modulationsgrad zu erzielen, genügt ein nachgeschaltetes digital getastetes UND-Gatter.
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?"
Welle 🧐 S. schrieb: > Aber wie bekomme ich das in die Luft? Einfach den Deckel eines 125 kHz-Quarzes entfernen. :-)
Welle 🧐 S. schrieb: > Aber wie bekomme ich das in die Luft? Reihenschwingkreis aus einer gängigen RFID-Spule (einige 100uH) und dazu passendem Kondensator (ein paar nF).
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 :(
:
Bearbeitet durch User
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.
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?
:
Bearbeitet durch User
Welle 🧐 S. schrieb: > > Ist das alles 9v oder sieht jemand Spannungswandler? U1 wird der Spannungswandler sein. > Was sind Q7/Q8? Vermutlich zwei MOSFETs. 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.
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.
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.
Ü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 ...
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.
Welle 🧐 S. schrieb: > > 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 ... 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).
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?
:
Bearbeitet durch User
Wie ich bereits geschrieben habe wird der TPMS Sensor die passenden Daten mit der richtigen Modulation erwarten, nur wenige der aktuellen TPMS Sensoren reagieren nur auf einen Träger.
Dieter S. schrieb: > Platine_TPMS.PNG Wichtige Regeln - erst lesen, dann posten! Bitte das JPG-Format (nur) für Fotos und Scans verwenden!
Dieter S. schrieb: > Wie ich bereits geschrieben habe wird der TPMS Sensor die passenden > Daten mit der richtigen Modulation erwarten, nur wenige der aktuellen > TPMS Sensoren reagieren nur auf einen Träger. Kann man mit einem MC auch ein Signal Modulieren? OOK oder so?
Welle 🧐 S. schrieb: > Kann man mit einem MC auch ein Signal Modulieren? OOK oder so? Klar, einfach Dein 125kHz-Signal ein- und ausschalten. Aber vorher solltest Du wissen, was der Sensor genau erwartet.
:
Bearbeitet durch User
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.
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.
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.
Dieter S. schrieb: > 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. Die hier leider nicht. Zumindest nicht am Akkuschrauber :)
Ok, ich werde wohl etwas unfair werden müssen und mir ein offizielles Tool bestellen und dasAktivierungspattern mitschneiden. Was würdet ihr empfehlen, ein SDR der bis 100kHz runter geht?
:
Bearbeitet durch User
Welle 🧐 S. schrieb: > Was würdet ihr empfehlen, ein SDR der bis 100kHz runter geht? Oszilloskop reicht.
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 :)
:
Bearbeitet durch User
Welle 🧐 S. schrieb: > Bei 50% sind es 40mA bei 10% schon 60mA - ich probiere es nochmal mit > 1%. Wenn einem Grundlagenwissen fehlt, sollte man nicht planlos wursteln.
Hmmm schrieb: > Wenn einem Grundlagenwissen fehlt, sollte man nicht planlos wursteln. Keine Sorge, ich komme zum Ziel.
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.
Manfred P. schrieb: > Stephan schrieb: > 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.
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).
:
Bearbeitet durch User
Dieter S. schrieb: > Welle 🧐 S. schrieb: > 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?
:
Bearbeitet durch User
Welle 🧐 S. schrieb: > > Oder wird der durch die HF induziert? Wenn man es richtig macht kann man den LF Detektor fast vollständig über die Energie des LF Feldes betreiben, ähnlich wie bei den passiven RFID Tags, die im selben Frequenzbereich arbeiten.
:
Bearbeitet durch User
Welle S. schrieb: > warum legen die den Sensor nicht so lange schlafen bis > ein Druck detektiert wird Druck messen und schlafen dürften sich gegenseitig ausschließen. > und senden ab dann, wenn der Gyrosensor Werte liefert ... Haben die überhaupt einen Gyrosensor?
Manfred P. schrieb: > Haben die überhaupt einen Gyrosensor? Ja. https://www.nxp.com/docs/en/data-sheet/NTM88Kxx5S.pdf
Das Ausgangssignal an der Antenne sieht so seltsam aus, liegt das an meinem Aufbau?
:
Bearbeitet durch User
Welle 🧐 S. schrieb: > Das Ausgangssignal an der Antenne sieht so seltsam aus, liegt das an > meinem Aufbau? Das ist nur eine halbe Antenne, der Kondensator (diesmal parallel zur Spule) fehlt.
So ein kleiner Kondensator. Danke! Noch zwei Fragen die Sinuswelle hat ihr HIGH an der fallenden Flanke, müsste die nicht exact an der steigenden Flanke enden? T ist die Periodendauer? 8uS (micro, 1hoch6)?
:
Bearbeitet durch User
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.
Ok, nochmal danke. Dann mach ich ich daran dem ESP OOK beizubringen. Ich habe paralell dazu ein passendes Tool und ein SDR (SDRplay1A) im zulauf ... der kann wohl bis 100kHz runter. https://auswuchtshop.de/rdkstpms/programmiergeraete/354303/ateq-vt-truck-2.0-rdks-diagnose-und-programmiergeraet-mit-obdii-power-converter-fuer-lastkraftwagen
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.
Hmmm schrieb: > 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. Ja, mir ist noch nicht ganz klar, wie ich am/mitm Oszi das Signal dekodieren kann? Ich hab nur ein Handheld.
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.
So, mit dem SDRPlay UND einer Twente MiniWhip kann ich das Signal von ESP32 schonmal gut erkennen ... erstaunlicherweise auch ohne gedrückte Sendetaste.
:
Bearbeitet durch User
Was blöd wird, das LF Signal besteht aus Manchester Code und etwas properitären. Aber zu meinem Glück ist es beschrieben.
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.
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.
:
Bearbeitet durch User
Welle 🧐 S. schrieb: > T ist die Periodendauer? 8uS (micro, 1hoch6)? was hat das mit Leitfähigkeit zu tun? S = Siemens oder woanders auch moh https://de.wikipedia.org/wiki/Internationales_Einheitensystem#Abgeleitete_Einheiten_mit_besonderem_Namen https://de.wikipedia.org/wiki/Internationales_Einheitensystem#Basisgr%C3%B6%C3%9Fen_und_Basiseinheiten
Welle 🧐 S. schrieb: > , nee - der Taster verbindet anscheinend auch erst das Signal mit der > Endstufe. Der Pegel geht dann richtig hoch und das Teil zieht dann 80mA. Dann strahlt wohl die Leitung zwischen ESP- und Senderplatine genug ab.
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).
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...
:
Bearbeitet durch User
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 :/
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.
:
Bearbeitet durch User
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.
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.
Gerade gefunden, so sieht das Herstellersetup aus. Bin ich ja garnicht soweit weg von :)
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.
:
Bearbeitet durch User
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.
:
Bearbeitet durch User
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.
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.
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.
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.
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.
:
Bearbeitet durch User
Olli Z. schrieb: > > Für solche Signale sind SDRs doch eher unnötig, wenn nicht sogar > sinnlos? Das wäre doch was für einen Logik-Analyzer. Wer lesen kann, ist klar im Vorteil: Beitrag "Re: 125 KHz Signal"
Ich wollte den SDR auch nur nutzen um das Signal aufzuzeichnen und dann auszuwerten ...
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...
:
Bearbeitet durch User
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.