Forum: Mikrocontroller und Digitale Elektronik Help , Arduino 2560 R3 Mega mit PN532


von Sam (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe einen Arduino Mega 2560 R3 board und möchte das PN532 von 
Adafruit über I2C kommunizieren lassen.

Folgende Pins habe ich zwischen board und shield jeweils miteinander 
verbunden: 5v,gnd,sda,scl.


Die "busy" und "pwr" LED leuchten die ganze zeit. Eigentlich sollte es 
einer der LED's flakern wenn man eine Milfare Card aber es passiert nix.

Ich habe die Beispiele in "Adafreuit_NFCShield_I2C" alle einzelnd 
upgeloadet und probiert aber bekomme immer folgende Message im
Serial Monitor:

"Hello"
"Didn't find PN53x board"


Bin mir nicht sicher ob ich noch zusätzliche Pins brauche oder habe ich 
etwas falsch gemacht ?

Ich habe Bilder von den Verbindungstellen gemacht und hoffe jemand kann 
mir da weiterhelfen, ist das Erste mal das ich was mit uC etwas mache 
und wäre echt dankbar für jede Hilfe...

Bild 1: Das PN532 von Adafruit
Bild 2: Das PN532 von Adafruit: 5V und GND
Bild 3: Das PN532 von Adafruit: SDA und SCL

Bild 4: Arduino Mega 2560 R3 board: SDA und SCL
Bild 5: Arduino Mega 2560 R3 board: GND und 5V

von Guest (Gast)


Lesenswert?

Sam schrieb:
> Bild 1: Das PN532 von Adafruit
> Bild 2: Das PN532 von Adafruit: 5V und GND
> Bild 3: Das PN532 von Adafruit: SDA und SCL
>
> Bild 4: Arduino Mega 2560 R3 board: SDA und SCL
> Bild 5: Arduino Mega 2560 R3 board: GND und 5V

Ich hör sie schon schreien:BILDFORMATE!!

SNCR

von Timm R. (Firma: privatfrickler.de) (treinisch)


Lesenswert?

Hallo,


PN532 Board oder Shield? Ich tippe auf Shield.

Jetzt mal ehrlich, so verwirrt ein  S h i e l d  falsch anzuschließen 
kann man doch fast gar nicht sein! Ich bin zwar Arduino-Befürworter, 
aber sowas ist echt ein heftiger Tiefschlag.

Also: Zeig doch bitte mal eine Quelle, wo steht, dass man das Ding so 
anschließen soll, wie Du es gemacht hast! Was lässt Dich vermuten, dass 
bei einem halbwegs professionellen Board irgendwas anderes als ein 
ISP-Programmer an den ISP_Header angeschlossen wird? Gerade bei einem 
Arduino?

Und dann erklär mir noch kurz, warum Du es nicht einfach so machst, wie 
es im Video, im Sketch oder auf der Homepage von Adafruit überall steht.

RTFM!

beste Grüße

 Timm

von Sam (Gast)


Lesenswert?

Hallo Timm,

Shield habe ich ja schon oben erwähnt...

Naja wie du vielleicht weisst, ist es nicht so , das man das shield 
einfach dransteckt und fertig ist das ganze. Die SDA und SCL Pins vom 
Arduino 2560 R3 board sind leider nicht günstig plaziert ,von dem her 
kann man das also doch falsch anschließen.


Hier ist die Quelle:
http://learn.adafruit.com/adafruit-pn532-rfid-nfc/shield-wiring

leider ist das Beispiel nur auf ein Arduino UNO beschränkt und man 
bekommt nicht gerader sehr viel Auskunft welche PIN's benötigt 
werden....

Die Infos, dass die PIN's 5v,gnd,sda,scl benötigt werden habe ich aus 
einem Supportforum :http://forums.adafruit.com/viewforum.php?f=31

MfG,

Sam

von Karl H. (kbuchegg)


Lesenswert?

Sam schrieb:

> Naja wie du vielleicht weisst, ist es nicht so , das man das shield
> einfach dransteckt und fertig ist das ganze. Die SDA und SCL Pins vom
> Arduino 2560 R3 board sind leider nicht günstig plaziert ,von dem her
> kann man das also doch falsch anschließen.

Echt?

http://arduino.cc/de/uploads/Main/ArduinoMega2560_R3_Front.jpg

Schau ich mir die Platine an, dann steht beim Digital Pin 20 bzw. 21 
eindeutig SDA und SCL dabei.
Drunter steht auch noch mal ganz groß "Communication".


Du bist am völlig falschen Anschluss

von Sam (Gast)


Lesenswert?

Hmm das ist komisch....

http://arduino.cc/en/uploads/Main/ArduinoMega2560_R3_Back.jpg

da sind auch SDA und SCL aber irgendwie klappt es beim pin 20/21...

Wofür sind dann die SDA SCL wo ich da angeschlossen hatte ? Oo

von Karl H. (kbuchegg)


Lesenswert?

Sam schrieb:
> Hmm das ist komisch....
>
> http://arduino.cc/en/uploads/Main/ArduinoMega2560_R3_Back.jpg
>
> da sind auch SDA und SCL

Ja, das ist der ISP anschluss. Über den wird der Prozessor programmiert, 
wenn man mit einem ISP Programmer direkt an den Prozessor geht.
Und wenn ich das richtig sehe, dann ist das sogar der ISP Anschluss vom 
Hilfs-AVR, der die USB Kommunikation übernimmt.

Diese beiden Pins sind also nicht nur nicht richtig, die sind nicht 
einmal falsch. Du bist am falschen µC.

Ist dir den gar nicht aufgefallen, dass die Leitungen von diesem 
Anschluss gar nicht zum Haupt-µC gehen, sondern zu einem kleinen 
Hilfs-µC auf dem auch Atmel draufsteht? Ein bischen mitdenken muss man 
schon, wenn man µC programmieren will.

von Sam (Gast)


Lesenswert?

Danke Karl,


allerding bekomme ich noch keinen Interrupt...

Ich habe gelesen man braucht den digital Pin 2 dafür...
An welchen Anschluss am board muss ich das verbinden ? kann ich beim 
board beim PWM oder Digital einen PIN aussuchen ?

von Karl H. (kbuchegg)


Lesenswert?

Sam schrieb:
> Danke Karl,
>
>
> allerding bekomme ich noch keinen Interrupt...
>
> Ich habe gelesen man braucht den digital Pin 2 dafür...

bei welchem Pin steht denn "2" dabei.
Da würde ich mal anstecken.


Wenn nicht, dann muss man halt mal die Schaltpläne ein wenig studieren.
An welchen Pin beim Uno geht die Leitung, welches die der 
korrespondierende Pin auf deinem Mega. Und wo geht der an der 
Buchsenleiste hin.

von Timm R. (Firma: privatfrickler.de) (treinisch)


Lesenswert?

@Karl-Heinz

ich bewundere es, wie gut Du immer die Nerven behältst und mit welcher 
Disziplin Du Dich auf hilfreiche Antworten konzentrierst!

@Sam

ich würde sagen, bei digital Pin 2 dürfte es ich um den in der PWM Bank 
handeln. Der sollte an INT4 hängen. Aber eigtl. dürfte AttachInterrupt 
das automatisch ummodeln.

Am Uno hängt digital pin 2 an INT0

Vlg
 Timm

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Guest schrieb:
> Ich hör sie schon schreien: BILDFORMATE!!

Nee, tolle Fotos vom Adafruit PN532 NFC/RFID Controller Shield. Die 
besten, die ich mit der Google-Bildersuche gefunden habe. :-)

Danke, Sam. :-)

von Moritz Schnell (Gast)


Lesenswert?

Ich habe ein PN532 Breakout-Board problemlos über I²C am Arduino Mega 
2560
zum laufen gebracht. Aber alle Beispiele gehen immer nur über 
Endlos-Loops.

Für mich ist aber ein Interrupt-Aufruf von PN532 wichtig.
Ich habe den PN532 IRQ an Pin2 (=Int0) angeschlossen, der Interrupt wird 
aber nicht ausgelöst, wenn ich eine NFC-Karte an das Board halte.

Schaltung:
Arduino_Mega    PN532
GND             GND
3V3             VCC
SDA (Pin 20)    SDA
SCL (Pin 21)    SCL
Int0(Pin 2)     IRQ

Hier der nicht funktionierende Code:


#include "nfc.h"
NFC_Module nfc;

void setup(void)
{
  Serial.begin(9600);
  nfc.begin();

  uint32_t versiondata = nfc.get_version();
  if (! versiondata) {
    Serial.print("Didn't find PN53x board");
    while (1); // halt
  }

  // Got ok data, print it out!
  Serial.print("Found chip PN5"); Serial.println((versiondata>>24) & 
0xFF, HEX);
  Serial.print("Firmware ver. "); Serial.print((versiondata>>16) & 0xFF, 
DEC);
  Serial.print('.'); Serial.println((versiondata>>8) & 0xFF, DEC);

  /** Set normal mode, and disable SAM */
  nfc.SAMConfiguration();
  //Attach Interrupt to Int0 (Pin2)
  attachInterrupt(0, inter, CHANGE);
}

void loop(void)
{


}

void inter(){

      Serial.print("inter start");

  u8 buf[32],sta;

  if(nfc.InListPassiveTarget(buf) && buf[0]== 4){
    /** the card may be Mifare Classic card, try to read the block */
    Serial.print("UUID length:");
    Serial.print(buf[0], DEC);
    Serial.println();
    Serial.print("UUID:");
    nfc.puthex(buf+1, buf[0]);
    Serial.println();
    }


}

von Moritz Schnell (Gast)


Lesenswert?

Ich habe schon die Ursache gefunden: Der IRQ-Pin steht immer auf HIGH 
(3V),
egal ob ich mit einer Karte in die Nähe komme oder nicht.
Lt. Spec sollte der IRQ aber auslösen wenn eine Karte in die Nähe kommt.

Dann ist es klar, dass der Interrupt nicht ausgelöst wird.

Hat jemand eine Idee dazu? Ansonsten wäre der PN532 optimal.

von Moritz Schnell (Gast)


Lesenswert?

Nachtrag: ich habe gerade die PN532 Spec gelesen. Der Wakeup-Puls am IRQ 
dauert nur 12 ms. Da ich kein Oszi, etc habe, kann ich Signal nicht 
prüfen.

von Moritz Schnell (Gast)


Lesenswert?

Moritz Schnell schrieb:
> Nachtrag: ich habe gerade die PN532 Spec gelesen. Der Wakeup-Puls
> am IRQ
> dauert nur 12 ms. Da ich kein Oszi, etc habe, kann ich das Signal nicht
> prüfen.

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.