www.mikrocontroller.net

Forum: Codesammlung USB RFID Tag Leser

Autor: Stefan Seegel (Gast)
Datum: 02.05.2007 01:04
Dateianhang: USB_RFID_Leser.jpg (282,1 KB, 4692 Downloads)
preview image for USB_RFID_Leser.jpg

Hallo,

hier gibt's einen RFID Tag Leser, der 64 Bit 125 kHz Tags ausliest und
die darin gespeicherten Daten (40 Bit "netto") über die USB
Schnittstelle ausgibt.

- Auf der Platine integrierte PCB Antenne
- RFID Reader Chip EM 4095
- µC ATMega 16, der sich um die Manchesterdekodierung, die
Datenaufbereitung und die Ausgabe der Daten über UART kümmert
- FT232RL um die UART Daten über USB auszugeben
- Platine wurde entworfen für den Einbau in das Gehäuse TEKO 101 (bei
Reichelt)

Im Anhang gibt's zunächst für die eiligen ein Bild der Platine, in der
nächsten Nachricht folgen Source-Code, Schaltplan und Layout.

Viel Spaß und Gruß
Stefan
Autor: Stefan Seegel (Gast)
Datum: 02.05.2007 01:07
Dateianhang: USB_RFID_Leser.zip (476,8 KB, 2134 Downloads)

...und hier Sourcecode, Schaltplan und Platinenlayout.

Beim Einbau in das Tekogehäuse ist zu beachten, dass die Bodenplatte aus
Aluminium durch eine nicht-metallische, z.B. aus Epoxid, ersetzt wird.

Gruß Stefan
Autor: Thomas (Gast)
Datum: 02.05.2007 10:19

Hallo,
hast du vielleicht noch einen Tip wo der EM4095 erhältlich ist, und wie
der preislich so liegt?
Autor: Werner Wernersen (Gast)
Datum: 02.05.2007 14:19

Google "EM4095" -> Seiten auf Deutsch -> 3. Treffer:

www.hedam.de

Kostet so um die 2,50 €

Gruß
Stefan
Autor: Gast (Gast)
Datum: 02.05.2007 15:29

Hallo,

ohne jetzt in die ZIP Datei geschaut zu haben, würde mich interessieren,
in welchem Abstand die Sensoren an die Platine herangeführt werden
müssen. Handelt es sich um eine Nahbereichs-RFID mit wenigen cm (3-10)
oder nur große Entfernungen (>10cm)??
Wie lange dauert die Erkennung? Können bewegte Objekte am Sensor vorbei
detektiert werden?

Gruß,
Torsten.
Autor: Werner Wernersen (Gast)
Datum: 02.05.2007 16:54

Hallo,

die Entfernung liegt etwa im Bereich bis 10 cm (für die normalen
Schlüsselanhänger). Die Erkennung dauert so grob geschätzt 100 ms. Die
Objekte können bewegt werden, natürlich begrenzt durch die
Erkennungsgeschwindigkeit.

Stefan
Autor: Gast (Gast)
Datum: 02.05.2007 19:59

Danke für die Info.
Autor: Student (Gast)
Datum: 04.05.2007 01:35

Wirklich interessant, ich habe den em4095 hier, und würde ihn auch gerne
verwenden, aber mit meinem eigenen Source oder wenigstens mit einem den
ich verstanden habe, aber ich muss gestehen, dass ich nur Bahnhof
verstehe. Ich bin zwar blutiger Anfänger aber die C- Sprachsyntax
verstehe ich dennoch.
Also vielleicht kann mir jemand ein paar Denkansätze geben, damit ich es
verstehe.

Vielen Dank
Autor: Stefan (Gast)
Datum: 04.05.2007 02:38

Am besten zunächst erstmal verstehen wie die Daten in den Tags aufgebaut
sind, und wie selbige moduliert, übertragen und demoduliert werden. Das
ist alles recht ausführlich in den Datenblättern des Reader-ICs und des
Tags beschrieben:

http://www.emmicroelectronic.com/webfiles/Product/...
http://www.emmicroelectronic.com/webfiles/Product/...

Hier gibt's noch eine Application Note und ein Brechnungstool der
Bauteile:
http://www.emmicroelectronic.com/Products.asp?IdProduct=86

Wenn man das verstanden hat geht es darum die Daten die man empfängt zu
dekodieren. Dazu findet man im Forum vieles unter dem Stichwort
"Manchester".

Gruß
Stefan
Autor: Frankie (Gast)
Datum: 04.05.2007 12:14

Hallo Stefan,

kann man von dir 1-2 Platinen (ohne Bauteile) beziehen ?

Gruß
Frank
Autor: Stefan (Gast)
Datum: 04.05.2007 14:37

Hallo Frank,

habe bisher nur einen Prototypen als Platine hier. Eventuell werde ich
in ein paar Wochen eine 10er Serie davon machen, dann sag' ich bescheid.

Gruß
Stefan
Autor: Student (Gast)
Datum: 06.05.2007 00:59

Hallo, ich hatte hier schon vor einiger Zeit mal gepostet weil mir nicht
einleuchtet wie dieser em4095- Code funktioniert. Ich habe nun die
Datenblätter, dank dem Tipp von Stefan durchgearbeitet, und ja ich bin
schlauer geworden, aber anscheinend noch nicht ausreichend. Daher nun
meine Frage zu der Interruptroutine dort steht etwas #define
Manchester_Long & Short & Middle wofür braucht man das, vielleicht ne
dumme Frage, aber ich komme einfach nicht auf die Antwort.
Autor: Stefan Seegel (energizer)
Datum: 06.05.2007 03:57

Hallo Student,

die drei Konstanten dienen dazu, um bei der Dekodierung des
Manchestercodes zwischen langer und kurzer Zeit zu unterscheiden.
Zunächst mal macht es Sinn sich das hier zu Gemüte zu führen:

http://de.wikipedia.org/wiki/Manchester_Code

In der Grafik erkennt man, dass es nur zwei verschiedene Zeiten, x und
2x, zwischen einem Pegelwechsel gibt. In der Software wird bei jedem
Pegelwechsel ein Interrupt erzeugt. In dieser Interruptroutine wird der
Zählerwert seit dem letzten Pegelwechsel errechnet, welcher dann mit
1.5x (also die Mitte zwischen langer und kurzer Zeit) verglichen wird.
Ist die errechnete Zeit kleiner als 1.5x, wird die Interruptroutine
verlassen, ohne den Zählerwert abzuspeichern. Auf diese Weise werden die
Flankenwechsel an den Bitgrenzen ausgeblendet. Es verbleiben die
Pegelwechsel in den Bit-Mitten, mit denen direkt die Datenbits
eingelesen können. Der Algorithmus kann erst korrekt dekodieren, wenn
mindestens ein 0/1 oder 1/0 Bitwechsel empfangen wurde, also eine lange
Bitzeit im Signal vorkommt.

Stefan
Autor: Sebastian (Gast)
Datum: 16.05.2007 14:54

Hallo Stefan,

ich finde den USB-Leser sehr interessant, da ich mich damit in meiner
Diplomarbeit beschäftige. Nun stehe ich aber vor dem Problem wo ich die
erforderliche Platine herbekomme. Ich brauche das Lesemodul für
Messungen und Auswertungen.
Kann man vielleicht mittlerweile schon ein oder 2 beziehen!

Vielen Dank
Autor: Stefan (Gast)
Datum: 17.05.2007 23:59

Hallo,

leider gibt es noch keine Platinen. Ich werde hier kurz bescheid geben
sobald welche verfügbar sind. Hat sonst noch jemand Interesse ?

Gruß
Stefan
Autor: Denis (Gast)
Datum: 18.05.2007 15:05

Hätte Interesse an einem funktionstüchtigen Gerät.
dg at conox dot de
grüße


Autor: Andreas B. (bitleiste)
Datum: 18.05.2007 20:16

Stefan wrote:
> Hallo,
>
> leider gibt es noch keine Platinen. Ich werde hier kurz bescheid geben
> sobald welche verfügbar sind. Hat sonst noch jemand Interesse ?
>
> Gruß
> Stefan

Hallo Stefan,

solltest Du Platinen haben, ich würde auch eine oder zwei Brauchen.

Ich könnte auch eine Platinen Bestellung Organisieren (Fertigung in
China) macht aber erst bei einer Stückzahl > 30 Sinn.

Gruß Andreas
Autor: Stefan (Gast)
Datum: 18.05.2007 23:29

@Denis

Würde ich tun, dank dem neuen Elektro-G kann ich aber leider keine
Fertiggeräte verkaufen...

Ansonsten werde ich aber wie gesagt bei der nächsten Platinenbestellung
welche mit rein nehmen, da noch einige andere Sachen anstehen.

Stefan
Autor: Bernhard (Gast)
Datum: 23.05.2007 07:25

@Stefan:

Hallo! Ich habe mir eine kleine Testplatine gemacht wo der EM4095 mit
einem Mega8 am PC angeschlossen ist. Als Antenne habe ich einmal eine
PCB-Variante gemacht die aber hier nicht sehr gut funktioniert. Mit
einer Antenne aus Kupferdraht habe ich bessere Ergebnisse aber leider
komme ich nicht über 2cm bei einer ISO-Karte :(
Woran kann das liegen?

Natürlich haben wir die Kapazitäten entsprechend der Induktivität der
Spule angepasst. Da ja eine Maximierung des Magnetfelds wünschenswert
ist, haben wir ca. 700µH und 2,2n im Schwingkreis verwendet. Die Antenne
hat einen Durchmesser von 9cm.
Wegen der hohen Uss wurde der kapazitive Spannungsteiler auch
dementsprechend angepasst.
Ansonsten gibt es doch keine weiteren Einstellungsmögilchkeiten, oder?
Das Layout ist auch nach Vorgabe erstellt mit extra Filter für AVDD.

Am DEMOD-Ausgang liegt im Idle-Betrieb kein Signal an, oder?

Datenblatt habe ich schon studiert nur noch keinen Fehler bei mir
gefunden... Das Excel-Sheet von EM gibt mit meinen Werten auch korrekte
Werte aus.

Bin für jeden Tipp dankbar :)

PS: Noch eine Frage zu der Manchester-Routine: Es werden ja feste
Konstanten verwendet für die Decodierung der Daten. Mit dem Oszi habe
ich gesehen das die Zeiten sich verlängern wenn der Transponder eher am
Ende der Lesereichweite arbeitet. Ist das bei Dir genauso? Macht es Sinn
das zur verbesserung der Lesereichweite zu optimieren?

Grüße,
Bernhard
Autor: Joerg (Gast)
Datum: 23.05.2007 10:50

Hallo!

Ich würde auch 2Stück nehmen...

Hast du die Platine schon in Betrieb?
Autor: Mike S. (thesealion)
Datum: 23.05.2007 12:46

Wenn die Platien so funktioniert und der Preis nicht zu hoch ist, würde
ich auch 2 Stück nehmen.
Autor: Stefan (Gast)
Datum: 23.05.2007 14:49

Bernhard:
Die Reichweite der PCB Antenne ist natürlich von Natur aus etwas
geringer als mit einem 1mH "Monster", aber mit den
Schlüsselanhänger-Tags bekomme ich deutlich mehr als 2cm zusammen.
Wichtig ist dass keine Metallteile in nächster Nähe sind (Boden-
und/oder Frontplatte). Hast du einen Serienwiderstand (Rs in der App
Note) verwendet ? Der ist gerade bei den niederohmigen PCB
Induktivitäten wichtig. Mit dem Spannungsteiler kann man auch
experimentieren, aber immer schön mit dem Oszi kontrollieren.

>Ansonsten gibt es doch keine weiteren Einstellungsmögilchkeiten, oder?
Schau mal die restlichen Kapazitäten um den EM4095 an. In der App Note
sind andere Werte als im Datenblatt angegeben, mit denen ging's
wesentlich besser.

>Am DEMOD-Ausgang liegt im Idle-Betrieb kein Signal an, oder?
Ja, deswegen braucht man noch einen Timer um nachzusehen dass kein Tag
mehr vorhanen ist.

> Ist das bei Dir genauso? Macht es Sinn das zur verbesserung der Lesereichweite
zu optimieren?
Das wird wenig Unterschied machen, da die Werte recht unkritisch sind.

Joerg:
>Hast du die Platine schon in Betrieb?
Ja, funktioniert wunderbar...

Ich sag bescheid wenn ich welche da habe.

Gruß
Stefan
Autor: Franz (Gast)
Datum: 07.06.2007 22:07

Hallo Stefan!


Hab da noch eine Frage und zwar bist du der Meinung, dass die PCB
Antenne auch funktionieren würde, wenn ich die Platine selbst in mein
Ätzbad lege? ;-)

Also ich weiß schon, dass meine bisher gefertigten Platinen brauchbar
sind, nur wird dann doch ein Unterschied in der Qualität der
Leiterbahnen (bzw. des Kupfers an  sich) bestehen.


Wie kritisch das sein mag, kann ich schwierig einschätzen...


Grüße,
Franz
Autor: Stefan (Gast)
Datum: 08.06.2007 02:01

>dass die PCB Antenne auch funktionieren würde, wenn ich die Platine selbst >in
mein Ätzbad lege? ;-)

Welche Platine? Meine oder ein eigenes Design? Wie auch immer, in beiden
Fällen kann ich leider nicht sagen ob die dann funktionieren würde.

Platinen sind übrigens bestellt, ich frag' dann nochmal rum wer eine
haben will, wenn selbige da sind und ich nochmal einen Test durchgeführt
habe.

Stefan
Autor: Gast (Gast)
Datum: 09.06.2007 19:57

Hallo Stefan,

kannst Du uns eventuell einen ca. Preis für eine nackte Platine nennen?

Gruß,

Klaus
Autor: Elektrikser (Gast)
Datum: 09.06.2007 22:40

Hallo,

neuerdings verwendet "geiz ist geil" RFID-Tags für die Kennzeichnung
seiner Waren. Weiß einer welche Art die sind?

Gruß Elektrikser
Autor: Elektrikser (Gast)
Datum: 09.06.2007 23:08

Oh, ein Forentroll. Hat nix, weiß nix, aber plappert.


Mir hätte gereicht zu wissen, auf welche Frequenz die reagieren...
Autor: Stefan (Gast)
Datum: 10.06.2007 01:52

>kannst Du uns eventuell einen ca. Preis für eine nackte Platine nennen?

Eine Platine wird 10 € + Versand 2,5 € + Umst ~= 14,90 € kosten. Bei
mehreren Versand natürlich nur 1x...

Die Platine ist im Übrigen mit Lötstoplack, Bestückungsdruck (einseitig)
und verzinnt.

Gruß
Stefan
Autor: Franz (Gast)
Datum: 10.06.2007 20:56

Hallo Stefan!


Hab da noch ein Frage und zwar steht im Datenblatt des EM4095:

"It is strongly recommended that design of antenna circuit
is done in a way that maximum peak current of 250 mA is
never exceeded"

Ich nehme an, dein 33 Ohm Widerstand im Serienresonanzkreis dient der
Strombegrenzung.

Was mich noch interessieren würde.

1.) Nach welchen Überlegungen hast du den errechnet?
Ich nehme an, du kennst die Impedanz deiner PCB Spule.Mit dieser und dem
Wert des Kondensators kannst du also die Impedanz des resultierenden
Serienschwingkreises bei der Frequenz von 125kHz ausrechnen. Daraus
ergibnt sich dann der Widerstandswert je nach zugelassener Stromstärke.
Ist dieser Gedankengang richtig oder Mist? ;-)


2.)Du hast als CRes zwei Kondensatoren parallel geschaltet, beim zweiten
ist kein Wert abgegeben. Ich nehme an, du verwendest diese, um die
passende kapazität für die richtige Resonanzfrequenz zu erreichen (bzw.
um die Frequenz geringfügig beeinflussen zu können)?
Variiert die Impedanz der PCB Spule, oder warum sonst diese
parallelschaltung?


Danke!

Grüße,
Franz
Autor: Stefan (Gast)
Datum: 11.06.2007 01:06

> Ich nehme an, dein 33 Ohm Widerstand im Serienresonanzkreis dient der
Strombegrenzung.

Richtig. Bei solch niederohmigen Antennen ist er nötig, bei anderen
(z.B. gibt's bei Conrad fertige RFID Antennen) kann dieser evtl.
weggelassen werden.

Zu 2.:
Beim Prototypen wusste ich noch nicht genau welche Induktivität die PCB
Spule genau haben wird, also habe ich vorsichtshalber zwei Kondensatoren
vorgesehen, da ich auch nur die E3 Reihe hier habe. Ausserdem war noch
nicht klar wie genau die 125 kHz eingehalten werden müssen.
Die Induktivität der Spule variiert an sich nicht, verändert sich
allerdings leicht durch die Schrauben, und deutlich durch z.B. eine
Aluminium-Platte als Bodenplatte. Diese sollte man aber wie schon
angesprochen durch eine nicht metallische ersetzen.

Gruß
Stefan
Autor: Stefan Sczekalla (Gast)
Datum: 24.06.2007 13:39

Hi,

ich bin nettwerweise auf diesen Thread verwiesen worden.

Ich hätte zum Thema Antenne noch eine Frage.

Wäre/ist es möglich die Antenne so zu gestalten, das sich eine
Richtwirkung ergibt. Ich möchte Tags die im Abstand von ca.5cm
nebeneinander angeordnet sind selektiv lesen. ... gerne jedoch aus 10cm
Entfernung ...

leider ist mein HF-Antennen-Know-How  ( ok, für manche sind 125kHz noch
Gleichstrom :-) ) extrem eingerostet.

Grüße,

Stefan
Autor: Bernhard (Gast)
Datum: 25.06.2007 10:25

@Stefan:

Ich habe bei manchen Transpondern festgestellt daß die Impulszeiten im
Grenzbereich der Lesereichweite leicht variieren d.h. länger werden.
Macht es Sinn die ISR so abzuändern daß die Impulszeiten ermittelt bzw.
dynamisch angepasst werden?
Die Lesereichweite kann man damit sicherlich noch um ein paar cm
vergrößern.

Grüße

Bernhard
Autor: Gernot (Gast)
Datum: 28.06.2007 20:15

Hallo Stefan,

Mir ist bei deinem Programm aufgefallen daß du TCNT0 immer durchlaufen
lässt.
Bei einem Überlauf wird dann die Zeit falsch berechnet.

Oder hab ich hier was übersehen?

Gernot
Autor: Franz (Gast)
Datum: 03.07.2007 22:26

Auch ich habe noch eine Frage zu deinem Design.

Hast du eigentlich mal mit der Massefläache experimentiert bzw. welchen
Einfluss diese auf die Funktionalität des Readers hat?

Und zwar kann ich mich nicht entscheiden, ob nun so eine Massefläche gut
ist (wegen "festerem" Bezugspotential auf der Platine) oder ob diese der
integrierten Antenne Energie entzieht und damit die Frequenz verstimmt
oder anderswertig die Performance des Readers negativ beeinflusst.

Sollte zweite Annahme etwas für sich haben, wie weit müsste dann der
Abstand von der integrierten Antenne zu der Massefläche sein, um
negative Einflüsse verschwindend gering zu halten?

Vielleicht gibt es ja jemanden, der sich bereits mit solchen Dingen
beschäftigt hat :-)


Grüße,
Franz
Autor: Wolfram Hildebrandt (Gast)
Datum: 14.07.2007 13:53

@  Stefan Seegel
Hast du keine Probleme mit der USB-Übertragung?
Ich habe durch mein Gehäuse mit einer selbstgewickelten Antenne
(Rechteck 4x6cm) 7cm Reichweite bei den RFID-Karten.
Wenn jetzt meine Software am PC läuft, die die Verbindung zum FT232R
aufbaut, dann sinkt die Reichweite auf 1 cm ab. Läuft die Software am PC
nicht mehr, dann habe ich wieder 7cm.
Funktioniert das bei dir noch mit der gleichen Reichweite, wenn Daten
über USB gesendet werden?

Ich musste leider aufgrund des Gehäuses drei Platinen anfertigen. Eine
mit FT232R und µC, eine für USB-Buchse und eine für RFID. Die
Zuleitungen von USB und RFID sind ca. 8cm lang und überkreuzen sich
häufig und liegen praktisch aufeinander. Keine Schirmung vorhanden.
Autor: Stefan (Gast)
Datum: 14.07.2007 18:10

Hi,

habe noch nicht ausprobiert ob's einen Unterschied gibt wenn man den USB
Chip nicht nutzt. Die RS232 Pins auf der Platine waren nur zum debuggen
gedacht, habe sie aber bisher nicht gebraucht.

@Alle:

Inzwischen sind schon einige "Bestellungen" eingegangen, die Platinen
sind auch schon länger hier, aber derzeit komme ich leider einfach nicht
dazu. Werde mich bald melden wenn's zeitlich klappt.

Stefan
Autor: Klaus R. (ruebi)
Datum: 14.08.2007 20:20

Hallo Stefan,

> Eine Platine wird 10 € + Versand 2,5 € + Umst ~= 14,90 € kosten. Bei
> mehreren Versand natürlich nur 1x...
>
> Die Platine ist im Übrigen mit Lötstoplack, Bestückungsdruck (einseitig)
> und verzinnt.

wie schaut´s aus. Kann man mittlerweile Platinen für Deinen
USB-RFID-Leser bei Dir bestellen? Ich hätte nachwievor Interesse!
Autor: Stefan (Gast)
Datum: 15.08.2007 15:58
Dateianhang: images.pdf (1,8 MB, 958 Downloads)

Hallo,

Heute bin ich endlich dazugekommen eine Platine zu bestücken und zu
testen: Alles funktioniert.

Wer also eine odere mehrere Platinen haben möchte, der möge mir eine
Mail an

rfid@seegel-systeme.de

schicken. Darin sollte die Anschrift und die benötigte Anzahl an
Platinen stehen.

Im Anhang sind Bilder der fertig bestückten Platine und die
Bestückungspläne.

Die Platine wurde zur ersten Version (erster Beitrag hier) ganz leicht
abgeändert:
- Die beiden Befestigungslöcher sind nun Diagonal angeordnet, so dass
die Platine stabiler befestigt werden kann.
- Es sind nun 4 Pinheader vorgesehen, an denen GND, +5V, TX und RX der
seriellen Schnittstelle direkt abgegriffen werden kann, falls man USB
nicht benötigt.

Die beiden Kapazitäten (C5/C6) des Serienschwingkreises habe ich in
meiner Versin nun mit 15 nF und 4.7 nF bestückt. Die Frequenz liegt
damit bei ca. 120 kHz.

Gruß
Stefan
Autor: Tippgeber (Gast)
Datum: 15.08.2007 16:30

Wenns die Platinen nicht umsonst gibt, wär ein Preis nicht schlecht ;-)
Autor: Klaus R. (ruebi)
Datum: 15.08.2007 16:59

Siehe zwei Beiträge weiter oben:

>Eine Platine wird 10 € + Versand 2,5 € + Umst ~= 14,90 € kosten.
>Bei mehreren Versand natürlich nur 1x...
Autor: Marius S. (lupin) Benutzerseite
Datum: 16.08.2007 01:15

Wozu dient der FET? Wird der vom FT232 erst eingeschaltet wenn 500mA von
der USB Schnittstelle frei gegeben wurden? Den könnte man doch evtl. weg
lassen, wenn der AVR den EM4095 erstmal ruhig stellt :-)

Ich würde das ganze gerne nachbauen, aber ich denke ich würde einen
software usb treiber verwenden (die FT232s sind ja recht teuer) :)

Wie hoch ist denn die Stromaufnahme im Sendebetrieb?

Ein sehr solides Projekt hast du hier vorgestellt. Respekt!
Autor: Stefan (Gast)
Datum: 16.08.2007 02:21

>Wozu dient der FET?
Der schaltet alles (auch den AVR) aus. Hätte man auch mit div. Sleep
Modes etc. machen können...

>Ich würde das ganze gerne nachbauen, aber ich denke ich würde einen
>software usb treiber verwenden (die FT232s sind ja recht teuer) :)

Der USB Chip kostet 5.80 € bei Reichelt, dafür werden fast keine
externen Bauteile benötigt und man hat wenig Stress, da Treiber,
Konfigurationssoftware, PWR Steuerleitung etc. alles schon vorhanden
ist. Wenn man nur ein oder wenige Geräte braucht lohnt sich der
(wesentliche) Mehraufwand definitiv nicht.

>Wie hoch ist denn die Stromaufnahme im Sendebetrieb?
Weis ich gerade nicht genau, ich denke so ca. 150 mA

Stefan

Wer noch Platinen braucht, bitte an die o.g. Adresse schreiben
Autor: Stefan (Gast)
Datum: 21.08.2007 01:24

So,

einige Platinen sind schon weg, einige sind noch da. Wer also noch eine
braucht bitte an

rfid@seegel-systeme.de

schreiben.

Da ja Reichelt inzwischen das Speichern von Warenkörben unterstützt,
wollte ich das mal mit diesem Projekt testen. Hier ist das Ergebnis:

https://secure.reichelt.de/?;ACTION=20;LA=5000;AWK...

Dort ist alles dabei, inkl. Gehäuse, USB Kabel, etc., abgesehen vom RFID
IC.

Gruß
Stefan
Autor: Jürgen (Gast)
Datum: 22.08.2007 13:37

Hi,
die erste Platine ist schon angekommen, und auch die Geschichte mit dem
Warenkorb bei Reichelt funktioniert!

Herzlichen Dank nochmals!

Jürgen
Autor: gerdme (Gast)
Datum: 23.08.2007 13:53

Hi,

meine Platine ist auch wohlbehalten angekommen - danke. Sehr gute
Qualität!

Der Warenkorb ist genial und Reichelt ist eh mein Haus- und
Hoflieferant...

Danke und Gruss, Gerd


(Wenn ich das Teil zum Leben erweckt habe, werde ich berichten)
Autor: Klaus R. (ruebi)
Datum: 24.08.2007 23:53

Stefan wrote:
>>Wozu dient der FET?
> Der schaltet alles (auch den AVR) aus. Hätte man auch mit div. Sleep
> Modes etc. machen können...

Wenn ich den FT232 noch nicht eingebaut habe und der FET dadurch mit dem
einen Bein "in der Luft hängt", kann es dann sein, dass der FET nach
Anschluß des USB-Kabels an den PC recht heiß wird? Oder sollte ich mal
lieber das Multimeter rauskramen und nach einem Kurzschluss des +5V
Zweiges im Rest der Bestückung suchen?

PS: EM4095 und FT232 sind noch nicht bestückt
Autor: Stef (Gast)
Datum: 25.08.2007 04:04

Hallo Stefan Seegel

Warum wandelst Du dein Projekt nicht in einen RFID-Tag Leser+Schreiber
um? Ich meine, die ganze Hardware dafür wäre doch schon auf deinem
Board vorhanden (vielleicht mit Ausnahme des RFID-Chips, der müsste
natürlich zusätzlich die Write-Funktion unterstützen, und die Tags
natürlich auch, da müsste man solche nehmen, die sich beschreiben
lassen.
Autor: Stefan (Gast)
Datum: 26.08.2007 00:37

>Warum wandelst Du dein Projekt nicht in einen RFID-Tag Leser+Schreiber um?

Ich hatte schlicht und ergreifend bisher nicht das Bedürfnis...
Die Hardware sollte für das Schreiben geeignet sein, es müsste nur die
Firmware erweitert werden.

Stefan
Autor: Klaus R. (ruebi)
Datum: 02.09.2007 21:06

Hallo Stefan,

so, habe am Wochenende endlich einmal die Zeit gefunden, Deine Platine
aufzubauen. Leider klappt´s noch nicht so wie erwartet, aber ich gehe
mal davon aus, daß dies nur noch eine Kleinigkeit ist. Daher hier mal
meine geballten Fragen:

1. Welche Fuses sollten beim Programmieren des ATmega8 gesetzt werden?

2. Welche Baudrate kommt über die serielle Schnittstelle
Edit: #define BAUD 9600UL :-)

3. Gibt die Karte eine Art "Lebenszeichen" von sich, wenn sie
Eingeschaltet wird?

4. Habe den C-Source jetzt noch nicht so studiert: Kann ich auch vom
Host (PC) zum Leser irgendwelche Kommandos versenden um beispielsweise
die beiden LEDs zu bedienen (mir geht´s hier nur um eine
FUnktionskontrolle der Kommunikationsstrecke)

5. Hast Du sonst noch irgendwelche Tips zum Nachbau parat?

Dank im voraus

Gruß, Klaus
Autor: Stefan (Gast)
Datum: 02.09.2007 22:07

Hi,

>Welche Fuses sollten beim Programmieren des ATmega8 gesetzt werden?
Auf jeden Fall externer Quarz, sonst nichts besonderes.

>Gibt die Karte eine Art "Lebenszeichen" von sich, wenn sie
>Eingeschaltet wird?
Nein. Es werden erst Daten gesendet wenn ein Tag erkannt wurde.

>Kann ich auch vom Host (PC) zum Leser irgendwelche Kommandos versenden
Nein. Die aktuelle Firmware kann nur senden.

>Hast Du sonst noch irgendwelche Tips zum Nachbau parat?
Ich würde zunächst mal vor der Endlosschleife die LEDs blinken lassen
und etwas auf der Schnittstelle ausgeben lassen, so sieht man dass schon
mal dieser Teil der Hardware funktioniert.

Stefan
Autor: Klaus R. (ruebi)
Datum: 03.09.2007 06:58

Hallo Stefan,

danke für die schnelle Rückantwort. Beim Vergleich meines Aufbaus mit
dem Foto in Deinem Dokument
http://www.mikrocontroller.net/attachment/25652/images.pdf fiel mir
zumindest noch ein optischer Unterschied auf: Was ist mit dem
Kondensator C6? Dieser ist im Schaltplan zwar gezeigt, jedoch nicht mit
einem Wert hinterlegt. Lediglich der parallel dazu eingebaute C5 ist mit
15nF spezifiziert. Und auch nur diesen habe ich eingebaut. Könnte das
der Unterschied sein der ein Erkennen der 125KHz Tags verhindert?. Die
von mir verwendeten Transponder sind ansonsten passend für das ELV
"Passiv-Transponder-Schaltmodul PTS 100"
(http://www.elv-downloads.de/service/manuals/PTS100...)
welches ebenfalls mit 125kHz arbeitet.
Autor: Klaus R. (ruebi)
Datum: 03.09.2007 07:46

Klaus R. wrote:
>...fiel mir zumindest noch ein optischer Unterschied auf:
> Was ist mit dem Kondensator C6? ...

Wer (weiter oben im Thread lesen kann ist klar im Vorteil):

"Die beiden Kapazitäten (C5/C6) des Serienschwingkreises habe ich in
meiner Versin nun mit 15 nF und 4.7 nF bestückt. Die Frequenz liegt
damit bei ca. 120 kHz."

Da ich die hier im Forum hinterlegte Teileliste von Reichelt benutzt
hatte ist mir der auch dort fehlende 4,7 nF nicht aufgefallen. Das
wird´s dann wahrscheinlich sein. Ich werde wieder testen und dann
berichten.
Autor: Stefan (Gast)
Datum: 03.09.2007 11:39

Hallo,

habe den Warenkorb bei Reichelt aktualisiert. Hier ist der neue:

https://secure.reichelt.de/?;ACTION=20;LA=5000;AWK...

Ich habe es leider nicht geschafft zum bestehenden Warenkorb ein Bauteil
hinzuzufügen, deswegen habe ich eben einen neuen angelegt.

Gruß
Stefan
Autor: Klaus R. (ruebi)
Datum: 03.09.2007 22:47

Er lebt!!!! :-)

Mir hat´s ja keine Ruhe gelassen. 4,7n waren zwar nicht zur Hand, aber
dafür genügend 1,0n. Sicherheitshalber auch noch die Einstellungen für
den Takt überprüft, denn auch die waren gemäß Murphies Gesetzt falsch
gesetzt. Doch nun klappts. Die eine Farbe der LED1 ist nach erfolgter
Initialisierung des ATmega8 übrigens eingeschaltet. Sobald sich ein TAG
im Lesebereich des Readers befindet geht die LED (PORTC |= 1<<PC5;) aus
und der Reader sendet die ID des TAG etwa alle 100ms (for (d=0; d<50000;
d++);), beginnend mit einem 04Hex (EOT) und endend mit einem 02Hex
(STX). Zwei TAGs gleichzeitig mag er nicht. Aber ich denke, daß liegt
noch an der rudimentären Firmware des Readers.

Die zweite Farbe, als auch die zweite LED bleiben noch grundsätzlich
düster, aber ich werd mir jetzt morgen mal den Sourcecode im Detail
ansehen. Entweder ich hab da noch einen Lötfehler oder aber die LEDs
werden vom Programm noch garnicht angesprochen. Egal, Hauptsache der
Reader funktioniert erst einmal prinzipiell. Am Wochenende werde ich mir
den Schwingkreis nochmal genauer ansehen, denn die derzeit 2cm
Lesereichweite lassen sich sicherlich noch vergrößern; und sei es nur
mit einem "ordentlichen" 4,7 nF Kondensator.

An dieser Stelle aber erst einmal ein Kompliment an Stefan: Klasse
gemacht! Umso löblicher, daß er hier sogar die passenden Platinen nebst
Reichelt Bestellliste anbietest. Das macht den Nachbau um so leichter.
Danke!

Nun heißt es wohl das Teil so richtig mit Leben zu füllen, denn das
Schreiben von TAGs ist laut Schaltplan eigentlich auch möglich.
Autor: Stefan (Gast)
Datum: 03.09.2007 23:05

Super, meinen Glückwunsch!

Vielleicht hast du einen Frequenzzähler zur Hand. Wenn ja schließe an
den Zähler einfach mal einen Oszi-Tastkopf und bringe selbigen in die
nähe der Platine. Der Idealwert ist 125 kHz, bei meinem Aufbau (mit mit
15 nF und 4,7 nF) waren es 120 kHz. Die erforderliche Kapazität kann je
nach Aufbau und in der nähe befindlichen Metallteilen variiern.

Und nochmal der Hinweis: Wird das Gehäuse von der Bestellliste verwendet
sollte die Bodenplatte durch z.B. ein Stück Basismaterial und die
Frontplatte z.B. durch einen Aufkleber ersetzt werden.

Stefan
Autor: Gernot (Gast)
Datum: 04.09.2007 16:59

Ruebi schrieb:
> Zwei TAGs gleichzeitig mag er nicht.
> Aber ich denke, daß liegt
> noch an der rudimentären Firmware des Readers.

Welchen Tag verwendest du?
Z.B.der EM4102 kann keine Kollissionserkennung sondern sendet einfach
drauflos sobald er Strom bekommt.
Autor: Klaus R. (ruebi)
Datum: 04.09.2007 20:22

Gernot wrote:
> Ruebi schrieb:
>> Zwei TAGs gleichzeitig mag er nicht.
> Z.B.der EM4102 kann keine Kollissionserkennung sondern sendet einfach
> drauflos sobald er Strom bekommt.
Yep! 4102! Das wird´s sein! Danke für den Hinweis, war mir garnicht so
bewußt.
Autor: stgermain (Gast)
Datum: 10.09.2007 19:49

Hallo!
Die Routine em4095_read_tag blockiert leider die Main-Loop für die Zeit
wo diese auf einen Transponder wartet. Wie müsste man den Code abändern
damit der komplette Einlesevorgang im Hintergrund passiert und man
währenddessen z.B. auf einem Display Daten ausgeben oder Tasten eines
Keyboard einlesen kann?
Danke für Eure Hilfe!
Grüße,
stgermain
Autor: Klaus R. (ruebi)
Datum: 10.09.2007 20:18

Schau Dir eventuell mal den Source bei www.vanka.net/rfid_devices.htm
(dort gibt es ein komplettes Source-Paket zum Runterladen):
http://www.vanka.net/ds/firmware_one_for_erfid1.zip.

Dann wäre da noch bei AVRfreaks der "EM4095 RFID Reader using Atmega8"
von leeky aus Korea. Der ist jedoch in Bezug auf die mainloop
vergleichbar mit dem von Stefan.

Der einfachste Weg wird wohl sein, die Daten in einer Timer-ISR "pö a
pö" zusammenzubauen und sobald komplett ein Flag zu setzen, welches in
der mainloop abgefragt wird und dann für eine Ausgabe der Daten sorgt
bevor es zurückgesetzt wird und dadurch der Timer ISR signalisiert, daß
ein weiteres TAG gelesen werden kann.
Autor: Stefan (Gast)
Datum: 10.09.2007 21:18

Der einfachste Weg wird sein, sich die Funktion

uint8_t em4095_read_tag(uint8_t *d)

kurz etwas näher anzusehen. Dann sollte es nicht mehr schwer sein, die
ersten paar Zeilen in der Funktion so zu ändern, dass selbige gleich
zurückkehrt.

Stefan
Autor: ibilzh (Gast)
Datum: 19.09.2007 11:59

Hallo Stefan,
Hast Du die Möglichkeit die Spule zu messen.
Ich hab mal Deine Kondensator-Werte in das Excelsheet von EM eingetippt,
und bin auf einen Spulen-Wert von 90 yH gekommen. Interessant wäre der
echt gemessene Wert.

Gruss Gerhard
Autor: Gerhard Günzel (ibilzh)
Datum: 19.09.2007 12:12
Dateianhang: EM4095_Berechnung_stefan.xls (209 KB, 300 Downloads)

Hier noch das Excelsheet

Gerhard
Autor: Stefan (Gast)
Datum: 19.09.2007 14:28

Hallo,

direkt gemessen habe ich die Spule nicht, weil ich kein geeignetes
Messgerät dafür habe. Ich hatte aber mal einen Kondensator bekannter
Größe angeschlossen, mit einem Funktionsgenerator & Oszi die
Resonanzfrequenz bestimmt und dann L errechnet. Den genauen Wert weis
ich leider nicht mehr, war aber um die Größenordnung von 100 µH.

Gruß
Stefan
Autor: Peter (Gast)
Datum: 20.09.2007 15:01

Hallo Stefan

würde auch die externe Antenne von Conrad Artikel-Nr.: 130183* für Deinen
Reader funktionieren? Wenn ja, was müsste an Deiner Schaltung geändert
werden (ausser den Kondensatoren C5/6 natürlich)?
Die Groundplane Antenne ist zwar kostengünstig, wenn man aber die
Leseeinheit zum Beispiel in der Wohnung und die Antenne außerhalb haben
möchte, dann klappt das wegen der Reichweite nicht.

Viele Grüße
Peter
* Anzeige-Link
Antwort
Autor: Stefan (Gast)
Datum: 20.09.2007 18:16

Man müsste einfach die Leiterbahnen die jeweils von C5 und R1 zur PCB
Antenne gehen durchtrennen und an C5 und R1 die externe Antenne
anschließen. Dann noch natürlich die Serienkapazität angleichen. Diese
liegt übrigens bei ca. 1,0 nF - 1,5 nF ...

Stefan
Autor: Peter (Gast)
Datum: 20.09.2007 18:47

Hallo Stefan

vielen Dank für Deine Antwort. Hast Du noch Platinen zu verkaufen?

Viele Grüße
Peter
Autor: Stefan (Gast)
Datum: 21.09.2007 02:46

Ja
Autor: Peter (Gast)
Datum: 21.09.2007 11:47

Hallo Stefan

ich hätte dann gerne drei Platinen. Müßte dann so ca. 39 Euro sein.
Kannst Du mir bitte per eMail an pjascii at web de mitteilen, wohin ich
das Geld überweisen kann?

Viele Grüße
Peter
Autor: peter (Gast)
Datum: 21.09.2007 21:08

Hallo Stefan

habe da gerade eine Idee. Wenn man die PCB Antenne aussägen würde,
könnte man diese nicht separat in ein Gehäuse ausserhalb der Wohnung
plazieren? ich könnte mir dann die Conrad Antenne sparen und bräuchte
wahrscheinlich an den Kapazitäten auch nichts ändern. Liege ich da
richtig, trotz der Kabellänge von der PCB Antenne zum Board?

Viele Grüße
Peter
Autor: Stefan (Gast)
Datum: 21.09.2007 22:15

>ich könnte mir dann die Conrad Antenne sparen

...und hast dann die Arbeit die Platine feinsäuberlich zu zersägen (da
geht's eng zu!), die PCB Antenne in ein Gehäuse etc. zu montieren,
eventuell die Kondensatoren anzupassen, und hast eine geringere
Reichweite als mit Conradantenne...

Kurz: Das macht keinen Sinn.

Und wenn du die Antenne ausserhalb der Wohnung haben willst gehe ich mal
davon aus dass du daraus einen Türöffner bauen willst. Wenn das so ist
sag' bescheid, ich habe da noch andere Platinen rumfliegen:
Auf der einen ist ein EM4095 und ein Mega8. Die Platine (ca. 45 mm x 35
mm) wird mit 5 V versorgt, eine Antenne wird extern angeschlossen. Dann
gibt's noch RS232 Ein-/Ausgang (TTL Pegel), und einen OC Ausgang. Da
könnte man dann z.B. ein Relais etc. anschließen.
Die andere Platine ist rund, Durchmesser 52 mm, so dass sie bequem in
eine Unterputzdose passt. Auf dieser Platine ist noch ein
Brückengleichrichter, Spannungsregler und ein RS485 Anschluss. Daran
kann man also direkt eine Antenne, 8 V~ Klingeltrafo und z.B. einen
Türöffner anschließen.
Autor: Peter (Gast)
Datum: 22.09.2007 12:20

Hallo Stefan

Du hast Recht. Ich möchte daraus eine Zugangserkennung bauen. Ich habe
bereits eine über besagtes Conrad Modul im Einsatz. Das zweite ist nach
kurzer Zeit (2 Monate) kaputt gegangen. Wie es aussieht hat das Netzteil
des Moduls die 12 V ~ nicht ausgehalten. Ich habe dann für das zweite
ein eignes Netzteil über 7812 gebaut. Das läuft jetzt bereits ein Jahr.
Leider sind die Teile von Conrad recht teuer und die RFID Tags kann man
nur von Conrad verwenden. Ich habe dann auch noch das Teil von ELV. Da
ist aber die Leseeinheit sehr klobig und enthält neben der Antenne auch
noch Elektronik. Da ich sowieso noch die Stahlzarge ändern muss (elekt.
Türöffner), sollte das Teil schon ein wenig preiswerter sein. Meine
Privatmail hast du ja. Wenn Du mir deine Telefonnummer schickst, kann
ich Dir die Sache im einzelnen erklären.

Viele Grüße
Peter