Несколько RFID RC522 на arduino yun

Я пытался в течение одного месяца заставить несколько rfid-считывателей RC522 работать вместе на SPI на arduino yun, один работает нормально, но если я подключу 4, каждый с определенным выбором ведомого устройства, только один, иногда 2, иногда ни один не работает.

Библиотека , которую я использую, - RFID.h (я думаю, что это miguelbalboa), но у меня были те же результаты с MFRC522.h, у которого есть определенный читатель readUidMultiReader, поэтому я не думаю, что мой код виноват.

В поисках этой проблемы я нашел этот вопрос, который в основном является моей проблемой, так как я подозреваю, что считыватели, которые я купил, не поддерживают multidrop. Эти читатели тоже не работают.

Я читал о решениях, использующих мультиплексоры для линий SPI, буферы трехфазного тока на линиях miso и/или диодах, но это обходные пути, и должно быть более простое решение.

Кроме того, я большую часть времени тестировал без резисторов, но пытался перевести 10 Ком со всего МИСО на 3 в3, без изменений, так как я действительно не понимаю, для чего они используются, даже если я чувствую, что они могут быть обязательными.


Я использую yun для встроенного ethernet, потому что я попробовал nanos с экранами ethernet, и снова экраны игнорируют выбор ведомого устройства и, следовательно, не работают с spi multidrop, поэтому каждый раз, когда я подключал экран к nano, даже не используя его, rfid перестал работать.

wiring

, 👍1

Обсуждение

ваше замечание о Ethernet shield заставляет меня думать, что вы не устанавливаете все контакты CS перед "begin ()" отдельных устройств в " setup ()"., @Juraj

У меня та же проблема. Вы нашли решение ? как поставить ВЫСОКИЙ CSin код ? С наилучшими пожеланиями., @pascal Chfond


2 ответа


0

Я полагаю, что цифровой выходной мощности yun недостаточно для управления всеми четырьмя считывателями - поэтому вам нужно добавить несколько цифровых буферов в MOSI, SCK и первые строки.

74LS07 цифровой буфер:

74LS07

,

могут ли vcc и заземление цифрового буфера быть выходными сигналами (так как они могут выводить больше интенсивности, чем контакты), или тогда они должны быть от внешнего источника ?, @Neil

Да, они могут офк, @gbg

Вам не нужны буферы для линий SPI. Единственная мощность, необходимая на этих линиях, - это зарядка входных мощностей на ведомых / ведущих устройствах und 5 на шине, не нуждающихся в большом токе., @theSealion


1

Несколько устройств SPI на одной шине не должны быть проблемой. Я бы попытался предпринять следующие шаги, чтобы сузить круг проблем:

  1. Добавьте подтягивающие резисторы к каждой линии CS (должно хватить 10 К)
    (Нет необходимости в резисторах на линиях MISO, MOSI или CLK, так как они нажимают/тянут, когда активны)

  2. Убедитесь, что для каждого CS установлено значение HIGH, прежде чем пытаться получить доступ к считывателю

  3. Используйте простой скетч, который имеет доступ только к 1 считывателю.

    • если бы вы могли получить доступ к первому считывателю -> измените скетч, чтобы использовать второй, не меняя настройки оборудования. Продолжайте, пока не проверите всех читателей.
    • если вы не можете связаться с одним читателем, у вас все еще есть ошибка в настройке оборудования
  4. Когда читатели работают независимо, вы можете начать писать свой скетч, используя более одного за раз. (в зависимости от библиотек это может быть довольно сложно, так как библиотека должна поддерживать несколько экземпляров, но сначала мы должны проверить настройку оборудования)

,