Я хочу эмулировать Elechouse PN532 NF C Модуль V3 в качестве карты ISO / IEC 1443-4A. Я использую Arduino Uno в качестве доски для разработки. Я также скачал их библиотеку с Github и запустил несколько примеров, чтобы проверить, нормально ли работает модуль NF C (чтение карт ISO). После того, как я проверил модуль, я ознакомился с примечанием по применению PN532, как эмулировать карту ISO / IEC 1443-4A. Итак, я использую функцию tgInitAsTarget () для установки параметров и UID. Но эта функция возвращает ошибку тайм-аута. После того, как я включил отладку, я получил следующий вывод:
write: 02
read: 03 32 01 06 07
Found chip PN532
Firmware ver. 1.6
write: 8C 00 00 00 00 00 00 40 01 FE 0F BB BA A6 C9 89 00 00 00 00 00 00 00 00 FF FF 01 FE 0F BB BA A6 C9 89 00 00 06 46 66 6D 01 01 10 00
0
Мой скриншот Arduino:
#include <PN532_SPI.h>
#include "PN532.h"
PN532_SPI pn532spi(SPI, 10);
PN532 nfc(pn532spi);
void setup(){
Serial.begin(115200);
nfc.begin();
uint32_t versiondata = nfc.getFirmwareVersion();
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);
Serial.println(nfc.tgInitAsTarget(1000));
}
void loop()
{}
Если я не передам аргумент tgInitAsTarget () , он застрял в readResponse () функция.
Есть мысли?
1) Модуль PN532 работает - потому что я могу получить версию прошивки (в этом примере тоже) или делать другие вещи. 2) На выходе в терминале последней строкой является кадр записи функции tgInitAsTarget () . Но в замечании по применению на странице 57 приведены все параметры. И они отличаются от тех, которые есть в библиотечной функции. Я попытался вставить параметры из этой заметки приложения, но это не решает проблему 3) На мой взгляд, проблема в том, что после того, как MCU отправил данные (записал кадр) в чип PN532, он не может прочитать регистр RDY - или PN532 не устанавливает его в 1, когда получил эту команду. И именно поэтому он зависает на readResponse () функция
P. C - согласно справочному руководству, регистр RDY является специальным регистром ", который разрешает хост-контроллер узнать, готов ли PN532 к приему или отправке данных обратно ".