Народ, а никто не работал к катайскими платами с чипом 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 прерываний нет.
В чем может быть проблема?