CD-card и RFID522

Muramur2000
Offline
Зарегистрирован: 11.11.2020

Всем доброго.
Я тут хотел прицепить к ардуино DUE два китайских модуля. MicroSD Card Adapter и RFID-RC522. Оба хотел повесить на аппаратный SPI и развести по чип селект. По отдельности работает замечательно, но вместе  RFID-RC522 не читается совсем.
Подключение следующее:
RFID-RC522

 * ----------------------------
 *   MFRC522      Arduino     
 *  Reader/PCD     DUE      
 *     Pin                Pin           
 * ----------------------------
 * 3.3v               3.3v
 * RST                  4 
 * GND               GND
 * IRO                  -
 * MISO            SPI-1
 * MOSI            SPI-4   
 * SCK              SPI-3  
 * SDA(SS)          3
 * ----------------------------
 
MicroSD Card Adapter
* ----------------------------
 *   MicroSD      Arduino     
 *     Card           DUE      
 *   Adapter         Pin           
 * ----------------------------
 * VCC               3.3v
 * GND              GND
 * MISO            SPI-1   
 * MOSI            SPI-4   
 * SCK              SPI-3   
 * CS(SS)            2
 * ----------------------------

Прошивал с примерами из библиотек SDFat (SdInfo)(SD-Работает) и 
MFRC522 (DumpInfo)

К сожалению RFID Работает только если у SD питание отключить

#include <SPI.h>
#include <MFRC522.h>

#define RST_PIN         4          // Configurable, see typical pin layout above
#define SS_PIN          3         // Configurable, see typical pin layout above

MFRC522 mfrc522(SS_PIN, RST_PIN);  // Create MFRC522 instance

void setup() {
  pinMode(2, OUTPUT);
  digitalWrite(2,0);
  
	Serial.begin(9600);		// Initialize serial communications with the PC
	while (!Serial);		// Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4)
	SPI.begin();			// Init SPI bus
	mfrc522.PCD_Init();		// Init MFRC522
	mfrc522.PCD_DumpVersionToSerial();	// Show details of PCD - MFRC522 Card Reader details
	Serial.println(F("Scan PICC to see UID, SAK, type, and data blocks..."));
}

void loop() {
	// Look for new cards
	if ( ! mfrc522.PICC_IsNewCardPresent()) {
		return;
	}

	// Select one of the cards
	if ( ! mfrc522.PICC_ReadCardSerial()) {
		return;
	}

	// Dump debug info about the card; PICC_HaltA() is automatically called
	mfrc522.PICC_DumpToSerial(&(mfrc522.uid));
}

Я знаю, что RFID умеет общаться по I2C и UART. I2C я в будущем планирую занять другим модулем. Да я знаю что он поддерживает не один модуль( ну как и SPI). UART-ов у мня ашь 4 штуки. Но Библиотека MFRC522 заточена только под аппаратный SPI(((((

И так:

1. Как повесить оба модуля на SPI и где я косячу?

2. Как RFID запустить по UART?(Хотелось бы рабочий пример)

3. Как RFID запустить по программному SPI?(Хотелось бы рабочий пример)

Буду рад любой помощи!

rkit
Offline
Зарегистрирован: 23.11.2016

Ищи точную схему модулей и смотри что там наворотили. Скорее всего, влепили неотключаемый буфер сигнала на карту

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Скорее всего, SD-карта у тебя SS не отпускает, извечная проблема, как результат конфликт на шине и сё.