Мега + nRF24L01+ Mirf

Тема в разделе "Проводная и беспроводная связь", создана пользователем gonzales, 3 сен 2014.

  1. gonzales

    gonzales Гик

    Доброе время суток!
    Пытаюсь посредством радиомодулей передать данные с одного контроллера на другой. Столкнулся с проблемой, есть две платы контроллеров (Мега и Уно) и соответственно два транссивера. Для связи использую библиотеку Mirf
    Так вот, мега ни в какую не хочет принимать данные, только передает, библиотека корректно работает только с Уно.
    Возил все это добро в техподдержку Амперки (за что ребятам огромное спасибо), сказали, что скорее всего библиотека не заточена для работы в Мегой, обещали поковырять библиотеку.

    Что странно, пытался использовать библиотеку RF24 из соседней ветки, все работает, пока Мега посылает а Уно принимает. Как только меняю их местами, работать перестает.
     
    Последнее редактирование: 3 сен 2014
  2. ИгорьК

    ИгорьК Гуру

    Сомнительно, чтобы у Mega и Uno протокол SPI был реализован по-разному ;)
     
  3. gonzales

    gonzales Гик

    вот и мне сомнительно. тем более что с двумя разными библиотеками одинаковый результат. Может у меня плата не в порядке?
     
  4. ИгорьК

    ИгорьК Гуру

    В порядке плата, если Вы имеете в виду Мегу. А вот модули капризные, и в первую очередь потому, что их делают все кому не лень. Центральная микросхема у всех одна, а обвес - у кого что.
     
  5. gonzales

    gonzales Гик

  6. geher

    geher Гуру

    У меня такой модуль на меге 2560 работает под управлением RF24 на прием. Так что мега сама по себе ни при чем.

    Возможно, мне повезло с экземпляром меги или радиомодуля, но работает без вышеозначенного конденсатора.
     
  7. gonzales

    gonzales Гик

    впаял конденсатор 1мкф и все заработало. Не может быть...
     
    Последнее редактирование: 4 сен 2014
  8. ИгорьК

    ИгорьК Гуру

    Ну что, это хорошо. Количество вариантов действий уменьшилось но они остались.

    Что имеем. Имеем рабочий модуль, работоспособность которого доказана на Уно.

    Возможные проблемы остаются на стороне Меги:
    1. (самая тупая, но от того не менее возможная) Простейшая ошибка в коде Меги. Смотрите внимательно еще раз.

    2. Проблемы питания Меги все равно остаются. Пробуем питать модуль от внешнего 3.3 вольта. Параллельно микрофарадному конденсатору напаиваем какую-нибудь вч керамику.

    По возможности смотрим осциллографом что там на ногах питания. Смотрите особенно в момент передачи - сделайте какой-нибудь цикл в секунду и выстреливайте пакеты на передачу.

    3. Меняем ВСЕ ноги подключения Меги, а именно:
    а) Начнем с простого - физически меняем пару ног CE и CSN и программно определяем их в
    RF24 radio(CE_PIN, CSN_PIN);

    б) Если это не помогает, меняем ноги SCK, MOSI, MISO - убираем их с 52, 51 и 50 на соответствующие ноги разъема ICSP, что рядом с основным процессором Мега 2560.​
     
    Последнее редактирование: 4 сен 2014
  9. gonzales

    gonzales Гик

    Не, на уно и так все работало. А после впаивания кондера и на меге запахало.
    Спасибо за поддержку и помощь!!

    ЗЫ. В техподдержку Амперки.
    Как Вы уже поняли, проблема была не в библиотеке. Может указать прямо на странице http://amperka.ru/product/nRF24L01-wireless-module что, при проблемах с передачей или приемом особенно на Меге необходимо впаять обычный электролитический конденсатор на 1мкФ (>3.3В)
    плюсом к Vcc, минусом к Gnd. Картинка любезно предоставлена ИгорьК (победителем модулей)))) http://forum.amperka.ru/attachments/plata02-jpg.1341/