Лагунов (23.06.2018 08:40 - 08:42, просмотров: 1649)
cтранное дело. В очередной партии RFID-RC522 перестало включаться поле. Инициализация у меня с просторов сети и проблем не было. Принципиальная разница в том, что раньше сами микросхемы были маркированы проcто "RC522" или вообще никак. А теперь по взрослому - NXP RC522. Вот как выглядит у меня инициализация:
#define MFRC522_REG_COMMAND 0x01
#define MFRC522_REG_RF_CFG 0x26
#define MFRC522_REG_T_MODE 0x2A
#define MFRC522_REG_T_PRESCALER 0x2B
#define MFRC522_REG_T_RELOAD_H 0x2C
#define MFRC522_REG_T_RELOAD_L 0x2D
#define MFRC522_REG_TX_CONTROL 0x14
#define MFRC522_REG_TX_AUTO 0x15
#define MFRC522_REG_TX_SELL 0x16
#define MFRC522_REG_MODE 0x11
void TM_MFRC522_Init(void)
{
TM_MFRC522_Reset();
TM_MFRC522_WriteRegister(MFRC522_REG_T_MODE, 0x8D);
TM_MFRC522_WriteRegister(MFRC522_REG_T_PRESCALER, 0x3E);
TM_MFRC522_WriteRegister(MFRC522_REG_T_RELOAD_L, 30);
TM_MFRC522_WriteRegister(MFRC522_REG_T_RELOAD_H, 0);
/* 48dB gain */
TM_MFRC522_WriteRegister(MFRC522_REG_RF_CFG, 0x70);
TM_MFRC522_WriteRegister(MFRC522_REG_TX_AUTO, 0x40);
TM_MFRC522_WriteRegister(MFRC522_REG_MODE, 0x3D);
TM_MFRC522_AntennaOn(); //Open the antenna
}
void TM_MFRC522_Reset(void)
{
TM_MFRC522_WriteRegister(MFRC522_REG_COMMAND, PCD_RESETPHASE);
}
void TM_MFRC522_AntennaOn(void)
{
TM_MFRC522_WriteRegister(MFRC522_REG_TX_CONTROL, 0x83);
}