Forum: Mikrocontroller und Digitale Elektronik Decoder für PT2240B?


von Christoph (Gast)


Lesenswert?

Hallo,

ich habe eine Fernbedieunung die einen PT2240B als Encoder eingebaut 
hat.

Ich möchte diese Fernbedienung in eine Anwendung einbauen, allerdings 
finde ich im Internet keine Infos was für einen Decoder für den PT2240B 
brauche.

Vielleicht kann mir von euch wer helfen?


mfg
Christoph

von Düsentrieb (Gast)


Lesenswert?

evtl pt2272

von Christoph (Gast)


Lesenswert?

wie sicher bist du dir da das der passen könnte??

ich lese leider aus dem Datenblatt nicht heraus welcher da passt!

mfg

von Christoph (Gast)


Lesenswert?

kann mir keiner helfen??

der pt2240b hat ja eine fixe codierung,  der decoder PT2272 hat aber so 
einen Dip Schalter zum einstellen, wie soll das gehn?

von Düsentrieb (Gast)


Lesenswert?

sicher? gar nicht.
eigentlich gehört zum pt2272 der pt2262 .
sowas hab ich , zb in fernb. steckdosen, 3stk + sender : 9,90 bei Obi :)

wie kommst gerade auf den pt2240?

von Christoph (Gast)


Lesenswert?

hab da sehr kleine Fernbedienungen, die kann ich selbst nicht bauen, 
wiel sie so klein sind und weil das zu teuer währe.


die haben eben diesen IC drin.

Ich kenn mich da nicht ganz aus da die Codierung bei dem nicht über DIP 
Schalter läuft sondern fix einprogrammiert ist.

Man müsste die einzlnen Sender also an jeden Decoder anlernen können. 
Beim PT2272 muss man aber die DIP Schalter verwenden um die Codierung 
einzustellen, deshalb glaub ich nicht das es funktionieren könnte....

von Christoph (Gast)


Lesenswert?

kann mir keiner helfen??

von Christoph (Gast)


Lesenswert?

kennt sich damit echt keiner aus???

von Bernd H. (bhallinger) Benutzerseite


Lesenswert?

Laut Homepage weiß das nicht mal der Hersteller :=)

Es gibt Encode da werden Decoder angegeben. Aber beim 2240 eben nicht.

Das heißt dann wohl selber auswerten :=((

von Christoph (Gast)


Lesenswert?

Das hab ich mir schon fast gedacht, hab gesehen das im Datenblatt keiner 
angegeben ist...

hab im Internet gefunden das manche das mit einem PIC 12F629 machen.
Hat wer von euch eine Idee wie das funktionieren könnte?

mfg

von Bernd H. (bhallinger) Benutzerseite


Lesenswert?

Naja das RF Signal demodulieren und dann den Datenstrom über einen 
Portpin einlesen.....
Das sollte mit quasi jedem uC gehen.

Problem ist, dass das Protocoll unbekannt ist. Man müsste es versuchen 
durch mitlesen zu ermitteln. Wenns ein einfaches Protocol ist, dann 
könnte das noch gehen.

Event nicht am Empfänger probieren sondern erst mal direkt am 
Sendeausgang des Encoders. Ich würd halt mal mit nem Speicheroszi 
schauen was rauskommt.

von Christoph (Gast)


Lesenswert?

Hab hier noch ein anderes Datenblatt gefunden da steht glaub ich drin 
wie die Codierung funktioniert.

http://www.princeton.com.tw/downloadprocess/downloadfile.asp?mydownload=PT2240B.pdf

Komm bei dem ganzen leider nicht weiter und hoffe immer noch das mir wer 
helfen kann!

von Bernd H. (bhallinger) Benutzerseite


Lesenswert?

Hallo

Also eigentlich scheint der Code nicht so komplex zu sein.
Jedes Bit begint mit einer steigenden Flanke. Dann muss man die Zeit bis 
zur fallenden Flanke messen. Und am besten auch die Zeit bis zur 
nächsten steigenden Flanke.

Kommt die fallende Flanke nach 1/3 der Zeit bis zur nächsten steigenden 
Flanke, dann ist es eine 0.

Kommt die fallende Flanke erst nach 2/3 er Zeit dann ist es eine 1.

Der einfach heit halber könnte man auch einfach schauen wie der Pegel 
nach einer halben Bitzeit ist.
Ist er 0 =>. Ist  der Pegel da High => 1

Das speichert man sich weg. Dann das nächste Bit.

Wenn alle Bits empfangen sind, schaut man ob es die richtige Adresse 
war. Wenn ja wertet man die Daten aus.

Kommt während der Übertragung für eine Weile keine steigende Flanke, 
dann bricht man eben ab.

von Chriz X. (tc-maxx)


Angehängte Dateien:

Lesenswert?

Hallo,

der Thread ist zwar schon älter aber er passt zu meinem Problem.

Ich habe hier ein paar Funkfernbedienung mit diesem PT2040B (SOIC8).

Der PIC16 auf der Empfängerplatine ist defekt.
Nun muss ich diesen Controller gegen einen Atmel austauschen.

Ich habe direkt am DOUT vom PT2040B (Pin3) das Codeword im Anhang 
aufgenommen.

High im logisch-0: 0.37ms ( 1/4 High und 3/4 Low)
High im logisch-1: 1.08ms ( 3/4 High und 1/4 Low)
Bit-Zeit ( 1Bit ): 1.45ms
                   ======

Low im Sync-Bit  : 11ms
Codeword A0..SYNC: 47ms

Durch Toleranzen im Oszillatorwiderstand weichen die Zeiten bei jeder 
Fernbedienung etwas ab.

Ich bin etwas eingerostet, da meine Basteleien mit µC schon ein paar 
Jahre zurück liegen.

Ich hoffe ihr könnt mir etwas unter die Arme greifen :)
Wie lese ich das Codeword am günstigsten ein?

Meine Überlegungen waren zwei Timer, ein Timer um den ISR bei High am 
Eingang T0 auszulösen und den anderen Timer um die Zeit zu messen?

In meiner Testumgebung verwende ich einen Atmega32

VG
max

von µC-Bastler (Gast)


Lesenswert?

Chriz X. schrieb:
> Wie lese ich das Codeword am günstigsten ein?

Trigger auf steigende Flanke (on Change ISR), Timer mit 2/4 der Bitzeit 
starten und mit Timerablauf den Signalpegel testen.

von Joachim B. (joachimb)


Lesenswert?

Das Pulsmuster des PT2240 entspricht dem des PT2262, wobei die Bits des 
PT2262 eine andere Bedeutung haben.
Damit ist das Pulsmuster zu dem üblicher Baumarkt-Funksteckdosen 
kompatibel. Deshalb sollte es gut möglich sein, eine der hier im Forum 
veröffentlichten Software-Funksteckdosen-Empfangslösungen anzupassen.

Gruß
JoachimB

von Chriz X. (tc-maxx)


Lesenswert?

Danke für eure Antworten !

@joachimb:
Eine Software-Funksteckdosen-Empfangslösung habe ich hier nicht 
gefunden, nur Lösungen für Sender. Kannst du mir einen Link geben?

@µC-Bastler:
So habe ich das jetzt umgesetzt, es funktioniert auch grundlegend!
Zuvor müsste ich aber erst das SYNC-Bit finden bzw. den langen LOW-Pegel 
danach (~11ms). Wie könnte ich das am besten realisieren?

VG max

von Chriz X. (tc-maxx)


Angehängte Dateien:

Lesenswert?

Hallo,
ich habe es hinbekommen.

Das Bitword wird erkannt und die Datenbits verarbeitet.
Der Controller soll mal erkennen, wie lange eine Taste auf der 
Fernbedienung gedrückt wurde und dann entsprechend reagieren...

Ein letztes Problem habe ich allerdings noch:

Wenn man die Taste auf der Fernbedienung loslässt springt mein Programm 
manchmal nicht mehr in die Check-Routine wo die Adresse geprüft wird
und die zu schaltende LED bzw. die Ausgabe auf dem Display bleibt an.

Ich finde den Fehler einfach nicht, der Sourcecode befindet sich im 
Anhang.

VG max

von Altinfo (Gast)


Lesenswert?


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
Noch kein Account? Hier anmelden.