RFID RC522 нестабильно считывает...

Тема в разделе "Проводная и беспроводная связь", создана пользователем DrProg, 10 окт 2015.

  1. DrProg

    DrProg Вечный нерд

    ... особенно когда их несколько. На одной схеме размещается от 7 до 9 ридеров, опрашиваемых по очереди при помощи SS ножек. Читает раз в две секунды, результаты как кот пописал, то все, то половину, то одну, то ни одной. Одни и те же метки лежат неподвижно и читаются хаотично. Напрашивается два вопроса: почему так и как повысить стабильность? Откуда могут быть сбои и помехи?
     
    ИгорьК нравится это.
  2. Tomasina

    Tomasina Сушитель лампочек Модератор

    Длина проводов какая?
     
  3. DrProg

    DrProg Вечный нерд

    От Ардуины до первого рфида приерно полметра, дальше через каждые 11см 8 штук, итого 9. Но принимает иногда и от последней нормально и от первой не показывает. Думаете в длине шлейфа причина?
     
    ИгорьК нравится это.
  4. Tomasina

    Tomasina Сушитель лампочек Модератор

    У меня 5 штук подключены каждый плоским шлейфом 80 см, твой код отрабатывает без сбоев.
    Может еще питание просаживаться на такой длине, при 3 Вольтах уже не будет работать.
     
  5. DrProg

    DrProg Вечный нерд

    Попробую укоротить предварительный кусок, между рфидами короче никак. Питание измерял, 3.2 примерно, вроде должно хватать. Не знаю где еще копать. Иногда и все показывают, т.е. программа правильная скорее всего.
     
    ИгорьК нравится это.
  6. Tomasina

    Tomasina Сушитель лампочек Модератор

    А 3.3 откуда берется? Может банально не вытягивает такое количество потребителей. Кондер 47-100 мкФ на первый попробуй повесить.
    Можно ещё рядом с первым поставить 1117 и тогда вести 5-вольтовую линию, там всяко запас есть.
     
  7. DrProg

    DrProg Вечный нерд

    RST обязательно на ножку с ШИМ вешать? Читал такое где то, но не понял смысла.
     
    ИгорьК нравится это.
  8. DrProg

    DrProg Вечный нерд

    Отдельный источник питания для рфидов, блок питания и преобразователь. Светодиоды горят бодро. Более всего смущает хаотичность работы рфидов, от расстояния независящее.
     
    ИгорьК нравится это.
  9. DrProg

    DrProg Вечный нерд

    Нашел вот такую схему подключения и задумался[​IMG]
    Надо ли подтягивать к питанию? Зачем диоды, особенно на SS например?
     
    ИгорьК нравится это.
  10. DrProg

    DrProg Вечный нерд

    Не поделитесь схемой подключения, хотя бы словесной.
     
    ИгорьК нравится это.
  11. Tomasina

    Tomasina Сушитель лампочек Модератор

    на схеме выше думаю диоды нужны только для понижения приходящих извне 5 Вольт хотя ридер их нормально переваривает, подтяжка к питанию тоже вряд ли нужна, там же пины однозначно конфигурируются и не висят "в никуда".
    Схема подключения и код у меня взяты с твоей темы: все, кроме SDA, запараллелены, SDA на каждый пин отдельно (ШИМ не используется, поэтому любые цифровые).
    Вот одна из предыдущих фото, на 3 ридера, свежих нету.
    Может у тебя какой-то ридер глючит и гадит в линию? По одному отключать их возможно?
     
    DrProg нравится это.
  12. DrProg

    DrProg Вечный нерд

    На макетке собирал из 2х РФИДов, работало замечательно. Отключаю по 1, ставлю на макетку, все работает, ставлю обратно - не работает! Те же ноги, тот же скетч, но не работает! Уже и по одному ридеру оставлял. Программа рабочая точно, дело наверняка в проводах. Не пойму только в чем именно и куда копать.
     
    ИгорьК нравится это.
  13. DrProg

    DrProg Вечный нерд

    Застрял весьма прочно. Прочитал статью, в которой описано почему может быть такое при длинных проводах. Попытался поиграть параметром SPI.setClockDivider() повышая и понижая делитель от 2 до 128. Разницы никакой. Залез в библиотеку MFRC522, нашел там функцию инициализации SPI, засунул туда SPI.setClockDivider(), тоже не помогло. Хотя пишут, что понижение частоты такта позволяет увеличивать длину провода чуть ли не до 100м, почему же мой 1м оказывается непреодолимым препятствием?
     
    ИгорьК нравится это.
  14. Tomasina

    Tomasina Сушитель лампочек Модератор

    Если это для SPI критично, то попробуй подключить их звездой одинаковой длины, как у меня, а не последовательно, как сейчас.
    Можно даже витой парой для устойчивости.

    P.S. а можно ещё фото лицевой и обратной стороны печатной платы и всей сборки в целом? Есть пара подозрений по наводкам.
     
    Последнее редактирование: 12 окт 2015
  15. DrProg

    DrProg Вечный нерд

    Самое смешное, что теперь и на макетке стало глючить. Два рфида стоят рядом и работают то оба, то по одному, то вообще не работают. Что за хрень?
     
    ИгорьК нравится это.
  16. vvr

    vvr Инженерище

    наверно после долгих мучений выясняться косяки в подключении:)
    всё разобрать - собрать (через день два)
     
  17. DrProg

    DrProg Вечный нерд

    Уже нашел другую библиотеку, переделал скетч на нее. Внутрь залез, выясняя как она работает. В итоге все равно теперь показания рфидов зависят друг от друга, хотя снимаются независимо. Например прикладываю метки по одной к каждому - ничего не происходит. Прикладываю сразу к двум - нате, выскакивает сразу оба. Мозг мой плавится.
     
  18. DrProg

    DrProg Вечный нерд

    Прикрепил светодиоды к каждому SS, чтобы видеть как опрашиваются рфиды. Вообще мама дорогая что показывает. Сначала вроде бы мигают по очереди как положено. Затем, при случайном сочетании прикладывания меток, какой то навсегда тухнет, какой то наоборот загорается и горит не мигая, какой то мигает с непонятной периодичностью. Это вообще как?

    Может у меня рфиды паленые?
     
    ИгорьК нравится это.
  19. DrProg

    DrProg Вечный нерд

    В общем решил сделать ход конем через голову. Если так и не заработает ничего, поставлю на каждый рфид отдельный контроллер типа Attiny85 и свяжу их с главным модулем типа Про Мини. Через задницу, конечно, но через передницу никак работать не желает. (
     
    ИгорьК нравится это.
  20. Megakoteyka

    Megakoteyka Оракул Модератор

    А чем витая пара может помочь в случае SPI? Витая пара для дифференциального сигнала нужна, насколько я знаю. В случае обычного сигнала (который относительно земли передается) помеха ляжет на сигнальный провод и на землю, но по земле просто стечет, а сигнал исказит. А в случае дифференциальной пары помеха искажает сигнал+ и сигнал- одинаково и разница между сигналами сохраняется.