Hallo liebes Forum, ich hoffe ihr könnt mir irgendwie weiterhelfen. Ich hab mir aus China ein auf dem MFRC522 [1] basierendes Board gekauft [2]. Hab mir das Datenblatt angeschaut, ein paar Beispiele für Arduino und Raspberry durchgelesen und auf diesen Beispielen basierend den angehängten Code geschrieben. Leider klappt das nicht so ganz. Das Board ist im Moment folgendermaßen (auf dem Steckbrett) angeschlossen: Board Atmega MOSI MOSI MISO MISO SCK SCK SDA bzw. SS PB4 Vcc an 3.3 Volt, die ein LM317t aus einem 5V Handynetzteil erzeugt GND an GND RST über 10KOhm an Vcc (Soll später an einen µC-Pin, um per Software einen Hardware-Reset durchführen zu können) Der Code anbei soll eigentlich nur folgendes machen: SPI initialisieren und das Versionsregister auslesen. Laut Datenblatt steht in dem Versionsregister je nach Software-Version des ICs entweder 91h oder 92h. Falls also eine der beiden Fälle zutrifft soll eine LED, angeschlossen an PB0, leuchten. Tut sie leider nicht. Ausgelesen wird 00h. Dass das Board kaputt ist kann ich ausschließen, da es mit einer fertigen Python-Bibliothek auf meinem Raspberry einwandfrei funktioniert. Vielleicht hat ja schon einmal jemand hier solch ein RFID-Board benutzt und kann mir Tipps geben, wo mein Fehler liegen könnte. [1] http://www.nxp.com/documents/data_sheet/MFRC522.pdf [2] http://www.ebay.de/itm/MFRC-522-RC522-induktive-Modul-mit-fudan-Karte-Radiofrequenz-RFID-IC-Karte-s50-/351176715886?pt=Wissenschaftliche_Ger%C3%A4te&hash=item51c3c36e6e
Niemand 'ne Idee? Weiß jemand, ob die SPI-Routinen wenigstens so stimmen?
Vielleicht liests ja noch jemand und kann mir ne kleine Hilfe geben, hab es bis jetzt noch immer nicht zum Laufen bekommen. Falls jemand weitere Infos (Schaltplan o.Ä.) braucht - poste ich natürlich gerne.
Hey ich weis das es schon ne weile her ist. ABER Ist es nicht so das Most nach miso und miso nach mosi muss??? MOSI == Master out slave in MISO == Master in Slave Out Sorry für die kurze Antwort. Bin grad selber dran ne PSOC Lib zu machen dafür.
Thomas Lengyel schrieb: > Ist es nicht so das Most nach miso und miso nach mosi muss??? Nein bzw ja, es ist nicht so. --> MISO an MISO und MOSI an MOSI.
JA hab nochmal nachgedacht und bin zum selben Schluss gekommen. Sorry für die Verwirrung.
1 | falsch:
|
2 | uint8_t spi_transfer( uint8_t data ) |
3 | {
|
4 | SPDR = data;// Load data into the buffer |
5 | while(!(SPSR)&(1<<SPIF));// Wait until transmission complete |
6 | |
7 | return SPDR;// Return received |
8 | }
|
9 | |
10 | richtig: |
11 | uint8_t spi_transfer( uint8_t data ) |
12 | {
|
13 | SPDR = data;// Load data into the buffer |
14 | while(!(SPSR & (1<<SPIF)));// Wait until transmission complete |
15 | |
16 | return SPDR;// Return received |
17 | }
|
Hab das Teil nochmal ausgegraben und siehe da: ES FUNKTIONIERT. Wenn mein C-Buch nicht falsch liegt, muss ich jedoch Josef enttäuschen : die Operatoren & und ! sind von der Priorität her gleich, werden aber von rechts nach links ausgewertet. Somit wird hier zuerst verundet und anschließend negiert. Dann muss der Fehler wohl damals in der Verkabelung oder sonst irgendwo gelegen haben...
:
Bearbeitet durch User
Hallo Zusammen, auch wenn der Thread schon alt ist, evtl. verirrt sich ja noch Jemand (so wie ich) über die Google-Suche hierhin. Hab festgestellt, das das von mir verwendete RFID-Modul RC522 auf die Anfrage VersionReg mit 0x88 antwortet. Obwohl im Datenblatt auch die 0x91 / 0x92 genannt wird.
Ich habe selbes roblem wie Blade. Hat jemnd eine Idee was 0x88 bedeutet?
Ja. Das liegt daran dass du ein China-fake Board hast. Der Chip is kein MFRC522 sondern ein FM17522.
Hallo, nachdem ich mich die letzten Tage auch an das Thema des MFRC522 gewagt habe, hat es mich ebenfalls eine gefühlte Ewigkeit gekostet, das Versionsregister auszulesen. ABER: vor gut einer Stunde habe ich es dann endlich geschafft. @Nils F. vielen Dank für die Code-Beispiele. Allerdings bekomme ich 0x92 ausgegeben, da es mittlerweile eine Version 2.0 des Chips (oder der Software) gibt. Bei mir war allerdings die Korrektur von Josef notwendig. Nachdem nun auch der "Self-Test" funktioniert hat bin ich doch ganz euphorisch und würde jetzt gerne den nächsten Schritt wagen und, wenn möglich, die ID oder was auch immer eines Transponders auslesen. Allerdings weiß ich überhaupt nicht wie ich das ganze angehen soll. Kann mir da evtl. jemand auf die Sprünge helfen? vielen Dank!
Das Thema ist zwar schon lange zurück, aber hat es jemand geschafft, den Reader zum Laufen zu bringen ? :/ Bin jetzt wirklich schon lange am probieren und finde einfach nicht den richtigen Weg. Lg
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.