Forum: Mikrocontroller und Digitale Elektronik RFID - China-Reader ohne Spezial-IC


von Uwe F. (ufe)


Angehängte Dateien:

Lesenswert?

Ich hab mir mal die Zutrittskontrolle SMQ-303 aus Hong-Kong für 15 Euro 
schicken lassen.
Darin ist ein 8051-Derivat als uC, 3 LEDs, eine 3x4-Matrix als Keypad, 
ein Tür-Relais, die Stromversorgung (7805) und ein RFID-Leser.
Das alles in einem Plastegehäuse mit einem WAF nahe 100%.

Nun zur Aufgabe:

Der eingebaute uC ist pinkompatibel mit dem atmega8515. Also im 
Idealfall nix löten, sondern nur neuen uC und programmieren.
Die Belegung aller Anschlüsse inkl. Tastaturmatrix ist gut zu erkennen.

Mein Problem: Der RFID-Leser ist nicht mit einem EM4095 oder U2270B o.ä. 
aufgebaut, sondern mit 2 CMOS-IC und einer Handvoll Hühnerfutter.
Es gibt 4 Anschlüsse: +5V, Masse, den "fast"-Digital-Ausgang DR-OUT mit 
den RFID-Daten zum uC und einem Eingang CFE. CFE=LOW gibt den RFID-Leser 
frei, CFE>1V sperrt den Transponder.
Im Original laüft das bis ca. 15cm Abstand 1A!

Nun dachte ich mir, das sieht aus wie der U2270B. Im Prinzip macht der 
lt. Blockschaltbild nichts anderes. Also DR-OUT an den Pind.3 der 
Pollin-Platte. Da passiert aber nichts. Im Display steht weiter 
"Check...", Nichts wird erkannt. Der parallel angeschlossene 
Originalreader geht aber.

Ich hab das Signal auch schon mit 2x 4093-Schmitt-Trigger etwas Steiler 
gemacht, invertiert usw. Auf dem Oszi sieht schon so aus wie die 
Pollin-Signale.

1. frage: Ist die Polarität der Manchester-Signale am DR-OUT wichtig? 
Eigentlich ja nicht...
2. frage: Wie manuell Dekodieren. Mit der em4095.lib im Bascom geht es 
ja anscheinend nicht.

Mache ich nun mit dem vorhandenen ID-Modul weiter oder löt ich mir mit 
dem EM4095 was zusammen und nehm BASCOM? Hat schon mal wer sowas zu Fuß 
dekodiert? (Möglichst mit BASCOM)

Uwe

von Jörg S. (joerg-s)


Lesenswert?

>1. frage: Ist die Polarität der Manchester-Signale am DR-OUT wichtig?
>Eigentlich ja nicht...
Je nachdem wie die Software gestrickt ist.

>Mache ich nun mit dem vorhandenen ID-Modul weiter oder löt ich mir mit
>dem EM4095 was zusammen und nehm BASCOM
Wieso baust du ihn denn nicht 1:1 nach? Irgendwie versteht ich noch 
nicht so recht um was es dir geht.

von Uwe F. (ufe)


Lesenswert?

naja, nachbauen will ich eigentlich gar nichts. Der Reader wie in den 2 
Zeichnungen abgebildet liegt bei mir auf dem Schreibtisch. Mein Problem 
ist, das das Signal aus dem ID-Modul offensichtlich nich völlig 
identisch mit den Signalen vom U2270/EM4095 ist. Im Prinzip kommt bei 
den beiden IC-Typen am Ausgang das gefilterte und "digitalisierte" 
RFID-Signal raus.

Nichts anderes macht diese diskret aufgebaute Schaltung. Ich hatte nun 
die Hoffnung, dass ich mit der Bascom-Lib em4095.lib die Hitag-Funktion 
nutzen kann und das Signal einfach einlesen kann. Dann brauch ich 
hardwaretechnisch nichts zu verändern.

Geht das nicht, muß ich das ID-Modul rauslöten und durch ein kleines 
em4095-Modul ersetzen. Die Große Spule im Gehäuse kann ich ja 
weiterverwenden.

Schön wäre eben, wenn jemand sagt "kenn ich, hab ich schon so mal 
gemacht"

Wenn das klappt, will ich 9 Stück davon vernetzen. Da ist 
Hardware-Aufwandsminimierung schon sinnvoll.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Vielleicht lässt du ja dann mal die Restriktion "muss alles mit
BASCOM gehen" fallen?  Beispielsweise ist hier vorletztes Jahr

http://www.mikrocontroller.net/articles/RFID_T%C3%BCrmodul

eine RFID-Reader-Implementierung beschrieben worden, bei der die
Software komplett mit dabei liegt.  Da kannst du ggf. an der
Software feilen, bis sie deinen Datenstrom versteht.

von Zorc (Gast)


Lesenswert?

> Ist die Polarität der Manchester-Signale am DR-OUT wichtig?
Eigentlich ja nicht...


Das Empfangene ist ja synchron zum Sender. Daher kann der Empfaenger die 
Polaritaet einschraenken.

von Micha (Gast)


Lesenswert?

Kann jemand erklären wie die Schaltung oben (ID-Modul.gif) funktioniert? 
Also der Teil bis zur Gegentaktendstufe ist klar, aber das danach nicht 
mehr so ganz.

Ich möchte mir einen RFID-Reader aufbauen und überlege noch ob diskret 
oder als fertiges IC (EM4095). Welche Version (diskret/IC) ist 
zuverlässiger, flexibler und Leistungsfähiger (größere "Reichweite") 
wenn sie ordentlich aufgebaut wurde?

von Uwe F. (ufe)


Angehängte Dateien:

Lesenswert?

Ja, ich kann die Funktion nachvollziehen, immerhin liegt das Teil bei 
mir auf dem Tisch und funktioniert. Die Messungen mit dem Oszi zeigen 
dabei auch sehr schön, an welcher Stelle in etwa was passiert.

Der obere Teil ist sicherlich klar. Es werden 125kHz erzeugt und auf die 
Spule gegeben. Resonanzfrequenz spielt hier nur eine untergeordnete 
Rolle, da die 125kHz ja per Quarz feststehen. Stimmt die Resonanzfreq. 
nicht, sinkt nur die Reichweite. An der Spule mißt der Oszi etwa 90V 
(Spitze-Spitze).

An der Diode D1 steht das Amplituden(de)modulierte Signal zur weiteren 
Verarbeitung zur Verfügung. Der 4069 beinhaltet 6 Inverter, welche sich 
als Analog-Verstärker missbrauchen lassen. Die ersten 4 Stufen sind 
Tiefpass und Bandpass. Die letzte Stufe verstärkt das Signal derart, 
dass auf dem Oszi Rechtecke zu erkennen sind. Damit kommt der 
Ursprünglch verwendete uC zurecht. Dieses Signal an einem AVR (2313 oder 
m8) und der Bascom-Funktion CONFIG HITAG / Readhitag() geht leider 
nicht. Daher meine oben gestartete Anfrage bzgl. Dekodierung.

Ich hab nun einen U2270B nur als Dekoder dahintergeschaltet und 
dekodiere wie gehabt mit einem AVR (2313 oder m8) und der 
Bascom-Funktion CONFIG HITAG / Readhitag().

Warum der ganze Zirkus mit dem ID-Modul und nicht einfach der U2270 
allein?

Die Reichweite der U2270-Lösung ist bei mir nie weiter als 5cm, egal 
welche Antenne ich verwende. In dem China-Teil ist eine Antenne ca. 
11x11cm gewickelt. (Innenkante gehäuse 11,5x11,5cm)

Damit komme ich zuverlässig auf 15cm !!! Außerdem brauche ich mechanisch 
fast nichts umbauen. der SMD-U2270 ist einfach mit CuL-Draht auf den 
ATtiny2313 draufgepappt. fertig...


Wer die Funktion der 4069-Schaltung verstehen will, sollte sich mal das 
Blockschaltbild des U2270 anschauen. Der untere Teil ist in Etwa das, 
was hier zu Fuß gemacht wird.

Uwe

von Micha (Gast)


Lesenswert?

Vielen Dank für die Erklärung. Und warum 4069 als Verstärker und keine 
OPs? Weils billiger ist?

Aus deiner Erläuterung schließe ich, dass die Entfernung eher vom Sender 
als vom Empfänger profitiert, richtig?

Warum nimmst du nicht wie von Jörg vorgeschlagen den Code vom Türmodul 
(zumindest als Grundlage für eine Portierung in BASCOM)?

von Uwe F. (ufe)


Lesenswert?

Micha schrieb:
> Vielen Dank für die Erklärung. Und warum 4069 als Verstärker und keine
> OPs? Weils billiger ist?
>
vermutlich richtig. Ich hab nur die Schaltung abgezeichnet...

> Aus deiner Erläuterung schließe ich, dass die Entfernung eher vom Sender
> als vom Empfänger profitiert, richtig?
>
so ist auch mein Eindruck...

> Warum nimmst du nicht wie von Jörg vorgeschlagen den Code vom Türmodul
> (zumindest als Grundlage für eine Portierung in BASCOM)?

Weil ich faul bin. Ich muß/will am und im Einfamilienhaus alle 
relevanten Türen mit so einem Modul ausrüsten und habe dazu etwas 
gesucht, was mechanisch bereits fertig ist und mit wenigen Handgriffen 
auf meine Bedürfnisse anzupassen ist. Diese China-Teile in der iBucht 
für 13-15 Euro sehen ganz gut aus und haben alles dran was ich brauche.
Meine Anforderungen Sind:
- Tastatur und RFID als Eingabemöglichkeit (per V24 zur Zentrale)
- LEDs, evtl. LCD und Beeper als Ausgabe (per V24 von Zentrale)
- Relais für Türöffner (per V24 von Zentrale)
Zentrale bewertet die RFID und Codeeingaben von den 9-10 Terminals im 
Haus und öffnet ggf. die Türen. Datenhaltung per MS-SQL-Server 2005. 
Ggf. werden Infos per LED und/oder LCD am Terminal ausgegeben.

Uwe

von Hendrik M. (kennichdich)


Lesenswert?

Hallo

ich weiß es passt zwar nicht so richtig zum Thema aber ich es vielleicht 
möglich das mir jemand eine Anleitung für das smq-303 schickt oder mir 
einen Link geben kann zum download...

Da ich diese nirgens gefunden habe und deshalt das Codeschloss nicht 
nutzen kann...


vielen Dank

Hendrik

von Purzel H. (hacky)


Lesenswert?

Diese RFID Antennen haben alle eine Reichweite, die dem Durchmesser der 
antenne entspricht.

von xfred343 (Gast)


Lesenswert?

Würde mich interessieren, was aus dem Projekt geworden ist,
habe gerade auch von Conrad ein Codeschloss mit RFID (AEI DK-9206) vor 
mir,
verbaut ist die gleiche Schaltung (HC74393 und CD4069, nur 4 Mhz Quarz) 
und ich kann in einer Schleife mit Bascom 0 und 1 auslesen, die 
RFID-Routine von Bascom geht nicht.

Auf einer Huckepackplatine befindet sich ein Atmega8 und ein serielles 
EEprom 24C64, auf der Tastatur eine sehr eigenartige Matrix (6 
Anschlüsse für 12 Tasten, dabei sind die Tasten 0, * und Raute zwischen 
den Spaltenanschlüssen geschaltet..)

Hat es jemand geschafft, den Rohdatenstrom in Bascom zu dekodieren?

Diese Codeschlösser sind superfertig mit Gehäuse und Tastatur, 
allerdings völlig unbrauchbar: wenn ich es aufschraube, kann ich die 
Relaiskontakte kurzschließen und "einbrechen" - ein Codeschloss ist nur 
sinnvoll mit Außen- und Innen/Decodierstation, in meinem Fall soll noch 
ein Logging dazukommen.

von Jörg D. (jojo150272)


Lesenswert?

Hallo,

habe seit längerem auch so ein RFID Teil und wollte es schon immer mal 
mit einen AtMega 162 umrüsten. Hat jemand von euch schon was erreicht 
oder wie weit seit Ihr??? Man könnte ja auch versuchen zusammen zum Ziel 
zu kommen.

Wollte wenn möglich die Software mit Bascom machen.

Gruß JOJO

von Basti M. (eslavator)


Lesenswert?

Habe mir das RFID Teil auch von Ebay besorgt. 11€ mit Versand - nicht 
schlecht.

Meine Frage: Kann man daran einfach eine andere Antenne dranhängen, 
welche vielleicht wie im Projekt "RFID Türöffner" in einen Lichtschalter 
(Unterputzdose) passt? Und wo bekomme ich die?


Danke!
Sebastian

von immer diese Probleme! (Gast)


Lesenswert?

Hat mir jemand etwas zum aneignen warum die ersten vier Stufen ein 
Filter sein sollen?

Wie funktioniert der Filter?

von tomgr (Gast)


Lesenswert?

Jörg Droß schrieb:
> Hallo,
>
> habe seit längerem auch so ein RFID Teil und wollte es schon immer mal
> mit einen AtMega 162 umrüsten. Hat jemand von euch schon was erreicht
> oder wie weit seit Ihr??? Man könnte ja auch versuchen zusammen zum Ziel
> zu kommen.
>
> Wollte wenn möglich die Software mit Bascom machen.
>
> Gruß JOJO

Hallo,

bei mir läuft das Teil mit Bascom auf einem Mega32.
Die Reichweite ist sehr gut.

gruss thomas

von ufe (Gast)


Lesenswert?

@tomgr
Hast Du den Mega32 mit Bascom in der unveränderten Hardware des 
RFID-Readers laufen? D.h. alten IC raus und neuen rein, Bascom-Code rauf 
und fertig?

Wenn ja, wie hast Du die Dekodierung des RFID-Signals in Bascom gelöst?

Kannst Du was zur Nachnutzung anbieten...

Gruß
Uwe

von tomgr (Gast)


Lesenswert?

Hallo Uwe,
der Mega32 ist nicht Pinkompatibel, hängt im Moment extern dran.

Der AtMega 162 sollte aber gehen, ist Pinkompatibel zum orginal.

Ich habe meine Routine vom Pollin Board mal wieder rausgekrammt, und 
eigendlich nur _cfe (_cfe=0) im Code umgedreht.
Der Reader liest die Tag's und ich setzte die ID's ins LCN Format um, um 
den Transpondercode im LCN auszuwerten, um da, die verschiedenen 
Aktionen auszulösen.
Codeauszug :
1
 
2
Dim Tags(5) As Byte                                      '"Tags" als Array mit 5 Bytes definieren
3
   Dim Zaehler As Byte                                      '"Zähler" als Byte definieren
4
'   Config Portb = Output                                    'Port B als Ausgang definieren
5
   Config Hitag = 64 , Type = Em4095 , Demod = Pind.3 , Int = @int1       'konfiguriert den Timer und die Variablen für HITAG
6
   _cfe Alias Portd.4                                       '_cfe wird dem Portd.2 zugewiesen
7
   Config _cfe = Output                                     '_cfe wird als Ausgand definiert
8
'   _cfe = 1                                                 '_cfe wird high
9
      _cfe = 0
10
   On Int1 Checkints Nosave                                 'Int1 wird als Eingang für HITAG verwendet
11
'   Mcucr.isc10 = 1                                          ' entspricht: config INT1 = changing ( der Befehl wird vom MC unterstützt,
12
'   Mcucr.isc11 = 0                                          ' beim 2313 aber nicht von Bascom)
13
    Config Int1 = Change
zum testen reicht auch jeder andere Mega, aus dem Schaltplan oben, 
müssen nur die beiden Leitungen der Antennenschaltung auf einen IRQ und 
einen Ausgang gelegt werden.

gruss thomas - der erstmal, einige atmega162 besorgen muss.

von ufe (Gast)


Lesenswert?

Hallo Thomas,

ich habe vor mehr als 1 Jahr mal mit dem mega8515 probiert, weil der 
nahezu unverändert einsetzbar ist. Allerdings wollte der die 
RFID-Signale nicht dekodieren. Siehe mein Beitrag vom 19.2.2010...
1
'****************************************************************************
2
' RFID mit dem SMQ303
3
' Buzzer ansteuern: Vom PC aus und/oder bei Tastendruck (abschaltbar)
4
' LCD Blinkende Zeichen
5
' Sabotagekontakt / Spontanmeldung und Abfrage
6
'
7
'****************************************************************************
8
Const Sim = 1
9
10
#if Sim = 1
11
  $sim
12
#endif
13
14
$regfile = "m8515.dat"                  ' ATmega8515-Deklarationen
15
16
Const Quarz = 8000000                   ' Quarz: 8 MHz
17
$crystal = Quarz
18
19
$hwstack = 128
20
$swstack = 128
21
$framesize = 128
22
23
$baud = 1200                            ' Baudrate der UART: 1200 Baud
24
25
On Urxc Ser_inp                         ' Interrupt-Routine setzen
26
Enable Urxc                             ' Interrupt URXC einschalten
27
28
#if Sim = 0
29
  Config Watchdog = 2048                ' 2 Sekunden Watchdog
30
  Start Watchdog                        ' Start watchdog timer
31
#endif
32
33
Const Pre = 8
34
35
Config Timer0 = Timer , Prescale = Pre
36
On Ovf0 Tim0_isr                        ' Define the ISR handler
37
Enable Timer0
38
39
Const Reload = Int(quarz /((256 * Pre) * 10))
40
                                         ' Teiler um mit Timer0 auf 100ms-INT zu kommen
41
42
Config Hitag = 64 , Type = Em4095 , Demod = Pind.3 , Int = @int1       'konfiguriert den Timer und die Variablen für HITAG
43
Config Int1 = Change
44
On Int1 Checkints Nosave                'Int1 wird als Eingang für HITAG verwendet
45
46
47
Enable Interrupts                       ' Interrupts freigeben
48
49
50
Const Lstring = ""                      ' Leerstring
51
Const Cr = 13                           ' Carrige Return
52
Const Lf = 10                           ' LineFeed
53
Const Null = 0                          ' Null
54
55
Const Aus = 0                           ' Wert für aus
56
Const Ein = 1                           ' Wert für ein
57
58
59
'****************************************************************************
60
'Pins / Zuweisung der Ports
61
62
Led_power Alias Portb.1                 ' Led oben rot "POWER"
63
Led_ok Alias Portb.2                    ' Led mitte grün "OK"
64
Led_mode Alias Portb.3                  ' Led unten gelb "MODE"
65
66
Relais Alias Portb.4                    ' Relais H zieht an
67
Signal Alias Portd.4                    ' L = Beep
68
Cfe Alias Portd.6                       ' /CFE L=Transponder arbeitet
69
70
Sabotage Alias Pind.2                   ' Sabotagekontakt L=OK
71
72
'Tastatur PortC
73
74
Jumper Alias Pinc.7
75
76
Zeile123 Alias Pinc.0                   ' 4 Zeilen mit PullUP-R
77
Zeile456 Alias Pinc.1
78
Zeile789 Alias Pinc.2
79
Zeile000 Alias Pinc.3
80
81
Spalte147 Alias Portc.4                 ' 3 Spaltenausgänge
82
Spalte258 Alias Portc.5
83
Spalte369 Alias Portc.6
84
85
Beep Alias Pinb.0                       ' Klingeltaste als Enter
86
87
'****************************************************************************
88
Startup:
89
'****************************************************************************
90
91
Ddra = &B0000_0000                      ' EEEE_EEEE
92
Ddrb = &B1111_1110                      ' AAAA_AAAE
93
Ddrc = &B0111_0000                      ' EAAA_EEEE
94
Ddrd = &B1101_0010                      ' AAEA_EEAE
95
Ddre = &B000                            ' EEE
96
97
Porta = &B0000_0000                     '
98
Portb = &B0000_1111                     '
99
Portc = &B1111_1111                     '
100
Portd = &B1111_1111                     '
101
Porte = &B000                           '
102
103
104
'****************************************************************************
105
'
106
Const Kennung = "Terminal 01"           ' Startmeldung (20 Byte lang)
107
'                12345678901234567890
108
'****************************************************************************
109
'Variablen
110
Dim Bl As Byte                          ' Überwachung der Stringlänge im Buffer
111
Dim C As Byte
112
Dim Buffer As String * 16               ' Zeichenpuffer für serielle Eingaben
113
Dim Lb As Byte                          ' Pufferlänge
114
Dim Cmd As String * 5
115
116
Dim Scounter As Word                    ' zählt für 100 ms
117
Dim Sekunde As Byte                     ' Sekundenzähler
118
Dim Relaistimer As Byte
119
120
Dim Tastenklicks As Bit                 ' Tastenklicks ein/aus
121
Dim Sperre As Bit                       ' Terminal gesperrt
122
Dim Waiting As Bit                      ' Wartebit für gelbe LED
123
Dim Led As Bit                          ' Zustand der Status-LED
124
Dim Takt As Bit                         ' Takt-LED
125
Dim Takt1s As Bit                       ' 1s-Takt
126
Dim Takt100ms As Bit                    ' 100ms-Takt
127
Dim Tmp_takt As Bit                     ' aktueller Takt für LED
128
129
Dim Code As Byte                        ' Zustandscode der aktuellen LED
130
Dim M As Byte                           ' Zählvariable
131
Dim N As Byte
132
133
Dim Puffer(17) As Byte                  ' LED-Array
134
135
Dim Signalcounter As Byte
136
Dim Keycounter As Byte
137
Dim Keyzeile As Byte
138
Dim Keyspalte As Byte
139
Dim Keytemp As Byte
140
Dim Keychr As String * 5
141
142
Dim Tags(5) As Byte                     ' "Tags" als Array mit 5 Bytes definieren bytes
143
Dim Zaehler As Byte                     ' "Zähler" als Byte definieren
144
Dim Wert As String * 10                 ' "Wert" als String mit 5 Hexwerten definieren
145
146
'****************************************************************************
147
148
  'Variablen setzen----------------------------
149
   Cfe = 0                              ' cfe wird 0 = Spule ein
150
   Set Spalte147
151
   Set Spalte258
152
   Set Spalte369
153
154
   Reset Sperre
155
   Reset Waiting
156
   Reset Relais
157
   Set Tastenklicks
158
   Set Signal
159
160
   Reset Led_power
161
   Reset Led_ok
162
   Reset Led_mode
163
164
165
   Buffer = Lstring                     ' Buffer leer
166
   Bl = Null                            ' Bufferlänge = 0
167
   C = Null                             ' ser.Puffer leer
168
169
   Scounter = Reload                    ' 100 ms-Zähler auf Startwert
170
   Sekunde = 0                          ' Sekundenteiler auf 0
171
   Keycounter = 0
172
173
   Set Takt
174
175
Do                                      ' Do-Schleife
176
177
  If Sperre = 1 Then Goto Ohne_rfid
178
179
  If Readhitag(tags(1)) = 1 Then        ' INT1 wird enabled
180
    Cfe = 1
181
    Reset Led_power                     ' rote LED aus
182
183
    For Zaehler = 5 To 1 Step -1        ' For-Schleife beginnend von 5 nach 1; rückwärts zählend
184
      Wert = Wert + Hex(tags(zaehler))  ' "Wert" = bestehender inhalt in der Variable + gerade gelesenen Tag an Position vom Zähler
185
    Next                                ' Ende For-Schleife
186
    Cfe = 0
187
188
    Disable Int0                        ' damit kein Tastendruck dazwischenrutscht
189
    Print "rfid:";
190
    Print Wert
191
    Enable Int0
192
193
    Set Led_power                       ' rote LED ein
194
195
  End If                                ' Ende der If-Abfrage
196
197
Ohne_rfid:
198
199
  If Sperre = 1 Then Cfe = 1 Else Cfe = 0
200
  Waitms 500                            ' Warte 500 ms
201
202
Loop                                    ' Sprunganweisung zum Anfang Do-Schleife
203
204
End
205
206
'****************************************************************************
207
Ser_inp:
208
'****************************************************************************
209
210
  C = Udr                               'Byte aus der UART auslesen
211
  ' ##### Print Chr(c);
212
  ' auf Zeichen prüfen und ggf. verarbeiten
213
  '--------------------------------------------------------------------------
214
  If C > 32 And C < 128 And Bl < 50 Then
215
                              ' wenn ASCII Zeichen und kürzer als 15 Zeichen..
216
    Buffer = Buffer + Chr(c)            ' ...dann an Puffer anhängen
217
    Bl = Bl + 1                         ' Counter++
218
  Else
219
    If C = Cr Then Gosub Handlebuffer   ' sonst auswerten
220
  End If
221
  '--------------------------------------------------------------------------
222
Return
223
224
'****************************************************************************
225
Handlebuffer:
226
'****************************************************************************
227
228
  Lb = Len(buffer)
229
  Cmd = Left(buffer , 2)
230
'............................................................................
231
232
      Select Case Lb                    ' welches Kommando
233
        Case 2 : If Cmd = "::" Then
234
                    Print Kennung       ' Kennung abfragen
235
                  End If
236
                  If Cmd = ":." Then
237
                    Print "."           ' Ping antworten
238
                  End If
239
                  If Cmd = ":!" Then
240
                    Print ">Reset Terminal"
241
                    Print ">Warte auf Reboot..."
242
                    Wait 1
243
                    Disable Interrupts
244
                  End If
245
                  If Cmd = ":p" Then Reset Led_power
246
                  If Cmd = ":P" Then Set Led_power
247
                  If Cmd = ":o" Then Reset Led_ok
248
                  If Cmd = ":O" Then Set Led_ok
249
                  If Cmd = ":m" Then Reset Led_mode
250
                  If Cmd = ":M" Then Set Led_mode
251
                  If Cmd = ":w" Then Reset Waiting
252
                  If Cmd = ":W" Then Set Waiting
253
                  If Cmd = ":s" Then Reset Sperre
254
                  If Cmd = ":S" Then Set Sperre
255
                  If Cmd = ":k" Then Reset Tastenklicks
256
                  If Cmd = ":K" Then Set Tastenklicks
257
258
        Case 4 : If Lcase(cmd) = ":r" Then
259
                    Cmd = Mid(buffer , 3 , 2)
260
                    N = Val(cmd)
261
                    If N > 0 And N < 100 Then
262
                      Set Led_ok
263
                      Relaistimer = N
264
                      Set Relais
265
                    End If
266
                  End If
267
                  If Lcase(cmd) = ":b" Then
268
                    Cmd = Mid(buffer , 3 , 2)
269
                    N = Val(cmd)
270
                    If N > 0 And N < 100 Then Signalcounter = N
271
                  End If
272
        Case Else :
273
      End Select
274
'............................................................................
275
276
  Buffer = Lstring                      ' Buffer leeren
277
  Bl = Null                             ' Bufferlänge = 0
278
279
Return
280
281
'-------------------------------------------------------------------------------
282
Checkints:                              ' Unterroutine "Checkints:"
283
'-------------------------------------------------------------------------------
284
285
  Call _checkhitag                      ' Eine ausgelagerte Unterroutine aufrufen
286
287
Return                                  ' Sprunganweisung in die Hauptschleife
288
289
'****************************************************************************
290
Tim0_isr:                               ' Timer0-ISR
291
'****************************************************************************
292
293
  If Scounter > Null Then               ' Per Zählvariable eine 100ms-Funktion machen
294
    Scounter = Scounter - 1
295
  Else
296
    Scounter = Reload                   ' Reloadwert für 100ms
297
    Gosub 100ms                         ' Funktion 100ms
298
  End If
299
300
'************* Keypad *****************************************************
301
' 0   alles aus
302
' 10  spalte1 ein
303
' 20  zeile1-3 lesen und spalte1 aus
304
' 30  spalte2 ein
305
' 40  zeile1-3 lesen und spalte2 aus
306
' 50  spalte3 ein
307
' 60  zeile1-3 lesen und spalte3 aus
308
309
  If Keycounter < 60 Then
310
    Keycounter = Keycounter + 1
311
  Else
312
    Keycounter = 0
313
  End If
314
315
  If Keycounter = 10 Then Reset Spalte147
316
  If Keycounter = 30 Then Reset Spalte258
317
  If Keycounter = 50 Then Reset Spalte369
318
319
  If Keycounter = 20 Then
320
    Keyzeile = 0
321
    Keyzeile = Pinc And &B0000_1111
322
    If Keyzeile > 0 Then
323
      Keycounter = 0
324
      Keytemp = Keyzeile + &H10
325
    End If
326
    Set Spalte147
327
  End If
328
329
  If Keycounter = 40 Then
330
    Keyzeile = 0
331
    Keyzeile = Pinc And &B0000_1111
332
    If Keyzeile > 0 Then
333
      Keycounter = 0
334
      Keyzeile = Keyzeile + &H20
335
    End If
336
    Set Spalte258
337
  End If
338
339
  If Keycounter = 20 Then
340
    Keyzeile = 0
341
    Keyzeile = Pinc And &B0000_1111
342
    If Keyzeile > 0 Then
343
      Keycounter = 0
344
      Keyzeile = Keyzeile + &H30
345
    End If
346
    Set Spalte369
347
  End If
348
349
  If Keycounter = 0 And Keytemp > 0 Then
350
351
    If Keyzeile = &H11 Then Keychr = "1"
352
    If Keyzeile = &H21 Then Keychr = "2"
353
    If Keyzeile = &H31 Then Keychr = "3"
354
    If Keyzeile = &H12 Then Keychr = "4"
355
    If Keyzeile = &H22 Then Keychr = "5"
356
    If Keyzeile = &H32 Then Keychr = "6"
357
    If Keyzeile = &H14 Then Keychr = "7"
358
    If Keyzeile = &H24 Then Keychr = "8"
359
    If Keyzeile = &H34 Then Keychr = "9"
360
    If Keyzeile = &H18 Then Keychr = "*"
361
    If Keyzeile = &H28 Then Keychr = "0"
362
    If Keyzeile = &H38 Then Keychr = "#"
363
364
    Print Keychr;
365
366
  End If
367
368
  If Beep = 0 Then Print Chr(lf) ; Chr(cr)
369
370
  If Tastenklicks = 1 Then
371
    Reset Signal
372
    Waitms 50
373
    Set Signal
374
  End If
375
376
  If Keycounter = 0 Then Keytemp = 0
377
378
Return
379
380
'****************************************************************************
381
100ms:                                  ' 100Milli-Sekunden-Interrupt
382
'****************************************************************************
383
384
  If Sperre = 1 Then Led_ok = Takt Else Reset Led_power
385
386
  Takt = Takt Xor 1                     ' LED = NOT LED
387
  Takt100ms = Takt
388
389
  If Waiting = 0 Then Reset Led_power Else Led_power = Takt
390
  If Sperre = 1 Then Led_power = Takt
391
392
#if Sim = 0
393
  Reset Watchdog
394
#endif
395
396
  If Sekunde > Null Then
397
    Sekunde = Sekunde - 1
398
  Else
399
    Gosub 1s
400
    Sekunde = 10
401
  End If
402
403
  If Relaistimer > Null Then
404
    Relaistimer = Relaistimer - 1
405
  Else
406
    Reset Relais
407
    Reset Led_ok
408
  End If
409
410
  If Signalcounter > Null Then
411
    Signalcounter = Signalcounter - 1
412
    Reset Signal
413
  Else
414
    Set Signal
415
  End If
416
417
Return
418
419
'****************************************************************************
420
1s:                                     ' Sekundenroutine
421
'****************************************************************************
422
423
   Led = Led Xor 1
424
   Takt1s = Led
425
   If Waiting = 1 Then Reset Led_mode Else Led_mode = Led       ' gelbe LED blinkt
426
                                      ' dauerlicht, wenn auf etwas gewartet wird
427
Return
428
429
'****************************************************************************
Mir ist noch nicht recht klar, warum es nicht geht. Int1 ist auf Change, 
auch sonst habe ich alles von Pollin nachgestrickt. Ich hatte beide 
Varianten (Pollin mit 2313 und SMQ303 mit m8515) nebeneinander auf dem 
Tisch und konnte mit dem Oszi vergleichsmessungen machen. Es hätte gehen 
sollen...
Bestimt habe ich eine Kleinigkeit in der Programmierung übersehen.

Vielleicht siehst Du ja einen Fehler.

Übrigens sind die Portzuweisungen Psaaend zur China-Hardware.

Gruß
Uwe

von tomgr (Gast)


Lesenswert?

Hallo Uwe,

ich schaue mir das mal an, und specke meinen Code mal ab, da sind einige 
Dinge drin, die ich nicht posten kann.

gruss thomas

von tomgr (Gast)


Lesenswert?

Hallo Uwe,

hab auf die schnelle mal den Code bei mir, auf einem Mega16 mit 16 MHz 
Quarz getestet.
Port's vom IC-Sockel abgegriffen.

Die ID's zeige ich in dem Display an, es geht.

Den LCN Code habe ich hier rausgeworfen.
1
$regfile = "m16def.dat"
2
3
$crystal = 16000000
4
$hwstack = 40
5
$swstack = 32
6
$framesize = 128
7
8
$baud = 9600
9
Config Com1 = Dummy , Synchrone = 0 , Parity = Even , Stopbits = 1 , Databits = 7 , Clockpol = 0
10
11
   Config Lcdpin = Pin , Rs = Porta.1 , E = Porta.2 , Db4 = Porta.3 , Db5 = Porta.4 , Db6 = Porta.5 , Db7 = Porta.6
12
   Config Lcd = 16 * 2                                      'konfiguriert die Displaygröße
13
   Config Lcdbus = 4
14
   Cursor Off
15
   Cls
16
17
' LED Ports
18
      Config Pinb.4 = Output                                'LED
19
      Config Pinb.5 = Output                                'LED
20
      P_sende_led Alias Portb.4
21
      P_empfang_led Alias Portb.5
22
      Config Pind.5 = Output                                'LED
23
      Config Pind.6 = Output                                'LED
24
      Config Pind.7 = Output                                'LED
25
      P_ok_led Alias Portd.5
26
      P_mode_led Alias Portd.6
27
      P_power_led Alias Portd.7
28
      Config Pinc.3 = Output                                'LED
29
      P_sound Alias Portc.3
30
      P_sound = 1
31
32
'------------------------------------------------------------------------------------------------------------------
33
'    Variablen Allgemein
34
      Dim B_sec_zaehler As Byte
35
      Dim B_minuten_zaehler As Byte
36
      Dim B_i As Byte
37
      Dim B_j As Byte
38
39
' Var für I-Port senden
40
      Dim B_ix_w_byte(6) As Byte                            ' 6 Sendebytes zum I-Port
41
      Dim B_ix_anzahl_byte As Byte                          ' für for Schleife                           '
42
      Dim Bi_ix_pegel As Byte                               'Bit                                ' letzter Pegel
43
      Dim B_ix_bit As Byte                                  ' für for Schleife
44
      Dim B_ix_bit_high_low As Byte                         ' Ist das Bit high oder low
45
      Dim Bi_ix_timer_flag As Byte                          'Bit                           ' Timer Flag zum senden
46
      Dim B_ix_var As Byte                                  ' tvar,r1var oder r2var
47
      Dim B_ix_segment As Byte                              ' Segment
48
      Dim B_ix_ls As Byte                                   ' als LS senden
49
      Dim B_ix_sendet As Byte
50
51
'------------------------------------------------------------------------------------------------------------------
52
   'Timer1, Einstellungen für 8MHz
53
    Dim B_timer As Byte
54
    Const Timervorgabe1 = 61536                             ' Timer isr 16 MHZ
55
    Config Timer1 = Timer , Prescale = 1                    ' Irq alle 250µs
56
    On Timer1 Ix_sende_timer
57
    Timer1 = Timervorgabe1
58
    Enable Timer1
59
'------------------------------------------------------------------------------------------------------------------
60
   Dim Tags(5) As Byte                                      '"Tags" als Array mit 5 Bytes definieren
61
   Dim Zaehler As Byte                                      '"Zähler" als Byte definieren
62
'   Config Portb = Output                                    'Port B als Ausgang definieren
63
   Config Hitag = 64 , Type = Em4095 , Demod = Pind.3 , Int = @int1       'konfiguriert den Timer und die Variablen für HITAG
64
   _cfe Alias Portd.4                                       '_cfe wird dem Portd.2 zugewiesen
65
   Config _cfe = Output                                     '_cfe wird als Ausgand definiert
66
'   _cfe = 1                                                 '_cfe wird high
67
      _cfe = 0
68
   On Int1 Checkints Nosave                                 'Int1 wird als Eingang für HITAG verwendet
69
'   Mcucr.isc10 = 1                                          ' entspricht: config INT1 = changing ( der Befehl wird vom MC unterstützt,
70
'   Mcucr.isc11 = 0                                          ' beim 2313 aber nicht von Bascom)
71
    Config Int1 = Change
72
73
'------------------------------------------------------------------------------------------------------------------------------------------------------------------
74
75
   Enable Interrupts                                        'Enable all interrupts
76
'------------------------------------------------------------------------------------------------------------------
77
78
   Dim Wert As String * 5                                   '"Wert" als String mit 5 Hexwerten definieren
79
80
      Locate 1 , 1                                          'Cursor am Display in Zeile 1, ganz links
81
      Lcd "RFID"                                            ' Text schreiben
82
      Locate 2 , 1                                          'Cursor am Display in Zeile 1, ganz links
83
      Lcd "LCN-Modul"                                       ' Text schreiben
84
85
   '------------------------------------------------------------------------------------------------------------------
86
Main:                                                       ' ab hier beginnt das Hauptprogramm
87
   Do                                                       ' Do-Schleife
88
      If Readhitag(tags(1)) = 1 Then                        ' INT1 wird enabled
89
      Set P_ok_led                                          ' Led 1 Zustand wechseln
90
91
      _cfe = 1
92
      P_sound = 1
93
      For Zaehler = 5 To 1 Step -1                          ' For-Schleife beginnend von 5 nach 1; rückwärts zählend
94
         If Zaehler = 5 Then                                ' ab hier werden die Tagbytes in I-Portbytes gesetzt
95
            B_ix_w_byte(2) = Tags(4)
96
            Wert = Wert + Hex(tags(5))
97
         End If
98
         If Zaehler = 4 Then
99
            B_ix_w_byte(3) = Tags(3)
100
            Wert = Wert + Hex(tags(4))
101
         End If
102
         If Zaehler = 3 Then
103
            B_ix_w_byte(4) = Tags(2)
104
            Wert = Wert + Hex(tags(3))
105
         End If
106
         If Zaehler = 2 Then
107
            B_ix_w_byte(5) = Tags(1)
108
            Wert = Wert + Hex(tags(2))
109
         End If
110
         If Zaehler = 1 Then
111
            B_ix_w_byte(6) = 03                             'Typ 3
112
            Wert = Wert + + Hex(tags(1))  
113
         End If
114
      Next                                                  ' Ende For-Schleife
115
116
      Cls                                                   ' Display löschen
117
      Locate 1 , 1                                          ' Cursor in Zeile 1, Position 1
118
      Lcd "send..."                                         ' Text schreiben
119
      Locate 2 , 1                                          ' Cursor in Zeile 2, Position1
120
      Lcd Wert                                              ' Variable "Wert" schreiben
121
      Wert = ""                                             ' Inhalt von Variable "Wert" = ""
122
      Gosub Lcn_senden                                      ' I-Port senden
123
'      Waitms 200                                            ' Warte 500 ms
124
      Reset P_ok_led                                        ' Led 1 Zustand wechseln
125
126
      _cfe = 0
127
      P_sound = 1
128
      End If
129
   Loop                                                     ' Sprunganweisung zum Anfang Do-Schleife
130
'-----------------------------------------------------------------------------------------------------------
131
'-----------------------------------------------------------------------------------------------------------
132
Checkints:                                                  ' Unterroutine "Checkints:"
133
      Call _checkhitag                                      ' Eine ausgelagerte Unterroutine aufrufen
134
   Return                                                   ' Sprunganweisung in die Hauptschleife
135
136
'-----------------------------------------------------------------------------------------------------------
137
'ISR
138
Ix_sende_timer:                                             ' Timer Sendelänge vom Signal = 250µs
139
   Timer1 = Timervorgabe1
140
   Incr B_timer                                             'Sendeflag setzen
141
Return
142
143
Lcn_senden:
144
Return
145
'------------------------------------------------------------------------------------------------------------------------------------------------------------------
146
147
End                                                         'Programmende


gruss thomas - ich hoffe, es hilft dir weiter.

von tomgr (Gast)


Lesenswert?

Hallo Uwe,

Atmega162 ist drin, und läuft.
Umbau, Reset R hängt an Masse, muss auf +5V !
Out ist an PIN15, muss an PIN13 (INT1).

Dann klappt das auch.

gruss tomgr

von Michael (Gast)


Lesenswert?

Hallo Leute,

ich habe mir die Schaltung nachgebaut, jedoch gibt es keine Information 
welche Transistoren verwendet wurden.

Könnt Ihr mir da bitte weiterhelfen?


Vielen Dank schonmal!

Gruß
Michael

von ufe (Gast)


Lesenswert?

Meinst Du die Treiberstufe für die Spule?
Da geht fast alles was min. 100V aushält, 1xnpn 1xpnp z.B. aus der 
Bastelkiste. Die Schaltung arbeitet im Schaltbetrieb, also kaum 
Verlustleistung bei 125kHz. Allerdings können durch den Schwingkreis 
erhebliche Spannungen entstehen.

Uwe

von Michael (Gast)


Lesenswert?

Super Danke!

Am Ende der Treiberstufe kommt laut Oszi ein wunderbares Signal raus.
Schließe ich dann allerdings die Spule an (~ 1,6mH + 1,2nf) zieht mir 
die ganze Schaltung gut 500mA, was deutlich zu viel ist ...

Ich habe die Schaltung 1:1 nach dem Schaltplan aufgebaut aber irgendwo 
ist der Wurm drin.


Meine bisherigen RFID Reader mit U2270B und EM4095 laufen wunderbar mit 
der gleichen Spule (gekauft, nicht selbst gewickelt).


Gruß
Michael

von ufe (Gast)


Lesenswert?

Wenn die Schaltung ohne Spule sauber arbeitet (also Rechteck 125kHz mit 
Amplitude 0V..Betriebsspannung), dann sollte alles ok sein. Ich kann mir 
nur vorstellen dass der Kondensator vom Reihenschwingkreis Feinschluss 
hat und damit die ohmsche Last der Spule alles kurzschließt. 500mA in 
der Speiseleitung ist zuviel. Allerdings kann man 500mA <im> 
Schwingkreis im Rahmen einer Fehlmessung durchaus messen.
merke: Wer viel misst, misst viel Mist...

Gruß
Uwe

von Michael (Gast)


Lesenswert?

Vielen Dank nochmal für die Hilfe!


Nun scheint alles zu passen ...

ca. 110V an der Spule
mein AVR liest brav mit ReadHitag

An was es nun lag kann ich leider nicht sagen, hauptsache es funzt :)


Gruß
Michael

von Michael M. (mikmik)


Lesenswert?

Hallo,
was macht denn der IC1D? Wird der als rectifier gebraucht?
Würde das nämlich gerne nachbauen -nur mit 13.56 MHz und mit einem 
FUGenerator (weil ich grad einen da hab) statt Quartz.
Da würd ich dann eben ICD1 und Frequenzteiler weglassen und direkt das 
Rechtecksignal auf die Transistor-Endstufe geben.

von ufe (Gast)


Lesenswert?

IC1D wird als Inverter genommen, macht 180° Phasendrehung, der Quarz 
samt Beschaltung macht die anderen 180°. Zusammen 360° ergeben eine 
Mitkopplung und fertig ist der Oszillator für die 8MHz...

Wenn Du einen fertigen Taktgenerator hast, kannst Du den IC1D totlegen.

von Michael M. (mikmik)


Angehängte Dateien:

Lesenswert?

Hallo,
muss den Thread nochmal ausgraben. Versuche gerade eine 13.56MHz version 
des obigen Readers zu basteln. Das Rechtecksignal kommt bei mir aus 
einem Frequenzgenerator und die Schaltung hab ich erstmal so 
zusammengebaut wie im Bild.
Wenn ich aber nun die Versorgungsspannung für die Transen abschalte, 
bleibt mein Signal trotzdem an der Spule. Und egal mit oder ohne 
Versorgungsspannung es hat immer die Amplitude wie es der FrequGen 
ausspuckt.
Dachte mir eigentlich, dass diese Transistor-Endstufe die Spannung 
erhöht? Oder ist sie nur zur Stromerhöhung? Oder hab ich da dem Hund 
drinn?
Jedenfalls soll es natürlich nicht so sein, dass ich mit der 500mV 
Amplitude vom FrequGen auf die Spule gehe.

Kann mir da jemand einen Tipp geben wie ich das hinbekomm, eine höhre 
Spannung auf die Spule zu bekommen? Bei einem Reader den ich mal 
ausgemessen hab, warens +-5 V.

von L.C. (Gast)


Lesenswert?

Die abgebildete Transistorschaltung ist ein reiner Folger im Push-Pull 
Betrieb, also Stromverstärker. Er verliert natürlich 2 mal die 
Basis-Emitterspannung am Ausgang. D.h. bei 3V Eingang kommt nur noch 
etwa die Hälfte hinten heraus. Der nachfolgende Schwingkreis muss exakt 
auf die verwendete Frequenz abgestimmt sein, um die gewünschte 
Spannungsüberhöhung an der Spule zu erreichen.

von Michael M. (mikmik)


Angehängte Dateien:

Lesenswert?

Danke für die Erklärung. Habe das probiert, und konnte durch das 
Abgleichen des Schwingkreises mittels Drehkondensator die Amplitude auf 
+-1,5V heben.

Habe auch im Elektor diese Schaltung mit DMOS Gegentakt-Verstärker 
gefunden.
Werde die auch mal aisprobieren und erwarte mir damit die gewünschte +- 
5V Amplitude. Oder seht ihr da ein Problem?
Ich meine mal wo gelesen zu haben, dass Gegentaktverstärker nur mit 
bipolaren Transistoren funktionieren und nicht mit MOS-FETs?

Und weil wir schon dabei sind? Warum wird der Ausgang des NAND-Gatters 
(für die ASK Modultion) nochmal ins Gatter geführt und dann erst auf die 
Verstärkerstufe?

von Hope (Gast)


Lesenswert?

Michael M. schrieb:
> Ich meine mal wo gelesen zu haben, dass Gegentaktverstärker nur mit
> bipolaren Transistoren funktionieren und nicht mit MOS-FETs?

wieso denn das? die Art der Schaltung hat doch nichts mit den 
verwendeten Transistortypen zu tun.

Michael M. schrieb:
> Warum wird der Ausgang des NAND-Gatters
> (für die ASK Modultion) nochmal ins Gatter geführt und dann erst auf die
> Verstärkerstufe?

weil hier Gatter C und D als MOSFET Treiber verwendet werden.

Gatter A ist der Oszillator, Gatter B der Modulator, Gatter C der 
Treiber für den oberen MOSFET und Gatter D der Treiber für den unteren 
MOSFET.

D.h. mit dem Modulator Gatter B lässt sich die Endstufe ein- und 
ausschalten oder modulieren.

von Michael M. (mikmik)


Lesenswert?

Super, danke erstmal.
Ein bisschen steh ich aber noch auf der Leitung.
Wenn ich eine einfache Logiktabelle erstelle:

Mod-Bit   clk     B     C=D
0          0      0      0
0          1      1      0
1          0      1      0
1          1      0      0

...dann frag ich mich wie ich mit dem Modulatios-bit die Modulation 
(=Signal am Ausgang von B) ein und aus schalte? Ist doch nie unabhängig 
von clk 0 wenn zB das Modulations-bit 0 oder 1 ist.

Und wie da übehaupt jemals ein Signal bei C oder D rauskommen kann ist 
mir auch rätselhaft. Das sind doch NAND-Gatter oder? Wenn da am Eingang 
von zB Gatter C der selbe pegel anliegt ist doch dass Ergebnis immer 0, 
oder?

Danke für jeden Tipp.

von Hope (Gast)


Lesenswert?

Michael M. schrieb:
> Ein bisschen steh ich aber noch auf der Leitung.

Nicht nur ein bisschen !!!!

Schreib dir mal die Wahrheitstabelle eines AND Gatters und eines NAND 
Gatters auf. Dann siehst du es sofort

CLK     MOD     AND     NAND (Ausgang von Gatter B)
 0       0       0       1
 1       0       0       1
 0       1       0       1
 1       1       1       0

D.h. der Ausgang von Gatter B ist 1 wenn MOD 0 ist.

Gatter C und D sind NANDs mit kurzgeschlossenen Eingängen also Inverter!

damit die MOSFETS genug Gate-Ladestrom bekommen, sind beide Gatter 
parallel geschaltet.
Durch die Invertierung liegt jetzt also eine 0 an den Gates.

Legt man nun MOD auf 1, so ist am Ausgang von Gatter B der invertierte 
Takt zu sehen und am Ausgang der Treiber (Gatter C und D) wieder der 
Takt.

von Michael M. (mikmik)


Lesenswert?

ja alles klar!

bei mir war 0 AND 0 auch 1

grmpf...

von Hope (Gast)


Lesenswert?

Hope schrieb:
> Gatter C der
> Treiber für den oberen MOSFET und Gatter D der Treiber für den unteren
> MOSFET

ohne die Brücke zwischen den Gates wäre es so.
Die hatte ich da glatt übersehen. Mit der Brücke treiben eben beide 
Gatter gemeinsam beide MOSFETs.

von Michael M. (mikmik)


Lesenswert?

Hope schrieb:
> Michael M. schrieb:
>> Ich meine mal wo gelesen zu haben, dass Gegentaktverstärker nur mit
>> bipolaren Transistoren funktionieren und nicht mit MOS-FETs?
>
> wieso denn das? die Art der Schaltung hat doch nichts mit den
> verwendeten Transistortypen zu tun.

Falls es noch wen interessiert, hier stand das:
Beitrag "MOSFET-Gegentaktendstufe"
4tes Post.

Aber anscheinend geht's doch wie obige Schaltung aus dem Elektor zeigt.

von David (Gast)


Lesenswert?

Hi,

Eine Frage, laut Bedienungsanleitung muss das Netzteil 1,2 A bringen.
Kann das sein ??

Ich betreib das Gerät mit 800mA Netzteil, und es kommt öfters vor, dass 
nachdem erfolgreichen türöffnen, das Teil rumpiepst, oder sich aufhängt.

von Peter G. (mashpeak)


Lesenswert?

Hallo guten abend,
hat jemand für mich eine Anleitung für das Codeschloss SMQ-303?
Über eine Antwort würde ich mich freuen.

Viele Grüße mashpeak

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.