Tool/software:
Hello, I want to communicate with mfrc522. I have a problem with SPI. I control the cs pin myself. I connected GPIO. I leave my connections below. Can you check if there is a problem with my software?
unsigned char MFRC522_SPIreceive(unsigned char address_rcv)
{
SPI_receive_address = (((address_rcv << 1) & 0x7E) | 0x80); // Okuma işlemi için adres
MFRC_NSS_OFF;
DL_SPI_setControllerCommandDataModeConfig(SPI_0_INST, 1); // 1 bayt komut gönderilecek
DL_SPI_transmitData8(SPI_0_INST, SPI_receive_address);
while (DL_SPI_isBusy(SPI_0_INST))
;
DL_SPI_setControllerCommandDataModeConfig(SPI_0_INST, 1); // 1 bayt komut gönderilecek
DL_SPI_transmitData8(SPI_0_INST, DUMMY);
while (DL_SPI_isBusy(SPI_0_INST))
;
SPI_Received_data = DL_SPI_receiveData8(SPI_0_INST);
MFRC_NSS_ON;
return SPI_Received_data;
}
void MFRC522_SPIsend(unsigned char address_snd, unsigned char data_snd)
{
SPI_send_address = ((address_snd << 1) & 0x7E); // Yazma işlemi için adres
SPI_send_data = data_snd;
MFRC_NSS_OFF;
DL_SPI_setControllerCommandDataModeConfig(SPI_0_INST, 1); // 1 bayt komut gönderilecek
DL_SPI_transmitData8(SPI_0_INST, SPI_send_address);
while (DL_SPI_isBusy(SPI_0_INST))
;
DL_SPI_setControllerCommandDataModeConfig(SPI_0_INST, 1); // 1 bayt komut gönderilecek
DL_SPI_transmitData8(SPI_0_INST, SPI_send_data);
while (DL_SPI_isBusy(SPI_0_INST))
;
MFRC_NSS_ON;
}