реклама на сайте
подробности

 
 
> RFID чип RC522
Mad-man
сообщение May 30 2014, 13:44
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 91
Регистрация: 5-11-06
Пользователь №: 21 995



Народ, а никто не работал к катайскими платами с чипом RC522, разведеными под SPI интерфейс

вот такой, полько плата синяя, http://robocraft.ru/blog/3004.html

схематика аналогичная, полько разводка немного другая

Есть проблемы

Вопрос 1. Какой режим SPI нужен? У меня работает (ну как работает? читается регистр version = 0x92 ) в режиме 0 (фаза 0 и полярити 0) и 3 (фаза 1 и полярити 1) режимы 1 и 2 походу не работают. Из доков вижу что MOSI должен быть стабильным в SCK = HI о фазе ни слова.

вопрос 2. Rst как я понимаю должен быть = 1.

Вопрос 3. Основная проблема. Не читаются карты. Взял китайский код (который у всех работает судя по количеству ссылок на него).

https://github.com/miguelbalboa/rfid

в функции PCD_CommunicateWithPICC

в цикле

while (1) {
n = PCD_ReadRegister(ComIrqReg); // ComIrqReg[7..0] bits are: Set1 TxIRq RxIRq IdleIRq HiAlertIRq LoAlertIRq ErrIRq TimerIRq
if (n & waitIRq) { // One of the interrupts that signal success has been set.
break;
}
if (n & 0x01) { // Timer interrupt - nothing received in 25ms
return STATUS_TIMEOUT;
}
if (--i == 0) { // The emergency break. If all other condions fail we will eventually terminate on this one after 35.7ms. Communication with the MFRC522 might be down.
return STATUS_TIMEOUT;
}
}

опрашиваются прерывания на наличие RxIRq бита в регистре ComIrqReg. Функцию я зациклил и сделал респечатку.
Висят прерывания LoAlertIRq, TimerIRq по RxIRq прерываний нет.
В чем может быть проблема?





Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Kot_dnz
сообщение Jul 29 2014, 10:44
Сообщение #2





Группа: Новичок
Сообщений: 6
Регистрация: 4-07-14
Пользователь №: 82 154



Цитата(Mad-man @ May 30 2014, 16:44) *
Народ, а никто не работал к катайскими платами с чипом RC522, разведеными под SPI интерфейс
[skip]
опрашиваются прерывания на наличие RxIRq бита в регистре ComIrqReg. Функцию я зациклил и сделал респечатку.
Висят прерывания LoAlertIRq, TimerIRq по RxIRq прерываний нет.
В чем может быть проблема?


+1 та же проблема sad.gif

использую исходники
@file MFRC522.cpp
@author Bjarte Johansen
@licence ljos.mit-license.org

SPI Driver for MFRC522 NFC/13.56 RFID Transceiver.

Based on code by Dr.Leong ( WWW.B2CQSHOP.COM ) and
Miguel Balboa (https://github.com/miguelbalboa/rfid).

SPI работает, могу читать писать в регистры

Код
Start tests-------------
RFID via SPI1 start to test
Looking for MFRC522.
Found chip MFRC522
Firmware ver.146.
Digital self test by MFRC522 passed.
Read registers inside RC522
in register 0x16 we wait 0x10 (16),  have = 16
in register 0x18 we wait 0x84 (132), have = 132
in register 0x19 we wait 0x4d (77),  have = 77
Card not detected.
RFID via SPI1 end of test

End tests


ни одной карты прочесть не могу sad.gif

Возможно оно - невозможно записать в регистры:
вот выыод того, что писали и что прочитали (в десятичной системе)sad.gif

TModeReg, 0x8D -> 0
TPrescalerReg, 0x3E -> 0
TReloadRegL, 30 -> 0
TxAutoReg, 0x40 -> 0
ModeReg, 0x3D -> 59
TxControlReg, 0x03 -> 128


Цитата(Kot_dnz @ Jul 29 2014, 13:34) *
+1 та же проблема sad.gif


проблема решена правильной инициализацией спи. без выставления в какое либо значение ног.
правильное значение регистров в рабочем положении:
TModeReg, 0x8D -> 0
TPrescalerReg, 0x3E -> 0
TReloadRegL, 30 -> 30
TxAutoReg, 0x40 -> 64
ModeReg, 0x3D -> 61
TxControlReg, 0x03 -> 131
Go to the top of the page
 
+Quote Post
Mad-man
сообщение Jul 30 2014, 12:41
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 91
Регистрация: 5-11-06
Пользователь №: 21 995



Цитата(Kot_dnz @ Jul 29 2014, 14:44) *
использую исходники
@file MFRC522.cpp
@author Bjarte Johansen
@licence ljos.mit-license.org


Попробовал код этого автора, https://github.com/ljos/MFRC522
скетч authenticate.ino в экзамплах
чтобы уж на 100% чистый эксперимент без кодопеределок взял arduino nano,


со следующей конфигурацией.
MISO -> MISO D12
SCK -> SCK D13
SS (SDA) -> SS D10 , это было по-умолчанию в скетче
MOSI-> MOSI D11
RST - > D5, это было по-умолчанию в скетче
3.3 -> VCC 3.3
GND ->GND

---------->8------------------------------------------
#define SAD 10
#define RST 5

MFRC522 nfc(SAD, RST);
---------->8------------------------------------------


После запуска в терминале.
Looking for MFRC522.
Found chip MFRC522 Firmware ver. 0x92.
Т.е. регистры видимо читаются, но ноль реакции на метки.

код даже смотреть не хочется, они все под китайскую копирку, да и тошнит уже от RC522, уже весь мануал скурил
что-то мне кажется что желторотые что-то не то мне подсунули, это уже уже второй RFID считыватель, думал с первым что-то не то.
неужели у всех все работает и никогда такой хрени не было?????????



ну и еще добавил 2 скрина "работоспособности" устройства, RST PIN здесь перекинут на D9, по-умолчанию был тоже D10
скетча DumpInfo c https://github.com/miguelbalboa/rfid

Сообщение отредактировал Mad-man - Jul 30 2014, 12:57
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Mad-man
сообщение Jul 30 2014, 14:00
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 91
Регистрация: 5-11-06
Пользователь №: 21 995



Регистры читаются и пишутся ок, добавил и в этом скетче дамп регистров для успокоения


Looking for MFRC522.
TModeReg= 0x8D
TPrescalerReg= 0x3E
TReloadRegL= 0x1E
TxAutoReg= 0x40
ModeReg= 0x3D
TxControlReg= 0x83
Found chip MFRC522 Firmware ver. 0x92.


после выполнения

void MFRC522::begin() {
digitalWrite(_sad, HIGH);

reset();

//Timer: TPrescaler*TreloadVal/6.78MHz = 24ms
writeToRegister(TModeReg, 0x8D); // Tauto=1; f(Timer) = 6.78MHz/TPreScaler
writeToRegister(TPrescalerReg, 0x3E); // TModeReg[3..0] + TPrescalerReg
writeToRegister(TReloadRegL, 30);
writeToRegister(TReloadRegH, 0);

writeToRegister(TxAutoReg, 0x40); // 100%ASK
writeToRegister(ModeReg, 0x3D); // CRC initial value 0x6363

setBitMask(TxControlReg, 0x03); // Turn antenna on.
}


TxControlReg имеет значение по умолчанию 0x80, поэтому ОК

Сообщение отредактировал Mad-man - Jul 30 2014, 14:03
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 23:38
Рейтинг@Mail.ru


Страница сгенерированна за 0.01401 секунд с 7
ELECTRONIX ©2004-2016