Arduino и PN532
- Войдите на сайт для отправки комментариев
Здравствуйте, уважаемые форумчане! Решил на днях присоединить RFID-модуль PN532 к Arduino, да никак не получается.
Через библиотеку от Adafruit всё работает, но её функционала не хватает, поэтому требуется разработка с нуля.
По принципу работы: отправляем данные -> модуль присылает бай ты об успешное отправке по форме -> модуль обрабатывает команду -> модуль возвращает результат.
Что используя библиотеку SPI, что работая через регистры, данные отправляются, а вот при получении ответа у меня появляются некоторые трудности...
Насколько я понял, библиотека SPI подразумевает получение результата сразу после отправки одного байта. А у нас байт может быть несколько, хоть 264 – максимум модуля по форме.
Через регистры у меня ничего не возвращается.
Сёрфил и в Яндексе и в Google , но ни описания, ни примеров не нашёл, чтобы изучить получение результата. Поэтому обращаюсь сюда.
Подскажите, пожалуйста, как в описанным выше примере получить данные обратно, желательно через регистры? Можно без примера. Спасибо!
P.S.: Arduino – ведущее устройство, а модуль – ведомое.
Это не библиотека, а сам протокол SPI. библиотека лишь реализует его. Обмен происходит по 1 байту. Байт отослал, тут же принял ответный байт. Примите это, по другому не будет. Надо учиться решать свои задачи на этом.
Например, если Вам надо послать 1 байт (запрос), а в ответ получить 10 байтов информации - посылаете 1 байт, получаете первый байт ответа, посылаете 0, получаете второй байт ответа, посылаете 0, получаете третий байт ответа и т.д.
Штатная библиотека SPI работает только как Мастер. Как Слейв не умеет. для работы Слейвом надо писать самому или использовать другие библиотеки. Вот пример двустороннего обмена (и мастер, и слейв).
Я понимаю, как работает SPI с помощью замены регистров, поэтому вы зря описывали принцип работы. Не делайте из меня уж совсем какого-нибудь нуба).
До меня только сейчас дошло, что для того, чтобы получить от ведомого данные обратно надо отправить какой-нибудь байт. В этом и заключался весь, казалось бы тупейший, вопрос.
До меня всё, что лежит на поверхности и подлежит обычной логике, доходит тяжело(. Как так, не знаю...
Обычно это происходит, когда в голове сформирован какой то шаблон стандартного обмена, например по которому кроме запроса можно послать запрашиваемое количество данных и это нормально - экономит время на ответ, если данных больше двух. Другие виды обмена могут создать ступор на какое то время. Кто ж его знает сколько предполагалось данных на заре SPI, и как обходили патентное законодательство.
Значит, я всё-таки НЕ
Не стоит благодарности! Успехов!
Вы сами себя делаете таковым :) Вы хоть представляете себе стек ужаса который нужно построить, что бы, как вы выразились "какой нибудь байт" заставил PN532 взбудоражить эфир, так что бы кто то эти волнения воспринял правильно ?
Начните "разработку с нуля" прочитав даташит на 532, стандарты и мануал разработчика NFC :)))))))