Mega+SDCard+nrf24l01+enc28J60
- Войдите на сайт для отправки комментариев
Всем привет!
Проблема уже поднималась, но решение для себя я так и не нашел.
Начал с SD и NRF24. библиотеки стандартные SD и nRF24L01.h. Подключаю так.
SD: MISO-50, MOSI-51, SCK-52, CS-4, +5V, GND.
NRF24: MISO-50, MOSI-51, SCK-52, CE-8, CSN-7, +3V, GND.
Код для всех модулей общий, если включаю девайсы по отдельности все работает, подключаю вместе, SD-работает, NRF-нет(вернее инициализируется вроде нормально, что-то отсылает, а принимает нули). Отключаю SD все работает прекрасно. Пробовал экперементировать с питанием (все питать от 3V или от 5V - не рабоет, взял отдельное питание, ни один модуль вообще не запустился).
Какие можно еще варианты попробовать?
Подразумеваю, что с Ethernet будет также.
конечно будет, пока вы не поймете что и как работает. интересно какие еще варианты вы ожидаете? могу предложить завязать провода бантиком, вдруг заработает.. :)
Завязал бантиком -не заработало. Что еще должен понять? Везде в описании по SPI написано, MISO, MOSI, SCK одинаковые, управляющие пины - разные. Я так и сделал.
Завязал бантиком -не заработало. Что еще должен понять? Везде в описании по SPI написано, MISO, MOSI, SCK одинаковые, управляющие пины - разные. Я так и сделал.
давай попробуй думать... пины общие... управляющие разные... тоесть в один момент времени сколько устройств может работать?
солнышко, тепло -думается как-то не очень:). Ну попробую.
В один момент времени работает только одно устройство. соответственно остальные я должен как-то отключить, например:
правильно?
солнышко, тепло -думается как-то не очень:). Ну попробую.
В один момент времени работает только одно устройство. соответственно остальные я должен как-то отключить, например:
правильно?
угу. как то так... если взять нормальные библиотеки, то там это все реализовано в функциях... главное не забывать заканчивать сеанс связи с одним устроством прежде чем начать общаться с другим... труба то для общения одна на всех..
Код чуток кривоватый, пока в стадии отладки, но все работает
библы скорее всего кривые... особенно не понятно нафига эта #include "MirfHardwareSpiDriver.h"
ой, забыл дописать
библы скорее всего кривые... особенно не понятно нафига эта #include "MirfHardwareSpiDriver.h"
как-то без него не работает
на Mirf.spi = &MirfHardwareSpi; ругается
библы скорее всего кривые... особенно не понятно нафига эта #include "MirfHardwareSpiDriver.h"
как-то без него не работает
на Mirf.spi = &MirfHardwareSpi; ругается
я вот точно помню что NRF работает без всяких мирфов и прочих драйверов... возми последнию версию оригинальной бибилотеки. а не всякие форки по мотивам. которые кто то для себя затачивал для каких то извращенческих нужд
Я так понимаю речь идет про RF24? Ну если других вариантов нет, придется попробовать.
речь идет что в оригинальной версии есть даже mesh сети... не в полном обьеме но работают..
спасибо, пошел пробовать
ЕМНИП, в библиотеке дергается только CE, CS надо дергать самостоятельно.
Я обычно делаю так:
- LOW на нужный пин, остальные HIGH
- работа с устройством
- Все в HIGH
Либа
Все нормально дергается если брать нормальные библиотеки с гитхаба.
Ничего не получается.
После инициализации пробовал, переводить 4 пин в LOW, а перед записью в HIGH.
Подключал NRF24, NRF24RadioHead - результат примерно тот же.
К сожалению заниматься этим могу только дома, да и то 1-2 часа.
Выручайте!
Вот кусок кода, как я делаю.
Мдааа... почитай свой код... радио стоит слушает... как в то же время ожидается что сд будет читать?
Типа вы тут ухо приставили к трубе и слушаете, а кто то унитаз смыл.
Пробовал по разному,
Пробовал разные варианты, в часности
одним словом, мои познания в этом кончились.
P.S. Прошу к коду не придираться, пишу по памяти, т.к. на работе.
Предлагается по кусочкам гадать?
Я же писал у меня нет полного кода на библ-х NRF24+SD. Все у меня написано с помощью Mirf. Здесь же, чтобы не быть голословным, я с двух примеров от NRF24 и SD набросал код похожий на мой. В последнем посте я перед тем как обращаться к карте прекращаю слушать порт. И обращаюсь к карте. Повторюсь, пробовал разные варианты.
P.S. наверное роль учителя очень занятная, как приятно ученика по шагам на путь истинный наставлять...Вы, если знаете, просто напишите как нужно.
ну на гитхабе rf24 аж 3х видов, заработала толком только одна. от маньякbug. тоже пытался дергать cs, нет результата
Ну вот мой код с использованием либы, на которую ссылку давал. Работает без сбоев пока. По крайней мере, если передающая сторона не дурдомит.
На SPI висят три устройства: nRF24, SD и Ethernet, который сразу отключаю.
RF_ON и RF_OFF попробую убрать, в бибилиотеке CS дерагется и так.
Спасибо. Как раз мне и нужно эти 3 устройства. Попробую дома
было сегодня полчасика, попробовал Ваш код. с "наскока" не заработал, ругается например на
// Карта памяти
SdFat SD;
Скачал библиотеку SdFat.h, хотя этот фай есть и в стандартной Sd. без результата.
Далее на
ну и еще на пару моментов.
Подскажите по коду
Стандартная давно плесенью покрылась.
https://github.com/greiman/SdFat
Стандартная давно плесенью покрылась.
https://github.com/greiman/SdFat
Странно даже в примере SdInfo на
SdFat sd;
ругается. и в разных средах. вечером на 1.02 попробую
Странно. У меня Есть и SD и SdFat. Раньше была IDE 1.5.*, сейчас 1.6.*. Компилируется скетч без ошибок.
Все таки наверное проблема не с кодом.
Ситуация следующая:
Подключаю nrf модуль, работает. Как только физически подключаю SD, nrf затыкается. При том, что в коде вообще нет упоминания об SD.
Добавляю библу для SD (SdFat) без разницы, в лучшем случае начинает видеть карту, но nrf не поднимается. На принудительное отключение/включ. портов никакой реакции нет. Вот код:
Еще есть один момент, SD подключена на+5В. Nrf на +3В. При включении SD на +3В, SD не работает, но nrf по этой команде
radio.printDetails();
данные выводит, но ничего не принимает/передает.Походу вот моя тема: http://forum.amperka.ru/threads/%D0%9E%D1%88%D0%B8%D0%B1%D0%BA%D0%B0-spi...
Никто с этим не сталкивался?
Это не твоя тема. И тему ту дурачек какой-то написал. Все у всех прекрасно работает, исключая тебя! Сделай вывод и попробуй разобраться.
На данный момент известна только одна байда которая подминает под себя SPI и ей нужно ставить ключ. И ты ей точно не пользуешься. Да и ключ ей на плате распаивают даже китайцы.
Допустим, не моя тема, я в электронике не силен. И больше чем уверен, что выпуская SD модули в таком количестве, китайцы бы уже решили проблему. Но cимптомы те же, все прекрасно работает по отдельности, вместе нет. NRF не работает SD работает. Как только отключаю MISO в SD модуле, NRF работает.
Если по Вашему проблема программная, то код в котором пытаюсь отключать управляющие пины выше. Если что-то не верно, поправьте как надо.
Повторюсь, для экспириментов использовал разные библиотеки результат одинаковый.
CE нахрена гасишь?
Ребятя, ну я же уже писал, все варианты попробовал. Делал CE + CSN в HIGH, по отдельности в HIGH, вместе и по отдельности в LOW - не работает!
Взять хотя бы этот кусочек, как должно быть?
Так? если да, то не работает.
CS - Chip Select - выбор устройства, с которым будет производиться обмен данными. Устройство инициализируется один раз и дальше работает.
Прижимиая CS к земле, та слообщаешь устройству, что разговариваеть будешь именно с ним. Это не включение/выключение, а выбор.
Я тебе дал рабочий код, который принимает данные с другой ардуины и пишет на карту памяти.
В RF24 cs дергается либой, в SdFat я не смотрел.
Твой рабочий код прекрасно работает с SD и NRF по отдельности, но как только я присоединяю ногу MISO от SD, все перестает работать. Пробовал SD, SdFat, RF24, Mirf в разных вариантах, результат один.
Кстати я не написал какие девайсы
http://ru.aliexpress.com/item/free-shipping-1-pcs-lot-NRF24L01-wireless-...
http://ru.aliexpress.com/item/1pcs-SPI-Micro-SD-Storage-Mciro-SD-TF-Card...
Вот это новости! А у меня тогда как всё пишется и принимается? o_0
Поэтому я и предположил, что косяк в схеме. Я готов рассмотреть любые варианты помощи (программные и аппаратные).
Пробовал вариант с изменением MISO на другой пин, менял MEGA на NANO.
> Пробовал вариант с изменением MISO на другой пин
Это как? o_0
Гыыы переместил miso на другой пин , убил.
Сд платка вообще тупо слот, питание и понижатель уровня для логики... можно вообще сд карточку прооводками подпаять скажем к arduino due. Без всяких слотов.
Возми другую карточку.
И не нужно добавлять никакого говна кроме 1 библиотеки сд и 1 библиотеки рф24
Все тема закрыта.
Все тема закрыта.
Чего так? Раскажи потомкам где косяк порылся.
Где он у меня выключение CE разглядел? o_0
Где он у меня выключение CE разглядел? o_0
Меня не спрашивай.
Чего-то гонуру дофига, но пустая голова... о разном тактировании SPI слыхал... Пустобрех...
Для других, могу предположить, что устройства работают по разным фронтам sck,частоте и.т.д
т е. Придется перенастраивать в регистрах самих устройств. Нахрапом не получится особенно с nrf.
Вот хорошая статья : 4a4ik.blogspot.com/2015/08/spi.html
А ты, друг, учи людей как дергать лапками...
Чего-то гонуру дофига, но пустая голова... о разном тактировании SPI слыхал... Пустобрех...
Для других, могу предположить, что устройства работают по разным фронтам sck,частоте и.т.д
т е. Придется перенастраивать в регистрах самих устройств. Нахрапом не получится особенно с nrf.
Вам самому-то не стыдно тут фигню всякую изобретать? Атмега замечательно общается с nrf по SPI на дефолтных настройках. Всего и надо, сказать атмеге, что SPI включен и что она мастер. Никаких других настроек не требуется.
Тема : два устройства не совместимы на одной SPI ( NRF24L01 и SD ) кто забыл.
Муссируется не только на RU. Данная проблема действительно существует.
А именно с вот таким :
Вопрос почему :
Какой выход ( без умников с пинами .... ) Предлагают на COM/
Обратите внимание на слово CUT и стрелочку на CS/
Все дело в LVC125A. Принцип работы, если совсем просто - RAID контроллер ( ну совсем образно ). А вещь
действительно полезная..
Вот такое чудо будет работать :
И такое будет работать :
Самый простейший код для проверки устройств которые заведомо работают :
Что должно получится :
Всем респект. !
И при чем тут тогда ваше "разное тактирование SPI" ?
Nrf чтото отвечала. Даже осцил реагаровал.
Потратил день. Был неправ.
В соседней теме обсуждалась аналогичная проблема с данным ридером и ее аппаратное решение:
http://arduino.ru/forum/apparatnye-voprosy/w5100-sd-modul-ne-vzletayut-vmeste
Вроде как китайцы в дальнейшем учли косяк и исправили его. Но опять же, что пришлют заранее неизвестно, поэтому нужно иметь в виду, что возможно придется допиливать.