Go Down

Topic: RFID RC522 - Tag werden nicht erkannt (mal wieder?) (Read 571 times) previous topic - next topic

wollik

Hallo,

ich möchte nicht langweilen. Aber meine Recherche hier im Forum und allgemein im Internet hat mir keine Hilfe gegeben.

Folgendes möchte ich machen:
Ich möchte DumpInfo aus der MFRC522 Bibliothek (Version 1.3.5) die mitgelieferten TAG auslesen.

Was nutze ich an Hard- und Software:
- Auf Windows 7 habe ich die aktuelle Arduino Software Version 1.8.2 von dieser Seite runtergeladen und installiert
- Ich habe zwei Arduinos. Der erste kommt direkt aus China mit CH340 Chip. Der zweite habe ich bei Ebay in Deutschland gekauft - mit ATMEGA16U2 Chip
- Inzwischen habe ich zwei RFID RC522 Platinen mit jeweils zwei TAGs (ein Schlüsselanhänger, eine Karte)
- Die MFRC522 Bibliothek (Version 1.3.5) habe ich installiert

Anschluss:
- Flachbandkabel 7 adrig mit male zu female Stecker
- Alternativ 7 Litzen auf Arduino und RFID RC522 aufgelötet


Nun zu meiner "Sackgasse" (wie vermutlich hier schon häufiger beschrieben):
- starte ich die Beispiel INO "firmware-check" aus der MFRC522 Lib erhalte ich bei der in Deutschland gekauften RFID RC522 Platine die Info "MFRC522 Digital self test / Firmware Version: 0x92 = v2.0 / Performing test... / Result: OK". Bei der in China gekauften RFID RC522 Platine endet die Info "MFRC522 Digital self test / Firmware Version: 0x92 = v2.0 / Performing test...".

- Mit "DumpInfo" sollten die RFID TAG Daten angezeigt werden. Hier Reagieren die Arduinos auf keinen TAG. Egal wie verkabelt (gelötet, gesteckt) - egal mit welchem Arduino oder RFID RC522 Paltine. Ich lege die TAGs auf die Platine, lege sie drunter, mal mit Abstand, mal ohne. Nichts  :(

Ich habe selber mal Kommunikationselektroniker gelernt und E-Technik studiert. Ich habe mit meinem Multimeter die Verbindungskabel durch gemessen. Da auf den Signalleitungen ständig Signale anliegen, kann ich mit dem Oszilloskop nichts plausibles messen...

Wenn das Problem nur "Gähn" ist bitte ich um Entschuldigung. Aber vielleicht bekomme ich "den" Tipp. Auch wenn ich hier Redundant bei unterschiedlichen Händlern eingekauft habe, gehe ich nach einigen Berichten aus dem Internet davon aus dass die RFID RC522 Platinen defekt sind. Aber vielleicht bekomme ich hier einen neuen Impuls die zur Lösung verhilft...

HotSystems

Bitte poste hierzu die Links deiner RFID-Leser, ein Schaltbild wie du es verkabelt hast und deinen Sketch in Code-tags.

Verwende dazu die Schaltfläche </> oben links im Editorfenster.
Das kannst du auch nachträglich machen.
Dazu den Sketch markieren und die Schaltfläche klicken.


Damit wird dieser für alle besser lesbar.
I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

wollik

Bitte poste hierzu die Links deiner RFID-Leser, ein Schaltbild wie du es verkabelt hast und deinen Sketch in Code-tags.

Verwende dazu die Schaltfläche </> oben links im Editorfenster.
Das kannst du auch nachträglich machen.
Dazu den Sketch markieren und die Schaltfläche klicken.


Damit wird dieser für alle besser lesbar.

Ok, ich versuche es:

1. Links meiner RFID Leser:
  1. http://www.ebay.de/itm/272262610222
  2. http://www.ebay.de/itm/252715001811

2. Schaltbild: Ich habe mich an der Anleitung hier von arduino.cc gehalten
  URL: https://create.arduino.cc/projecthub/Aritro/security-access-using-rfid-reader-f7c746
  Schaltbild: https://halckemy.s3.amazonaws.com/uploads/image_file/file/149321/Mifare_bb.png

3. Sketch in Code-Tags (unverändert aus dem github: https://github.com/miguelbalboa/rfid/blob/master/examples/DumpInfo/DumpInfo.ino)

Code: [Select]

/*
 * --------------------------------------------------------------------------------------------------------------------
 * Example sketch/program showing how to read data from a PICC to serial.
 * --------------------------------------------------------------------------------------------------------------------
 * This is a MFRC522 library example; for further details and other examples see: https://github.com/miguelbalboa/rfid
 *
 * Example sketch/program showing how to read data from a PICC (that is: a RFID Tag or Card) using a MFRC522 based RFID
 * Reader on the Arduino SPI interface.
 *
 * When the Arduino and the MFRC522 module are connected (see the pin layout below), load this sketch into Arduino IDE
 * then verify/compile and upload it. To see the output: use Tools, Serial Monitor of the IDE (hit Ctrl+Shft+M). When
 * you present a PICC (that is: a RFID Tag or Card) at reading distance of the MFRC522 Reader/PCD, the serial output
 * will show the ID/UID, type and any data blocks it can read. Note: you may see "Timeout in communication" messages
 * when removing the PICC from reading distance too early.
 *
 * If your reader supports it, this sketch/program will read all the PICCs presented (that is: multiple tag reading).
 * So if you stack two or more PICCs on top of each other and present them to the reader, it will first output all
 * details of the first and then the next PICC. Note that this may take some time as all data blocks are dumped, so
 * keep the PICCs at reading distance until complete.
 *
 * @license Released into the public domain.
 *
 * Typical pin layout used:
 * -----------------------------------------------------------------------------------------
 *             MFRC522      Arduino       Arduino   Arduino    Arduino          Arduino
 *             Reader/PCD   Uno/101       Mega      Nano v3    Leonardo/Micro   Pro Micro
 * Signal      Pin          Pin           Pin       Pin        Pin              Pin
 * -----------------------------------------------------------------------------------------
 * RST/Reset   RST          9             5         D9         RESET/ICSP-5     RST
 * SPI SS      SDA(SS)      10            53        D10        10               10
 * SPI MOSI    MOSI         11 / ICSP-4   51        D11        ICSP-4           16
 * SPI MISO    MISO         12 / ICSP-1   50        D12        ICSP-1           14
 * SPI SCK     SCK          13 / ICSP-3   52        D13        ICSP-3           15
 */

#include <SPI.h>
#include <MFRC522.h>

#define RST_PIN         9          // Configurable, see typical pin layout above
#define SS_PIN          10         // Configurable, see typical pin layout above

MFRC522 mfrc522(SS_PIN, RST_PIN);  // Create MFRC522 instance

void setup() {
Serial.begin(9600); // Initialize serial communications with the PC
while (!Serial); // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4)
SPI.begin(); // Init SPI bus
mfrc522.PCD_Init(); // Init MFRC522
mfrc522.PCD_DumpVersionToSerial(); // Show details of PCD - MFRC522 Card Reader details
Serial.println(F("Scan PICC to see UID, SAK, type, and data blocks..."));
}

void loop() {
// Look for new cards
if ( ! mfrc522.PICC_IsNewCardPresent()) {
return;
}

// Select one of the cards
if ( ! mfrc522.PICC_ReadCardSerial()) {
return;
}

// Dump debug info about the card; PICC_HaltA() is automatically called
mfrc522.PICC_DumpToSerial(&(mfrc522.uid));
}

pimuc

Habe gerade mal Zeit und Muße gehabt und mir folgendes Setup aufgebaut:

- RFID-Reader wie du ihn hast
- Original Arduino Uno R3 Board
- verdrahtet wie du verlinkt hast
- Lib (Version) wie du sie hast


Ergebnis Firmare check:
Quote
*****************************
MFRC522 Digital self test
*****************************
Firmware Version: 0x92 = v2.0
-----------------------------
Only known versions supported
-----------------------------
Performing test...
-----------------------------
Result: OK
Ergebnis Dump Info mit dem mitgelierten RFID-Chip:
Quote
Firmware Version: 0x92 = v2.0
Scan PICC to see UID, SAK, type, and data blocks...
Card UID: B4 DA 28 D0
Card SAK: 08
PICC type: MIFARE 1KB
Sector Block   0  1  2  3   4  5  6  7   8  9 10 11  12 13 14 15  AccessBits
  15     63  PCD_Authenticate() failed: Timeout in communication.
  14     59  PCD_Authenticate() failed: Timeout in communication.
  13     55  PCD_Authenticate() failed: Timeout in communication.
  12     51  PCD_Authenticate() failed: Timeout in communication.
  11     47  PCD_Authenticate() failed: Timeout in communication.
  10     43  PCD_Authenticate() failed: Timeout in communication.
   9     39  PCD_Authenticate() failed: Timeout in communication.
   8     35  PCD_Authenticate() failed: Timeout in communication.
   7     31  PCD_Authenticate() failed: Timeout in communication.
   6     27  PCD_Authenticate() failed: Timeout in communication.
   5     23  PCD_Authenticate() failed: Timeout in communication.
   4     19  PCD_Authenticate() failed: Timeout in communication.
   3     15  PCD_Authenticate() failed: Timeout in communication.
   2     11  PCD_Authenticate() failed: Timeout in communication.
   1      7  PCD_Authenticate() failed: Timeout in communication.
   0      3  PCD_Authenticate() failed: Timeout in communication.
So gesehen funktioniert die Lib und die Verdrahtung. Der Fehler liegt irgendwo bei dir. Verdrahtet sind die auch 100pro korrekt? Was für ein Arduino-Board hast du genau, Typ? Clone, Original?

Die ID-Chips sprechen auf die 13,65MHz an? Prüfe deine Chips nach Möglichkeit mit dem Handy gegen. Der NFC-Reader kann diese Frequenz lesen. Da wird bei mir der obige Chip auch komplett fehlerfrei eingelesen.

wollik

Habe gerade mal Zeit und Muße gehabt und mir folgendes Setup aufgebaut:


Ergebnis Firmare check:
Ergebnis Dump Info mit dem mitgelierten RFID-Chip:
So gesehen funktioniert die Lib und die Verdrahtung. Der Fehler liegt irgendwo bei dir.
Danke. Ganz klar liegt der Fehler bei mir - ich bin nach bewährter Anleitung vorgegangen. Da gehe ich schon quasi von einer Garantie aus, das es 100%ig funktioniert. Vielleicht habe ich das zufällige Pech, das beide RFID RC522 Boards defekt sind. Der deutsche Händler hat mir bereits eine Ersatzlieferung in Aussicht gestellt.

Verdrahtet sind die auch 100pro korrekt? Was für ein Arduino-Board hast du genau, Typ? Clone, Original?
Wie geschrieben: Verbindung gesteckt und gelötet getestet.

Zum Stecken habe ich folgenden Kabelsatz gekauft: http://www.ebay.de/itm/272391372696

Zum Löten habe ich die Litze eines defekten CAT5e Kabel genommen (Defekt am Stecker, nicht am Kabel).

Folgende Clones habe ich:
 Alt: http://www.ebay.de/itm/161771453072
 Neu: http://www.ebay.de/itm/391228893566

Den alten Clone habe ich bereits ein paar Jahre - daher kann ich nur einen Link auf ein optisch gleiches Board liefern. Bei einfachen Schaltungen wie LED Blinken, PIR und Relais Modul ansteuern funktionierte das Board einwandfrei.

Die ID-Chips sprechen auf die 13,65MHz an? Prüfe deine Chips nach Möglichkeit mit dem Handy gegen. Der NFC-Reader kann diese Frequenz lesen. Da wird bei mir der obige Chip auch komplett fehlerfrei eingelesen.
Danke! Das ist ein genialer Tipp. Ich habe zwar keine App als TAG Anzeige, aber alle TAGs werden vom Handy mit einem akustischen Signal erkannt.

Was ich bräuchte, wäre Messpunkte auf dem RFID Board, um die Funktion / Störung festzustellen.

Ich glaube zwar nicht dran: Oder kann es am PC liegen? Werde es gleich mal am anderen PC testen. Auch nutze ich nur das USB Kabel als Stromversorgung. Der Hohlsteckeranschluss zur Stromversorgung ist unbenutzt.

pimuc

Was ich bräuchte, wäre Messpunkte auf dem RFID Board, um die Funktion / Störung festzustellen.
Die rote LED auf dem RFID-Board leuchtet schon, oder?

Ich glaube zwar nicht dran: Oder kann es am PC liegen? Werde es gleich mal am anderen PC testen. Auch nutze ich nur das USB Kabel als Stromversorgung. Der Hohlsteckeranschluss zur Stromversorgung ist unbenutzt.
Ich hatte bei meinem Test auch nur das USB-Kabel dran gehabt. So viel zieht das RFID-Board auch nicht.


Ansonsten gehen mir die Ideen aus. Defekte können zwar immer wieder auftreten, aber dass es gleich die zwei RFID-Boards betrifft, hm.

Noch eine letzte Möglichkeit die mir einfällt: Die Jumperkabel lassen im Arduino-Board mit minimalen Widerstand einstecken? Ich hab schon Billig-Jumperkabel gehabt, bei denen die Male-Pins im Durchmesser so klein waren, dass die in der Female(Buchse des Arduino-Boards) einen Wackler verursacht haben. Hier einfach mal die Jumperkabel leicht in eine Richtung drücken und die Chips mit den RFID-Boards (am bestenn mit deinem neuen Arduino-Board) testen.

wollik

Jepp, die LED vom RFID Board leuchtet.

Die Male Pins der Jumperkabel sind in der Tat etwas zu schmal. Ein Kippen hat hat keine Veränderung gebracht. Ansonsten löte ich die Litzen auch beim neuen Arduino Board auf.

Hatte auch schon in Erwägung gezogen, ob die Platine des RFID Boards vor dem Löten vorbereitet werden muss. Beim Verlöten der Stiftleiste haben die Lötpunkte der Platine recht widerwillig das flüssige Lot aufgenommen...

Der Anschluss am anderen PC brachte auch keinen Erfolg. Jetzt löte ich die Litze auf das neue Board auf - damit sollte ich alle Anschlusskombinationen haben. Was ich merkwürdig finde, ist - wie oben beschrieben - die "firmware-check" Antwort beim ersten RFID Board. Hier bleibt die Ausgabe bei Performance Test stehen, es gibt kein "Result"...

Nachtrag:
Nun habe ich das neue RFID Board mit den neuen Arduino mit Litze verlötet. Das Ergebins bleibt das gleiche...  :(

Foto vom Versuchsaufbau und der DumpInfo Ausgabe bei TAG Nutzung:

pimuc

Also bei dem einen RFID-Board würde ich auf einen Defekt setzen. Der bleibt irgendwo in der PCD_PerformSelfTest Routine hängen. Da kannst du höchstens schauen wo genau, indem du mit der Quick&Dirty Methode nach den Register-Abfragen und  in der for-Schleife die Durchläufe im Serial Monitor mitzählen(anzeigen) lässt.

Bei deiner Chipkarte musst du den Chip und die Spule genau treffen. Die Spule regt ja den Chip an und sendet. Problem könnte hier sein, das der Chip zu weit von der Spule entfernt liegt und nicht mehr gelesen werden kann. Nim eine Taschenlampe und leuchte von hinten durch die Chipkarte. Dann erkennst du die Spule (grosse Ring oder läuft am Rand der Chipkarte entlang) und den Chip (das sehr kleine viereckige Teil) .

Hast du nicht auch so einen blauen Chip mitgeliefert bekommen? Da ist die Wahrscheinlichkeit höher dass es funktioniert. Da liegt der Sender meist direkt neben der Spule und nicht so weit ab wie bei den Chipkarten.

wollik

Ja klar habe ich auch zwei blaue Schlüsselbund-TAGs. Das Foto sollte nur als Beispiel meines Versuchsaufbaus stehen. Die Karten und runden TAGs habe ich in verschiedenste Abstände über die "Antenne" des Moduls bewegt - ganz langsam. Auch mal auf der Rückseite und mal im 90 Grad Winkel...

Dagegen brauchte ich beim Handy nicht viel machen, und die TAGs wurden alle sofort und sicher erkannt.

pimuc

Tja, da fällt mir nicht mehr viel ein. Nach dem Foto zu urteilen, scheint der Aufbau und Firmware Check mit dem Modul zu passen. Deine Tags werden Mifare 1k (ISO 14443) entsprechen.

wollik

Hammer.

Vom Verkäufer habe ich ein durch ihn erfolgreich getestetes RFID Modul bekommen - angeschlossen, läuft :)

Unglaublich, das ich bei zwei Boards aus unterschiedlichen Quellen zweimal eine Niete gezogen habe.

Nun kann mein Projekt endlich weitergehen :D

Danke für die schnelle und gute Hilfe.

Ich hoffe, ich konnte mit dem Thread anderen mit sehr wahrscheinlich gleichen Problemen helfen.

HotSystems

Hammer.
Vom Verkäufer habe ich ein durch ihn erfolgreich getestetes RFID Modul bekommen - angeschlossen, läuft :)
Auch hier bestätigt sich "Der Kunde ist die Endkontrolle".
I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

fusionftw

Moinsen,

die Meldung "PCD_Authenticate() failed: Timeout in communication." kommt auch bei mir, nur ist der Reader funktionsfähig.

Anscheinend hat sich bei der Benutzung mit meinem Smartphone das "NDEF" Format eingeschichen.

Gibt es irgendeine Möglichkeit diese Formatierung zu entfernen, sodass der Tag wieder jungfreulich ist?

HotSystems

Moinsen,

die Meldung "PCD_Authenticate() failed: Timeout in communication." kommt auch bei mir, nur ist der Reader funktionsfähig.

Anscheinend hat sich bei der Benutzung mit meinem Smartphone das "NDEF" Format eingeschichen.

Gibt es irgendeine Möglichkeit diese Formatierung zu entfernen, sodass der Tag wieder jungfreulich ist?
Was bitte soll uns dein Post sagen ?
Mach bitte für deine Frage einen neuen Thread mit einem aussagekräftigen Titel auf.
Und poste auch gleich Links deiner verwendeten Teile damit wir wissen, was du verwendest.
I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

Go Up